TCP/IP 4계층 학습 메모: TCP·UDP·Ethernet·Wi‑Fi 경계 바로잡기

반응형

『면접을 위한 CS 전공지식 노트』 SECTION 2.2를 읽으며 TCP/IP 계층과 장비를 정리했었다. 다시 표준 문서와 비교해 보니 계층별 책임을 섞어 적은 부분이 있었다. 특히 “3-way handshake가 있으므로 TCP가 신뢰적이다”, “Wi‑Fi도 CSMA/CD를 쓴다”는 식의 설명은 정확하지 않다.

TCP/IP 계층은 외울 표보다 문제가 생겼을 때 어느 계층의 책임인지 나누는 도구로 보는 편이 유용하다.

네 계층의 책임을 먼저 나눈다

계층 대표 예 주된 책임
애플리케이션 HTTP, DNS, SSH 애플리케이션 메시지와 규칙
전송 TCP, UDP 프로세스 간 전달, port를 이용한 다중화
인터넷 IP, ICMP 주소 지정과 네트워크 간 datagram 전달
링크 Ethernet, IEEE 802.11 Wi‑Fi 한 링크에서 frame 전달과 매체 접근

교재에 따라 link와 physical을 나눠 다섯 계층으로 설명하기도 한다. OSI 7계층과 TCP/IP 모델을 일대일로 강제로 맞추기보다 각 프로토콜이 어떤 헤더를 읽고 어느 범위까지 책임지는지 확인하는 편이 정확하다.

DNS도 단순히 “DNS 서버”가 아니다. 이름을 자원 레코드로 조회하는 분산 시스템이자 애플리케이션 계층 프로토콜이며, recursive resolver와 authoritative server처럼 역할이 다른 구성 요소가 참여한다.

TCP와 UDP는 전송 계층이라는 점만 같다

TCP는 애플리케이션에 신뢰적인 순서 보장 byte stream을 제공한다. UDP는 datagram 경계를 유지하지만 연결 설정, 전달 보장, 순서 복구, 재전송을 제공하지 않는다.

구분 TCP UDP
데이터 단위 연속된 byte stream datagram
연결 상태 connection-oriented connectionless
순서·재전송 sequence number, ACK, 재전송 사용 프로토콜 자체에서 제공하지 않음
흐름 제어 receive window 사용 제공하지 않음
애플리케이션 메시지 경계 보존하지 않음 보존

전송 계층에 속한다고 해서 모든 프로토콜이 신뢰성과 흐름 제어를 제공하는 것은 아니다. UDP 위에서 신뢰성이 필요하면 애플리케이션이나 QUIC 같은 상위 프로토콜이 별도 메커니즘을 둔다.

3-way handshake의 역할은 연결 상태 동기화다

TCP 3-way handshake는 양쪽이 초기 sequence number를 교환하고 서로의 값을 확인해 연결 상태를 동기화하는 절차다.

클라이언트 → 서버: SYN, seq=x
클라이언트 ← 서버: SYN+ACK, seq=y, ack=x+1
클라이언트 → 서버: ACK, ack=y+1

handshake가 TCP 신뢰성의 전부는 아니다. RFC 9293은 손실을 sequence number로 감지하고, segment checksum으로 오류를 확인하며, 재전송으로 복구한다고 설명한다. 여기에 누적 ACK, receive window, retransmission timeout 같은 메커니즘이 함께 동작한다.

IP는 best-effort datagram을 전달한다. TCP segment는 IP datagram에 실려 가지만, 각 IP 패킷에 가상 회선 ID를 넣어 같은 경로를 강제하는 것은 아니다. 라우팅 변화나 ECMP 때문에 서로 다른 경로를 지날 수도 있고, TCP는 도착한 byte의 순서와 손실을 전송 계층에서 다룬다.

TCP 종료는 항상 고정된 네 패킷이 아니다

