728x90
반응형
컴퓨터 사이언스(CS) - 네트워크 부분 -TCP/IPTCP/IP의 흐름제어
흐름제어는 아래에서!
so-cute-danu-dev.tistory.com/75
TCP 란?
인터넷 프로토콜 스위트(IP)의 핵심 프로토콜 중 하나. IP와 함께 TCP / IP라는 명칭으로 널리 불린다. 근거리 통신망, 인트라넷, 인터넷 ( Unreliable )에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 패킷을 안정적, 순서대로, 에러없이 교환( Reliable )할 수 있게 해준다. 즉, 네트워크 통신에서 신뢰성있는 연결을 보장한다. TCP는 네트워크 혼잡 방지 알고리즘(network congestion avoidance algorithm)을 사용한다. |
TCP의 구조는 아래에서!
so-cute-danu-dev.tistory.com/74
TCP의 신뢰성 있는 연결시 4가지 문제
1. 손실(Loss) : Packet이 손실될 수 있는 문제 2. 순서바뀜 : Packet의 순서가 바뀌는 문제 3. 혼잡(Congestion) : 네트워크가 혼잡한 문제 4. 과부하(Overload) : reciever가 과부하 되는 문제 이 문제를 제어하는 것이 흐름제어 / 혼잡제어 |
혼잡제어의 개념
혼잡제어 - 송신측의 데이터 전달과 네트워크의 데이터 처리 속도차이를 해결하기 위한 기법 |
혼잡제어
송신측의 데이터는 지역망이나 인터넷으로 연결된 대형 네트워크를 통해 전달됨 만약 한 라우터에 데이터가 몰린다면, 자신에게 온 데이터를 모두 처리하는 것은 불가능 이런 경우 호스트들은 또 다시 재전송을 하게 되고, 혼잡함은 풀리지 않아 데이터 손실로 이어짐 이런 네트워크 혼잡을 피하기 위해 송신측에서 보내는 데이터의 전송속도를 강제로 줄이게 되는데 이 작업을 혼잡제어라고 함 혼잡 : 네트워크 내에 패킷의 수가 과도하게 증가하는 현상 혼잡제어 : 혼잡 현상을 방지 / 제거하는 기능 흐름제어가 송신측과 수신측 사이의 전송속도를 다르는 것에 반해 혼잡제어는 호스트와 라우터를 포함한 보다 넓은 관점의 전송문제를 다루게 됨 TCP 혼잡제어 원칙 TCP 관점 : TCP는 패킷 손실의 원인을 망의 혼잡에 기인한 것으로만 보고있음 TCP 행동 : 이때 망 혼잡이 가중되지 않도록, 각자가 덜 이기적이도록 노력 주요 관리 요소 혼잡 윈도우 ( Congestion Window )의 크기 조절 - 혼잡시 혼잡 윈도우 크기(crwd) 조정에 의해 전송률을 제어한다 |
TCP 혼잡제어 방식
제한된 형태의 혼잡제어 방식 - RTT(왕복시간, Round Trip Time) 편차를 고려 RTT = 1 이상의 TCP 세그먼트들이 보내면, 한번만 확인응답이 이루어짐. 그 왕복 시간을 측정 한 값 최근에 계산된 RTT 값에 균형을 주도록 작은 RTTVAR (RTT 편차)의 4배를 취한 값을 더함 - 카른 알고리즘 재전송 세그먼트는 RTT 측정 대상에서 제외한다 새로이 전송하는 데이터 세그먼트만을 RTT 측정 대상으로 삼음 - 지수 RTO (Retransmission TimeOut) 후퇴 RTO = 전송된 한 세그먼트에 대한 확인응답을 기다려야하는 시간 = TCP 재전송 타이머 값 재전송이 일어난 경우에 혼잡제어를 위해 RTO를 점차 두 배 씩 늘려가는 방식 |
포괄적 형태의 혼잡제어 방식 - AIMD (Additive Increase / Multiplicative Decrease) 처음에 패킷을 하나씩 보내고 문제없이 도착하면 window크기를 1씩 증가시키며 전송하는 방식 패킷 전송에 실패하거나 일정 시간을 넘으면 패킷 전송 속도를 절반으로 줄임 공평한 방식. 여러 호스트가 한 네트워크를 공유하고 있으면 나중에 진입하는 쪽이 처음에는 불리 시간이 지나면 평형 상태로 수렴 초기에 높은 네트워크 대역폭을 사용하지 못해 시간이 오래 걸림. 즉, 네트워크가 혼잡해지고 나서 대역폭을 줄이는 방식 - 느린시작 ( Slow Start ) : 지수 증가 연결 초기에 한꺼번에 보내지 않고 처음에는 작게 시작하나 점차 빠르게 송신 데이터량을 늘이는 방식 AIMD와 마찬가지로 패킷을 하나씩 보내고 문제없이 도착하면 window size를 1씩 늘려줌. 한 주기가 지나면 window size가 2배로 된다. 송신 데이터량을 늘리는 임계치 한계는 TCP 최대 세그먼트 사이즈 (MSS - 65535 바이트) 혼잡 발생 상황을 예방하기 위해 세그먼트 송신율을 사전 억제 - 혼잡 회피 ( Congestion Avoidance ) : 가산 증가 혼잡이 감지되면, 지수적이 아닌 가산적인 증가 방식을 채택 - 빠른 재전송 ( Fast Retransmit ) 정상적인 재전송 큐 과정을 따르는 것이 아닌, 중간 누락 된 세그먼트를 빠르게 재전송 패킷을 받는 쪽에서 순서가 어긋나게 도착해도 ACK 패킷을 보냄 중간에 패킷 하나를 손실하게 되면 송신 측에서는 순번이 중복된 ACK 패킷을 받게 된다. 이때 해당 순번 패킷을 재전송 중복 패킷을 3개 받으면 재전송 + 혼잡감지 + window size를 줄임 - 빠른 회복 ( Fast Recovery ) 이미 여러번 ACK가 오게되면 비록 세그먼트들의 순서가 어긋나게 수신되더라도 네트워크 혼잡이라 여기지 않고, 송신률을 빠르게 증가시킴 혼잡한 상태가 되면 window size를 1로 줄이지 않고 반으로 줄이고 선형 증가. |
반응형
'Computer Science > Network' 카테고리의 다른 글
[ Computer Science ] Network - 대칭키 & 공개키 (0) | 2021.04.09 |
---|---|
[ Computer Science ] Network - UDP (0) | 2021.04.08 |
[ Computer Science ] Network - TCP/IP (흐름제어/혼잡제어) (1) (0) | 2021.04.07 |
[ Computer Science ] Network - TCP의 구조 (0) | 2021.04.03 |
[ Computer Science ] Network - TCP 3 way Handshake / 4 way Handshake (0) | 2021.04.02 |