-
2024 컴퓨터 네트워크 개론 - 5. 응용 계층Network 2024. 4. 18. 13:21728x90
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
https://watermelon-sugar.tistory.com/47
728x90'Network' 카테고리의 다른 글
2024 컴퓨터 네트워크 개론 - 4. 전송 계층 (0) 2024.04.18 2024 컴퓨터 네트워크 개론 - 3. 인터넷 계층 (0) 2024.04.18 2024 컴퓨터 네트워크 개론 - 2. 네트워크 인터페이스 계층 (0) 2024.04.18 2024 컴퓨터 네트워크 개론 - 1. OSI 7계층 + TCP/IP 4계층 (0) 2024.04.18 컴퓨터 네트워크/운영체제 개념 공부를 위한 참고 사이트 (0) 2021.10.25