TCP / UDP

최현호·2022년 6월 15일
0

HTTP

목록 보기
2/9
post-thumbnail
post-custom-banner

TCP / UDP

이전 포스팅에서 공부한 IP 프로토콜은 문제점을 가지고 있었습니다.
이를 위한 해결책으로 TCP 가 해결 할 수 있습니다.


인터넷 프로토콜 스택의 4계층

bandicam 2022-06-15 20-47-09-890


프로토콜 계층

bandicam 2022-06-15 20-47-13-559

bandicam 2022-06-15 20-47-23-080


IP 패킷 정보

  • 출발지 IP, 목적지 IP, 기타... 전송 데이터
  • 위의 그림 기준 노란색 테두리

TCP/IP 패킷 정보

  • IP 패킷 안에 아래와 같은 것들이 들어 갑니다.
  • 위의 그림 기준 초록색 테두리
  • 출발지 IP, 목적지 IP, 기타... 전송 데이터 +
  • 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보...

TCP 특징

  • 전송 제어 프로토콜
  • 연결지향 [ TCP 3 way handshake (가상연결) ]
    -상대방과 나와 연결이 되는지 안되는지 확인을 먼저 합니다. -> 그 후, 메시지 전달
  • 데이터 전달 보증
    - 패킷이 중간에 누락되면, 알 수 있다.
  • 순서 보장

즉, 신뢰할 수 있는 프토코콜이며, 현재는 대부분 TCP 사용


TCP 3 way handshake

bandicam 2022-06-15 20-56-25-626

  1. 클라이언트에서 서버로 SYN 이라는 메시지를 보냅니다.
  2. 그 후 서버에서 메시지를 받은 것을 확인하고, ACK 라는 것을 같이 보냅니다.
    -> 즉 상호 간의 응답을 합니다.
  3. 그 후 연결이 되었다고 확인하고, 데이터를 전송 합니다.

주의할 점은, 진짜 연결이 된 것이 아니라 논리적으로만 연결이 된 것 입니다.

정리 : TCP 3 Way Handshake는 TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정


데이터 전달 보증

bandicam 2022-06-15 20-56-29-158

  • 데이터를 전송을 하면 데이터를 잘 받았다고 서버에서 피드백을 받음으로 잘 갔는지 알 수 있습니다.

순서 보장

bandicam 2022-06-15 20-56-36-669

  • 예를 들어, 패킷을 1,2,3 으로 보냈는데, 서버가 1,3,2 번 순으로 순서가 달라져서 도착하면, 잘못온 부분부터 다 버리고 패킷 2 부터 다시 보내라고 요청 합니다. ( 이는 최적화에 따라 다릅니다.)

UDP 특징

  • TCP 와 같은 계층에 있는 프로토콜
  • 사용자 데이터그램 프로토콜
  • 기능이 거의 없습니다. ( TCP 의 기능들 포함 )

즉, IP와 거의 동일. 하지만 PORT + 체크섬 정도만 추가

  • Port : 하나의 IP에서 다수의 어플리케이션이 동작 할 수 있도록
  • 체크섬 : 메시지에 대해서 검증 해주는 데이터

UDP 쓰는 이유 ?

  • UDP 통신 프로토콜은 신뢰성을 보장하지는 않지만 TCP에 비하여 빠른 전송 속도를 제공합니다.
  • UDP는 비연결을 지향하기 때문에 데이터를 재전송할 필요도, 흐름 제어나 에러 체크도 항상 필요로 하지 않습니다.
  • 그로 인하여 전송에 필요한 헤더 사이즈도 줄어들게 되고 결과적으로 데이터 송/수신 과정이 매우 빨라집니다.

참고

profile
현재 블로그 : https://choi-hyunho.com/
post-custom-banner

0개의 댓글