Network
2024 컴퓨터 네트워크 개론 - 5. 응용 계층
땽뚕
2024. 4. 18. 13:21
728x90
2024 컴퓨터 네트워크 개론 - 5. 응용 계층
- 1. OSI 7계층 + TCP/IP 4계층
- 2. 네트워크 인터페이스 계층
- 3. 인터넷 계층
- 4. 전송 계층
- 5. 응용 계층
각 계층의 프로토콜
계층 | 프로토콜 |
응용 계층 | HTTP, DNS, FTP, SMTP, POP3, 기타 프로토콜 |
전송 계층 | TCP, UDP |
네트워크 계층 | IP |
데이터 링크 계층 | 이더넷 |
물리 계층 | 전기 신호 변환 |
- 응용 계층에 속하는 프로토콜
프로토콜 | 설명 | Port Num. |
HTTP (HyperText Transfer Protocol) |
- www 상에서 정보를 주고 받을 수 있는 프로토콜 - 주로 HTML문서를 주고 받는 데에 쓰임 - TCP와 UDP를 사용하며, 80번 포트를 사용 - 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜 - HTTP를 통해 전달되는 자료는 http: 로 시작하는 URL(인터넷 주소)로 조회 할 수 있음. |
80 |
SMTP (Simple Mail Transfer Protocol) |
- 인터넷에서 이메일을 보내고 받기 위해 이용되는 프로토콜, TCP 포트번호 25번 사용 - 상대서버를 지시하기 위해서 DNS의 MX레코드가 사용됨, RFC2821에 따라 규정됨 - 텍스트 기반의 프로토콜로서 요구/응답 메시지 뿐만 아니라 모든 문자가 7bit ASCII로 되어 있어야 함 (8bit 이상의 코드를 사용하는 파일과 바이너리는 마임(MIME)방식으로 7bit로 변환되어 전달) |
25 |
SNMP (Simple Network Management Protocol) |
- 네트워크 장비를 관리 감시하기 위한 목적으로 TCP/IP 상에 정의된 응용 계층 표준 프로토콜 - 네트워크 관리자가 네트워크 성능을 관리하고 네트워크 문제점을 찾아 수정하는데 도움을 줌 - SNMP를 지원하는 서버에 관리자가 질의를 해 자료를 받아갈 수 있고, 반대로 어떤 값은 설정을 요청할 수도 있음. |
|
FTP (File transfer protocol) |
- 컴퓨터 간 파일을 전송하는데 사용되는 프로토콜 - 사용자인증, 데이터의 전환, 디렉터리 검색 등과 같은 많은 기능 및 선택사항을 제공 - 클라이언트/서버 관계를 이루며 동작함, 표준 RFC959에 따라 규정됨 - 데이터 전달 : 20번포트, 제어정보전달 : 21번포트 |
20, 21 |
TELNET | - 인터넷이나 로컬 영역 네트워크 연결에 쓰이는 네트워크 프로토콜, IETF STD 8로 표준화 - 보안문제로 사용이 감소하고 있으며, 원격제어를 위해 SSH로 대체되기도 함 |
|
IMAP (Internet Message Access Protocol) |
- 원격파일 서버와 유사하게 작동, POP3와 달리 메일을 받아올 때 서버에서 메일을 삭제하지 않고 보관하는 프로토콜 - 다른 컴퓨터 환경에서 항상 같은 메일 내용을 메일 서버로부터 받아올 수 있는 장점이 있음 - POP3에 비해 메일서버와의 통신 트래픽이 높은 단점을 가짐 |
143 |
IRC (Internet Relay Chat) |
- 인터넷으로 실시간 대화를 나눌 수 있는 프로토콜 - 동시에 다중 대화가 가능한 채팅 프로토콜 - RFC2810~2813이 주로 사용되며, TCP 6667과 6668 포트 사용 |
|
SIP (Session Initiation Protocol) |
- 인터넷 상에서 통신하고자 하는 지능형 단말(전화, 인터넷 콘퍼런스, 인스턴트 메신저 등)들이 서로를 식별하여 그 위치를 찾고, 그들 상호 간에 멀리미디어 통신 세션을 생성하거나 삭제 또는 변경하기 위한 절차를 명시한 시그널링 프로토콜 - HTTP와 SMTP의 많은 부분 그대로 사용하여 개발된 텍스트 기반이므로 구현이 용이 하고, 유연성과 확장성이 있음. |
|
POP3(Post Office Protocol Version 3) | - 멀리 떨어져있는 메일서버에 지정된 사용자ID로 접속해서, 메일박스 내에 도착한 메일을 자신(클라이언트)에게 가져오기 위해 사용되는 비교적 간단한 프로토콜 - RFC1939에 정의되어 있음. |
|
SSH (Secure Shell) |
- 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 응용 프로그램 또는 그 프로토콜 - TCP 기반 - 기존 rsh, rlogin, 텔넷을 대체하기 위해 설계됨 - 강력한 인증방법 제공 및 안정성이 우수함, 22번 포트 사용 |
22 |
UUCP (Unix to Unix Copy) |
- 원격 명령실행, 파일 전송, 이메일, 컴퓨터간 네트뉴스 등을 가능하게 하는 컴퓨터 프로그램과 프로토콜 스위트 또는 세트를 가리킴 | |
DNS (Domain Name System) |
- 호스트에 대한 정보를 분산시켜서 관리하는 데이터베이스 - IP주소와 Host이름이 서로 연결되어 구조화된 역 트리구조를 갖는 계층적이고, 분산(Distributed)된, 클라이언트/서버 구조의 데이터베이스 시스템을 말함. |
53 |
DHCP ( Dynamic Host Configuration Protocol) | ... | 67, 68 |
- 이 중에서 HTTP, DNS, DHCP, FTP, SMTP를 살펴본다
HTTP (Hypertext Transfer Protocol)
- 특징
- TCP 기반 프로토콜
- Port 번호 : 80
- client에서 request를 보내면, server에서 response 보내줌
- HTTP request 구성 : Start line, Headers, Body
- Start Line은 Method, Path, HTTP Version
- HTTP response 구성 : Status line, Headers, Body
- Status Line은 HTTP Version, Status Code, Status Message
- HTTP request 구성 : Start line, Headers, Body
- Conectionless & Stateless이라는 특징이 있음
- Conectionless : 서버에 연결 후 응답을 받으면 연결을 끊어버림 -> 이로 인해 많은 사람들이 이용하더라도 동시 접속을 최소화할 수 있음
- Stateless : 하지만 연결을 끊었기 때문에 클라이언트의 이전 상태(로그인 유무)를 알 수 없다는 특성
- HTTPS : HTTP는 정보를 text 형식으로 주고 받기 때문에 데이터 유출의 위험성 있음 -> 이를 해결하고자 http에 암호화를 추가한 프로토콜
- HTTP Request Method
- Get
- 클라이언트가 서버에게 리소스를 요청하는 것
- 전달 방식 : URL 주소 끝에 key-value 쌍으로 parameter를 포함하여 전송 : Query String
- 캐시가 가능함 - 한 번 서버에 GET 요청을 했다면 브라우저가 이를 로컬에 저장해둠
- Post
- 클라이언트가 서버에게 데이터의 변경, 생성, 특정 프로세스를 처리
- 전달방식 : 클라이언트가 body를 통해 전달한 데이터를 서버가 처리하도록 요청
- Put
- 전체 리소스를 변경
- Patch
- 일부 리소스를 변경
- Get
- HTTP Response Code
- 클라이언트로 부터 받은 request에 대한 서버의 response에 대한 간략할 설명
- 모든 HTTP Response Code는 아래의 5개 클래스로 이뤄진다
- 1xx : 정보 - 요청을 받았으며 작업을 계속한다
- 2xx : 성공
- 3xx : 리다이렉션 - 요청을 완료하기 위해 추가 작업 조치 필요
- 4xx : 클라이언트 오류
- 5xx : 서버 오류
- 대표적인 코드
Status code | Message | 설명 |
200 | OK | GET 성공 |
201 | Created | POST 성공 |
400 | Bad Request | 데이터의 형식이 올바르지 않는 등 서버가 요청을 이해할 수 없음 |
401 | Unauthorized | 인증되지 않은 상태에서 인증이 필요한 리소스에 접근함 |
403 | Forbidden | 인증된 상태에서 권한이 없는 리소스에 접근함 |
404 | Not Found | 요청한 route가 없음. 찾는 리소스가 없음 |
502 | Bad Gateway | 서버에서 예상하지 못한 에러가 발생함 |
- +) 쿠키와 세션이란?
- 쿠키와 세션을 사용하는 이유는 HTTP의 connectionless(비연결성), stateless(비상태성)라는 특징 때문
- 쿠키
- 쿠키는 클라이언트(브라우저) 로컬에 key-value 쌍으로 저장되는 데이터 파일
- 유효시간 내에서는 브라우저가 종료되어도 계속 유지
- 생성 방법
- 1. 서버가 클라이언트로부터 요청을 받았을 때, 클라이언트에 관한 정보를 토대로 쿠키를 구성
- 2. 서버는 클라이언트에게 보내는 응답의 header에 쿠키를 담아
- 3. 클라이언트가 응답을 받으면, 브라우저는 쿠키를 쿠키 디렉터리에 저장
- 세션
- 쿠키를 이용하여 구현 -> 세션은 서버측에 저장하여 관리
- 유효시간을 두어 일정 시간 응답이 없다면 끊을 수 있고, 브라우저가 종료될 때까지 인증상태를 유지할 수 있음
- 사용자 정보를 서버에 두기 때문에 쿠키보다 보안은 좋지만 서버 자원을 차지하기 때문에 서버에 과부하를 줄 수 있고 성능 저하의 요인이 될 수 있음
DNS (Domain Name System)
- 특징
- TCP / UDP 기반 프로토콜
- UDP: 일반적인 DNS 조회를 할 경우
- TCP: Zone Transfer(영역 전송)을 수행할 경우 또는 512Byte를 초과하는 DNS패킷을 전송해야 할 경우
- Port 번호 : 53
- 도메인 명을 IP 주소로 바꾸는 프로토콜
- 클라이언트가 도메인 명을 request하면 네임 서버에 요청
- 있으면 IP 주소를 response로 반환
- 없으면 다른 네임 서버의 IP 주소를 response로 반환
- TCP / UDP 기반 프로토콜
DHCP (Dynamic Host Configuration Protocol)
- 특징
- UDP 기반 프로토콜
- IP를 할당받는 과정이므로 패킷을 정상적으로 주고받을 수 없어 TCP가 아닌 UDP를 사용
- Port 번호 : 67, 68
- 네트워크에 연결된 IP주소를 임의로 할당하는 Protocol
- IP 주소, Subnet Mask, Default Gateway 등을 할당함
- UDP 기반 프로토콜
- DHCP 동작 과정
- 1. DHCP Discover
- DHCP 클라이언트는 DHCP 서버를 찾기 위해 DHCP DIsvocer 메시지를 브로드캐스트로 전송합니다
- DHCP Discover 메시지에는 DHCP 클라이언트의 IP가 아직 없으므로 출발지는 Zero IP 주소(0.0.0.0), 목적지는 브로드캐스트 주소(255.255.255.255)로 설정
- 2. DHCP Offer
- DHCP DIscover를 수신한 DHCP 서버는 클라이언트에 할당할 IP주소와 서브넷, 게이트웨이, DNS 정보, Lease Time 등의 정보를 포함한 DHCP 메시지를 클라이언트로 전송합니다.
- DHCP Offer 메시지라고 하며 DHCP 서버가 클라이언트에 IP 주소 사용을 제안하는 단계
- 3. DHCP Request
- DHCP 서버로부터 제안받은 IP 주소(Requested IP)와 DHCP 서버 정보( DHCP Server Identifier)를 포함한 DHCP 요청 메시지를 브로드캐스트로 전송합니다
- DHCP 서버 여러 대가 동작하는 환경을 위해 브로드캐스트를 사용
- DHCP 서버로부터 제안받은 IP 주소(Requested IP)와 DHCP 서버 정보( DHCP Server Identifier)를 포함한 DHCP 요청 메시지를 브로드캐스트로 전송합니다
- 4. DHCP Acknowledgement
- DHCP 클라이언트로부터 IP 주소를 사용하겠다는 요청을 받으면 DHCP 서버에 해당 IP를 어떤 클라이언트가 언제부터 사용하기 시작했는지 정보를 기록하고 DHCP Request 메시지를 정상적으로 수신했다는 응답을 전송합니다.
- 클라이언트는 DHCP 서버에서 할당받은 IP를 로컬에 설정하고 사용하기 시작
- 1. DHCP Discover
FTP (File Transfer Protocol)
- 특징
- TCP 기반 프로토콜
- 파일을 한 호스트에서 다른 호스트로 전송하기 위해 사용되는 파일 전송 프로토콜
- 일반적으로 웹 서버에서 파일을 다운로드할 때 사용
SMTP (Simple Message Transfer Protocol)
- 특징
- SMTP는 이메일 클라이언트와 메일 서버 간에 이메일 전송 시 사용되는 표준 프로토콜
Reference
http://www.jidum.com/jidums/view.do?jidumId=415
지식덤프
통신규약은 상호간의 접속이나 전달방식, 통신방식, 주고받을 자료의 형식, 오류검출방식, 코드변환방식, 전송속도 등에 대하여 정해진 약속
www.jidum.com
https://watermelon-sugar.tistory.com/47
DHCP의 구성 및 동작원리
호스트가 네트워크와 통신하려면 물리적 네트워크 구성은 물론 IP, 서브넷 마스크, 게이트웨이와 같은 네트워크 정보와 DNS 주소도 설정이 필요합니다. 이런 네트워크 정보를 호스트에 적용하려
watermelon-sugar.tistory.com
728x90