티스토리 뷰
이 포스트에서는 OSI 모델의 7계층인 응용 계층에 대해 알아보고자 한다.
웹 페이지를 볼 때는 크롬 같은 웹 브라우저를 사용하며,
메일을 받을 때는 naverMail 같은 메일 프로그램을 사용할 것이다.
이러한 서비스를 요청하는 측을 클라이언트 라고하며
서비스를 제공하는 측을 서버라고한다.
지금까지 물데네전 계층에 의해서 상대방에게 데이터를 전달할 수 있게 되었는데
이번에 응용계층에서는 5계층의 세션, 6계층의 표현계창을 포함하여 생각하겠다.
응용계층이란?
세션+ 표현 계층을 포함하며 에플리케이션과 데이터를 주고받기 위해 필요하다.
각 계층마다 프로토콜이 있었는데 응용계층 또한 그러하다.
아래는 어떤 용도로 사용하는지 응용계층의 프로토콜이 나눠봤다.
파일을 전송할 때 | FTP |
메일을 보낼 때 | SMTP |
메일을 받을 때 | POP3 |
웹사이트 전송시 | HTTP |
Domain을 해석할 때 | DNS |
응용계층의 프로토콜을 소개하면서 전 계층의 프로토콜을 한번 다시금 보자
응용 계층 | HTTP. FTP, DNS, SMTP, POP3, 기타등등 |
전송 계층 | TCP, UDP |
네트워크 계층 | IP 등 |
데이터 링크 계층 | 이더넷 |
물리 계층 | 전기 신호 변환 |
응용계층에는 웹페이지를 접속하기 위한 프로토콜이 있다(HTTP) 이번에는 웹 페이지에 접속하는 구조에 대해 알아보자
WWW란?
WWW는 줄여서 W3나 Web으로 불리며, 세가지( HTML ,URL, HTTP) 기술이 사용된다.
HTML은 문자를 꾸미거나 문장구조를 태그를 사용하여 작성하는 마크업 언어다. 이미지 파일을 보여주거나 문장의 위치를 변환 및 꾸미기가 가능하다. 하이퍼텍스트로 링크나 문자, 이미지 표시도 가능하다.
index.html 파일 요청 ->
클라이언트 <- index.html 파일 전송 서버
picture.img 파일 요청 ->
<- picture.img 파일 전송
HTTP란?
클라이언트는 웹 사이트를 보기위해 서버의 80번 포트를 사용하여 HTTP 통신을 한다.
HTTP 요쳥(request), HTTP 응답(response)
요청할 때는 서버에 Get이라는 요청을 보내고 ,
응답으로 OK정보와 html파일을 클라이언트에게 보낸다.
예전의 HTTP/1.0버전에는 요청을 보낼때마다 연결했다가 끊는 반복적인 방식을 고수했다.
그러나 현재의 HTTP/1.1 버전은 keepalive라는 기능이 추가되어
연결을 한 번 수립하면 데이터 교환을 마칠 때까지 유지하고, 데이터 교환을 모두 끝내면 연결을 끊는 구조를 사용하고 있다.
여기서 ! 더 나아가 HTTP/2의 경우에는 시간이 길어지면 다음 요청에 대한 처리가 늦어지는 HTTP/1.1의 단점을 보안하여 요청 순서대로 응답을 반환하지 않는 방식을 사용하고 있다.
DNS란?
응용 계층에 이름 해석을 통해 도메인 이름을 IP 주소로 변환하는 역할을 하는 시스템이 있는데 이것이 DNS다.
컴퓨터에 IP주소를 입력해야하는데 우리는 www.naver.com 을 주소에 입력하면 해당 페이지로 넘어간다.
직접 IP주소를 입력하지 않았는데 어떻게 이게 가능한 것일까?
바로 DNS 가 URL(www.~~~)을 IP 주소로 변환하는 서비스를 제공하기 때문이다. (이름해석 name resolution)
URL의 구조를 보면
<호스트 이름(서버이름)>. 도메인이름. com 으로 구성되어있다.
만약 DNS 서버 1에 해당 도메인이름의 IP주소를 찾지 못했다면?
DNS 서버 1에서 DNS 서버 2로 다시 보내 찾은 IP주소를 컴퓨터에 전송한다. (걱정말라는 뜻이다)
메일의 송수신 구조
메일을 송수신하려면 위에 설명한 대로 SMTP와 POP3라는 프로토콜을 사용한다.
SMTP는 송신 POP3는 수신할 때 사용하는데
SMTP는 25번 포트번호, POP3는 110번 포트번호를 사용한다.
그럼 어떻게 전송할까?
SMTP를 사용하여 메일 서버(MSA)에 메일을 보낸다.
SMTP를 사용하여 메일 서버 (MSA)에서 메일서버 (MTA)로 메일을 보낸다.
POP3를 사용하여 메일서버(MTA)에서 다른 사용자에게 메일 데이터를 보낸다.
요약)
서비스를 요청하는 측을 클라이언트, 서비스를 제공하는 측을 서버라고한다.
클라이언트에서 사용하는 애플리케이션과 서버에서 사용하는 서버 프로그램간의 통신은 응용계층의 프로토콜을 사용한다.
응용계층의 주요 프로토콜에는 HTTP, FTP, SMTP, POP3, DNS 등이 있다.
HTML은 하이퍼텍스트를 작성하는 마크업 언어로 태그를 사용하여 문장구조나 이미지파일을 표시한다.
HTML로 작성된 웹 피이지는 웹 브라우저로 볼 수 있다.
하이퍼텍스트로는 문장이나 이미지르 ㄹ표시하거나 하이퍼링크를 사용할 수 있다.
일반적으로 웹브라우저는 웹 서버의 80번 포트를 통해 HTTP통신을 한다.
웹브라우저에서는 HTTP요청을 보내고 , 웹 서버에서는 HTTP응답을 반환한다.
HTTP/1.1버전은 keepalive 기능이 있어서 데이터를 교환하는 동안에는 연결을 유지하고 데이터 교환이 끝나면 연결을 끊는다.
HTTP/2 버전은 요청을 보낸 순서대로 응답을 반환하지 않아도 된다.
DNS 서버는 "이름해석"을 사용하여 도메인 이름을 IP주소로 변환한다.
URL에는 호스트이름, 도메인이름이 있다.
요청받은 DSN서버가 해당 도메인이름의 IP주소를 모르는 경우에 다른 DNS 서버에 질의한다.
DNS 서버는 전 세계에 흩어져 있으므로 연계하며 동작한다.
메일 송신은 SMTP 25번 포트를 사용한다.
메일 수신은 POP3 110번 포트를 사용한다.
메일 서버간에도 SMTP를 사용하여 메일을 전송한다.
메일 서버에는 파일 박스가 있는데 여기에 메일이 보관된다. (MTA)
그림참고) https://ko.wikipedia.org/wiki/HTTP_%EC%A7%80%EC%86%8D%EC%A0%81_%EC%97%B0%EA%B2%B0_%EC%83%81%ED%83%9C
HTTP 지속적 연결 상태 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. HTTP 지속적 연결 상태, HTTP 영구 접속(HTTP persistent connection) 또는 HTTP 킵얼라이브(HTTP keep-alive), HTTP 연결 재사용(HTTP connection reuse)은 하나의 TCP 연결을 사용하여 복
ko.wikipedia.org
모두의 네트워크
저자 미즈구치 카츠야는 ㈜리눅스 재팬의 대표이사다. 서버와 네트워크 구축/운용 등의 인프라 관련 사업 및 자바와 PHP 시스템 구축 사업을 한다. 리눅스와 네트워크 등의 IT 세미나도 정기적으
books.google.co.kr
'Network' 카테고리의 다른 글
무선 랜 이해하기 (0) | 2022.07.19 |
---|---|
네트워크의 전체 흐름 살펴보기 (0) | 2022.07.19 |
전송계층 : 신뢰할 수 있는 데이터 전송하기 (0) | 2022.07.19 |
네트워크 계층 : 목적지에 데이터 전달하기 (0) | 2022.07.19 |
데이터 링크 계층 : 랜에서 데이터 전송하기 (0) | 2022.07.19 |