Protocol Layers
네트워크는 상당히 복잡하고, 매우 많은 여러 조각들로 이루어져 있다.
- hosts
- routers
- links of various media
- applications
- protocols
- hardware, software
이렇게 복잡하게 여러 요소들로 이루어져 있기 때문에 네트워크의 구조를 알맞게 구성하는 작업이 필요하다!
그래서 Layer 라는 것을 만들어준다.
Layer 구조의 특징
- "via its own internal-layer actions": 각 계층은 고유한 내부 작업을 통해 서비스를 구현합니다. 예를 들어, 전송 계층(Transport Layer)에서는 신뢰성 있는 데이터 전송, 흐름 제어, 혼잡 제어 등의 기능을 담당합니다.
- "relying on services provided by layer below": 한 계층이 제공하는 서비스는 바로 아래의 계층에서 제공하는 서비스에 의존합니다. 예를 들어, 인터넷 프로토콜 스택(IP Stack)에서는 전송 계층이 네트워크 계층(Network Layer)에서 제공하는 패킷 라우팅 및 전달 서비스에 의지하여 작동합니다.
왜 layer를 나누는 걸까?
복잡한 시스템에 잘 대처하기 위해서이다.
각 layer에 모듈별로 관리할 수 있기 때문에 유지보수에 용이하다. 또한, 1개의 layer를 바꾼다고 해서 나머지 layer에 큰 영향을 주지 않는다는 점이 layer 나누는 것의 장점이다.
dependency(의존성)이 layer 구분의 단점이라고 볼 수 있다.
Internet Protocol Stack
Layer | 기능 | 예시 |
application | network applications 지원 |
IMAP, SMTP (Email) , HTTP(Web) |
transport | 프로세스 간 데이터 전송을 담당 |
TCP, UDP |
network | 패킷의 출발지부터 목적지까지의 경로 설정 및 패킷 전달(라우팅) |
IP, routing protocols |
link | 이웃하는 network 요소들 간의 데이터 전달 |
Ethernet, 802.11 (Wifi), PPP |
physical | 물리적인 정보 전달 매개체 (bits) |
wire, on air |
ISO/OSI Reference Model
Layer | 기능 | 예시 |
application | Internet Protocol Stack과 동일 | Internet Protocol Stack과 동일 |
presentation | 데이터의 표현 방식을 관리 | encryption, compression, machine-specific conventions |
session | 네트워크 상에서 두 장치 사이의 연결(세션)을 설정하고 유지하며 종료하는 역할 + 동기화, 체크포인트 설정 및 데이터 교환 복구와 같은 작업 |
session |
transport | Internet Protocol Stack과 동일 | Internet Protocol Stack과 동일 |
network | Internet Protocol Stack과 동일 | Internet Protocol Stack과 동일 |
link | Internet Protocol Stack과 동일 | Internet Protocol Stack과 동일 |
physical | Internet Protocol Stack과 동일 | Internet Protocol Stack과 동일 |
Encapsulation / Decapsulation
캡슐화는 상위 계층에서 받은 데이터에 헤더(header)나 트레일러(trailer)를 추가하여 새로운 데이터 단위를 만드는 과정이다. 이 때, 각 계층은 자신의 제어 정보(Control Information)가 포함된 헤더를 추가한다.
(1). Application data(game, zoom, file, naver etc)를 application층에서 해당 header(ex.FTP, HTTP)를 붙이고, 데이터는 캡슐화
(2). transport layer에서는 상위계층에서 온 정보를 데이터로 취급하며, transport layer 계층 특성을 담은(TCP) 제어 정보를 헤더화시켜, 이를 붙여 캡슐화 (Segment)
(3). network layer에서는 상위계층에서 온 정보를 모두 데이터로 취급하며, network layer 특성을 담은(IP, 송수신 주소,가상회선 번호) 정보를 헤더화시켜, 이를 붙여 캡슐화 (Frame)
(4). link layer에서는 상위계층에서 온 정보를 모두 데이터로 취급하며, link layer특성을 담은 (Ethernet..)정보를 헤더화시켜, 이를 붙여 캡슐화 (bit)
📌 여기서 중요한 점은 각층에서 header를 추가하고, higher layer로부터 온 데이터는 lower layer에서 캡슐화된다
(1) header를 다 붙이고 나온 packet은 ethernet switch에 들어가면 하위 계층 physical->link에서 역캡슐화해서 기존 header(정보)를 제거하고, 다시 상위계층 link->physical순으로 캡슐화한다.
(2) 그 후 라우터에서는 physical->link->network 계층으로 다시 역캡슐화해서 network 층에서 원래 ip정보를 떼네고 새롭게 도착지로 가기 위한 header를 붙이고 하위계층으로 계층화해서 host 도착지로 가게 된다.
(3) 도착지에서는 다시 역캡슐화하여 최종 applicaiton 층에서 필요한 데이터를 얻게 된다.
역캡슐화는 하위 계층에서부터 온 정보의 header를 읽고 제거하면서 application 단까지 내려오는 과정이다.
참고
Computer Networking: A Top-Down Approach 8th edition / Kurose, Ross / Pearson
'🤔 컴공 지식 > 네트워크' 카테고리의 다른 글
[네트워크] Web and HTTP (0) | 2023.10.08 |
---|---|
[네트워크] Network Application (1) | 2023.10.08 |
[네트워크] Packet Switch Delay, Loss, Throughput (1) | 2023.10.06 |
[네크워크] Network Edge & Access Networks & Network Core (0) | 2023.09.21 |
[네트워크] Internet & Protocol (0) | 2023.09.20 |