우리가 여태 살펴본 것처럼 네트워크는 너무나 많은 부분들로 이루어져 있다. 그렇기 때문에 프로토콜이 네트워크의 구조를 정리하는 노력이 필요하다.
프로토콜 계층을 나누어 네트워크 구조를 정리해놨다.
(+) 때문에 각 모듈은 서로 독립적이기 때문에 각 모듈이 업데이트할 때 편리하다.
(-) 하지만 layer들이 서로 독립적이어서 서로가 무슨 일을 하는지 모른다면 서로 하는 일이 겹칠 수 있다는 단점이 있다.
프로토콜 스택은 다음과 같이
- application
- transport
- network
- link
- physical
5가지 계층으로 구성된다.
위에서 아래로 순차적으로 거친다.
각 5개의 계층들이 Protocol Data Unit이다. 위의 계층에서 아래 계층으로 내려가면 PDU(Protocol Data Unit)가 SDU(Service Data Unit)가 된다.
예컨대 application 계층의 PDU가 transport 계층의 SDU가 되고, 그 SDU를 캡슐화(헤더 붙이는 작업)하면 transport 계층 본인의 PDU가 되는 거다. 아래로 갈수록 반복..
Application 계층
: HTTP(웹 문서 요청과 전송 제공), SMTP(전자메일 전송 제공), FTP(두 종단 시스템 간 파일 전송 제공) 등 프로토콜 포함
: user application에서는 보낼 메시지 만들고 destination application에서는 그 메시지를 받는다. 이 과정에서 바로 밑의 transport 계층을 이용한다.
Transport 계층
: TCP(연결지향형 서비스 제공), UDP(비연결형 서비스 제공) 등 포함
: 클라이언트와 서버 간에 애플리케이션 계층 메시지 전송 서비스 제공한다.(컴퓨터 하나에 동작하고 있는 process가 여러 개이므로 process-process data transfer 이루어짐)
Network 계층
: IP(IP 데이터그램의 필드를 정의하며 종단 시스템과 라우터가 이 필드에 어떻게 동작하는지 정의), routing protocols(출발지와 목적지 사이에서 데이터그램이 이동하는 경로 결정) 포함
: source에서 destination까지의 길 찾기(라우팅)
Link 계층
: Ethernet, Wifi, PPP
: 전체 프레임을 한 네트워크 요소에서 이웃 네트워크 요소로 이동 (physical 계층의 서비스 이용해서 data transfer)
이따가 보겠지만 프레임(frame)이란 링크 계층의 패킷.
Physical 계층
: 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동
ex) Ethernet은 여러 가지 물리 계층 프로토콜을 가지고 있다.
위에서 말한 것 반복
<위에서 아래로 순차적으로 거친다.
각 5개의 계층들이 Protocol Data Unit이다. 위의 계층에서 아래 계층으로 내려가면 PDU(Protocol Data Unit)가 SDU(Service Data Unit)가 된다.
예컨대 application 계층의 PDU가 transport 계층의 SDU가 되고, 그 SDU를 캡슐화(헤더 붙이는 작업)하면 transport 계층 본인의 PDU가 되는 거다. 아래로 갈수록 반복..>
그렇다면 캡슐화는 무슨 작업일까?
Encapsulation(캡슐화)
: SDU에 헤더를 붙여 자신 계층의 PDU 만드는 작업
각 계층에서 패킷에 헤더가 하나씩 붙기 때문에 패킷을 부르는 말이 다르다.
- application계층의 패킷: message
- transport계층의 패킷: segment
- network계층의 패킷: datagram
- link계층의 패킷: frame
source에서의 각 계층이 encapsulation을 해서 보내면, destination에서의 각 계층에서 헤더를 떼는 decapsulation을 한다.
헤더가 붙는 과정을 살펴보자.
- source의 transport 계층이 application계층으로부터 message를 받으면,
destination의 transport계층에서 사용될 헤더 정보(Ht)를 부착해 segment를 만든다.
- source의 network 계층이 transport 계층으로부터 segment를 받으면,
destination의 network계층에서 사용될 헤더 정보(Hn)을 부착해 datagram을 만든다.
이때 Hn은 source에서 destination까지 가는 도중에 router의 network 계층도 지나야 하므로 그에 대한 정보도 포함한다.
- source의 link 계층이 network 계층으로부터 datagram을 받으면,
destination의 link 계층에서 사용될 헤더 정보(Hl)을 부착해 fram을 만든다.
이때 Hl은 switch와 router의 link 계층도 지나야 하므로 그에 대한 정보도 포함한다.
** router에서는 forwarding table 두어서 라우팅을 하므로 network 계층이 존재하지만, switch에서는 라우팅 과정이 없기 때문에(A데이터가 source 주소를 들고 들어오고 B 데이터가 해당 주소로 가고싶다고 한다면 A의 주소로 보내는 단순한 과정 거침) network 계층이 없다.
- router에서 physical계층 거쳐 link계층으로 오면 Hl 띄어내고 network 계층으로 올려보내는데,
아직 destination이 아니므로 다시 link 계층으로 보내진다.
그러면 link계층은 자신의 헤더를 붙여 destination으로 보낸다.
- destination에 도착하면 거꾸로 physical계층으로부터 application계층으로 올라가며 헤더를 하나씩 떼어낸다. destination 이므로 다시 헤더가 붙지 않고 끝까지 올라간다.
'네트워크 > 컴퓨터 네트워크 수업' 카테고리의 다른 글
2-1. Principles of network applications (2) | 2024.10.13 |
---|---|
1-7. Basic network security (2) | 2024.10.13 |
1-2. What is Protocol? (1) | 2024.10.13 |
1-3/4. Network Structure (2) | 2024.10.13 |
1-1. What is the Internet? (1) | 2024.10.13 |