[Tranport Layer 03] TCP의 연결 설정

    Flow Control

    흐름제어란 receiver가 overflow되어 buffer에 넘치게 받은 정보를 받지 않도록 하며 receiver가 자신이 overflow되지 않을 만큼만 sender에게 알려주고, sender가 흘러넘치지 않은 정도의 정보로만 data를 전송하는 것을 목적으로 한다.

    receiver의 application이 갑자기 다른 일을 하느라 receiver의 buffer 빈 공간이 안만들어질 수 있다. 또는 reciver가 데이터를 받는 속도가 application이 data를 읽어가는 속도보다 빠를때 buffer가 가득 차는 상황이 발생할 수 있다. 

    이러한 정보는 recieve window라는 필드를 통해서 전송한다. (=rwnd field)

     

    TCP Connection management

    TCP는 데이터를 전송하기 이전에 연결설정이 되어야하는데 이 과정을 handshake라고 말한다. 

    - 상대방의 IP 주소와 port number를 확인하면서 connection을 수립하는데 동의하고 연결 parameter(시작하는 seq number)를 전달해준다. 

     

    연결설정할때 2way handshake로는 부족한 이유는 다음과 같다. 

    - 내가 상대편에게 연결설정을 하자고 메세지를 보냈을때 delay가 traffic 환경에 따라 가벼적이라서 언제 올지 모르는 이슈가 있다. 

    - 연결 설정을 하자고 요청했다가 답이 오지 않아 재전송을 했는데 그 이전의 확인 데이터가 도착한다면 상황이 복잡해진다. 

    : 서버 한쪽만 열려있는 상황이 발생할 수 있고, 연결이 끊긴 이후에도 데이터를 받을 수 있는 환경이 되어버릴 수 있다. 따라서 TCP는 3 way handshake가 필요하다. 

    'CS > 컴퓨터 네트워크' 카테고리의 다른 글

    [Transport Layer 02] TCP  (0) 2024.05.01
    [Transport Layer 01] Pipelining, Go-Back-N, Selective repeat  (0) 2024.05.01

    댓글