728x90
반응형
TCP Congestion control
Too many sources sending too much data too fast for network to handle.
-> 네트워크를 공유하고 있는 노드들이 서로 양보해야함…
- End to end
- Network-assisted
- AMID approach
- Additive increase: 천천히 증가
- Multiplicative decrease: 반으로 감소
- Congestion window(cwnd)
- 송신측이 ack 없이 한번에 데이터를 보내는 크기(congestion contro을 위해 계속 변함)
- TCP Receive window(rwin)
- 수신측이 ack없이 한 번에 data를 받을 수 있는 크기
- 상대방에게 자신이 처리 가능한 buffer 크기 만큼을 window size값으로 알려주면 수신측에서 해당 크기 만큼 ack를 받지 않고 한번에 데이터 전송..
반응형
TCP Congestion control algorithm
- TCP Tahoe
- Slow start
- Congestion avoidance
- Fast retransmit
- TCP Reno
- Slow start
- Congestion avoidance
- Fast retransmit
- Fast recovery in case of fast retansmit
- TCP NewReno
- Slow start
- Congestion avoidance
- Fast retransmit
- Modified fast recovery for multiple packet losses
TCP Tahoe(1988)
- 특징
- Slow start(cwnd = 1MSS)
- Congestion avoidance
- Fast retransmit
- retransmission upon 3 duplicate ACKs
- The slow start begins
- Timeout
- fast retransmit
TCP Reno(1990)
- Tahoe의 한계
- Timeout과 duplicate ACKs를 구별할 수 없음
- cwnd를 1MSS로 설정(throughput 감소)
- Packet loss에 대한 2가지 응답
- Loss indicated by timeout(same Tahoe)
- cwnd set to 1 MSS
- Slow start to ssthresh, then congestion avoidance begins
- Loss indicated by fast retransmit
- cwnd cut in half
- Fast recovery, then congestion avoidance
- Loss indicated by timeout(same Tahoe)
Fast recovery
- Half cwnd maintained until a non-duplicate ACK is received
- Amount of packet in transit kept from decreasing more than expected
- Fast recovery는 window size를 반으로 줄이고
non-duplicate ACK, 내가 지금 loss를 발견 하기 까지의 non-duplicate ACK 이외에 새로운 ACK를 받을 때 까지 대기를 하는 것입니다. - Operation
- 3개의 중복 ACK 발생
- Cwnd를 반으로 후려침
- 가장 오래되고 unack packet을 재전송함
- 또한 중복 패킷의 숫자만큼 congestion window를 늘림
- Non duplicate ACK는 congestion avoidance start를 생성.
TCP NewReno
- Vulnerability of Reon’s fast recovery
- In case of multiple packet losses, cwnd may be reduced too much
- 1번째 발생 -> 1/2
- 2번째 발생 -> 1/4
- 3번째 발생 -> 1/8
- In case of multiple packet losses, cwnd may be reduced too much
- Refinement of Reno’s fast recovery
- Cwnd의 사이즈를 유지하면서 데이터 재전송
SACK(Selective ACK) option
결국은 selective repeat 방식 하고 같은 의미인데
하나의 ACK 메시지 내에 이렇게 필드를 분할 해서 특정 segment들에대해서 ACK 응답을 보낼 수 있도록 디자인 되었다는 것이 특징
TCP vs UDP
728x90
반응형
'컴퓨터과학 > 0 +컴퓨터 네트워킹' 카테고리의 다른 글
[컴퓨터 네트워킹] 4-2) TCP Retransmit(TCP 재전송) (0) | 2021.09.19 |
---|---|
[컴퓨터 네트워킹] 4-1) TCP(Transmission Control Protocol) (0) | 2021.09.19 |
[컴퓨터 네트워킹] 3-5) Packet Retransmission method(패킷 재전송 방법) (0) | 2021.09.09 |
[컴퓨터 네트워킹] 3-4) UDP 그리고 checksum (0) | 2021.09.08 |
[컴퓨터 네트워킹] 3-3) Port와 Socket이란? (0) | 2021.09.08 |