프로그래밍/네트워크

[모두의 네트워크] 7장 - 응용 계층 : 애플리케이션에 데이터 전송하기

말랑공룡 2020. 10. 26. 22:02

 

응용 계층의 역할


응용 계층은 세션 계층과 표현 계층을 포함하는 것으로써 애플리케이션과 데이터를 주고받기 위해 필요한 계층이다.

클라이언트의 요청을 통신 대상(서버 등)이 이해할 수 있는 메시지(데이터)로 변환하고 전송 계층으로 전달하는 역할을 한다.

 

응용계층

 

클라이언트 측 애플리케이션과 서버 측 애플리케이션이 통신하기 위해서는 응용 계층의 프로토콜을 사용해야 한다.

 

프로토콜 내용
HTTP 웹 사이트 접속
DNS 이름 해석
FTP 파일 전송
SMTP 메일 송신
POP3 메일 수신

 

 

위는 응용 계층의 대표적인 프로토콜들이다.

 

웹 서버의 구조(웹 사이트 접속)


WWW란?

 

WWW는 HTML, URL, HTTP라는 세 가지 기술이 사용된다.

 

HTML은 마크업 언어이다.

클라이언트는 웹 사이트를 보기 위해 서버의 80번 포트를 사용하여 HTTP통신을 한다.(request - response)

 

예전의 HTTP/1.0 버전에서는 요청을 보낼 때마다 연결했다 끊는 작업을 반복했기 때문에 속도가 느렸다.

 

HTTP/1.0

 

그러다가 HTTP/1.1 버전에서 'keepalive' 기능이 추가되었다.

이 기능은 한번 연결을 수립하면 데이터 교환을 마칠 때까지 유지하고 교환을 모두 끝내면 연결을 끊는 구조이다.

 

또, HTTP/1.1 버전의 단점을 보완한 HTTP/2 버전도 있는데, 이 버전은 1.1 버전과 달리 요청을 보낸 순서대로 응답하지 않아도 된다.

 

HTTP/1.1과 HTTP/2

 

DNS 서버의 구조 (이름 해석)


DNS는 이름 해석을 통해 도메인 이름을 IP 주소로 변환하는 역할을 한다.

즉, URL을 IP주소로 변환하는 시스템이다.

 

DNS 

 

그림을 보면 사용자가 URL에 접속했고 DNS 서버가 그 URL을 받아 이름 해석(name resolution)을 해서 IP를 알려주면 그 IP를 웹서버에서 받아 그에 해당하는 웹페이지를 응답해주는 과정임을 알 수 있다.

 

DNS 서버는 전 세계에 흩어져 연계하며 동작한다.

 

메일 서버의 구조 (SMTP와 POP3)


메일의 송수신 구조

 

메일 송신에 사용되는 프로토콜은 SMTP, 받는 데 사용되는 프로토콜은 POP3이다. 포트번호는 각각 25, 110.

 

메일을 주고받는 흐름

 

ping 명령

ping 명령은 ICMP(Internet Control Message Protocol)라는 프로토콜을 사용하여 목적지 컴퓨터에 ICMP 패킷을 전송하고 그에 대한 응답이 제대로 오는지 확인하는 명령이다.
ping 명령이 정상으로 실행되면 네트워크 연결이 정상이라고 판단할 수 있으므로 문제를 확인할 때 자주 사용한다.

윈도우 cmd에서의 ping 명령