CS/NETWORK

[NETWORK] TCP 흐름제어 / 혼잡제어

본듀 2022. 12. 19. 14:55

TCP(Transmission Control Protocol)

전송 제어 프로토콜

 

TCP 통신이란

네트워크 통신에서 신뢰적인 연결방식
기본적으로 reliable network를 보장할 수 있도록 하는 프로토콜
network congestion avoidance algorithm을 사용

reliable network 보장의 문제

  • packet 손실
  • packet 순서 바뀜
  • 네트워크 혼잡
  • receiver가 overload

 

Flow Control (흐름제어)

수신측이 송신측보다 데이터 처리 속도가 느릴 때,
송신측과 수신측의 데이터 처리 속도 차이를 해결하기 위한 기법
receiver가 sender에게 자신의 상태를 피드백하여 Flow Control를 통해 receiver가 받는 packet 조절

Stop and Wait

전송한 패킷에 대해 확인 응답을 받아야 다음 패킷을 전송하는 방법

Sliding Window (Go Back N ARQ)

수신측에서 설정한 윈도우 크기만큼 송신측에서 확인 응답 없이 세크먼트를 전송하여
데이터 흐름을 동적으로 조절하는 제어 기법

전송은 되었지만, 요청 받지 못한 byte의 수를 파악하기 위해 사용하는 프로토콜

 

Congestion Control 혼잡 제어

한 라우터에 데이터가 몰리면 데이터를 모두 처리할 수 없게되고,
호스트들은 데이터를 재전송하게되며 혼잡을 가중시켜 오버플로우나 데이터 손실이 발생한다.
이러한 혼잡을 줄이기 위해 송신측에서 보내는 데이터의 전송속도를 강제로 줄이는 기능

흐름제어는 송신측과 수신측 사이의 전송속도를 다루는데 반해,
혼잡제어는 호스트와 라우터를 포함한 보다 넓은 관점에서 문제를 다룬다.

Additive Increase / Multiplicative Decrease (AIMD)

데이터 송수신에 성공하면 패킷 수를 1씩 증가시키고,
실패하거나 일정 시간을 넘기면 송신 속도를 절반으로 줄인다.

초기에 높은 대역폭을 사용하지 못하여 오랜 시간이 걸리고,
혼잡 상황을 미리 감지하지 못하고, 혼잡해지고 나서야 대역폭을 줄이는 방식

Slow Start

패킷이 문제없이 도착하면 각각의 ACK 패킷마다 window size를 1씩 늘려준다.
-> 한 주기가 지나면 size가 2배가 된다.

전송속도가 지수함수꼴로 증가하다가 혼잡 현상이 발생하면 size를 1로 떨어뜨린다.

혼잡 현상이 발생하고 나면 네트워크 수용량을 어느정도 예상하여,
혼잡 현상이 발생한 size 절반까지는 지수 함수 꼴로 증가시키고 그 이후로 1씩 증가시킨다.

Fast Retransmit

TCP의 혼잡 조절에 추가된 정책

수신측에서 먼저 도착해야할 패킷이 도착하지 않고 다음 패킷이 도착하면 ACK 패킷을 보내게 된다.
중복된 순번의 패킷을 3개 받으면 재전송 한다. -> 혼잡해진 상황이라고 판단하여 size를 줄인다.

Fast Recovery

혼잡한 상태가 되면 size를 1로 줄이지 않고 반으로 줄이고 선형증가시키는 방법

혼잡 상황을 한 번 겪고 나서부터는 순수한 AIMD방식으로 동작

'CS > NETWORK' 카테고리의 다른 글

[NETWORK] TCP/IP  (0) 2022.12.21
[NETWORK] OSI 7 LAYER (OSI 7계층)  (0) 2022.12.16