Notice
Recent Posts
Recent Comments
코드 위의 하루 (A Day on the Code)
🌐 데이터 통신 기말 총정리 | TCP의 세계, 연결과 흐름의 기술 본문
이번 포스트는 데이터 통신 기말고사 범위인 전송 계층(TCP 중심) 내용을 정리한 기록입니다.
교수님의 PDF 강의자료와 수업 내용을 바탕으로 핵심 이론, 흐름도, 암기 포인트를 한눈에 정리해봤어요.
✅ 1. 전송 계층의 역할
- 종단 간 (end-to-end) 통신 제공
- 오류 제어, 흐름 제어, 혼잡 제어, 세그먼트화 등 담당
- 주요 프로토콜:
- TCP: 연결지향, 신뢰성 보장
- UDP: 비연결성, 빠르지만 신뢰성 없음
✅ 2. TCP 연결 관리 (3-way / 4-way handshake)
📌 3-way handshake (연결 수립)
- 클라이언트 → 서버 : SYN
- 서버 → 클라이언트 : SYN + ACK
- 클라이언트 → 서버 : ACK
🔁 연결 성립 후 데이터 전송 가능
📌 4-way handshake (연결 종료)
- 클라이언트 → 서버 : FIN
- 서버 → 클라이언트 : ACK
- 서버 → 클라이언트 : FIN
- 클라이언트 → 서버 : ACK
⏱️ 마지막 ACK 후 TIME_WAIT 상태 유지 필요 (지연된 패킷 처리)
✅ 3. 흐름 제어 (Flow Control)
🧩 목적
- 수신자가 처리 가능한 만큼만 전송 → 오버플로 방지
💡 슬라이딩 윈도우 방식
- 윈도우 크기만큼 연속 전송 가능
- ACK 받으면 윈도우 슬라이드
📌 Window Scaling
- 수신 윈도우 크기를 확장하기 위한 옵션 (기본 최대 65,535B → 확장 가능)
✅ 4. 혼잡 제어 (Congestion Control)
📌 목적
- 네트워크 내 혼잡으로 인한 패킷 손실 방지
📊 TCP 혼잡 제어 알고리즘
단계 | 설명 |
Slow Start | 처음엔 cwnd = 1, 매 RTT마다 2배 증가 (지수적으로) |
Congestion Avoidance | 임계점 도달 후에는 선형 증가 (1씩 증가) |
Fast Retransmit | 중복 ACK 3개 → 손실 판단 후 재전송 |
Fast Recovery | 손실 발생 시 cwnd 줄이고 → 다시 선형 증가 |
📌 관련 변수:
- cwnd (혼잡 윈도우)
- ssthresh (임계점)
✅ 5. 오류 제어 (Error Control)
📌 목적
- 손상/유실된 데이터 감지 & 복구
📌 방식
방식 | 설명 |
Stop-and-Wait | 하나 보내고 ACK 기다림. 단순하지만 느림 |
Go-Back-N | 연속 전송 가능. 오류 발생 시 해당 이후 모든 프레임 재전송 |
Selective Repeat | 오류 프레임만 골라서 재전송 → 가장 효율적 |
🔍 시험에서 FSM 그림, 슬라이딩 창 개념 자주 출제
✅ 6. 신뢰성 있는 전송을 위한 프로토콜: rdt 2.x ~ 3.0
버전 | 특징 |
rdt 2.0 | NAK 추가, 오류 감지 가능 (ACK/NAK 기반) |
rdt 2.1 | ACK/NAK + 시퀀스 번호 |
rdt 2.2 | NAK 제거, 중복 ACK으로 오류 검출 |
rdt 3.0 | 손실 고려 → 타이머 추가, 재전송 가능 |
🧠 시험 대비 핵심 암기 정리
개념 | 핵심 포인트 |
3-way handshake | SYN → SYN+ACK → ACK |
4-way handshake | FIN/ACK → FIN → ACK + TIME_WAIT |
흐름 제어 | 슬라이딩 윈도우, 수신자가 조절 |
혼잡 제어 | cwnd, ssthresh / 느릴 땐 선형, 급할 땐 지수 |
오류 제어 | Go-Back-N vs Selective Repeat 구분 |
rdt 3.0 | timeout 발생 시 재전송 (손실까지 고려) |
📘 마무리
이번 기말은 TCP 연결/종료, 오류 및 혼잡 제어를 깊게 이해하면 80%는 잡은 거예요.
FSM 흐름이나 슬라이딩 윈도우처럼 시간 순서와 변화량을 파악하는 문제가 자주 출제되니
흐름도와 시퀀스 번호를 손으로 그려보며 연습하면 훨씬 이해가 잘 됩니다!
시험 직전엔 이 포스트만 봐도 정리될 수 있게 구성했으니 꼭 복습해보세요 💪
'🍚전공이 밥 먹여준다믄 > 📙 데이터 통신' 카테고리의 다른 글
전송 계층이 뭐예요? (TCP/UDP 완전 정복!) (2) | 2025.05.15 |
---|---|
DNS? 그게 밥 먹여줄 수 있나요? 아주 쉽게 풀어보자! (0) | 2025.05.15 |
컴퓨터 네트워크 중간고사 정리 - 인터넷 구조부터 HTTP까지 한 방에 끝내기 (0) | 2025.05.12 |