为什么存在UDP?允许用户发送原始IP数据包有什么问题?

时间:2017-11-07 20:41:17

标签: networking udp ip

当然我们需要指定源端口和目标端口,但除此之外,为什么我们只需要发送具有相同负载的IP数据包就需要UDP?

我不是在问为什么我不能这样做。我想知道UDP协议的必要性。

2 个答案:

答案 0 :(得分:2)

对于原始IP数据包,每个IP地址只能有一个专用侦听套接字。 IP地址标识网络层上的主机,使流量能够到达某个物理设备,即“主机”。

只要您想在同一主机上拥有不同的“目的地”(即应用程序),就需要像TCP和UDP那样的 ports 概念。

出于这个原因,我们需要一个IP顶级协议;这与分层网络堆栈模型很好地对齐。 UDP几乎是支持端口的最小协议。

答案 1 :(得分:2)

  

为什么我们只需要发送相同的IP数据包就需要UDP   有效载荷?

  1. IP数据包没有端到端的错误检测机制。 IPv4具有仅覆盖其标头的校验和,因此仅​​通过第2层错误检测来保护数据,这不是端到端的。 UDP和TCP都使用校验和来检查数据的端到端错误。

  2. 一旦目标机器收到这样的IP数据包,应该将哪个应用程序传递给它?我们需要一种方法来识别特定消息的目标应用程序(实际上是套接字,但从不介意)。 UDP和TCP使用端口号执行此操作。没有端口号类似于将邮政包裹发送到公寓楼而没有指定应该给予哪个公寓。