TCP congestion control

saewoohan·2024년 6월 1일
0

Computer Network

목록 보기
8/14
post-thumbnail

해당 포스팅은 한양대학교 이석복 교수님의 컴퓨터네트워크 강의를 정리한 글입니다.
http://www.kocw.net/home/search/kemView.do?kemId=1169634

1. TCP Congestion Control

  • 진행이 되는 순서는 다음과 같다.
  1. Slow Start - 2^n으로 패킷을 천천히 증가 시킨다.
  2. Additive increase - 임계점에 도달하면 linear하게 증가시킨다.
  3. Multiplicative decrease - packet이 loss되게되면 다시 절반으로 줄여서 시작한다.

1) details

  • sender limits transmission:
    -> LastByteSent-LastByteAcked <= CongWin

  • 따라서 다음 식과 같다.

  • 이때, RTT는 네트워크에 따라서 결정되는 값이기에, CongWin을 조절해야 한다.

  • loss event는 timeout3 duplicate acks 두 가지 경우로만 구별이 된다.

💡 3 duplicate acks란?
마지막으로 받은 Packet 이후의 Packet이 들어오게 되면 Receiver측에서는 마지막 Packet에 대한 ACK만 계속 보낸다.
이로 인해서, Timeout이 되지 않아도 패킷 유실을 판단해서 바로 유실된 패킷을 전송하는 것이다. (Fast Transmit)

a) TCP Slow Start

  • 이름과는 다르게 임계점에 도달하기 전까지 exponential하게 2배씩 늘려서 전송한다.

b) Refinement

  • 2가지의 TCP 버전이 있다.

  • 두 버전 모두 Additive increase까지는 과정이 똑같으나, Multiplicative decrease가 조금 다르다.

  • TCP Series 1 Tahoe의 경우에는 다시 Slow start부터 시작한다.

  • TCP Series 2 Reno의 경우에는 time out이라면 slow start부터, 3 duplicate면 Threshold부터 시작한다.

    • Timeout은 시간이 지나도 패킷이 오지 않는 유실을 의미한다. 그렇기 때문에, 네트워크가 더 혼잡한 상황이라고 생각하는 것이다. 하지만, 3 duplicate acks는 중간의 한 패킷이 유실 혹은 지연되었을 때 동일한 ack가 계속 오는 것인데, 네트워크 혼잡 때문이라기보다는 특정 패킷 손실으로 인한 발생이기에 덜 혼잡한 상황이라고 보는 것이다.

2. TCP Fairness

  • 여러개의 TCP들이 같은 자원을 사용하면 R/M만큼 공평하게 나누어지는지에 관한 논의이다.

  • 위의 사용은 1이 더 많이 사용하고 있는 상황에서 2가 끼어드는 상황인데, 실제로 공평한 직선에 수렴해나간다.

0개의 댓글