개발하는 자몽

[Network] 네트워크와 OSI 7 계층 4-1: L3, IPv4, Packet 본문

개발 지식

[Network] 네트워크와 OSI 7 계층 4-1: L3, IPv4, Packet

jaamong 2026. 5. 13. 18:15

🔗이전글: 2026.05.09 - [개발 지식] - [Network] 네트워크와 OSI 7 계층 3: NIC, L2, 브로드캐스트

 

 

L3

IPv4

L3인 IP, 그중에서 IPv4은 32 bits이다. IPv4는 4개의 8 bits로 이루어져 점(dot)으로 나눈다. 점으로 나뉘는 각 8 bits는 '옥텟(octet)'이라고 한다. 알다시피 `192.168.0.10`처럼 생겼다. 

  • 32 bits =  8 bits × 4 → 8bits로 표현할 수 있는 범위: 2^8=256 → 이진수 11111111 → 표현 범위 0~255
    • 11111111(2)  → '브로드캐스트' 일 수도 있음

이때 이 IP 주소는 'Network ID'와 'Host ID'로 나눌 수 있다. 예를 들어, 네트워크 ID를 `192.168.0`로 두면, 마지막 `10`은 호스트 ID라고 한다. 이 네트워크 ID와 호스트 ID는 점으로 나뉘지만, 범위가 고정적이지 않고 경우마다 다르다. (앞 두 자리가 네트워크 ID, 나머지 두 자리가 호스트 ID 일수도 있고, 맨 앞자리만 네트워크 ID 일수도 있는 것)

일단 앞서 든 예시(192.168.0.1)로 계속 내용을 진행한다.

  • 네트워크 ID와 호스트 ID를 현실세계의 도로 주소로 비유하면, 아래와 같이 예를 들 수 있다. 
    • Network ID : 서울시 용산구 이태원
    • Host ID : n번지

해당 동네(Network ID)에 진입하고 그 동네에서 정확한 지번(Host ID)을 찾는다고 생각하면 된다. 위 `192.168.0.10`을 두고 봤을 때, Host ID 부분인 `10`은 네트워크 `192.168.0`에 속한 주소 중 하나라고 볼 수 있다. 즉 `192.168.0`이라는 네트워크는 0~255를 범위로 하는 총 256개의 주소를 갖고 있다. 

 

⭐Packet

  • 패킷 = 데이터 전송 단위 
  • 패킷 → IP 프로토콜, 3 계층 → L3 IP Packet
  • Header와 Payload로 나뉜다. (상대적인 분류)
    • 헤더에는 출발지와 목적지 주소, 페이로드에는 헤더가 실어 나르는 데이터가 담겨있다.
  • 최대 크기는 'MTU(Maximum Trasmission Unit)'
    • MTU = 1,500 bytes 정도 = 대략 1.4 KB

Encapsulation, Decapsulation 

데이터를 단위화(unitization), 포장(Packaging)

  • 쉽게 말해, 상자에 무언가를 넣으면 'Encapsultation', 꺼내면 'Decapsulation'이라고 생각하면 된다. 

En/Decapsulation

네트워크로 돌아오면,

  • 위 그림은 L2에서의 상태로, 제일 바깥의 헤더(Header)부터 페이로드(Payload #1) 끝까지를 프레임(Frame)이라고 한다. 
  • 그리고 그 안은 L3 IP 패킷(Packet)이 된다. → L3 IP 패킷 전체가 L2 프레임 페이로드에 속한 것
  • 패킷 페이로드(Payload #2) 안에는 L4 세그먼트(segment, TCP인 경우)가 있다. 
  • TCP 이후에는 '스트림(Stream)'이라고 하는 다른 형식을 논하게 된다. 

패킷 생성과 전달 

상황: A 프로세스에서 어떤 데이터를 B 프로세스로 전달해야 한다.

  1. 전달하려는 데이터를 패킷으로 만든다. 이 패킷에는 출발지 주소와 목적지 주소가 담겨있다. 
  2. 패킷을 호스트와 만나는 접점(인터페이스)인 게이트웨이(Gateway)로 전달한다. 
    • 호스트 = B 프로세스가 실행되는 곳
    • 게이트웨이 = 집으로 치면 '현관'이다. 
  3. 게이트웨이는 체계에 맞춰서 패킷을 라우팅(Routing)한다. 인터넷이면, IPv4 목적지 주소를 보고 호스트까지 전달된다. 
  4. 해당 IP 주소를 갖는 호스트까지 왔다면, 이후에는 B 프로세스의 포트(Port) 번호를 찾아 전달이 완료된다. 

OSI 7 계층 상으로 보면,

  1. L7 - 어떤 프로세스가 인터넷을 통해서 정보/데이터를 전달하려고 한다. 
  2. 프로세스 아래에는 커널에 존재하는 TCP/IP를 추상화한 인터페이스, 즉 소켓(Socket)이 존재한다. 
    • 소켓은 파일의 일종이다. 사용자 모드 애플리케이션 프로세스가 접근할 수 있도록 커널 모드 프로토콜을 추상화한 인터페이스이다.  
    • 우리는 보통 파일을 'write' 한다. TCP 소켓은 'write'라고 하지 않고 'send'라고 한다. 
  3. 데이터가 소켓을 타고 더 하위 계층으로 내려가 TCP를 만난다. 여기에서 데이터 앞에 TCP 헤더라는 것을 붙인다. 이렇게 데이터와 TCP 헤더까지의 한 덩어리를 세그먼트(Segment)라고 한다. (데이터 + TCP 헤더 = 세그먼트)
  4. L4에서 L3로 내려가면 세그먼트에 IP 헤더가 붙어 패킷이 된다. 
  5. L3에서 L2로 내려가면 패킷에 이더넷 프레임 헤더가 붙어, 프레임이 된다. 
  6. 이제 데이터는 프레임 상태로 L1까지 내려가 선을 타고 나가게 된다. 
  7. 이렇게 나간 데이터는 L2 Access 스위치를 만나게 되고, 또 타고 올라가다 보면 라우터(게이트웨이)를 만나게 된다. 결국 인터넷에 도달하게 된다. (L7 → L1 → L1 → L7)

 

 

 

Comments