컴퓨터 과학

CS-TCP(전송 제어 프로토콜)

용용it 2023. 12. 13. 23:40
TCP ?

 

Transmission Control Protocol, 전송 제어 프로토콜이라고 한다.

 

컴퓨터가 다른 컴퓨터와 데이터 통신을 하기 위한 규약(프로토콜)의 일종이다. 

 

TCP는 데이터를 보내기 전에 연결을 설정하고, 데이터를 안정적으로 전송하며, 전송 후에는 연결을 정리하는 등의 기능을 담당하여 신뢰성 있는 데이터 전송을 보장한다. 

 

이 프로토콜은 인터넷에서 가장 널리 사용되며, 웹 브라우징, 이메일, 파일 전송 등과 같은 다양한 네트워크 응용 프로그램에서 활용된다.

 

TCP는 세계 통신표준으로 개발된 OSI 모형에서 4번째 계층인 전송 계층(Transport Layer)에서 사용하는 규약으로, 

보통 하위 계층에서 사용하는 IP와 엮어서 TCP/IP로 표현하는 경우가 많다. 

 

동일 계층에서 사용하는 또 다른 프로토콜로 UDP가 존재한다.

 

TCP의 안정성을 필요로 하지 않는 애플리케이션의 경우 일반적으로 TCP 대신

비접속형 사용자 데이터그램 프로토콜, 즉 UDP(User Datagram Protocol)를 사용한다.

 

 

 

 

 


 

 

 

 

TCP 통신 방식은 안전하고 정확한 데이터 전송을 목표로 한다.

 

 

1. 연결 성립을 위해 3 Way Handshake를 사용한다.

2. 연결 해제를 위해 4 Way Handshake를 사용한다

 

 

 

 

 

연결 설정 (Three-way handshake)

 


데이터를 전송하기 전에 송신자와 수신자 간에 연결을 설정한다. 

이를 위해 세 가지 단계의 핸드셰이크(Handshake) 과정을 거친다.


송신자는 수신자에게 연결을 요청하는 SYN(Synchronize Sequence Numbers) 패킷을 보낸다.


수신자는 이 요청을 수락하고 연결에 대한 확인 응답인 SYN-ACK 패킷을 보낸다.


마지막으로 송신자는 수신자에게 연결 수락을 확인하는 ACK(Acknowledgment) 패킷을 보냄으로써 연결이 설정된다.

 

그림판 그림...

 

 

 

 

 

 

 

 

 

데이터 전송

 

연결이 설정되면 데이터 전송이 이루어진다.

송신자는 데이터를 패킷으로 나누어 네트워크를 통해 전송한다.
수신자는 데이터를 받고, 각 패킷의 순서를 확인하고 손실된 패킷을 다시 요청하거나 재전송 요청을 보낸다.
TCP는 수신자가 패킷을 올바르게 수신했는지 확인하기 위해 확인 응답(ACK)을 사용한다. 

송신자는 ACK를 받으면 다음 데이터를 전송한다.

 

 

 

 

 

 

 

 

 

 

연결 종료 (Four-way handshake)

 



데이터 전송이 완료되면 연결을 종료하기 위해 네 가지 단계의 핸드셰이크 과정을 거친다.


송신자는 연결 종료를 위해 FIN(Finish) 패킷을 보낸다.
수신자는 FIN(Finish) 패킷을 받고, 데이터의 수신이 완료되었음을 알린다.


수신자 또한 종료를 위해 ACK(Acknowledgment) 패킷을 보내고, 동시에 연결 종료를 요청하는 FIN(Finish) 패킷을 송신한다.


마지막으로 송신자는 수신자의 ACK(Acknowledgment) 를 받으면 연결을 완전히 종료한다.


TCP는 패킷 손실, 순서 변경, 중복 등의 문제를 처리하여 안정적이고 신뢰성 있는 데이터 전송을 제공한다. 

이를 통해 데이터의 정확한 전송과 수신을 보장하며, 많은 인터넷 응용 프로그램에서 사용되고 있다.