전송계층4

ㄱㅇㅁ·2023년 11월 14일

네트워크

목록 보기
8/20

TCP congestion control

  • 가장 얇은 통로보다 많이 보내면 터짐
    가장 얇은 point를 어떻게 찾지?
    network 대신 ACK로 정보를 얻음
    처음에

3 main phases

1. slow start

  • 아주 작은양부터 시작해서 조금씩 throughput을 증가시킴
  • 증가하는 속도는 exponential이라 slow하진 않음
  • 맨 처음에 1MSS segment 1개 보냄

2. Additive increase

  • threshold(임계점)에 도달하면 linear하게 전송하는 양을 늘림

3. Multiplicative decrease

  • 데이터 전송량을 1/2배로 줄임
  • 패킷 유실이 감지되면 multiplicative decrease함
  • 한번에 데이터 전송량을 줄이는 이유는 네트워크는 공유자원이므로 한번에 많이 줄여야 막힌 것을 해결할 수 있음

MSS (maximum segment size)

  • 전송하는 데이터량의 단위는 MSS
  • TCP segment 하나가 가질 수 있는 최대 데이터 크기
  • 실제로 보내는 양 = window size가 결정
    • ACK를 보내지 않고 한번에 보낼 수 있는 양
  • 처음에 slow start를 할 때 window size=1MSS
    • 즉, 1개의 segment 전송 가능

  • x축: 시간
  • y축: window size=한번에 보낼 수 있는 데이터 양= 전송 속도
  • 일정하게 보내고 싶으나, 임계점이 어디인지를 알 수 없고, 임계점은 매번 변하기 때문에 불가능하다.

전송속도

rate=CongWinRTTBytes/secrate =\frac {CongWin} {RTT}Bytes/sec
RTT: 패킷이 왕복하는 시간

  • 전송속도는 대부분 CongWin이 결정
    • 네트워크 상황이 CongWin 결정
    • 네트워크 붐비면 작아짐
    • 네트워크 한산하면 커짐

TCP Tahoe vs TCP Reno

TCP Tahoe

  • TCP의 첫번째 버전
  • congestion window=1에서 시작
  • 2배씩 늘림
  • 임계점 넘어서 1씩 증가(linear increase)
  • packet 유실되어 임계점을 절반으로 줄임
  • 다시 slow start로 시작
  • packet 유실 탐지 조건
    1. timeout
    2. 3 duplicated ACK
    • 이 두 경우일 때 같은 상황일까?
      timeout이 발생한 상태가 더 문제
      -> 똑같이 반응하면 안됨
      -> TCP 2번째 버전인 Reno가 나옴

TCP Reno

  1. 3 duplicated ACK -> window size를 절반으로만 줄이고 linear하게 증가
  2. Timeout -> congestion window를 1MSS로 내리고 slow start

TCP Fairness

  • 독립적인 congestion control을 모든 사람들이 하고 있음
  • 이 자원을 모두 공평하게 사용하게 되는가?
    -> fair하다

Why is TCP fair?

  • connection 1이 bandwidth를 더 많이 사용하는 상황에서 linear increase -> window size 줄임 -> 다시 linear increase -> window size 줄임 반복하면 equal bandwidth share로 수렴함
  • 모든 TCP는 공평하게 bandwidth를 가지게 됨

0개의 댓글