728x90
반응형
SMALL
1) 개념
- 흐름제어(Flow Control): 수신측 버퍼가 넘치지 않도록 송신 속도를 조절
→ TCP 수신 윈도우(Advertised Window) 로 구현 - 오류제어(Error Control): 손실/오류 발생 시 재전송으로 복구
→ TCP ACK, 타이머(RTO), 중복 ACK, SACK 등으로 구현
2) TCP 흐름제어 기법
A. 정지-대기(Stop-and-Wait)
- 원리: 1개 패킷을 보내고 → ACK 기다림 → 다음 패킷 전송
- 장점: 단순, 과도한 버퍼 오버런 방지
- 단점: 대역폭 지연곱(BDP) 큰 환경에서 심각한 비효율
- TCP는 실제로 이 방식을 쓰지 않음 (설명·교육용 개념)
B. 슬라이딩 윈도우(Sliding Window)
- 원리: 수신자가 알린 수신 윈도우 크기만큼(예: 32KB) 연속으로 쭉 보냄.
받은 쪽은 누적 ACK(예: “다음에 101번부터 주세요”)로 확인.
ACK를 받으면 윈도우가 앞으로 미끄러지며(slide) 새 데이터 전송 가능. - 효과: RTT 동안도 파이프라인 유지 → 링크 활용 극대화, 버퍼 초과 방지
- TCP의 윈도우 = min(수신 윈도우, 혼잡 윈도우) 로 최종 전송량 결정
간단 흐름 예:
송신: [Seq 1..100] [101..200] [201..300]
수신: <ACK 101> <ACK 201> (누적 ACK: 1~200 정상 수신)
3) 오류제어(ARQ)와 TCP의 대응
A. Stop-and-Wait ARQ (주고→대기)
- 정의: 1개 보내고 ACK 오면 다음 걸 보냄. 타임아웃이면 재전송.
- TCP: 이 원형을 일반화해 여러 세그먼트를 파이프라인으로 보내되,
손실 시 RTO 타임아웃 재전송 또는 중복 ACK 3회 → Fast Retransmit.
B. Go-Back-N ARQ (연속 전송, 오류 지점부터 “묶어” 재전송)
- 정의: 윈도우로 연속 전송, 중간 손실 발생 시 그 지점 이후 전부 재전송. ACK는 보통 누적 ACK.
- TCP 기본 동작이 유사: 누적 ACK만 있을 때는 손실 구간 이후가 연쇄 재전송될 수 있음.
C. Selective-Repeat ARQ (선택적 재전송)
- 정의: 잃어버린 것만 골라 재전송. 수신자는 순서 밖(out-of-order) 도 임시 보관.
- TCP SACK 옵션: 수신자가 “도착한 범위들”을 알려줌 → 송신자는 빠진 범위만 재전송
→ Go-Back-N 비효율 개선(대역폭 절약, 회복 빠름)
D. Adaptive ARQ
- 정의: 손실률/채널 상태에 맞춰 재전송 정책·코딩율을 적응적으로 조절.
- TCP의 적응 요소: RTO(지수 백오프), 혼잡제어로 전송률 조절, SACK/DSACK 활용 등.
(무선 등에서는 ARQ+FEC를 묶어 적응하는 설계도 존재)
728x90
반응형
LIST