네트워크/네트워크

개요 - TCP(Transmission Control Protocol)계층의 특징

본클라쓰 2008. 12. 21. 12:28

 

TCP는 OSI 7계층으로 보면 전송 계층 프로토콜입니다.

 

TCP는 전송의 신뢰성을 보장하고, 종단간 흐름, 혼잡 제어를 수행합니다. 또한 연결형 프로토콜로 먼전 연결을 설정한 후 데이터를 전송합니다. TCP 의 특징을 살펴보면 다음과 같습니다.

 

첫 째, 연결형(Connection Oriented)으로 클라이언트와 서버가 데이터를 교환하기 전에 서로 TCP 세션(session)을 확립해야 합니다.

 

둘 째, 신뢰성(Releability)으로 TCP는 전송한 데이터가 수신측에 올바르게 도착했는지에 대해 확인을 통해 신뢰성 있는 통신 서비스를 제공합니다. TCP에서는 데이터를 전송할 때 타이머를 이용하여 확인 응답을 기다립니다. 만약 응답이 오지 않으면 재전송을 수행합니다. 또한 수신측에서는헤더와 데이터에 대해  체크섬을 사용하여 데이터에 오류가 있는 것을 확인하고 오류가 확인되면 해당 패킷을 버립으로써 송신측의 재전송을 유도합니다.

 

셋 째, 흐름제어(Flow control)로 TCP는 연결 종단점에 일정한 크기의 버퍼를 가지고 있습니다. 이 버퍼를 사용해 송신측은 수신측에서 처리할 수 있는 범위의 데이터를 보내도록 제어하여 처리 속도가 느린 수신측의 버퍼의 오버플로우를 방지합니다. (버퍼 사이즈를 상대방에게 알려줍니다.)

 

넷 째, TCP는 바이트 스트림을 통해 통신을 수행합니다.

 

 

 

3-Way handshake

 

TCP 프로토콜을 사용하여 상호간의 연결을 확인하는 절차를 '3-way handshake'라 부르며 아래의 그림처럼 연결을 확인합니다.

 

 

클라이언트는 원하는 포트로 초기 시퀀스(Sequence) 번호를 설정하여 SYN를 보냅니다. 클라이언트의 SYN을 받은 서버는 해당 포트가 활성화 중인 경우 초기 시퀀스 번호와 함께 클라이언트의 SYN에 +1 한 값과 ACK를 보냅니다. 서버로부터 SYN/ACK를 받은 클라이언트는 서버의 SYN에 대한 응답으로 다시 ACK를 보냄으로써 연결이 성립됩니다. 각 과정은 다음과 같다.

 

1. 연결할 때

    - 클라이언트의 연결 요구를 서버에 전달

    - 서버는 클라이언트 연결에 대한 응답

    - 클라이언트는 서버에 SYN에 대한 응답

 

2. 종료할 때

    - 클라이언트의 종료 요구

    - 서버는 클라이언트 연결에 대한 응답

    - 클라이언트는 서버의 FIN에 대한 응답

 

 

 

'네트워크 > 네트워크' 카테고리의 다른 글

개요 - IP(Internet Protocol) 주소 체계  (0) 2008.12.21
개요 - TCP 포트와 소캣  (0) 2008.12.21
개요 - 인터넷과 웹(WWW)  (0) 2008.12.21
개요 - TCP/IP 프로토콜  (0) 2008.12.20
개요 - OSI 7 계층  (0) 2008.12.10