티스토리 뷰
네트워크 트래픽에 따른 효율적/신뢰적 송신을 위한 알고리즘
📌 흐름제어(FLOW Control) : Sliding window
- 매번 ACK를 기다리지 않고, 여러 패킷을 연속해서 송신
- 각 컴퓨터의 윈도우 사이즈를 확인하고, 윈도우 사이즈만큼 ACK 없이 연속해서 수신
- 송신측과 수신측 모두 자신의 윈도우 사이즈(버퍼 크기)를 65535로 설정
- 하지만, RTT 값을 기반으로 바로 윈도우 사이즈 재설정
- SYN과 SYN/ACK 사이의 시간 RTT(Round Trip Time)을 측정하여, 이를 기반으로 윈도우 사이즈 재설정

📌 혼잡제어(CongestionControl)
- 송신 제어를 위한 윈도우는 2개
- Receiver Window (RWND): 흐름제어 (Sliding Window) 에서 활용
- Congestion Window(CWND): 네트워크 혼잡 제어를 위해 활용
- 송신측 최종 윈도우 크기 = min(RWND, CWND)
- Congestion Window 초기값 : 1MSS
MMS = MTU - (IP헤더길이) - (TCP헤더길이)
MTU(Maximum Transmission Unit): 한번 전송때 보낼 수 있는 최대 단위
보통 1500 - 20 - 20 = 1460bytes
명령어: ifconfig, ipconfig를 통해 확인 가능
📌 혼잡제어알고리즘1: AIMD
- 처음에는 CWND =1
- ACK 도착하면 (패킷 전송 성공시) -> CWND = CWND + 1
- ACK가 일정 시간동안 도착하지 않음 (패킷 전송 실패) -.> CWND = CWND / 2
*********************************************************************************************************************************
AIMD 알고리즘이 송신이 느려 생겨난 알고리즘 (Slow Start, Congestion Avoidance)
*********************************************************************************************************************************
📌 혼잡제어 알고리즘2: 느린 시작(SLOW START )
- 일반적으로 처음에는 CWND = 1
- ACK 도착하면(패킷 전송 성공시) -> CWND = CWND의 2배
- ACK가 일정시간동안 도착하지 않으면: 패킷전송실패 - CWND = 1 (초기값)
📌 혼잡제어 알고리즘3: 혼잡회피(Congestion Avoideance)
- CWND가 일정크기에 도달하면
- ACK 도착시(패킷 전송 성공시) -> CWND = CWND +1
'CS공부' 카테고리의 다른 글
| [CS학습] TCP 프로토콜: 3way Hand Shake , 4way Hand Shake (0) | 2023.02.16 |
|---|
