03.01 既然IP协议也能够进行数据的无连接不可靠传输服务,为什么还需要UDP协议?

Pv3BJ


“我是哟哟吼说科技,专注于数据网络的回答,欢迎大家与我交流数据网络的问题”

如题,IP协议能进行数据的无连接不可靠的传输服务,但IP Header协议字段中只有一个字节,最多只能提供255种协议的标识,而这些大多又被特定的协议所占用,留给终端用户的空间非常小;而UDP可以提供更大的端口空间来满足此需求,UDP的端口号只占用两个字节,除去系统保留的1-1023端口外,为用户预留的端口有60000多个,因此能完全满足需求。

UDP报文的格式如下:

通过UDP报文的结构可以看出,UDP是通过16位源端口号和目标端口号来处理应用程序之间的区分的,16位UDP校验和可以完成传输层的校验,对出错的数据包直接就行丢弃处理。

那么IP协议的校验能完成此功能么?

不能。IP协议只校验IP报头,不参与数据的校验,整个数据包的校验是在传输层来完成的。

由于网络层和传输层在操作系统内实现层次不同,目前操作系统也不允许用户直接去操作IP协议,而是通过完成传输层协议的封装后,进而由操作系统进行网络层的封装、校验和计算过程。

因此,IP协议是无法代替UDP协议的。

欢迎大家多多关注我,在下方评论区说出自己的见解。


哟哟吼说科技


IP协议本身是一个统称

IP协议中的第三层协议是路由

路由就是指怎么把数据包能运送到目的地

举例说明,你想到北京天安门怎么样?能够到达这个过程就是路由

协议中的第四层协议是传输方式

传输方式就是指怎么样把数据包传送到对方,是可靠的传输还是不可靠的传输

我们把tcp叫做可靠的连接

举例说明,你给你妈打电话说:妈,我中彩票500万了,你妈给你个回复:孩子洗洗睡吧!

这个过程就是可靠的传输,就是指你给对方传输了数据对方会给你个回应(tcp有确认机制)

我们把udp叫做不可靠的连接

举例说明,你给你爸打电话说:爸,我中彩票500万了,结果你爸直接电话就挂了。

这个过程就是不可靠传输,就是指你发送的数据对方到底有没有收到你是不知道得(utp没有确认机制)


网络工程师成长日记


最近一直在学习TCP/IP协议的相关资料,正好可以针对此问题,说一下个人的一些想法。

首先,说明一下UDP协议和IP协议的关系。

如上图所示,UDP位于IP协议的上层,实现了对IP协议的封装。

第二,看一下两个协议数据格式的区别。

图1

图2

图3

通过比对图1和图2,可以看到UDP相对IP协议显著多了端口号字段。通过图3可以看到IP协议将UDP协议包在了里面。

第三、端口的作用。把主机比作一个大楼的话,那么端口号就代表这个大楼里面的房间。端口最主要的作用的是与应用绑定在了一起,不同的应用使用不同的端口号。IP协议是将数据从一个大楼发送到了另一个大楼。而有了端口号,可以知道数据是从这个大楼的A房间发送到了另一个大楼的A房间。这个是IP协议无法做到的。实际上我们知道每个大楼里面是有多个房间的,就好比一个主机上是有多个应用。例如SNMP\\DNS等。

综合来说,IP协议还是无法代替UDP协议的。

本人具有多年的java开发经验,熟悉多种框架,熟悉网络编程,熟悉java安全编程,熟悉大数据,熟悉多种安全协议,有兴趣的同学可以互相关注,互相学习!!!


代码饲养员天齐


简明扼要的回答:

IP协议和UDP协议是各司其职:

建议楼主多看看TCP/IP协议簇的书籍。


  • IP协议干不了UDP协议的活

  • UDP协议也干不了IP协议的活

  • 关系

IP协议是UDP协议的载体,也就是说IP协议承载着UDP协议,假如IP协议不存在,那UDP协议也完全丧失了能力。

但能力上它是!=数学上的包含关系:所以,IP协议不能干UDP协议的活。

  • 正确的关系图,即使先后承载的关系



  • IP协议


IP协议能力

IP protocol 的能力是标识网络上的一个主机。你可以理解为IP protocol= IP address

即它只提供地址的能力。

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

但是只要你想在同一个主机上有不同的“目的地”(即应用程序),你就需要像TCP和UDP 这些protocol。


  • UDP protocol

UDP协议能力

UDP协议具有的端口概念,来解决同一个主机上有不同的“目的地”(即应用程序)。

UDP是支持端口的最小协议。

诞生的意义

一旦目标机器收到这样一个raw IP数据包,它应该将它传递给哪个应用程序? 我们需要一种识别特定消息的目标应用程序即 UDP和TCP这样的,通过端口号来完成目标地址的分发。

一旦数据包使用其IP protocol 到达主机,数据包需要被分配给该机器上的其中一个应用程序。 要确定哪个应用程序应该获取数据包,它需要基于端口的解复用逻辑。 UDP具有端口信息,IP用它将数据包传送到适当的应用程序。

举例,快递

设想一下,你在某里,或者某东买了一个东西:

IP地址=IP protocol 是建筑物的街道地址。

UDP protocol = 你所住的房间号即对应udp+端口号。


欢迎关注,一起进步


分享到:


相關文章: