네트워크 계층별 데이터와 프로토콜
네트워크 통신에서는 계층별로 사용하는 데이터 단위와 프로토콜이 다릅니다. 이를 통해 데이터가 생성, 전달, 소멸되는 과정에서 체계적으로 처리됩니다. 아래에서는 각 계층별 주요 프로토콜과 데이터 단위에 대해 설명합니다.
1. 계층별 주요 프로토콜
- L2 (데이터 링크 계층):
- 대표 프로토콜: 이더넷 (Ethernet)
- 주소 체계: 48비트 MAC 주소
- 예: 00:1A:2B:3C:4D:5E
- 데이터 단위: 프레임 (Frame)
- L3 (네트워크 계층):
- 대표 프로토콜: IPv4, IPv6
- 주소 체계: IPv4는 32비트, IPv6는 128비트
- IPv4는 8비트씩 4개로 나뉘어 192.168.0.1 형태로 표현 (8비트 = 0~255 범위)
- 데이터 단위: 패킷 (Packet)
- L4 (전송 계층):
- 대표 프로토콜: TCP, UDP
- 데이터 단위: 세그먼트 (Segment) (TCP), 데이터그램 (Datagram) (UDP)
- L5~L7 (세션/프레젠테이션/애플리케이션 계층):
- 대표 프로토콜: SSL/TLS (L5), HTTP, FTP, DNS (L7)
- 데이터 단위: 메시지 (Message)
2. 주소 체계와 데이터 단위
- L2: 48비트 MAC 주소
- 네트워크 카드에 고유하게 부여되는 물리적 주소입니다.
- 데이터를 전달할 때 출발지와 목적지의 MAC 주소를 사용합니다.
- L3: 32비트 IPv4 주소
- 네트워크 아이디와 호스트 아이디로 나뉩니다.
- 네트워크 아이디: 지역(번지)을 나타냄.
- 호스트 아이디: 특정 집을 구분.
- 브로드캐스트 주소: 255.255.255.255로, 네트워크의 모든 호스트를 대상으로 데이터를 보냅니다.
- 네트워크 아이디와 호스트 아이디로 나뉩니다.
3. MTU와 MSS
- MTU (Maximum Transmission Unit): 1500 bytes
- 네트워크 계층(L3)에서 패킷의 최대 크기입니다.
- MSS (Maximum Segment Size): 1460 bytes
- 전송 계층(L4)에서 세그먼트의 최대 크기입니다. (MTU에서 IP 헤더(20 bytes)와 TCP 헤더(20 bytes)를 제외한 크기)
4. 헤더와 페이로드
- 헤더(Header): 송장 역할. 데이터를 어떻게 처리할지 정보(주소, 포트 등)를 담고 있습니다.
- 페이로드(Payload): 택배 내용물에 해당. 실제 전송하고자 하는 데이터입니다.
5. 캡슐화와 디캡슐화
캡슐화는 데이터가 하위 계층으로 내려가며 각 계층의 헤더가 추가되는 과정입니다. 디캡슐화는 반대로 상위 계층으로 올라가면서 헤더를 제거하는 과정입니다.
예시 비유
- 데이터를 보낼 때:
- 애플리케이션(예: 크롬 브라우저)에서 작성한 편지(데이터)를 TCP가 봉투로 싸고, IP가 주소를 적고, Ethernet이 택배박스로 포장합니다.
- 데이터를 받을 때:
- 택배박스(Ethernet)를 뜯고, 주소(IP)를 확인한 뒤, 봉투(TCP)를 열어 최종 데이터를 애플리케이션으로 전달합니다.
6. 데이터 단위의 흐름
- L7 (애플리케이션 계층): 스트림(Stream)
- 데이터를 연속적으로 보내는 단위로, 끝이 정해지지 않았습니다.
- L4 (전송 계층): 세그먼트(Segment)
- 스트림 데이터를 전송 가능한 크기로 나눕니다.
- L3 (네트워크 계층): 패킷(Packet)
- 세그먼트를 네트워크 주소를 포함한 단위로 변환합니다.
- L2 (데이터 링크 계층): 프레임(Frame)
- 패킷을 물리적 전송이 가능한 전기 신호로 변환합니다.
데이터 흐름 비유
- 스트림 (L7): 4MB의 큰 파일을 보낼 준비를 합니다.
- 세그먼트 (L4): 파일을 1460 bytes씩 나눕니다. (Segmentation)
- 패킷 (L3): 각 세그먼트에 주소와 정보를 추가해 패킷으로 만듭니다.
- 프레임 (L2): 패킷을 전기 신호로 바꾸어 네트워크를 통해 전달합니다.
7. 소켓(Socket)과 스트림(Stream)
소켓은 데이터를 주고받기 위한 통로이고, 스트림은 데이터를 흐르게 하는 수단입니다.
- 스트림의 특징: 시작은 있지만 끝이 정해지지 않음. 데이터를 순차적으로 전송.
- 소켓의 역할: 스트림을 통해 데이터를 읽고 쓰는 인터페이스를 제공합니다.
비유
- 소켓은 전화기, 스트림은 전화로 전달되는 음성입니다.
- 소켓이 연결을 열고 스트림을 통해 음성이 흐릅니다.
인터넷에서 데이터가 전송되는 과정
- 유저 모드 애플리케이션(예: 크롬)이 스트림 데이터를 소켓에 씁니다(write).
- 소켓은 데이터를 세그먼트, 패킷, 프레임 순으로 처리해 전송합니다.
- 상대방 소켓은 반대로 프레임, 패킷, 세그먼트를 해석하여 데이터를 스트림 형태로 애플리케이션에 전달합니다.
8. 용어 정리
- 스트림(Stream): 데이터가 연속적으로 흐르는 파이프.
- 세그먼트(Segment): 전송 계층의 데이터 단위.
- 패킷(Packet): 네트워크 계층의 데이터 단위.
- 프레임(Frame): 데이터 링크 계층의 데이터 단위.
- 캡슐화(Encapsulation): 데이터를 보호하기 위해 각 계층의 헤더를 덧붙이는 과정.
- MTU: 패킷의 최대 크기 (1500 bytes).
- MSS: 세그먼트의 최대 크기 (1460 bytes).
각 계층별로 L2 이더넷, L3 IP, L4 TCP/UDP, L5 SSL, L7 HTTP 각 계층에 대표적인 프로토콜이 각 계층별로 존재함
L2 에는 48비트 주소체계를 가지며 L3 IPv4에서는 32 비트 주소체계를 가진다 이 말은 8비트가 4개라는뜻이다.
8비트라는 것은 2의 8승 그 말은 즉슨 0부터 255까지라는 것 , 0~255까지 근데 1111 1111은 브로드 캐스트 주소일 수 있다.
네트워크 아이디는 앞에 포괄적인 주소이고 호스트 아이디는 상세 주소 (번지 수) 라고 생각하면 된다.
L3 Packet -> 단위 데이터
Packet 이라는 말은 L3 IP Packet 으로 외워야 한다. Packet 이라는 말은 언급하는 것만으로도 IP 프로토콜이고 레이어로 따지면 3이다.
최대 크기는 MTU = 1500bytes
Header 가 실어 나르는 대상을 Payload임 Header는 송장, Payload는 택배 내용물 정도로만 생각
패킷의 특징 Encapsulation : Decapsulation 여기 지피티 문장 삽입 프레임 안에 또 하나의 프레임 L2 -> L3 -> L4 이런식으로 존재할 수 있다.
패킷의 생성, 전달, 소멸
데이터라는 것을 패킷으로 만듦
어떤 데이터를 영희라는 프로세스한테 송신을 해야한다고 생각 그럼 그 데이터를 택배 즉 패킷으로 만듦
그럼 패킷을 이제 택배 기사님에게 전달을 해줘야 하는데 택배 기사님을 라우팅 해주는 게이트웨이라고 생각
목적지를 보고 영희네 집 Host까지 찾아 올것임
이제 그때 이름을 보고 어떤 집인지 찾아서 영희한테 줄텐데 그때 그 이름을 포트 번호가 되는 것임!
계층별 데이터 단위
크롬 브라우저가 인터넷으로 정보를 송수신 하려면 일단 크롬 브라우저도 소켓 인터페이스를 이용해서 정보를 보내고 또 수신을 할 것임.
근데 L2 에서 논하는 단위는 프레임이고 L3에서 논하는 단위는 Packet일거고 L4에서 논하는 단위는 Segment일 것이다 .
그런데 User mode 애플리케이션에서 단위를 논할때 Socket에서는 Stream임.
스트림의 특징은 시작은 있고 끝이 언젠지 정해지지 않음 프로세스에서 정해버린다
소켓이라는 어떤 인터페이스가 있으면 이 스트림라는 것을 여기다 대고 write하는 것이다?
문제는 인터넷이라는 곳에서 데이터의 단위가 정해져 있음
최대 크기가 MTU, Maximun Transmission Unit (MTU) 라고 정해져 있음 = 1500 byte
세그먼트 쪽에서도 MSS, Maximun Segment Size라는 크기가 정해져 있음 = 1460 byte
그런데 만약 스트림에서 4MB 정도 했다고 가정하면 그러면 세그먼트나 패킷이 가질 수 있는 크기를 넘어가버림
그래서 스트림을 잘라서 분할하게됨 그래서 소켓이 타고 내려가서 세그먼트화 될 때 일어나는 것이 Segmentation 즉 분할이 일어나게 됨
유저모드 어플리케이션에서 스트림은 단위라고 하기 뭐하다 그냥 데이터 덩어리 일 뿐이고 그게 하나의 단위가 될 때는 적어도 세그먼트를 논하고 그다음 패킷, 그다음 프레임 순서이다.
Reference : 외워서 끝내는 네트워크 핵심이론 - 기초
'네트워크' 카테고리의 다른 글
[공부] 네트워크 - L2 수준에서 외울 것 (0) | 2024.12.13 |
---|