TCP

· CS/Network
이번 포스팅에서는 혼잡 제어(Congestion Control)에 대해 알아보겠습니다.   TCP는 네트워크 상황에 따라 패킷을 보내는 속도를 조절해야만 합니다. 만약 네트워크가 복잡해지며, 한 라우터 버퍼에 데이터가 몰릴 경우에 송신자들은 다시 재전송을 하게 되고, 이것은 혼잡을 가중시켜 결국 오버플로우나 데이터 손실을 발생시키게 됩니다.   이렇게 네트워크가 막힌다면 네트워크에 접속한 모두가 패킷을 전송할 수 없으므로, 이를 파악하고 방지하기 위해 데이터 전송을 제어하는 것을 혼잡 제어(Congestion Control)라고 합니다.   네트워크 상황을 어떻게 확인할 것인가 네트워크 상황을 유추하기 위해서는 네트워크에서 직접 데이터를 보내줄 수는 있지만, 그렇게 하기 위해서는 라우터가 처리를 해주어야..
· CS/Network
이번 포스팅에서는 TCP의 주된 기능인 Flow control과 3 / 4 Way-Handshake에 대해서 살펴보겠습니다. 1. 흐름 제어(Flow Control) 데이터를 전송할 때, 짧은 시간에 많은 데이터를 보낼 수록 좋을 것만 같지만, 실제로는 그렇지 않습니다. 송신자에서 많은 데이터를 보내도, 수신자에서 그것을 처리할 수 없다면 많은 데이터들이 버려지게 됩니다.  그래서 수신자가 처리할 수 있는 용량을 송신자에게 피드백을 해주어야 합니다. 이를 위해 recv 버퍼의 크기를 기록해 전송하게 됩니다.  다시 TCP 세그먼트 구조를 살펴보겠습니다. 그림을 보면 4번째 줄에 Receive window가 있는 것을 볼 수 있습니다. 이것이 바로 현재 남은 recv버퍼의 크기를 가르킵니다.  만약 수신자..
· CS/Network
지난 포스팅에서 RDT 프로토콜에 대해 다루었습니다. 이번 포스팅에서는 TCP에 대해 살펴보겠습니다.   1. TCP : Connection-oriented transport먼저, TCP의 특징부터 살펴보면 아래와 같습니다. (1) Point-to-point UDP와 달리 TCP는 소켓 한 쌍의 통신을 담당합니다. UDP가 하나의 서버 소켓에 여러 개의 클라이언트 소켓이 매핑되어 통신을 하는 반면,  TCP는 한 서버 소켓에 무조건 하나의 클라이언트 소켓이 연결되는 것입니다. 즉, 하나의 sender에 하나의 receiver가 연결되는 것입니다.  (2) reliable, in-order byte stream신뢰성이 보장되므로 데이터가 유실되거나 데이터에 에러가 발생하지 않는다는 것입니다. 그래서, 데이..
· Backend/HTTP
IP(인터넷 프로토콜) 복잡한 인터넷 망에서 멀리 있는 대상에게 정보를 전송해야하는 경우, IP 주소를 통해 이를 가능하게 합니다. IP 주소는 통신 네트워크 상에서 각 장치를 식별하는 주소로, 어떤 데이터를 지정한 IP 주소에 전송합니다. 이때, 데이터는 패킷이라는 작은 통신 단위로 분할되어 전송됩니다. (1) IP 패킷 정보 패킷은 패키지 + 버킷으로 택배를 보내는 상자 정도로 생각할 수 있습니다. 패킷에는 출발지 IP 주소와 목적지 IP 주소를 가지고 있습니다. 전송하면 네트워크 상의 노드를 통해 전달됩니다. 전송 과정에서 각 노드는 패킷을 받아 목적지 주소를 확인하고, 다음에 어디로 전송해야할지를 결정합니다. 이 과정은 라우팅이라고 하는데, 패킷은 이런 라우팅을 통해 최종적인 목적지에 도달합니다..
동구름이
'TCP' 태그의 글 목록