[전송 계층] TCP와 UDP의 차이

수영·2022년 3월 30일
0

네트워크

목록 보기
5/5

TCP와 UDP는 어플리케이션 간의 데이터 전달에 사용되는 전송 계층 프로토콜이다.

TCP란

: 연결형 프로토콜

  • 연결 지향 : 3 way handshake, 연결되었는지 확인 후에 데이터 전송
  • 데이터 전달 보증 : 데이터 잘 받았으면 받았다고 응답
  • 순서 보장 : 순서 잘 못 보내면 다시 보내라고 응답
  • 흐름 제어 : 데이터 처리 속도를 조절하여 수신자의 오버플로우를 방지
  • 혼잡 제어 : 네트워크 내의 패킷 수(소통하는 데이터량)가 넘치지 않도록 방지
  • 유니캐스트 : 1 : 1 통신만 가능하다

TCP 3 way Handshake (연결 성립)

TCP 3 Way Handshake는 TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정을 의미한다. 즉, 클라이언트와 서버의 연결을 보장하기 위한 과정이다. (인터넷 계층의 IP 프로토콜에서는 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송할 수 있기 때문에 이를 보완하기 위해서 TCP에 추가되었다)

연결 성립 과정

  1. 클라이언트가 서버에 접속을 요청하는 SYN 패킷을 보낸다.
  2. 서버는 SYN을 받고, 클라이언트에게 요청을 수락한다는 ACK을 SYN와 함께 보낸다.
  3. 클라이언트는 ACK와 SYN을 받고, ACK을 서버로 보낸다.

⇒ 이로써 연결이 성립된다.

TCP 4 way Handshake 연결종료

  1. 클라이언트에서 연결 종료 요청 FIN/ACK를 보냄
  2. 서버에서 종료 요구 확인 플래그 ACK를 보냄
  3. 서버측에서도 종료하겠다는 종료 요청 FIN/ACK를 보냄
  4. 클라이언트에서 종료 요구 확인 플래그 ACK를 보냄

⇒ 이로써 연결이 종료된다.

UDP란

: 비연결형 프로토콜

  • 데이터의 순서가 바뀌거나 네트워크 혼잡 등 오류가 나도 TCP처럼 제어하지 않는다.
  • 데이터 전송 시 신뢰성보다는 빠른 속도가 필요할 때 사용한다.
  • 브로드캐스트, 멀티캐스트 : 1:1, 1:N, N:N 통신이 모두 가능하다.

TCP와 UDP의 차이

둘 다 어플리케이션 간의 데이터 전달에 사용되는 전송 계층 프로토콜이나,

UDP는 IP 프로토콜과 거의 같은, 포트가 추가된 정도의 프로토콜이다.
TCP는 IP 프로토콜에서의 비연결성, 비신뢰성을 보완한 것으로, 3 way handshake을 통해서 연결을 보장하고 데이터 전달과 순서를 보장하는 프로토콜이다.

  • TCP :
    • 시간 제약없이 신뢰성이 필요한 데이터를 전송 시
    • 대량의 데이터 전송 시 (패킷으로 나뉘는 데, 유실된다면 다시 보내므로)
    • ex. 전달 순서가 보장되므로 채팅에 사용
  • UDP :
    • 신뢰성보다는 실시간으로 빠른 전송이 중요한 경우
    • 1 대 다 통신을 할 경우
    • 소량의 데이터를 자주 주고 받을 경우
    • ex. 동영상 스트리밍, 화상 회의

Reference

도서 <손으로 익히며 배우는 네트워크 첫걸음>
https://mangkyu.tistory.com/15
https://wormwlrm.github.io/2021/09/23/Overview-of-TCP-and-UDP.html#%EB%A7%88%EB%AC%B4%EB%A6%AC
https://velog.io/@ruthetum/TCP-UDP

profile
🎵🎵🎵🎶🎵

0개의 댓글