TCP Flow Control이라는 프로토콜은 사용자와 서버 간의 데이터 흐름을 제어하기 위해 만들어졌습니다.
심각한 문제가 발생하지 않고 처리를 진행할 수 있도록 데이터 송수신에 특정 양의 대역폭을 사용할 수 있는지 확인합니다.
TCP 프로토콜은 이를 수행하기 위해 슬라이딩 윈도우 프로토콜로 알려진 방법을 사용합니다.
이 부분에서 TCP 흐름 제어가 어떻게 작동하는지, 그리고 가장 결정적으로 슬라이딩 윈도우 프로토콜을 포함하여 자세히 살펴보겠습니다.
TCP 흐름 제어란 무엇입니까?
TCP 프로토콜은 예측할 수 없는 네트워크에서 안정적인 통신 채널을 설정할 수 있도록 합니다.
데이터 패킷이 손실되거나 순서가 맞지 않게 도착하거나 네트워크에 백업되거나 한 노드에서 다른 노드로 전송될 때 수신 노드에 과부하가 걸릴 수 있습니다.
그러나 응용 프로그램을 개발하는 동안 일반적으로 이러한 복잡성을 처리할 필요가 없습니다. 대신, 우리는 일부 데이터를 소켓으로 보내고 TCP는 패킷이 수신자 노드로 성공적으로 전달되도록 합니다..
흐름 제어는 TCP가 제공하는 중요한 추가 기능입니다.
흐름 제어를 사용하여 TCP는 본질적으로 발신자가 수신자에게 한 번에 너무 많은 패킷을 보내지 않도록 합니다.
전송 제어 프로토콜 – 흐름 제어는 어떻게 작동합니까?
이것은 일반적으로 네트워크를 통해 데이터를 통신해야 할 때 발생합니다.
발신자 응용 프로그램은 데이터를 소켓으로 보내고 전송 계층(이 경우 TCP)은 이 데이터를 세그먼트로 패키징하고 네트워크 계층(예: IP)은 이 패킷을 일부 경로를 통해 수신 노드로 전달합니다.
네트워크 계층은 대화의 수신 측에서 이 데이터를 TCP로 전송하고 TCP는 수신 응용 프로그램에서 제공된 데이터의 동일한 복제본으로 사용할 수 있도록 합니다.
TCP는 패킷을 순서대로 전달하지 않고 바이트 스트림 갭을 감지한 경우 재전송을 기다립니다.
이것은 우리가 확대하면 보게 될 것입니다.
TCP의 전송 및 수신 버퍼는 각각 전송 및 수신해야 하는 데이터를 보유하는 데 사용됩니다.
수신 버퍼의 데이터는 준비될 때 응용 프로그램에서 읽습니다.
수신기의 수신 버퍼가 이미 가득 찬 동안 추가 패킷을 보내지 않도록 하는 것이 흐름 제어의 주요 목표입니다. 그렇게 하면 수신기가 처리할 수 없는 추가 패킷을 삭제해야 하기 때문입니다.
수신자는 TCP가 전송할 수 있는 데이터의 양을 제한하기 위해 수신 창 또는 수신 버퍼의 사용 가능한 공간을 알립니다.
슬라이딩 윈도우 프로토콜
TCP의 슬라이딩 윈도우 프로토콜은 가장 널리 사용되는 흐름 제어 방법 중 하나입니다. 가변 크기의 바이트 지향 프로시저입니다.
이 접근 방식에서 수신자는 발신자와 수신자가 연결되자마자 발신자에게 수신자 창을 보냅니다.
수신기의 현재 버퍼 크기를 수신기 창이라고 합니다.
승인 없이 추가로 보낼 수 있는 데이터의 양은 이제 사용 가능한 수신기 창을 기반으로 TCP에 의해 계산됩니다.
그러나 TCP는 수신자 창 크기가 0이면 데이터 전송을 중지하고 증가할 때까지 기다립니다.
수신기 창의 크기는 TCP 프레임의 구성 요소입니다.
창의 최대 크기는 65,535비트이기 때문에 16바이트입니다.
창의 크기는 수신자가 선택합니다. 각 확인 메시지와 함께 수신기는 현재 사용 가능한 수신기 창의 크기를 전송합니다.
슬라이딩 윈도우 프로토콜의 프로세스
슬라이딩 윈도우 프로토콜 기술을 사용할 때 발신자와 수신자가 연결될 때 두 개의 버퍼가 설정됩니다.
이 두 버퍼는 두 그룹으로 나뉩니다. 발신자에게 속한 송신 창과 수신자에게 속한 수신 창입니다.
수신 창은 발신자가 수신자에게 데이터를 전송할 때 나머지 수신 버퍼 공간을 되돌려줍니다.
결과적으로 발신자는 수신 버퍼에 들어갈 수 있는 데이터의 양으로 제한됩니다.
위의 예에서 송신 창은 데이터를 수신 창으로 전송합니다.
데이터를 수신한 후 수신 창은 승인을 보내고 전송 창은 새 데이터 프레임을 전송합니다.
그러나 이번에는 수신 창에서 수신 확인과 함께 사용 가능한 메모리가 가득 찼다는 메시지를 추가로 보냅니다.
전송 창은 공간이 확보되었다는 확인을 수신 창에서 수신할 때까지 데이터 전송을 일시 중지하고 이 시점에서 데이터 전송을 재개할 수 있습니다.
결론
결론적으로 데이터 연결 계층과 전송 계층은 흐름 제어 문제를 처리하는 역할을 합니다.
흐름 제어 메커니즘의 기본 목적은 수신자가 더 빠르게 전송하는 발신자의 데이터로 인해 과부하가 걸리지 않도록 하는 것입니다.
발신자가 전송하는 데이터에 오류가 없고 강력한 기계 덕분에 더 빠른 속도로 전송되더라도 느린 쪽 수신자가 더 빠른 데이터 속도를 처리할 수 없어 일부 데이터가 손실될 수 있습니다.
댓글을 남겨주세요.