본문 바로가기
개발/브라우저와 네트워크

TCP , UDP

by 안뇽! 2021. 10. 27.
반응형

IP 프로토콜의 한계 :

- 비연결성 : 서버와 연결이 끊겨도 계속 데이터를 보낸다.


- 비신뢰성 : 데이터의 순서가 바뀌거나, 사라져도 이상감지를 하지 못한다.

TCP 프로토콜 :

TCP프로토콜은 IP프로토콜보다 더 높은 계층에 존재하기에 IP프로토콜의 한계를 보완할 수 있다.

코드스테이츠

TCP/IP 패킷 정보

TCP세그먼트에는 패킷에 대한 부가정보들이 들어있는데, 이를 토대로 패킷이 순서대로 왔는지, 누락된게 없는지 등등을 알 수 있다.

TCP세그먼트와 비교하여 패킷의 순서가 바뀐것을 알 수 있다. (코드스테이츠 출처)

TCP 세그먼트에는 IP 패킷의 출발지 IP와 목적지 IP를 보완할 수 있는 출발지 PORT, 목적지 PORT, 전송 제어, 전송 순서, 검증 정보등을 포함한다. 이를 통해 데이터의 순서가 바뀌거나 누락되는 등 이상이 생기면 TCP 세그먼트를 토대로 다시 패킷 전송을 요청한다.

TCP 특징

- 연결 지항 `TCP 3way handshake` (물리적으로 연결되어있지 않은, 가상연결임)
- 데이터 전달 보증
- 순서 보장
- 신뢰할 수 있는 프로토콜

TCP 3way handshake

https://mindnet.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-22%ED%8E%B8-TCP-3-WayHandshake-4-WayHandshake

  1. 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보낸다.
  2. 서버는 SYN 요청을 받고 클라이언트에게 요청 수락의 의미로 ACK와 SYN이 설정된 패킷을 발송하고 클라이언트의 ACK응답을 기다린다.
  3. 클라이언트가 서버에게 ACK를 보내면 이 이후로 연결이 성립되며 데이터를 전송할 수 있다.(현대에는 최적화가 이루어져 이때에 ACK를 보내면서 데이터를 함께 보내기도 한다.)

UDP

  • IP프로토콜에 PORT, 체크섬필드 정보만 추가된 단순한 프로토콜이다.

( 체크섬(checksum) : 중복검사의 한 형태인데 오류정정을 통해 송신된 자료의 무결성을 보호하는 단순한 방법이다.)

 

  • 3 way handshake 방식을 사용하지 않기 때문에 TCP보다 빠르지만 신뢰성은 낮다. => 신뢰성보다 연속성이 중요한 서비스에 사용(실시간 스트리밍)

 

  • HTTP3는 UDP를 사용한다. 이미 여러 기능이 구현된 TCP에 반해, 하얀 도화지같은 UDP는 커스터마이징이 가능하다는 장점이 있다.

코드스테이츠

반응형

'개발 > 브라우저와 네트워크' 카테고리의 다른 글

Accept 헤더 (콘텐츠 협상 헤더) 그리고 Content-type과의 차이  (0) 2021.10.28
HTTP 자주 쓰이는 헤더들  (0) 2021.10.28
Session  (0) 2021.10.24
쿠키  (0) 2021.10.23
Location header  (0) 2021.10.23