1 분 소요

컴퓨터망 24장쪽을 복습했다.

이제 곧 있으면 기말고사이다. 홧팅~

흐름제어

오류제어

1.checksum

2.acknowledgement

3.retransmission after time-out(RTO)

혼잡제어

  • 양단에서는 혼잡이 없으나 그 중간(라우터들 사이)에 혼잡 발생
  • 라우터의 다중입력
  • TCP로 하여금 cwnd를 사용하여 전송할 세그먼트의 수를 조절

Three congestion policies>

1.slow start

혼잡윈도우의 크기를 지수적으로 증가시켜(1->2->4->8…) 네트워크의 상태를 빠르게 파악

2.congestion avoidance

혼잡이 발생하기 전에 혼잡상황을 피하기 위해 윈도우의 크기를 선형적으로 증가시킴

3.fast recovery

세개의 중복 ACK를 혼잡이 발생한 것으로 간주, 혼잡 윈도우의 크기를 감소시킨 후 빠르게 회복

policy transision>

Type A)Tahoe tcp

(slow start + congestion avoidance)

Type B)Reno tcp

(slow start + congestion avoidance + fast recovery)

TCP Timers>

Type A)Retransmission Timers>

이 재전송 타이머에서는 그 역할과 계산방법이 중요하다. 전송과정 도중에 손실된 세그먼트를 재전송하는 목적으로 이 재전송 타이머를 활용한다. 그리고 이 타이머의 계산방법은 좀 독특한데 바로 RTO계산방식을 사용한다는 것이다(중요!!). 이 계산을 위해 RTT를 측정하고 평활화된 RTT와 편차를 계산한다. 이로써 효율적으로 세그먼트르 재전송하게 되고 네트워크 성능을 최적화할 수 있게 된다.

한가지 예를 들어보자. 송신자가 세그먼트를 수신자한테 던졌다. 그러면 송신자는 ack가 올때까지 기다리겠지?

그리고 ack가 1분후에 도착했어, 그러면 RTT_M을 1분으로 설정해놔,

그러면 이 대기시간과 가중치라는 것을 기반으로 평활화된 RTT를 계산하게 돼,

어? 이 가중치가 대체 뭐냐고? 내가 찾아본 바로는 그냥 하이퍼파라미터처럼 연구자들이 주로 쓰는 고유상수값인거 같다ㅋㅋ.

이를 기반으로 하는 계산방법은 아래와 같다. 대충 훑어만 보고 넘어가즈아!

brave_bobB0WPtb2

Type B)Persistence Timers>

Type C)Keepalive Timers>

Type D)Time-Wait Timers>

brave_22LgjopmQD

위 그림에서 알 수 있듯이, TCP연결을 종료하는 과정에서 Time-Wait 타이머는 중요하다. 이 Time-Wait 타이머는 최종 ACK패킷이 손실될 가능성에 대비하여, 송신자가 일정시간동안 대기하도록 하는 것이다. (보통 버스 막차시간이 11시이면 버스기사님이 막차손님들이 버스 놓치는 것을 배려하기 위해 10분 더 늦게 버스를 출발시키는 것과 유사하당). 쉽게 말해서 종료의 안정성을 높이는 목적이라 보면 될 것 같다.

댓글남기기