네트워크

[네트워크] TCP/IP 송수신 구조

개발 공부하는 태준 2025. 1. 12. 16:39

TCP/IP 통신의 구조와 계층적 동작 

 

TCP/IP는 4계층 모델로 작동하며, 각각의 계층이 특정한 역할을 담당한다. 이 계층을 택배 시스템에 비유해 보겠다.

 

TCP/IP 계층

 

- 응용 계층 (Application Layer)

 

실제 데이터를 송수신하는 계층

HTTP, FTP, SMTP, DNS 등의 프로토콜이 여기 속함

택배 상자 안의 물건(즉, 파일이나 데이터)과 같음

 

- 전송 계층 (Transport Layer)

 

데이터를 세그먼트로 나누고 신뢰성을 보장

TCP(연결 지향)와 UDP(비연결 지향)가 주요 프로토콜임

포장을 하고, 운송 중 손상되면 재포장하는 역할임

 

 

- 인터넷 계층 (Internet Layer)

 

데이터의 전송 경로를 결정하고 패킷을 목적지까지 운반

IP(IPv4//IPv6)가 주된 프로토콜

택배 트럭과 경로 설정과 같음

 

- 네트워크 인터페이스 계층 (Network Interface Layer)

 

데이터를 실제 하드웨어(랜카드 등)를 통해 전송

이더넷, Wi-Fi등이 사용됨

트럭이 달리는 도로 정도로 생각하면 된다. 

 

TCP와 UDP의 차이

TCP와 UDP는 각각 전송 계층의 프로토콜로, 다음과 같은 차이가 있습니다.

TCPUDP

연결 지향적 (전화 통화) 비연결 지향적 (우편 엽서)
데이터 신뢰성 보장 (ACK) 데이터 신뢰성 미보장
순서 보장 순서 보장 X
속도 느림 속도 빠름
예: HTTP, FTP, SMTP, POP3 예: DNS, VoIP, 스트리밍, 게임

 

Encapsulation (캡슐화)

 

송신 측에서 데이터를 전송할 때 계층별로 헤더를 추가해 데이터를 포장한다.

 

비유를 하자면 에펠탑 부품을 포장지로 싸고 송장을 붙이는 과정과 같다.

 

응용 계층에서는 원본 데이터를 생성하고 (예를 들어 HTTP 요청을 통해)

 

그리고 전송 계층에서는 TCP 헤더를 붙여 세그먼트를 생선한다.

 

인터넷 계층에서는 IP 헤더를 추가해 패킷을 생성하고 네트워크 인터페이스 계층에서는 MAC 주소를 포함한 Frame을 생성한다.

 

Decapsulation (역캡슐화)

 

수신 측에서 데이터를 받을 때 각 계층에서 헤더를 제거하고 데이터를 추출한다.

 

포장지를 하나씩 벗기고 꺼내는 과정과 같다.

 

네트워크 인터페이스 계층에서 Frame 헤더를 제거하고 인터넷 계층에서 IP 헤더를 제거하고 

 

전송 계층에서는 TCP 헤더를 제거하고 응용 계층에서는 원본 데이터를 추출한다. 

 

L2, L3, L4 계층의 역할과 의미

L2, L3, L4는 OSI 7계층 모델TCP/IP 계층에서의 역할을 구분할 때 사용되는 용어

 L2: 데이터 링크 계층 (Layer 2)

  • 주요 역할:
    • 같은 네트워크(같은 서브넷) 안에서 장치 간 데이터를 전송.
    • MAC 주소를 사용하여 데이터를 전달.
    • 스위치(Switch)가 이 계층에서 작동.
  • 구체적인 작업:
    • 데이터를 프레임(Frame)으로 캡슐화.
    • 오류 검출 및 흐름 제어 수행.
  • 비유:
    • 한 건물 내에서 우편물을 방 번호(MAC 주소)를 이용해 전달하는 과정.

 

L3: 네트워크 계층 (Layer 3)

  • 주요 역할:
    • 다른 네트워크 간의 데이터 전달을 담당.
    • IP 주소를 사용하여 데이터를 목적지까지 전달.
    • 라우터(Router)가 이 계층에서 작동.
  • 구체적인 작업:
    • 데이터를 패킷(Packet)으로 캡슐화.
    • 경로 설정 및 라우팅 수행.
  • 비유:
    • 도시 간 우편물을 전달하기 위해 목적지 주소(IP 주소)를 기준으로 경로를 설정하는 과정.

 

L4: 전송 계층 (Layer 4)

  • 주요 역할:
    • 데이터의 신뢰성정확성을 보장.
    • TCP 또는 UDP를 사용하여 데이터를 세그먼트(Segment) 단위로 처리.
    • 송수신 장치 간의 포트 번호로 데이터를 구분.
  • 구체적인 작업:
    • 데이터를 **세그먼트(Segment)**로 캡슐화.
    • 데이터 전송 속도 조절 및 재전송 수행.
  • 비유:
    • 특정 부서(포트 번호)로 우편물을 보내는 과정.
    • TCP는 등기우편, UDP는 일반우편에 비유 가능.

 

L5 이상: 스트림 계층

L4 위로는 세션 계층, 표현 계층, 응용 계층이 존재하며, TCP/IP 모델에서는 주로 응용 계층으로 통합됩니다.
이 상위 계층에서 데이터를 스트림(Stream) 형태로 주고받습니다.

스트림의 정의:

  • 데이터를 연속적인 흐름으로 처리하는 방식.
  • 상위 계층에서는 데이터를 송수신할 때, 메시지의 시작과 끝을 명시하지 않고 한 줄기 물처럼 흐르게 전달.
  • 비유:
    • 음성 통화(VoIP)나 동영상 스트리밍처럼, 데이터를 연속적인 흐름으로 전달하는 것.

 

L2 ~ L4 계층의 데이터 처리 흐름

 데이터 캡슐화 과정 (송신 측)

  1. 응용 계층 (스트림): 데이터를 생성.
    → 예: HTTP 요청, 동영상 파일.
  2. L4 전송 계층:
    • TCP 헤더를 추가하여 세그먼트 생성.
  3. L3 네트워크 계층:
    • IP 헤더를 추가하여 패킷 생성.
  4. L2 데이터 링크 계층:
    • MAC 주소를 포함한 프레임 생성.

데이터 디캡슐화 과정 (수신 측)

  1. L2 데이터 링크 계층: 프레임 헤더 제거.
  2. L3 네트워크 계층: 패킷 헤더 제거.
  3. L4 전송 계층: 세그먼트 헤더 제거.
  4. 응용 계층: 스트림으로 데이터를 복원.

 

각 계층에서 사용하는 주요 프로토콜과 장비

계층주요 프로토콜장비데이터 단위

L2 Ethernet, Wi-Fi, PPP Switch, Bridge Frame (프레임)
L3 IP (IPv4, IPv6), ICMP Router Packet (패킷)
L4 TCP, UDP - Segment (세그먼트)
L5 이상 HTTP, FTP, DNS, SMTP - Stream (스트림)

스위치, 라우터, 게이트웨이의 역할

스위치 (L2):

  • 같은 네트워크 내에서 MAC 주소를 기반으로 데이터 전송.
  • 비유: 같은 아파트 단지 내에서 우편을 전달.

라우터 (L3):

  • 다른 네트워크 간 데이터를 IP 주소를 기반으로 전달.
  • 비유: 도시 간 우편물을 중계.

게이트웨이 (L4 이상):

  • 프로토콜 변환 또는 서로 다른 네트워크 간 연결.
  • 비유: 국제 택배를 처리하는 시스템.

 

더보기

파리에서 에펠탑을 택배로 보내려면 어떻게 해야할까? 

 

첫 번쨰로 에펠탑을 분해하고 크기를 줄임 박스안에 들어갈 수 있을 정도로 MTU 이하로 분해를 한뒤

 

2번 운송을하고 조립을 한다. 분해라는 것은 송신측에서 하고 조립이라는 것은 수신측에서 할 것임.

 

박스안에 들어가 있는걸 Packet이라고 보면 될 것이다.

 

'전체적'흐름 -> TCP/IP

 

 

PC에서 파이을 보내거나 파일을 받을 것임. 

 

파일을 만약에 TCP/IP로 보낸다고 가정할 때 TCP 는 연결 지향형 ex) 전화 연결되는 것으로 생각하면 됨. 연결이 되면 그때부터 송수신이 이루어짐

 

 

