※ 본 포스트는 [강민철, 『혼자 공부하는 네트워크』, 한빛미디어] 복습을 위해 작성된 글입니다.
※ 비영리적인 순수한 학습 기록용이며, 원저작물의 권리는 저자 및 출판사에 있습니다.
※ 저작권 문제가 있을 경우, 즉시 수정 또는 삭제하겠습니다.1️⃣ 전송 계층 개요 : IP의 한계와 포트
01. 신뢰할 수 없는 통신과 비연결형 통신
IP의 특징 (한계)
신뢰할 수 없는 프로토콜
패킷이 수신지까지 제대로 전송되었다는 보장을 하지 않음- 최선형 전달 (Best Effort Delivery)
비연결형 프로토콜
Tx, Rx 간에 사전 연결 수립 작업을 거치지 않음- Rx를 향해 패킷을 보내기만 함
IP는 신뢰성 있는 전송보다 빠른 송수신이 우선시되는 경우가 있음
02. IP의 한계를 보완하는 전송 계층
전송 계층
L3 & L5 사이에서 IP의 한계를 극복하고, 포트 번호를 통해 응용 계층의 애플리케이션 프로세스들을 식별하는 역할을 수행TCP 프로토콜
- 연결형 통신이 가능하게 함
호스트 사이에 회선을 설정하고, 해당 전송로를 이용해서 통신 - 신뢰성 있는 통신
패킷의 올바른 송수신을 위해 재전송을 통한 오류 제어, 흐름 제어, 혼잡 제어등의 다양한 기능 제공
- 연결형 통신이 가능하게 함
UDP 프로토콜
- 신뢰할 수 없는 통신, 비연결형 통신 지원
- TCP보다 비교적 빠른 전송
03. 응용 계층과의 연결 다리, 포트
포트
패킷이 특정 애플리케이션까지 전달되기 위해 필요한 식별 정보- L4에서는 포트 번호를 통해 특정 애플리케이션을 식별함
- TCP / UDP 프로토콜 모두 Tx, Rx 포트 번호 포함
포트 번호 포트 종류 설명 0 ~ 1023 잘 알려진 포트 범용적으로 사용되는 앱 프로토콜 포트 1024 ~ 49151 등록된 포트 흔히 사용되는 앱 프로토콜 포트 49152 ~65535 동적 포트 특별히 관리되지 않는 포트
04. 포트 기반 NAT
NAT 변환 테이블
네트워크 내부에서 사용되는 사설 IP 주소와 외부에서 사용되는 공인 IP 주소를 변환하기 위해 사용NARP (Network Address Port Translation
포트를 활용하여 하나의 공인 IP 주소를 여러 사설 IP 주소가 공유할 수 있도록 하는 NAT의 일종- 다수의 사설 IP 주소를 그보다 적은 수의 공인 IP 주소로 변환 가능
※ <좀 더 알아보기> - 포트 포워딩
- 포트 포워딩
네트워크 내 특정 호스트에 IP 주소와 포트 번호를 미리 할당하고, 해당 IP 주소:포트번호 로써 해당 호스트에게 패킷을 전달하는 기능
※ <좀 더 알아보기> - ICMP
Internet Control Message Protocol
IP 패킷의 전송 과정에 대한 피드백 메시지를 얻기 위해 사용되는 프로토콜- 전송 과정에서 발생한 문제 상황에 대한 오류 보고
- 네트워크에 대한 진단 정보
2️⃣ TCP와 UDP
01. TCP 통신 단계와 세그먼트 구조
TCP 통신 단계
연결 수립 -> 데이터 송수신 -> 연결 종료MSS (Maximum Segment Size)
TCP로 전송할 수 있는 최대 페이로드 크기- 크기를 고려할 때 TCP 헤더 크기는 제외
TCP 세그먼트
송/수신지 포트
Tx, Rx 애플리케이션 식별 포트 번호가 명시되는 필드순서 번호
송수신되는 세그먼트의 올바른 순서 보장하는 데이터- SYN 플래그가 1로 설정된 세그먼트 -> 초기 순서 번호
- 순서 번호 = 초기 순서 번호 + 송신한 바이트 수
확인 응답 번호
다음으로 수신하기를 기대하는 순서 번호 명시- 세그먼트를 잘 수신한 뒤, ACK 플래그를 1로 설정
- 다음으로 수신 받기를 희망하는 순서 번호 전송
데이터 오프셋 / 예약
제어 비트
플래그 비트- ACK : 세그먼트의 승인을 나타내기 위한 비트
- SYN : 연결을 수립하기 위한 비트
- FIN : 연결을 종료하기 위한 비트
윈도우
수신 윈도우의 크기 명시체크섬 / 긴급 포인터 / 옵션
02. TCP 연결 수립과 종료
TCP 연결 수립 - 쓰리 웨이 핸드 셰이크
세 개의 단계로 이루어진 TCP의 연결 수립 과정- 액티브 오픈 & 액티브 클로즈
TCP 연결 종료
Tx, Rx가 FIN과 ACK를 각자 한 번씩 주고 받음- 액티브 클로즈 & 패시브 클로즈
03. TCP 상태
| TCP 상태 | 종류 |
|---|---|
| 연결이 수립되지 않은 상태 | CLOSED, LISTEN |
| 연결 수립 상태 | SYN-SENT, SYN-RECIVED, ESTABLISHED |
| 연결 종료 상태 | FIN-WAIT-1, CLOSE-WAIT, FIN-WAIT-2, LAST-ACK, TIME-WAIT |
04. UDP 데이터그램 구조
송/수신지 포트
Tx, Rx의 포트 번호길이
헤더를 포함한 UDP 데이터그램의 바이트체크섬
전송 과정에서의 오류 발생 검사
3️⃣ TCP의 오류•흐름•혼잡 제어
01. 오류 제어 : 재전송 기법
오류 제어
중복된 ACK 세그먼트를 수신했을 때
세그먼트의 순서 번호 중 일부 누락타임아웃이 발생했을 때
재전송 타이머의 카운트 다운이 끝난 상황
재전송 기법 : ARQ (Automatix Repeat Request)
ACK & 타임아웃 발생을 토대로 문제를 진단하고, 문제가 생긴 메시지를 재전송함으로써 신뢰성을 확보Stop-and-Wait ARQ
제대로 전달했음을 확인하기 전까지는 메시지 전송 X- 네트워크 이용 효율 감소
Go-Back-N ARQ
여러 세그먼트를 전송 하고, 도중에 잘못 전송된 세그먼트가 발생할 경우, 해당 세그먼트부터 전부 다시 전송파이프라이닝(Pipelining)
연속해서 메시지를 전송할 수 있는 기술누적 확인 응답
Selective Repeat ARQ
선택적으로 재전송- 개별 확인 응답
02. 흐름 제어 : 슬라이딩 윈도우
흐름 제어
호스트가 한 번에 받아서 처리할 수 있는 세그먼트의 양에는 한계가 있음
이를 넘으면 일부 세그먼트가 처리되지 못할 우려 있음
수신 버퍼
수신된 세그먼트가 애플리케이션 프로세스에 의해 읽히기 전에 임시로 저장되는 공간버퍼 오버플로
수신 버퍼의 크기보다 많은 데이터로 버퍼가 넘치는 상황슬라이딩 윈도우
수신자의 처리 속도를 고려하여 파이프라이닝을 통해 송수신 윈도우가 점차 오른쪽으로 미끄러지는 것
03. 혼잡 제어
혼잡 제어
전송률이 크게 떨어지는 등의 현상을 제어하기 위한 기능- 혼잡 윈도우
혼잡없이 전송할 수 있을 법한 데이터 양
- 혼잡 윈도우
느린 시작 알고리즘
혼잡 윈도우를 1부터 시작해 문제없이 수신된 ACK 세그먼트 하나당 1씩 증가시키는 방식- 느린 시작 임계치
타임아웃 발생 / 혼잡 윈도우 >= 느린시작 임계치 / ACK 3회 중복
- 느린 시작 임계치
혼잡 회피 알고리즘
RTT마다 혼잡 윈도우를 1MSS씩 증가시키는 방식빠른 회복 알고리즘
3번의 중복 ACK 세그먼트를 수신했을 때 느린 시작은 건너뛰고 혼잡 회피를 수행하는 알고리즘
※ <좀 더 알아보기> - ECN
명시적 혼잡 알림 - ECN (Explicit Congestion Notification)
혼잡을 피하기 위해 네트워크 중간 장치의 도움을 받는 방법- 일반적인 방식에 비해 혼잡 제어가 빠름
📚 회고
이번 4장에서는 전송 계층(L4) 을 다뤘다. '데이터 통신' 과목에서 ARQ 나 슬라이딩 윈도우를 비교적 깊게 공부했던 덕분에, 이번 장을 이해하는 데 많은 도움이 되었다. 또, 그 과정에서 예전에 배운 자료들을 다시 확인하며 자연스럽게 복습할 기회도 가졌다.
이제 개강과 함께 컴퓨터 네트워크 과목을 수강하게 된다. 이 과목은 '데이터 통신'이 주로 물리 계층(L1) 을 다뤘던 것과 달리, 그 이상의 계층들을 중심으로 학습하게 될 것이다. 앞으로 남은 마지막 5장까지 마무리하면서, 이번 공부가 수업을 이해하는 데 좋은 발판이 되길 기대한다.
'CSE > Network' 카테고리의 다른 글
| [혼공네트] Ch05. 응용 계층 (0) | 2026.04.14 |
|---|---|
| [혼공네트] Ch03. 네트워크 계층 (0) | 2026.04.14 |
| [혼공네트] Ch02. 물리 계층과 데이터 링크 계층 (0) | 2026.04.14 |
| [혼공네트] Ch01. 컴퓨터 네트워크 시작하기 (0) | 2026.04.14 |