Computer Science/네트워크

[네트워크] TCP - Connection-Oriented Transport

바보1 2023. 4. 17. 17:58

앞의 글을 읽으시면 이해에 도움이 됩니다.

 

2023.04.15 - [Computer Science/네트워크] - [네트워크] Transport-Layer Protocols

 

[네트워크] Transport-Layer Protocols

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.07 - [Computer Science/네트워크] - [네트워크] Protocol Layers [네트워크] Protocol Layers 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.07 - [Computer Science/

hi-guten-tag.tistory.com

2023.04.17 - [Computer Science/네트워크] - [네트워크] Principles of Reliable Data Transfer

 

[네트워크] Principles of Reliable Data Transfer

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.15 - [Computer Science/네트워크] - [네트워크] Transport-Layer Protocols [네트워크] Transport-Layer Protocols 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.07

hi-guten-tag.tistory.com


1. TCP란?

 

 

  • TCP(Transmission Control Protocol)은 Connection-Oriented 프로토콜이라고도 불리는데, 이는 프로세스가 데이터를 보내기 전에 두 개의 프로세스가 서로 handshaking이라는 작업을 해야 하기 때문입니다.
  • 따라서 그들은 데이터가 아닌 예비의 세그먼트를 보내 데이터 전송을 보장하는 파라미터를 먼저 할당합니다.
  • 또한 TCP는 하나의 논리적인 연결을 통해 두 개의 엔드 시스템을 연결합니다. 이를 point-to-point라고 하는데, 하나의 송신자와 하나의 수신자가 존재하기 때문입니다. 따라서 multicasting이라 불리는 하나의 전송에 하나의 송신자와 다수의 수신자에게 전송하는 것이 불가능합니다.
  • TCP는 full-duplex service라고도 불리는데, 이는 호스트 A에서 호스트 B로 데이터의 전송과 호스트 B에서 호스트 A까지 데이터의 전송이 동시에 가능하기 때문입니다.
  • 그 밖에도 reliable, in-order byte stream, MSS, cumulative ACK, pipelining, flow control, congestion control 등등 여러 특징이 있습니다.

2. Three-Way Handshaking

 

 

  • 어떤 호스트에서 실행중인실행 중인 프로세스가 다른 호스트에서 실행 중인 프로세스와 연결을 원한다고 가정해 봅시다.
  • 이때 연결을 요청하는 프로세스를 클라이언트라 하고, 요청을 받는 프로세스를 서버라 합시다.
    • 클라이언트는 특수한 TCP 세그먼트를 서버에게 전송합니다.
    • 서버도 이 세그먼트를 받으면 특수한 TCP 세그먼트를 다시 클라이언트에게 응답합니다.
    • 최종적으로 클라이언트가 다시 응답하면 연결이 완료됩니다.

 

  • 첫 번째와 두 번째 세그먼트에는 payload가 존재하지 않지만, 세 번째 세그먼트에는 payload가 적재될 수 있습니다.

3. After HandShaking

 

 

  • 연결이 된 후, 두 개의 프로세스는 서로에게 데이터를 전송할 수 있습니다.
  • 이때 TCP가 최대로 잡아서 세그먼트에 넣을 수 있는 데이터의 크기는 maximum segment size(MMS)에 의해 제한됩니다.
  • MSS는 일반적으로 동일한 호스트에 전송할 수 있는 link-layer의 frame의 크기에 의해 결정됩니다.
  • TCP/IP header length는 일반적으로 40 바이트이므로, 이에 맞게 적절히 크기를 정해야 합니다.

출처 : Computer Networking 3장. Figure 3.28

  • TCP 상위 계층에서 데이터를 받으면 전처리를 거친 후, send buffer로 보냅니다. 그리고 해당 데이터는 시간이 흘러 네트워크 계층으로 가게 됩니다.
  • 이러한 과정으로 도착지에 도착한 데이터는 TCP receive buffer에 저장되고, 어플리케이션이 해당 버퍼에서 데이터를 읽어옵니다.
  • 따라서 연결의 양측은 자신만의 send buffer와 receive buffer를 소유하고 있습니다.

참고

 

 

경북대학교 컴퓨터학부 COMP0414-001 컴퓨터 망 수업

Computer Networking: A Top Down Approach / James F. Kurose, Keith W. Ross 저 / PEARSON / 2021년

Chat GPT, Bing AI


다음 글에서는 TCP - Segment Structure에 대해 알아보겠습니다.

 

2023.04.17 - [Computer Science/네트워크] - [네트워크] TCP - Segment Structure

 

[네트워크] TCP - Segment Structure

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.17 - [Computer Science/네트워크] - [네트워크] TCP - Connection-Oriented Transport [네트워크] TCP - Connection-Oriented Transport 앞의 글을 읽으시면 이해에 도움이

hi-guten-tag.tistory.com

감사합니다.

지적 환영합니다.