TCP, UDP

beautiflow·2023년 1월 20일
0

HTTP

목록 보기
2/5

TCP, UDP


개요

  • 애플리케이션 계층에서 전달된 정보(payload)에 TCP 정보를 생성하여 포함시킴

  • IP 패킷 정보가 가지고 있는 한계점(비신뢰성, 비연결성)을 TCP 정보를 통해 해결

프로토콜 4계층


IP 프로토콜에서 중간에 피킷이 손실되고 순서가 상이한 문제들을 TCP 프로토콜이 해결해준다. “Hello world”라는 메시지를 보낼 때 SOCKET 라이브러리들을 통해서 OS 계층에서 TCP 정보를 감싼다. 그 밑에 IP 패킷이 생서되서 IP 와 관련된 정보도 있고 그 안에 TCP와 관련된 정보가 있다. 이 메시지를 랜카드를 통해서 나갈 때 Ethernet frame 을 포함해서 나가게 된다.

TCP/IP 패킷 정보


TCP와 관련된 정보에는 출발지 PORT, 목적지 PROT, 전송제어, 순서, 검증 정보 등이 들어감. IP 프로토콜에서 해결이 안된 순서 제어 문제들이 TCP 프로토콜이 해결이 되고 전송 데이터를 넣게 된다.

TCP특징

💡 전송 제어 프로토콜(Transmission Control Protocol)
  • 연결 지향 프로토콜
  • TCP 3 way handshake(가상 연결)

1. SYN(Synchronize) 접속 요청 메시지 전송 / 접속 요청
2. SYN + ACK : 응답 메시지와 함께 접속 요청 메시지를 같이 보낸다.
3. ACK(Acknowledge) : 요청을 응답하며 이제 양측이 연결이 되었음을 보장할 수 있게 된다. / 요청 수락
4. 데이터 전송 : 이제 데이터를 송신 혹은 수신할 수 있다.

* 위에 TCP 연결이 되었다고 연결이 된게 아니라 개념적으로 연결되어 있을 뿐이다. 인터넷 망에 있는 수 많은
  서버들이 연결되어 있는 건지 잘 모른다.

🚀 참고 : 여기서 두 노드 사이에 다른 노드들이 연결되어 있는지는 알 수 없다.
					(사실 별로 상관도 없다. 양측이 연결되어 있다는 결론만이 중요)

🚀 참고 : 최근에는 최적화가 되어 클라이언트에서 응답(ACK)을 보낼 때 데이터도 같이 전송을 한다.
  • 데이터 전달 보증

: 클라이언트에서 데이터를 전송하면 서버측에서는 데이터가 잘 왔는지 응답을 해주기 때문에 데이터 전달을 보증할 수 있다.

: 메시지에 TCP 프로토몰이 포함되어 있으면 메시지를 전송할 때 서버에서 잘 받았다고 다시 보내는데 클라이언트가 메시지를 잘 전달 됐는지 안됐는지 이해를 할 수 있다.

  • 순서 보장

: TCP 정보에는 순서와 같은 정보들이 포함되어 있기 때문에, 패킷의 순서가 잘못된 경우 서버에서 잘못된 패킷을 기준으로 재송신을 요청하여 패킷을 받기 때문에 순서를 보장할 수 있다.

  • 신뢰할 수 있는 프로토콜 : 데이터가 전달됨을 보증하고 순서도 보증되기에 신회할 수 있다.
  • 현재 대부분이 TCP를 사용

UDP 특징


💡 사용자 데이터그램 프로토콜(User Datagram Protocol)
  • TCP 와 비교하여 연결지향도 아니고, 데이터 전달, 패킷 순서도 보장되지 않는다.
  • 기능이 거의 없기 때문에 속도가 빠르다.
  • IP 와 비슷해 보이지만, PROT 정보는 포함되어있고, 체크섬 정도는 추가되어 있다.
  • 애플리케이션에서 추가적인 작업이 필요하다.

🤖  참고 : 체크섬(checksum)

: 중복 검사의 한 형태로 송신된 자료의 무결성을 보호하는 방법으로 네트워크를 통해 전달되는 값이 위/변조 되는 경우를 대비해 체크섬 값을 같이 보내 무결성을 보호한다.

출처 :

김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 수강하면서 정리한 내용입니다.

모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의

참고 블로그 :
{ 모든 개발자를 위한 HTTP 웹 기본 지식 } #1 - 인터넷 네트워크

[요약] 모든 개발자를 위한 HTTP 웹 기본 지식

0개의 댓글