양방향 byte stream은 각 방향을 독립적으로 닫을 수 있다. 한쪽의 FIN, 상대의 ACK, 상대 방향의 FIN, 마지막 ACK이 따로 오면 흔히 말하는 4-way close가 된다.

하지만 ACK와 데이터 또는 FIN을 한 segment에 함께 실을 수 있고, 양쪽이 동시에 닫는 simultaneous close도 가능하다. “클라이언트가 언제나 먼저 네 단계로 종료한다”는 고정 순서로 보면 실제 packet capture를 잘못 해석할 수 있다.

TIME-WAIT도 모든 환경에서 몇 초라고 외우는 값이 아니다. TCP 규격의 2×MSL 원칙과 구현 정책을 구분하고, 운영체제의 현재 상태와 설정을 확인해야 한다.

Ethernet의 CSMA/CD와 Wi‑Fi의 CSMA/CA는 다르다

과거 공유 매체의 half-duplex Ethernet에서는 여러 장치가 같은 충돌 도메인을 사용했고 CSMA/CD로 충돌을 감지했다. 오늘날 일반적인 switched full-duplex Ethernet 링크는 송신과 수신 방향이 분리되어 같은 방식의 매체 충돌을 다루지 않는다.

IEEE 802.11 무선 LAN의 기본 매체 접근은 CSMA/CA다. 무선 장치는 채널 상태를 확인하고 backoff를 거쳐 충돌 가능성을 줄이며, MAC ACK와 재시도를 활용한다. 이를 Ethernet의 collision detection과 같은 동작으로 설명하면 안 된다.

공유 half-duplex Ethernet → CSMA/CD의 역사적 적용 영역
switched full-duplex Ethernet → 충돌 없는 point-to-point 링크
IEEE 802.11 Wi‑Fi → CSMA/CA 기반 매체 접근

현대 802.11에는 QoS, OFDMA, 여러 주파수 대역과 다양한 확장이 있으므로 위 문장은 기본 접근 원리를 설명한 것이다. 모든 무선 전송을 한 규칙으로 축약해서도 안 된다.

Bluetooth와 Zigbee도 무선 기술이지만 Wi‑Fi는 아니다. 서로 다른 표준, 채널 접근 방식, 전력·거리·용도 특성을 가진다. “무선 네트워크”라는 상위 묶음과 “IEEE 802.11 Wi‑Fi”라는 구체 표준을 구분해야 한다.

Ethernet frame 설명에서 주의할 경계

Ethernet MAC frame에는 목적지·출발지 MAC 주소, EtherType 또는 length, payload, FCS 등이 포함된다. preamble과 Start Frame Delimiter를 frame 설명에 함께 그리는 자료도 있지만, 엄밀한 계층 경계에서는 물리 계층 전송 요소로 따로 다룰 수 있다.

FCS는 수신 측이 frame 오류를 검출하는 데 쓰는 필드다. 오류를 발견한 Ethernet이 TCP처럼 손실 frame을 종단 간 복구하는 것은 아니다. Wi‑Fi의 link-layer 재시도와 TCP의 end-to-end 재전송도 책임 범위가 다르다.

정리하면 다음 세 문장으로 압축할 수 있다.

  1. TCP 신뢰성은 handshake 하나가 아니라 sequence, ACK, checksum, 재전송, window가 함께 만든다.
  2. IP는 TCP를 위한 가상 회선을 만들지 않고 best-effort로 datagram을 전달한다.
  3. 공유 Ethernet의 CSMA/CD와 Wi‑Fi의 CSMA/CA를 같은 기술로 부르면 안 된다.

TCP 연결의 상태 변화는 TCP 연결 설정·종료 흐름에서, UDP와 신뢰적 전송의 차이는 UDP·신뢰적 데이터 전송 학습 메모에서 이어서 볼 수 있다.

참고 자료

반응형
KEEP READING
카테고리 전체 보기 →

댓글