[HTTP] IP와 TCP

0xDave·2022년 8월 7일
0

HTTP

목록 보기
1/5
post-thumbnail

클라이언트와 서버가 서로 통신할 때 어떻게 통신할까? 가장 먼저 생각해야 할 것은 정보를 보내는 클라이언트의 주소와 정보를 받는 서버의 주소를 알아야 한다. 이 때 필요한 것이 IP(인터넷 프로토콜)이다.

📦 패킷(Packet)


패킷은 통신 단위를 말한다. IP 패킷이라는 규칙으로 통신하는데, 택배 상자로 생각하면 이해가 쉬울 것 같다.

  1. 보내고자 하는 물품 : 보내고자 하는 데이터
  2. 보내는 사람 : 보내는 IP
  3. 받는 사람 : 받는 IP
  4. 택배 상자 : 패킷

한계


IP로 서로 통신할 때 한계점이 존재한다. 데이터를 받는 대상에 문제가 생겼을 때는 데이터를 못 받을 수도 있고, 중간에 패킷이 사라지거나 순서대로 전송이 안 될 수도 있고, 프로그램이 여러개가 동시에 돌아갈 때 동일한 IP를 사용해야 하는데 이러한 경우에는 어떻게 할 것인지 고민해야 한다.


🤷‍♂️ 그럼 어떻게?


그래서 나온 개념이 TCP(전송 제어 프로토콜)다. TCP도 IP와 비슷하게 택배 상자라고 생각하면 쉬운데, 기존에 IP패킷으로 포장했던 데이터를 TCP로 1차 포장하고 IP패킷으로 2차 포장하는 개념이다.

1차 포장했던 TCP에는 다음과 같은 정보가 들어간다.

  1. 출발지 PORT
  2. 도착지 PORT
  3. 전송 제어에 대한 정보
  4. 순서에 대한 정보
  5. 검증 정보 등등

TCP는 연결을 먼저 한 후에 데이터를 전송하며(3 way handshake), 상대방이 데이터를 못 받았을 경우 알아차릴 수 있다.


UDP


UDP는 사용자 데이터그램 프로토콜로 TCP와 같이 IP 위에서 돌아가는 프로토콜이다. 하지만 TCP에 있는 여러 기능이 없으며, IP와 거의 같다고 볼 수 있다. 그럼 왜 사용하느냐? 하나의 IP에서 여러 프로그램이 돌아가면 각 프로그램에서 넘어오는 데이터들을 PORT를 이용해서 각 프로그램에 맞게 받아온다. PORT를 사용할 수 있도록 해주는 게 UDP다.


출처 및 참고자료


  1. 모든 개발자를 위한 HTTP 웹 기본 지식
profile
Just BUIDL :)

0개의 댓글