취미가 좋다
네트워크 7 : 응용 계층 - Application Layer 본문
마지막 계층인 응용 계층을 알아보자.
이 글에서 말하는 응용 계층은 세션 계층과 표현 계층을 포함한다.
응용 계층에서 동작하는 애플리케이션은 사용자가 하고 싶은 일을 할 수 있도록 돕는 프로그램이다.
애플리케이션은 서비스를 요청하는 클라이언트와 서비스를 제공하는 서버로 나눌 수 있다.
- 클라이언트에는 웹 페이지를 보기 위한 인터넷 익스플로러 같은 웹 브라우저, 메일을 주고 받기 위한 Outlook 같은 메일 프로그램이 있다.
- 서버에는 웹 서버 프로그램과 메일 서버 프로그램이 있다.
응용 계층에는 다양한 프로토콜이 있고, 아래는 대표적인 5가지 예시이다.
프로토콜 | 내용 |
HTTP | 웹 사이트 접속 |
DNS | 이름 해석 |
FTP | 파일 전송 |
SMTP | 메일 송신 |
POP3 | 메일 수신 |
응용 계층의 애플레케이션에서 데이터를 전송할 때 하위 계층으로 순차적으로 전송된다.
아래는 각 계층의 프로토콜과 기술을 나타낸다.
인터넷에 핵심적인 역할을 하는 WWW에는 3가지 기술이 사용된다.
그 3가지는 HTML, URL, HTTP 이다.
HTML
HTML은 태그를 사용하여 웹 페이지에서 문장 구조나 문자를 꾸미는 마크업 언어이다.
웹 브라우저는 HTML을 기반으로 웹 페이지를 보여준다.
HTML은 하이퍼텍스트(hypertext)를 작성하는 마크업 언어라고도 한다.
하이퍼텍스트로는 문자와 이미지를 표시하거나 하이퍼링크를 사용할 수 있다.
링크를 클릭하면 다른 웹 사이트로 이동할 수 있다.
다른 사이트로 이동하면서 아래와 같이 클라이언트가 서버에게 HTML 파일과 이미지 파일을 요청한다.
따로 요청하기 때문에 도착시간이 모두 달라 표시되는 시간도 다르다.
HTTP
클라이언트는 웹 사이트를 보기 위해 서버의 80번 포트를 사용하여 HTTP 통신을 한다.
클라이언트에서 HTTP 요청(request)를 보내고 서버에서 HTTP 응답(response)을 반환한다.
클라이언트가 데이터를 요청할 때 "GET"이라는 요청 정보, 파일 이름, 버전 등을 서버에 전송한다.
서버는 응답으로 요청을 정상적으로 처리했다는 "OK"를 반환하고 index.html을 보낸다.
HTTP/1.0에서는 이러한 요청을 보낼 때마다 연결을 맺고 끊는 과정을 반복했기 때문에 속도가 느렸다.
HTTP/1.1에서는 keepalive라는 기능이 추가되어 순차적인 데이터 교환을 마칠 때까지 연결을 유지했다.
HTTP/2 에서는 데이터 교환을 할 때, 요청 온 순서대로 응답하지 않아도 되기 때문에 더 빨라졌다.
DNS
웹 서버에 접속하기 위해서 서버의 IP 주소가 필요하다.
하지만 웹 서버의 주소는 사용자가 이해하거나 기억하기 어려우므로 보통 URL을 통해 웹 서버에 접속한다.
URL에는 호스트 이름(서버 이름)과 도메인 이름이 있다.
- URL : http://www.naver.com
- 호스트 이름 : www
- 도메인 이름 : naver.com
DNS는 위의 URL을 IP 주소로 변환하는 서비스이다.
DNS 서버이런 서비스를 제공하고 IP 주소로 변환하는 작업을 이름 해석이라고 한다.
DNS 서버는 전 세계에 흩어져 잇고 모두 계층적으로 연결되어 있다.
그래서 DNS 서버가 도메인의 IP 주소를 모를 때 다른 DNS 서버에게 요청하여 IP 주소를 알아낸다.
메일 송수신에서 사용되는 프로토콜을 알아보자.
SMTP
메일을 보내는 데 사용되는 프로토콜로 25번 포트를 사용한다.
POP3
메일을 받는 데 사용되는 프로토콜로 110번 포트를 사용한다.
먼저 메일을 보내려는 사람은 자신이 사용하는 포털 사이트나 회사의 메일 서버 1에 메일을 보낸다.
메일 프로그램에 메일 서비스를 제공하는 메일 서버의 호스트 이름을 설정하여 사용자가 메일 서버를 사용할 수 있다.
이 내용을 더 디테일 하게 살펴보면 아래와 같다.
- 세션 시작을 통지
- 송신자의 메일 주소를 통지
- 목적지 메일 주소를 통지
- 메일 본문 전송을 통지
- 메일 본문을 송신
- 세션 종료를 통지
그렇게 메일 서버 1은 받은 메일을 메일 서버 2로 보낸다.
메일 서버에는 메일 박스라고 하는 메일을 보관해 주는 기능이 있다.
메일 서버 2는 POP3를 사용하여 메일 박스에서 메일을 가져와서 수신자에게 전송한다.
전송하는 과정은 아래와 같고, 사용자 이름과 비밀번호를 이용한 사용자 인증이 필요하다.
- 세션 시작을 통지
- 수신자의 사용자 이름을 통지
- 수신자의 비밀번호를 통지
- 메일을 확인 (메일의 유무)
- 메일의 전송을 요청
- 세션 종료를 통지
ping 명령
ICMP(Internet Control Message Protocol)라는 프로토콜을 사용하여 목적지 컴퓨터에 ICMP 패킷을 전송하고 패킷에 대한 응답이 제대로 오는지 확인하는 명령이다.
ping 명령이 정상적으로 실행되면 네트워크 연결이 정상이라고 판단할 수 있으므로 문제를 확인할 때 주로 사용한다.
ping 명령 사용법
- ping 목적지 IP 주소
- ping 목적지 호스트 이름
본 글은 책 [모두의 네트워크 - 미즈구치 카츠야] 을 참고하여 작성되었습니다.
'Computer Science > 네트워크' 카테고리의 다른 글
네트워크 9 : 무선 랜 이해하기 (1) | 2021.10.02 |
---|---|
네트워크 8 : 네트워크 전체 흐름 (0) | 2021.10.02 |
네트워크 6 : 전송 계층 - Transport Layer (0) | 2021.09.17 |
네트워크 5 : 네트워크 계층 (0) | 2021.09.15 |
네트워크 4 : 데이터 링크 계층 (0) | 2021.01.28 |