TCP/IP 프로토콜의 핵심 전송 계층 프로토콜은 전송 제어 프로토콜(TCP)입니다.

TCP는 연결형이고, 승인을 제공하며, 신뢰할 수 있는 다양한 기능을 갖춘 프로토콜로 안정적이지 않은 인터넷 프로토콜(IP) 위에서 애플리케이션이 안정적으로 데이터를 송신하는 방법을 제공합니. TCP는 애플리케이션이 데이터를 바이트 스트림으로 보낼 수 있도록 하며 그 바이트 스트림을 적절한 크기의 세그먼트로 자동 패키징하고, TCP의 특수 슬라이딩 윈도우 체계는 수신자가 모든 데이터를 수신하고, 필요할 경우 재전송을 하며, 상대방의 송신 속도를 조절할 수 있는 흐름 제어 기능을 제공하게 됩니.

 

[TCP 전송 프레임 구조 특성]

[TCP 구조]


Sort Port : 패킷을 송신하는 시스템의 포트번호를 나타냅니다. 클라이언트의 경우 예약된 0-1023well-known포트번호를 제외한 번호를 임의로 생성하고 서버의 경우 일반적인 서비스 제공 시 well-known한 포트를 사용합니다.

Destination Port : 패킷을 수신할 시스템의 포트번호를 나타냅니다.

Sequence Number : 세그먼트(각 계층 패킷의 구분을 위해 4계층-세그먼트, 3계층-패킷, 2계층-프레임으로 구분) 데이터의 순서번호를 표기합니. 3Way-Handshacking 수행 시 ISN의 기능도 합니.

Acknowledge Number : 상대방으로부터 수신한 데이터의 바로 다음에 수신할 데이터 순서번호를 나타냅니다. Sequence Number의 확인 응답으로서 데이터 전송자에게 패킷을 잘 받았으니 그다음 패킷을 송신하라는 의미로 사용됩니다. 상대방이 다음에 전송할 패킷의 Sequence Number이기도 합니.

Header Length : TCP헤더의 전제 길이를 byte단위로 표현합니다.

Reserved : 미래를 위해 예약된 필드로 항상 0 으로 설정됩니다.

Window size : 송신 시스템에서 자신이 수용하는 한 버퍼의 크기를 byte단위로 나타냅니. 통신하는 동안 송수신자는 해당 필드를 통해 수신사이즈를 계속 변경하게 됩니다.

Checksum : 데이터가 전송중에 손실되지 않고 원본과 동일한지 검사합니다.

Urgent Point : Urgent flag 설정 시 urgent데이터의 마지막 byte의 일련번호를 Urgent Point 필드에 저장합니다. 해당 부분까지 긴급하게 처리를 요한다는 의미입니다.

 

[TCP의 기능]

1. [주소지정/다중화]

- 여러 프로세스에서 온 데이터를 다중화하여 하위 네트워크 계층 프로토콜로 송신되도록 하는 것은 TCP의 중요한 임무이며 동시에 이들 상위 계층 애플리케이션은 TCP 포트를 통해 식별됩니다.

2. [연결 수립, 유지, 종료]

- TCP는 장비가 데이터를 이동시킬 수 있는 연결을 협상하고 수립하기 위해 따라야 할 절차 모음을 제공합니다연결이 수립되면 TCP는 연결을 유지하고 혹시 발생할 지 모르는 문제를 처리하기 위한 방법이 있습니다장비가 TCP 연결로 할 일을 마치면 그 연결을 종료하기 위한 특수한 절차도 수행됩니.

3. [데이터 처리와 패키징]

- 애플리케이션이 상위 계층에서 데이터를 송신할 수 있는 방법을 제공합니다이 데이터는 메시지로 패키징되고 목적지 TCP 소프트웨어로 전달됩니.

4. [데이터 전송]

- 송신 장비의 TCP 구현은 패키징된 데이터를 다른 장비의 TCP 프로세스로 전달할 책임이 있습니다.

5. [신뢰성과 전송 품질 서비스 제공]

- 애플리케이션이 데이터를 신뢰할 수 있게 송신할 수 있도록 여러 서비스와 기능을 제공합니다.

6. [흐름 제어와 혼잡 회피 기능 제공]

- 두 장비 간의 데이터 흐름을 제어하고 관리할 수 있도록 하며, 두 장비 간 통신에서 발생할 수 있는 혼잡을 처리하는 기능도 포함합니.

 

[TCP가 수행하지 않는 기능]

1 . 전송 프로토콜만을 정의하므로 애플리케이션이 어떻게 TCP를 사용해야 하는지 구체적으로 명시하지 않습니다.

2 . 전송하는 데이터의 인증이나 프라이버시를 보장하기 위한 어떤 방법도 제공하지 않습니.

3 . TCP는 데이터를 분리된 메시지가 아닌 연속된 스트림으로 송신합니다.

4 . 한 메시지가 어디에서 끝나고 다음 메시지는 어디에서 시작되는지를 명시하는 것은 애플리케이션 계층에 달려있게 됩니다.

5 . TCP는 승인을 받지 않는 전송을 탐지하고 필요할 경우 재전송합니다. 어떤 문제가 통신을 방해할 경우에 TCP는 계속 재전송을 시도하게 됩니다.


WRITTEN BY
SiriusJ

,