了解因特网通信协议
通常,通信协议 是允许通信系统的两个或多个实体传输信息的规则系统。 互联网有一套庞大的协议,可以覆盖许多情况。 在创建基于 Web 的应用程序和编程接口时,软件开发者通常使用以下三个通信协议来描述网络的状态以及在网络中移动数据包的方式:
- ICMP(互联网控制消息协议) Internet Control Message Protocol,是RFC 792中定义的互联网协议套件的一部分。
- TCP, Transmission Control Protocol
- UDP, User Datagram Protocol
- TCP-UDP-所有 IPv4 IANA 中列出的协议
用于特定实现 (例如,API 调用) 的协议可能会影响网络的整体行为。 因此,了解它们之间的基本差异是值得的。 如果您需要更多信息,许多好的文章都可以在互联网上获得协议的详细描述。
ICMP
ICMP 是 控制协议,这意味着它旨在传递有关网络本身状态的信息。 它本质上是网络的 网络层 (OSI 层 3) 错误报告和错误控制协议。 实践中最知名的 ICMP 示例是 ping 和 traceroute 实用程序。 ping 实用程序使用 ICMP 来探测远程主机,以获取探测器消息的响应能力和总体往返时间。 traceroute 实用程序使用
ICMP 来发现和跟踪 ICMP 包在前往其目标时所采用的网络路由。
开发人员需要知道的是,ICMP 数据包没有与之相关的 TCP 或 UDP 端口号,因为端口号是第 4 层 (传输层 )的结构。
TCP 和 UDP
Transmission Control Protocol ( TCP ) 和 User Datagram Protocol ( UDP ) 都是 OSI 第 4 层传输协议。 这些协议用于传递实际数据。 从开发人员的角度来看,TCP 和 UDP 的主要区别在于它们如何处理数据包顺序。
TCP 是一种面向连接的协议,它保证所有发送的数据包按正确的顺序到达目的地。
另外,UDP 也是一种无连接协议。 通信以数据语法为导向,因此仅在单个数据报上保证完整性。 数据报到达目标时可能无法按顺序到达,或者可能根本无法到达。
通常情况下,UDP 用于实时通信,在这种情况下,小比例的数据包丢失率比 TCP 连接的开销更可取。
任何
您现在 可以将IANA中列出的任何 IPv4 协议应用于网络访问控制列表(NACL)和安全组规则。 这样,您就可以从利用 TCP、UDP 和 ICMP 以外协议的内部部署、多云和经典基础架构中引入自定义拓扑和用例。