NLP Learner in Switzerland

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

Computer Networks/모두의 네트워크

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

초코빵 2021. 4. 18. 10:00
728x90
반응형

 

3장에서는 OSI모델의 물리 계층을 봤고,

4장에서는 그 상위 계층인 데이터 링크 계층,

5장에서는 그 상위 계층인 네트워크 계층,

6장에서는 그 상위 계층인 전송 계층,

7장에서는 그 상위 계층인 응용 계층을 본다.

 

 

 

전송 계층까지 거치면서 데이터가 잘 도착을 했다.

이제 어떤 애플리케이션으로 보내야 하나?를 이해하려면 우선 애플리케이션을 이해해야 한다.

 

애플리케이션은

서비스를 요청하는 측(사용자, 클라이언트)와 서비스를 제공하는 측(서버)로 나뉘어진다.

e.g. 메일프로그램(클라이언트) & 메일서버프로그램(서버), 웹브라우저(클라이언트) & 웹서버프로그램(서버)

응용 계층의 역할은

클라이언트의 요청을 서버가 이해할 수 있는 메시지 형태로 변환을 해서

각각의 애플리케이션에 대응되는 데이터를 전달하는 것이다.

 

응용 계층의 주요 프로토콜은

프로토콜 역할
1. HTTP 웹 사이트 접속
FTP 파일 전송
2. SMTP 메일 송신
2. POP3 메일 수신
3. DNS 이름 해석(네트워크를 이용해 IP주소를 알아내는 것) 

각각에 대해서 아래에 설명할 것이다

 

1. 웹사이트부터 살펴보자

웹 사이트 접속시 사용하는 프로토콜은 HTTP이다.

WWW라고 불리는 웹(Web)은 HTML, URL, HTTP라는 3가지 기술을 사용한다.

HTML

웹 페이지를 작성할 때 사용되는 마크업 언어로 '태그'를 사용해서 표현한다.

문자,이미지 등을 표시할 때 하이퍼링크를 사용할 수 있는데,

링크를 클릭하면(클라이언트의 요청) 이미지를 전달받는다(서버의 응답)

문자와 이미지는 별도로 요청하므로 글이 먼저 보이고 이미지가 나중에 보일 때도 있다.

 

HTTP

클라이언트는 서버의 80번 포트번호(6장 참고)를 사용해서 HTTP통신을 한다.

클라이언트(웹브라우저)가 HTTP request("GET")를 하면

서버(웹서버)는 HTTP response("OK")로 알맞은 페이지, 이미지 등을 반환한다.

 

HTTP/1.1버전부터는 keepalive 기능이 추가되었다.

- 연결이 한번 수립되면 데이터 교환을 마칠 때까지 유지, 데이터 교환 끝내면 연결 종료

- 데이터 요청이 오면 응답을 하고 그 다음 요청을 처리하는 순서를 지킨다.

HTTP/2버전부터는 순서대로 응답을 반환하지 않아서 콘텐츠를 더 빨리 표시할 수 있다.

 

2. 메일 송수신을 알아보자

메일송신 프로토콜은 SMTP, 포트번호 25번을 사용하고

메일수신 프로토콜은 POP3, 포트번호 110번을 사용한다.

메일 송수신의 흐름은 다음과 같다.

1. 메일을 송신하는 측에서 포털사이트에 가입하고 메일주소를 부여받아 메일 서버를 사용하게 된다.

주로 메일서비스를 제공하는 포털사이트(네이버, 구글...)의 메일 서버를 사용한다.

2. 메일 송신측에서 이 송신자의 메일 서버측에 SMTP 프로토콜, 25번 포트를 통해

연결 요청, 송/수신자 메일주소, 메일 본문 송신, 연결 종료를 순서대로 각각 요청하고 응답받는다.

3. 송신자의 메일 서버는 수신자의 메일 서버에 SMTP 프로토콜, 25번 포트를 통해 메일을 전송하고,

수신자의 메일 서버는 이를 메일박스에 저장한다.

4. 그러면 수신자의 메일서버는 POP3프로토콜, 110번 포트를 사용해서 메일박스에서 메일을 꺼내와 수신자에게 전송한다.

이 때, 수신자의 메일서버는 수신자의 사용자 이름과 비밀번호를 이용한 사용자 인증을 진행하며 그 후에 메일전송, 연결을 종료한다.

 

3. 이름 해석을 살펴보자

기본적으로 컴퓨터(서버)에는 IP주소(5장 참고)가 있어서 인터넷을 통해 웹서버에 접속하고, 웹사이트를 볼 수 있다.

 

그런데 IP주소는 123.45.678.9처럼 32비트의 숫자로 표현되는데,

우리가 실제로 웹사이트에 접속할 때는 www.어쩌구.com등의 URL을 사용한다.

이는 사람이 IP주소를 기억하기 힘들기 때문에 도메인 이름을 부여하는 것이다.

사람이 URL을 입력하면 IP주소로 반환해주는 즉, 이름을 해석하는 역할을 DNS서버가 한다.

만약 DNS서버가 요청받은 도메인 이름의 IP주소를 모를 때도 있다.

그런 경우 해당 DNS서버가 다른 DNS서버에 질의한다.

DNS서버는 전 세계에 흩어져 있고 모두 연결되어 있어서 가능하다.

 

 

 

ping명령은

ICMP(Internet Control Message Protocol) 프로토콜을 사용하여 목적지 컴퓨터에 ICMP패킷을 전송해본 후

그에 대한 응답이 제대로 오는지 확인해보는 명령. why? 목적지 컴퓨터와의 통신연결이 정상인지 확인하기 위해서.

사용법은

cmd에

ping 목적지 IP주소 또는 ping 목적지 호스트 이름을 적는다.

아래는 구글 웹페이지로 시도해본 예시이다.

 


 

[복습하기]

 

1. 서비스를 요청하는 측은 클라이언트, 서비를 제공하는 측을 각각 서버라고 한다.

2. HTML은 문장 구조를 나타내기 위해 태그를 사용하여 작성한다.

3. 웹브라우저와 웹서버간의 통신을 위해 사용하는 프로토콜은 HTTP

4. 일반적으로 웹서버에서 사용하는 포트번호는 80

5. 웹브라우저가 요청을 보내면 웹서버가 이것을 반환한다 응답

6. DNS서버는 도메인 이름과 IP 주소에 대한 대응표를 가지고 있어서 문의가 오면 이름해석을 한다.

7. 메일 송신 프로토콜 이름과 포트번호는 SMTP, 25

8. 메일 수신 프로토콜 이름과 포트번호는 POP3, 110

 

* 답은 각 문제의 빈칸 또는 오른쪽 부분을 드래그

 

Comments