보내는 측, 샌드하는 쪽에서는 일정 수준의 블록 데이터를 읽어, 그 것을 프로세스 내부에 버퍼 메모리에 담는다. 

 

그 다음 송수신하는 I/O 버퍼에 옮긴다 그것이 3번 그리고 Process -> Socket -> TCP/IP -> Driver 이렇게 타고 내려가면서 Encapsulation이 일어난다. 그 다음 인캡슐레이션이 되어 트럭(Frame)을 통해 수신측으로 이동이 된다. 

그 다음 수신하는 쪽에서는 거꾸로 Decapsulation이 일어난다. 그리고 거기에서 세그먼트 하나를 끄집어내서 수신측 입출력 버퍼에다가 담게 된다. 그리고 그걸 어플리케이션이 퍼서 비워낸 다음에 처리로 가는건데 이 과정에서 아다리가 안맞아서 장애가 발생할 수 있다. 

 

그래서 대표적으로 발생하는 TCP/IP 통수신 장애가 

 

1.  Loss(유실) = 아예 잃어버리는 경우

2. Re-trans - ACK - Duplication = 재전송 되어 복제되는 경우

3. Out of order 1->2->3->4 가 아니라 1->2->4->3 = 순서가 잘못되는 경우 

4. Zero window End point 

 

IPv4 Header 형식

 

패킷이라고 하면 헤더 시작점부터 페이로드 늘어날 수 있는 최대 크기를 이제 MTU라고 하고 통상의 경우 1500 바이트이다. 

아이피 헤더라고 한다면 특별한 이유가 없다면 20바이트이다. 

 

 

 

보통 MTU에 맞춰서 운영디 됨, 늘어나는 사례도 있긴하다. 

ip 헤더의 경우 보통의 경우 20바이트 가량한다라고 생각하면된다. 

8비트는 1바이트이고 4비트는 4비트와의 조합이고 

4비트는 2의 4제곱이니 -> 16이다. 

 

단편화 어떤 네트워크에서는 MTU의 값이 1500이 아니라 1300일 수도 있음 그러면 그 패킷 자체를 잘라내어야함. 

그것을 단편화라고 한다.