TCP & UDP

Kim Dong Kyun·2023년 3월 31일
0
post-custom-banner

3-way handshake?

이미지 및 설명 참조

3-way handshake는 TCP 프로토콜에서 연결 설정 과정을 수행하는 것이다. 이 과정에서 클라이언트와 서버는 서로 세 번의 메시지를 주고받는데, 이를 통해 연결이 설정되고 데이터를 주고받을 수 있는 상태가 된다.

  • SYN (Synchronize)

: 클라이언트가 서버에게 연결을 요청하는 메시지를 보낸다. 이때, 클라이언트가 사용할 임시 포트번호도 함께 전송된다.

  • SYN-ACK (Synchronize-Acknowledgment)

: 서버는 클라이언트의 요청을 받고 응답으로 클라이언트가 사용한 임시 포트번호에 +1을 한 포트번호를 사용하여 응답한다. 이때, 서버는 SYN과 ACK 비트를 모두 설정하여 응답하게 된다.

  • ACK (Acknowledgment)

: 클라이언트는 서버의 응답을 받으면 ACK 비트를 설정하여 서버에게 응답한다. 이제부터 데이터를 주고받을 수 있는 연결이 설정되었다.

이러한 과정을 통해 클라이언트와 서버는 상호간에 정보를 주고받고, 데이터를 주고받을 수 있는 TCP 연결을 설정한다. 이와는 달리 UDP는 연결 설정 과정이 없고, 데이터를 전송할 때마다 각각의 패킷에 대한 정보를 새로 추가하여 전송한다. 따라서 UDP는 연결 설정에 걸리는 시간이 없어 더 빠르게 데이터를 전송할 수 있지만, 데이터의 신뢰성이 낮고 순서가 보장되지 않는 등의 단점이 있다.

1. TCP (Transmission Control Protocol)

연결형 프로토콜이다.

  • 클라이언트와 서버 간에 3-way handshake를 통해 연결을 설정한다.

  • 신뢰성이 높은 전송 방식을 사용한다. 데이터의 분실, 손상, 중복, 순서 등을 확인하고 재전송을 요청하여 신뢰성 있는 전송을 보장한다.

대표적인 예시로는 웹 브라우저를 이용한 웹 사이트 접속이 있다. 클라이언트는 서버와 3-way handshake를 통해 연결을 설정하고, 데이터를 주고받아 웹 사이트를 보여준다.

2. UDP(User Datagram Protocol)

비연결형 프로토콜이다.

  • 데이터를 보내기만 하고 연결 설정 과정이 없다.
  • 빠른 전송 속도를 가지며, 데이터의 분실, 손상, 중복, 순서 등을 확인하지 않기 때문에 신뢰성은 낮다.

대표적인 예시로는 실시간 동영상 스트리밍이 있다. 데이터를 실시간으로 주고받아야 하기 때문에 신뢰성은 떨어지더라도 빠른 전송 속도가 필요하다.

3. 정리

이미지 참조

post-custom-banner

0개의 댓글