티스토리 뷰

CS공부

[CS학습] TCP 제어

IT개발~ 2023. 2. 16. 22:38

네트워크 트래픽에 따른 효율적/신뢰적 송신을 위한 알고리즘

 

📌 흐름제어(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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함