반응형

인터넷 프로토콜(Internet Protocol, IP)

노드: 네트워크의 기본요소인 지역 네트워크에 연결된 컴퓨터와 그 안에 속한 장비들을 통틀어 하나의 노드라고 불리며 재분배 지점 또는 통신 종단점이다. 네트워크를 중간에서 연결해주는 서버

 

  • 인터넷 프로토콜(IP) 역할
    • 지정한 IP 주소(IP Address)에 데이터 전달한다.
    • 패킷(Packet)이라는 통신 단위로 데이터 전달한다.
      • 패킷(Packet) : 패키지(수화물) + 버킷(덩어리)의 합성어
      • 예) IP 패킷 구조

 

  • 인터넷 프로토콜(IP)의 한계
    • 비연결성
      • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다.
    • 비신뢰성
      • 패킷 전송 도중 서버가 중간에 꺼져서 패킷이 사라지면 알 수 없다.
      • 데이터가 크면 끊어서 패킷을 보낸다.(1패킷 약 1500바이트) 끊어서 보낸 패킷들은 서로 다른 노드로 이동할 수 있다. 이로 인해 서버에서 패킷 받는 순서가 기존에 보낸 패킷의 순서와 달라질 수 있고 의도치 않은 결과가 발생할 수 있다.
    • 프로그램 구분 불가
      • 단순히 목적지 주소(IP)만 알고 있고 세부적으로 어디인지는 구체적으로 알지 못한다. 따라서 해당 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 패킷을 어디로 전달할 지 구분할 수 없다.

 

전송 제어 프로토콜(Transmission Control Protocol ,TCP)

  • Ethernet frame은 실제 물리적인 정보가 포함되어있다.
  • 예) TCP/IP 패킷 구조
  • TCP 특징
    • 연결지향적 프로토콜 - TCP 3 way handshake(가상 연결)
      클라이언트와 서버가 연결이 되면 메시지를 전송한다. 위의 그림은 논리적으로만 연결된 상태이며 패킷 전송 시 지나는 각 노드들이 실제로 연결되었는지는 알 수 없다.
    • 데이터 전달 보증
      • 패킷이 중간에 손실이 된 경우에도 알 수 있다.
    • 서버에 도착하는 패킷 순서를 보장한다.
    • 신뢰할 수 있는 프로토콜이라 불린다.
    • 프로토콜 자체에서 정의된 필수로 거쳐야하는 과정(신뢰성을 확보하기 위해 필요로 하는 동작)이 존재하고 이미 필요에 의해 추가된 많은 옵션들이 자리를 차지하고 있기 때문에 수정하기 어렵다.
      • 최적화 및 커스터마이징 하기 어렵다.

 

사용자 데이터그램 프로토콜(User Datagram Protocol, UDP)

  • UDP 특징
    • 인터넷 프로토콜(IP)에 PRO와 체크섬(데이터검증용) 정도만 추가되었다.
    • 비 연결지향적 프로토콜
    • 데이터 전달을 보증 하지 않는다.
    • 서버에 도착하는 패킷 순서를 보장 하지 않는다.
    • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠르다
    • IP에 기능이 거의 추가되지 않은 하얀 도화지 같은 상태이기 때문에 최적화 및 커스터마이징이 용이하다.
      • 필요로 하는 기능만 추가할 수 있다.
      • 애플리케이션에서 추가 작업 필요하다.

 

포트(PORT)

  • 사전적의미: 배가 도착하는 항구
  • 인터넷 프로토콜(IP)만 가지고는 목적지에 여러 애플리케이션이 동작하고 있다면, 패킷을 어디로 전달 해야하는지 알 수 없다. 한 번에 둘 이상 연결해야 할 때 목적지에서 어느 애플리케이션의 패킷인지를 구분하기 위해 포트(PORT) 개념을 사용한다.
  • 포트 번호
    • 0 ~ 65535 : 할당 가능
    • 0 ~ 1023 : 잘 알려진 포트, 사용하지 않는 것이 좋다.
      • FTP - 20, 21
      • TELNET - 23
      • HTTP - 80
      • HTTPS - 443

 

도메인 네임 시스템(Domain Name System, DNS)

  • 전화번호부에 비유하기도 한다.
  • 도메인 명을 IP 주소로 변환하는 역할을 한다.
  • IP는 기억하기 어렵고, 변경될 수 있다. DNS를 사용하면 기억하기 어렵고 변경되는 IP를 도메인 명으로 접근 할 수 있다.
    • 만약, IP가 변경된다면 변경된 IP로 접근하기 위해 해당 도메인의 IP를 갱신해주어야 한다.

[참고자료]

모든 개발자를 위한 HTTP 웹 기본 지식, 김영한

HTTP/3는 왜 UDP를 선택한 것일까?

반응형

+ Recent posts