NETWORK

[NETWORK] TCP / UDP

집한구석 2021. 6. 6. 01:04
728x90

TCP와 UDP는 전송계층에서 사용하는 프로토콜, 전송계층은 송신자와 수신자를 연결하는 통신 서비스를 제공하고 IP에 의해 전달되는 패킷의 오류를 검사하며 재전송 요구 제어등을 담당하는 계층


TCP

정의

  • 연결지향적 프로토콜
  • 클라이언트와 서버가 연결된 상태에서 데이터를 주고 받는 프로토콜 

특징

  • 연결형 서비스로 가상회선 방식을 사용
  • 데이터의 경게를 구분하지 않음
  • 신뢰성 있는 데이터 전달과 흐름 제어하며 데이터 전송 순서 보장
  • 1 : 1 통신만 가능하며, UDP보다 속도가 느림

3 way handshake, 4 way handshake

출처 : https://cis.temple.edu/~giorgio/old/cis307f01/readings/unix4.html

  • TCP 통신을 위한 네트워크 연결은 3 way handshake 방식으로 진행
  • 연결해제는 4 way handshake 방식을 진행

3 way handshake 과정

  1. Client에서 Server 포트에 SYN패킷을 전달
  2. Server는 해당 포트에서 SYN패킷을  SYN_RCV로 상태가 변경
  3. 정상적으로 요청 받았다고 ACK패킷, Client에 포트 연결 요청으로 SYN패킷을 같이 응답
  4. ACK + SYN패킷을 전달받은 Client는 ESTABLISHED 상태로 변경하고 ACK패킷를 서버에 전송

4 way handshake 과정

  1. Close를 선언한 Client가 FIN 패킷을 전달 후 FIN_WAIT1 상태로 대기
  2. Server는 CLOSE_WAIT로 상태를 바꾸고 응답으로 ACK패킷 전달 (Close 요청)
  3. Client는 ACK패킷을 전달 받고 FIN_WAIT2로 상태 변경
  4. Close 요청 받은 서버는 FIN 패킷을 Client에 응답하고 상태를 LAST_ACK로 변경
  5. FIN을 받은 Client는 ACK패킷을 서버로 전달하고 TIME_WAIT 상태로 변경, 일정시간이 지나면 CLOSED

UDP

정의

  • 전송계층의 비연결 지향적 프로토콜 

특징

  • 데이타그램 방식으로 제공
  • 정보를 주고 받을때 신호 절차를 거치지 않음
  • 신뢰성 없는 데이터를 전송
  • 패킷관리가 별도로 필요함 하지만 패킷오버헤드가 적어 네트워크 부하가 적음
  • TCP보다 전송속도가 빠름

TCP / UDP 공통점

  • 포트 번호를 이용하여 주소를 지정함
  • 데이터 오류 검사를 위한 체크섬이 존재함

TCP / UDP 차이점

  TCP UDP
연결방식 연결형서비스 비 연결형 서비스
패킷 교환 방식 가상 회선 방식 데이터그램 방식
전송 순서 전송 순서 보장 전송 순서가 바뀔 수 있음
수신 여부 확인 수신 여부를 확인함 수신 여부를 확인하지 않음
통신 방식 1:1 통신만 가능 1:1 / 1:N / N:N 통신 모두 가능
신뢰성 높음 낮음
속도 느림 빠름

 

'NETWORK' 카테고리의 다른 글

[NETWORK] 요청 응답 헤더  (0) 2021.10.29
[NETWORK] HTTP / HTTPS  (0) 2021.10.28
[NETWORK] L4 스위치  (0) 2021.09.27
[NETWORK] OSI 7계층, TCP/IP 4계층  (0) 2021.07.11
[NETWORK] 쿠키 / 세션  (0) 2021.05.19