인터넷 통신 프로토콜 이해

일반적으로 _통신 프로토콜_은 두 개 이상의 통신 시스템 엔티티에서 정보를 전송할 수 있도록 허용하는 규칙의 시스템입니다. 인터넷에는 많은 상황을 다루기 위한 다양한 프로토콜이 있습니다. 웹 기반 애플리케이션과 프로그래밍 인터페이스를 만들 때 소프트웨어 개발자는 일반적으로 이 세 가지 통신 프로토콜을 사용하여 네트워크의 상태와 데이터 패킷이 네트워크를 통해 이동하는 방식을 설명합니다:

  • RFC 792에 정의된 인터넷 프로토콜 스위트의 일부인 ICMP(Internet Control Message Protocol)
  • TCP, Transmission Control Protocol
  • UDP, User Datagram Protocol
  • TCP-UDP-ICMP, 모두 IPv4 iANA에 나열된 프로토콜

API 호출의 특정 구현에 사용되는 프로토콜은 네트워크의 전체 동작에 영향을 줄 수 있습니다. 따라서 그들 사이의 기본적인 차이를 이해하는 것은 가치가 있다. 자세한 정보가 필요한 경우 프로토콜에 대한 자세한 설명이 있는 많은 좋은 기사들을 인터넷에서 찾을 수 있습니다.

ICMP

ICMP는 _제어 프로토콜_이며, 이는 네트워크 자체의 상태에 대한 정보를 전달하도록 디자인되었음을 의미합니다. 이 항목은 기본적으로 네트워크에 대한 네트워크 계층(OSI 계층 3) 오류 보고 및 오류 제어 프로토콜입니다. 실제 사용되고 있는 ICMP의 가장 잘 알려진 예는 pingtraceroute 유틸리티입니다. ping 유틸리티는 ICMP를 사용하여 프로브 메시지의 응답성 및 전체 왕복 시간에 대해 원격 호스트를 프로빙합니다. traceroute 유틸리티는 ICMP를 사용하여 ICMP 패킷이 목적지까지 이동할 때 취하는 네트워크 경로를 검색하고 추적합니다.

개발자가 알아야 할 것은 포트 번호는 계층 4 (전송 계층) 구조이므로 ICMP 패킷에 연결된 TCP 또는 UDP 포트 번호가 없다는 점입니다.

TCP 및 UDP

Transmission Control Protocol ( TCP ) 및 User Datagram Protocol ( UDP ) 모두 OSI 계층 4 전송 프로토콜입니다. 이러한 프로토콜은 실제 데이터를 전달하는 데 사용됩니다. 개발자의 관점에서 볼 때 TCP 와 UDP 의 주요 차이점은 패킷 순서를 처리하는 방식입니다.

TCP는 연결 지향 프로토콜이며, 전송된 모든 패킷이 올바른 순서로 대상에 도달하도록 보장합니다.

또는 UDP는 연결이 없는 프로토콜입니다. 통신은 데이터그램 지향이므로 단일 데이터그램에서만 무결성이 보장됩니다. 데이터그램이 대상에 도달하여 순서에 맞지 않게 도착하거나 전혀 도착하지 않을 수도 있습니다.

일반적으로 UDP는 실시간 통신에 사용되며, 적은 비율의 패킷 손실이 TCP 연결의 오버헤드보다 선호됩니다.

전체

이제 IANA에 등록된 모든 IPv4 프로토콜을 NACL 및 보안 그룹 규칙에 적용할 수 있습니다. 이를 통해 온프레미스, 멀티클라우드 및 클래식 인프라에서 TCP, UDP, ICMP 외부의 프로토콜을 활용하는 사용자 지정 토폴로지 및 사용 사례를 가져올 수 있습니다.