인터넷 통신 프로토콜 이해
일반적으로 _통신 프로토콜_은 두 개 이상의 통신 시스템 엔티티에서 정보를 전송할 수 있도록 허용하는 규칙의 시스템입니다. 인터넷에는 많은 상황을 다루기 위한 다양한 프로토콜이 있습니다. 웹 기반 애플리케이션 및 프로그래밍 인터페이스를 작성할 때 소프트웨어 개발자는 일반적으로 다음 세 가지 통신 프로토콜을 사용하여 네트워크의 상태 및 네트워크에서 데이터 패킷이 이동되는 방법을 설명합니다.
- RFC 792에 정의된 인터넷 프로토콜 스위트의 일부인 ICMP(Internet Control Message Protocol)
- TCP(Transmission Control Protocol)
- UDP(User Datagram Protocol)
API 호출의 특정 구현에 사용되는 프로토콜은 네트워크의 전체 동작에 영향을 줄 수 있습니다. 따라서 그들 사이의 기본적인 차이를 이해하는 것은 가치가 있다. 자세한 정보가 필요한 경우 프로토콜에 대한 자세한 설명이 있는 많은 좋은 기사들을 인터넷에서 찾을 수 있습니다.
ICMP
ICMP는 _제어 프로토콜_이며, 이는 네트워크 자체의 상태에 대한 정보를 전달하도록 디자인되었음을 의미합니다. 이 항목은 기본적으로 네트워크에 대한 네트워크 계층(OSI 계층 3) 오류 보고 및 오류 제어 프로토콜입니다. 실제 사용되고 있는 ICMP의 가장 잘 알려진 예는 ping
및 traceroute
유틸리티입니다. ping
유틸리티는 ICMP를
사용하여 프로브 메시지의 응답성 및 전체 왕복 시간에 대해 원격 호스트를 프로빙합니다. traceroute
유틸리티는 ICMP를 사용하여 ICMP 패킷이 대상으로 이동할 때 사용하는 네트워크 라우트를 발견하고 추적합니다.
포트 번호가 계층 4 (전송 계층) 구성이기 때문에 개발자는 ICMP 패킷에 연관된 TCP 또는 UDP 포트 번호가 없음을 알아야 합니다.
TCP 및 UDP
TCP (Transmission Control Protocol) 및 UDP (User Datagram Protocol) 모두 OSI 계층 4전송 프로토콜입니다. 이러한 프로토콜은 실제 데이터를 전달하는 데 사용됩니다. 개발자의 관점에서 TCP와 UDP의 주요 차이점은 패킷 순서를 처리하는 방법입니다.
TCP는 연결 지향 프로토콜이며, 전송된 모든 패킷이 올바른 순서로 대상에 도달하도록 보장합니다.
또는 UDP는 연결이 없는 프로토콜입니다. 통신은 데이터그램 지향이므로 단일 데이터그램에서만 무결성이 보장됩니다. 데이터그램이 대상에 도달하여 순서에 맞지 않게 도착하거나 전혀 도착하지 않을 수도 있습니다.
일반적으로 UDP는 실시간 통신에 사용되며, 적은 비율의 패킷 손실이 TCP 연결의 오버헤드보다 선호됩니다.