응용 계층 : 세션 계층 + 표현 계층
애플리케이션은 일반적으로 클라이언트 / 서버로 나뉜다.
응용 계층에서는 클라이언트 요청을 전달하기 위해 통신 대상이 이해할 수 있는 메시지로 변환하고 전송 계층으로 전달한다.
클라이언트/서버 애플리케이션이 통신하기 위해서 응용 계층 레벨의 통신 프로토콜을 사용해야 함
| 프로토콜 | 내용 |
|---|---|
| HTTP | 웹 사이트 접속 |
| DNS | 이름 해석 |
| FTP | 파일 전송 |
| SMTP | 메일 송신 |
| POP3 | 메일 수선 |
www : w3 or 웹(web)이라 불린다.
www는 HTML, URI, HTTP 라는 세가지 기술이 사용된다.
HTML : 웹 페이지 구조를 짜는 마크업 언어 혹은 하이퍼텍스트 언어
참고로 문서와 이미지는 각각 별도로 요청하며, 가끔 글과 이미지가 보이는 순서가 다를 수 있음.
클라이언트는 웹 사이트를 보기 위해 서버의 80 포트를 사용하여 HTTP 통신을 한다. 클라이언트에서 HTTP 요청을 보내며, 서버 측에서 HTTP 응답과 데이터를 보내준다.
예전 HTTP/1.0 버전에서는 매 요청이 처리될 때마다 연결을 끊었음. 따라서 통신 속도가 느렸다.
HTTP/1.1부터 keepalive라는 기능이 추가되었다. 한번 연결을 확립하면 데이터 교환이 끝날 때까지 연결을 유지하고, 데이터 교환이 끝난 뒤에 연결을 끊는다. 요청을 보낸 순서대로 응답을 반환한다. 따라서 이전 요청 처리 지연이 생기면 다음 요청에 대해서도 응답이 느려진다.
HTTP/2 부터는 요청을 보낸 순서대로 응답을 반환하지 않는다.
기본적으로 컴퓨터에는 IP주소가 있어서, 인터넷을 통해 웹 서버에 접속하여 웹 사이트를 볼 수 있다.
DNS는 URL을 IP주소로 변환하는 서비스이다. https://www.naver.com으로 네이버 웹 페이지에 들어갈 수 있는 이유. 여기서 www는 호스트 이름, naver.com을 도메인 이름이라 한다.
DNS 서버는 전 세계에 흩어져 있고, 계층적으로 연결되어있다.
메일 송수신을 하려면 클라이언트 측 메일 프로그램과 서버 측 메일 서버 프로그램 간 통신을 해야 함.
송신 : SMTP (25)
수신 : POP3 (110)
클라이언트 -> 메일 서버 간 메일 교환
1. 세션 시작 통지
2. 송신자의 메일 주소를 통지
3. 목적지 메일 주소 통지
4. 메일 본문 전송 통지
5. 메일 본문 송신
6. 세션 종료를 통지
메일 서버는 메일 박스라 하는 메일 저장소에 수신한 메일을 저장한다. 그 다음 POP3를 사용해서 메일 서버에 저장된 메일을 목적지 컴퓨터로 송신한다.
메일 서버 -> 클라이언트 간 메일 교환
1. 세션 시작 통지
2. 수신자의 사용자 이름을 통지
3. 수신자의 비밀번호 통지
4. 메일을 확인
5. 메일의 전송 요청
6. 세션 종료 통지
Ping 명령
목적지 컴퓨터와의 통신을 확인하기 위해 ping 명령을 이용한다. ping 명령은 ICMP(Internet Control Message Protocol)라는 프로토콜을 사용하여 목적지 컴퓨터에 ICMP 패킷을 전송하고 패킷에 대한 응답이 제대로 오는지 확인한단.