TCP/IP 프로토콜의 핵심 전송 계층 프로토콜은 전송 제어 프로토콜(TCP)입니다.
TCP는 연결형이고, 승인을 제공하며, 신뢰할 수 있는 다양한 기능을 갖춘 프로토콜로 안정적이지 않은 인터넷 프로토콜(IP) 위에서 애플리케이션이 안정적으로 데이터를 송신하는 방법을 제공합니다. TCP는 애플리케이션이 데이터를 바이트 스트림으로 보낼 수 있도록 하며 그 바이트 스트림을 적절한 크기의 세그먼트로 자동 패키징하고, TCP의 특수 슬라이딩 윈도우 체계는 수신자가 모든 데이터를 수신하고, 필요할 경우 재전송을 하며, 상대방의 송신 속도를 조절할 수 있는 흐름 제어 기능을 제공하게 됩니다.
[TCP 전송 프레임 구조 특성]
[TCP 구조]
Sort Port : 패킷을 송신하는 시스템의 포트번호를 나타냅니다. 클라이언트의 경우 예약된 0-1023의 well-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는 계속 재전송을 시도하게 됩니다.
'Network' 카테고리의 다른 글
TCP가 인터넷에서 정보전달에 끼치는 역할 및 효과, QoS기능 (0) | 2016.05.03 |
---|---|
TCP의 전송 제어 절차 및 프로토콜 (0) | 2016.05.03 |
Gnuplot 사용하기 (0) | 2016.04.26 |
Network Simulator - NS-3란? (0) | 2016.04.26 |
NS-3 Network Simulation (second.cc) (0) | 2016.04.26 |
WRITTEN BY