TCP (Transmission Control Protocol)은 네트워크에서 데이터를 안정적이고 순서대로 전송하기 위한 프로토콜입니다.
-
Point-to-Point (일대일):
- TCP는 한 발신자와 한 수신자 간의 통신을 지원합니다. 즉, 데이터는 하나의 송신자에서 하나의 수신자로 전송됩니다.
-
신뢰성 있고 순서대로 전달되는 바이트 스트림:
- TCP는 데이터를 메시지 단위가 아니라 바이트 단위로 전송합니다. 이는 데이터가 안전하게 전달되고, 수신측에서는 송신측에서 전송한 순서대로 데이터를 받을 수 있음을 의미합니다.
-
메시지 경계가 없음:
- TCP는 데이터를 바이트 스트림으로 처리하기 때문에 메시지의 경계를 명확히 구분하지 않습니다. 이는 송신자가 데이터를 조각내어 전송하더라도, 수신자는 연속된 바이트 스트림으로 받게 됨을 의미합니다.
-
전이중 데이터 전송(Full Duplex Data):
- TCP는 전이중 통신을 지원합니다. 즉, 양방향으로 데이터를 주고받을 수 있습니다. 한 연결 내에서 양방향 데이터 흐름이 가능합니다.
-
MSS : Maximum Segment Size(최대 세그먼트 크기):
- TCP에서는 데이터를 세그먼트로 나누어 전송합니다. MSS는 한 번에 전송될 수 있는 세그먼트의 최대 크기를 나타냅니다.
-
누적적인 ACK (응답):
- 수신자는 성공적으로 받은 데이터의 마지막 바이트까지 ACK를 보냅니다. 이는 송신자에게 어떤 데이터가 성공적으로 도달했는지를 알려줍니다.
-
파이프라이닝 (Pipelining):
- TCP는 여러 데이터 세그먼트를 동시에 전송할 수 있습니다. 이를 통해 네트워크 성능을 최적화할 수 있습니다.
-
TCP 혼잡 및 흐름 제어 설정:
- TCP는 네트워크 혼잡과 데이터 흐름을 관리하기 위해 윈도우 크기를 조정합니다. 이를 통해 네트워크의 효율성을 유지합니다.
-
연결 지향 (Connection-Oriented):
- TCP는 통신을 시작하기 전에 발신자와 수신자 간에 제어 메시지를 교환하여 초기화합니다. 이를 통해 데이터 교환 전에 발신자와 수신자의 상태를 설정합니다.
-
흐름 제어됨:
- 송신자는 수신자를 압도하지 않도록 흐름을 제어합니다. 이는 수신자가 처리할 수 있는 속도로 데이터를 전송함을 의미합니다.
같은 내용일 수 있지만 다른 그림으로 한번 더 복습해봅니다.
여기에 나열된 용어들은 TCP의 신뢰성을 제공하는 다양한 메커니즘과 프로토콜을 나타냅니다.
-
슬라이딩 윈도우 프로토콜 (Sliding Window Protocol - SR ARQ):
- 슬라이딩 윈도우 프로토콜은 전송자와 수신자 간에 효율적인 데이터 전송을 위해 사용됩니다. 이 프로토콜은 일정 범위의 패킷들을 순차적으로 전송하고, 수신자는 이를 확인한 후 다음 범위의 패킷을 요청합니다.
-
누적적인 ACK (응답):
- 수신자는 성공적으로 받은 데이터의 마지막 바이트까지 ACK를 보냅니다. 이는 송신자에게 어떤 데이터가 성공적으로 도달했는지를 알려줍니다.
-
메시지 경계 없음:
- TCP는 데이터를 메시지 단위가 아니라 바이트 스트림으로 처리하기 때문에 메시지의 경계를 명확히 구분하지 않습니다.
-
구조화되지 않은 바이트 스트림 (Unstructured Byte-Stream):
- TCP는 데이터를 일정한 구조로 나누지 않고 바이트 스트림으로 처리합니다. 이는 데이터를 작은 단위로 나누어 전송하는 UDP와는 다릅니다.
-
흐름 제어 (Flow Control):
- TCP는 수신자가 받을 수 있는 데이터의 양을 조절하여, 송신자가 수신자의 버퍼를 과도하게 채우지 않도록 합니다.
-
예고된 윈도우 크기 (Advertised Window Size):
- 수신자는 자신이 받을 수 있는 데이터의 양을 발신자에게 알려주는데, 이것이 예고된 윈도우 크기입니다. 이를 통해 송신자는 적절한 송수신 속도를 유지할 수 있습니다.
-
송신자가 수신자 버퍼를 압도하지 않음:
- 흐름 제어를 통해 송신자는 수신자의 버퍼를 과도하게 채우지 않도록 합니다. 이로 인해 수신자가 데이터를 처리할 수 없는 상태로 만들지 않습니다.
-
혼잡 제어 (Congestion Control):
- 혼잡 제어은 네트워크의 혼잡을 방지하고 관리하는 메커니즘입니다. TCP는 혼잡 제어를 통해 네트워크의 효율성을 최적화하고 과도한 데이터 손실을 방지합니다.