[HTTP] 인터넷 : IP, TCP/UDP, PORT, DNS

Local Gaji·2023년 10월 7일

🎈 IP 주소

컴퓨터를 식별하기 위해 할당하는 주소

다른 컴퓨터에 데이터를 보내려면 패킷이 수많은 노드를 거쳐서 목적지 IP 주소까지 찾아가게 된다.

하지만 IP 프로토콜만 가지고 데이터를 보내기에는 다음과같은 한계가 있다.

  • 받을 사람이 인터넷 연결이 안되어있어도 일단 전송된다. 받았는지 안받았는지 알 수 없다
  • 패킷이 전송 도중에 소실되어도 알 수 없다.
  • 받는 사람이 패킷의 순서를 알 수 없다.
  • 한 컴퓨터에서 두개 이상의 앱을 사용할때, 어떤 앱에서 받아온 데이터인지 구분이 안된다.

IP 프로토콜의 이러한 문제들을 TCP 프로토콜이 보완할 수 있다.


🎈 프로토콜 계층

1. 애플리케이션이 데이터를 보내달라고함
2. OS로 전달
3. OS가 TCP 정보를 추가함
4. OS가 IP 정보를 추가함 -> IP 패킷 생성
5. LAN 으로 나감

🔰 패킷


🎈 TCP

특징

  • 연결 지향 : 받는 컴퓨터가 인터넷에 연결되어있는지 없는지 확인
    • 3 way handshake : 메세지를 3번 주고받아서 서로 연결을 확인한 후 데이터를 전송한다.
  • 패킷이 누락됐는지 안됐는지 확인
    • 데이터를 받으면 잘 받았다고 확인 응답을 보냄
  • 패킷 순서를 보장

TCP 정보에 해당 기능을 위한 정보들이 포함되어있다.


🎈 UDP

기능이 거의 없고 IP 프로토콜과 단점이 비슷하지만, PORT 정보가 추가됨
-> 하나의 IP에서 여러 앱으로 통신을 할때 PORT 로 구분한다.

TCP 프로토콜 사용시 3way handshake 과정과 패킷에 실리는 TCP 정보로 인해서 전송 속도가 느려진다.
하지만 TCP는 규격이 정해져있기 때문에 커스텀 최적화를 할 수 없다.
이를 커스텀하기 위해서는 UDP에 커스텀 설정 정보를 싣는다

-> 커스텀을 위한 빈 도화지와 같은 역할


🎈 PORT

한 컴퓨터에서 여러 애플리케이션을 사용할 때 통로를 구분해주는 역할을 한다.
PORT가 다름 : 같은 공항 다른 탑승구 같은 느낌

TCP/IP 패킷에 출발지 PORT, 도착지 PORT 정보가 담긴다


🎈 DNS

IP 주소는 기억하기 어렵다. 그리고 변경될 수 있다.
DNS 서버에 도메인명(velog.io 등)과 서버의 IP주소가 등록되어있다.
클라이언트는 도메인명 으로 접속하면 거기 등록된 IP로 요청을 보내게 됨

-> 전화번호부 같은 역할

0개의 댓글