TCP, UDP

gotcha!!·2023년 8월 23일
0

HTTP

목록 보기
1/29

TCP, UDP에 들어가기 앞서 IP프로토콜 을 먼저 알아보자
IP프로토콜 은 지정한 IP주소로 데이터를 전달할 수 있고, 패킷이라는 통신 단위로
데이터를 전달할 수 있다.
그러나 IP프로토콜에 한계점이 존재한다.

  • 비연결성
    패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다.
  • 비신뢰성
    중간에 패킷이 사라질 수 있다.
    패킷이 순서대로 도착하지 않을 수 있다.
  • 프로그램 구분
    같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 수 있을 때 모호해진다.
    이들의 한계점을 극복하는 것이 TCP이다.

TCP

TCP는 전송 제어 프로토콜(Transmission Control Protocol)이다.

  • 연결지향
    TCP 3 way handshake(가상 연결)

  • 데이터 전달 보증

  • 순서 보장

  • 신뢰할 수 있는 프로토콜
    현재는 대부분 TCP를 사용한다

연결지향(3 way handshake)

  1. 클라이언트에서 서버로 SYN(접속요청)을 보낸다.
  2. 서버에서 ACK(요청 수락)이라는 메세지를 클라이언트에게 보내면서 또한 SYN을 보낸다.
  3. 양쪽이 SYN, ACK를 보내면서 3번 메세지를 주고받는다.
    이렇게 연결이 되고나면 데이터 전송이 가능해진다.

그런데 이건 물리적으로 연결이 된 것이 아니라, 개념적으로 연결된 것

데이터 전달 보증

클라이언트가 데이터를 전송하면 서버에서 데이터를 잘 받았다는 응답을 보내주게 된다.

순서 보장

클라이언트가 패킷1,2,3 순서로 전송을 했을 때, 서버에서는 만약 패킷1,3,2로 받았다고 가정해보자.
그러면 서버에서는 패킷2번부터 다시 보내라고 다시 응답을 보내서 클라이언트가 다시 패킷 2번부터 보내게 된다.

이런 것들이 그냥 되는 것이 아니라, TCP패킷 안에는 전송 제어 정보, 순서 정보, 검증 정보들이 추가되어있어서 가능하다

UDP

UDP(User Datagram Protocol)는 TCP와 같은 계층에 있는 프로토콜이다.
기능이 거의 없고, TCP와 같이 연결지향을 하지않고, 데이터 전달 보증도 없고, 순서 보장도 없다.
데이터 전달 및 순서가 보장되지 않아서, 단순하고 빠르다.

정리

  • IP와 거의 같다고 보면된다.
  • IP의 한계점에서 여러 애플리케이션을 사용할 때, 모호해질 수 있다 했는데, UDP는 PORT를 추가해서 모호함을 없앨 수 있다.
profile
ha lee :)

0개의 댓글