计算机网络

Socket详解(二)

2019-04-17  本文已影响1人  羞涩的老湿鸡

上一篇文章介绍了TCP/IP四层中的传输层,本篇文章介绍网络层。

何为网络层?(互联网层)


网络层实现数据包的选路和转发,网络层位于传输层的下一层,传输层的数据会交由网络层来处理,网络层会对数据进一步进行处理。会在传输层数据包的外层再套一层,加入源IP与目标IP。结构大概如下:

{IP包{TCP或UDP包{Data}}}

上文已经讲到传输层有TCP/UDP两大协议,而在网络层中主要有IP,ICMP,RIP,OSPF,BGP,IGMP等协议,本文中主要讲解IP协议。

网络层-IP协议


网络层最核心的协议就是IP协议(Internet Protocol)IP协议根据数据包的目标IP,将数据传输给目标主机。如果数据包不能直接发送给目标主机,那么IP协议会查找合适路由器进行转发,最终将数据包交付给目标主机。传输流程可参考之前文章以太网简单介绍

IP包的数据长度为64kb(65535)这是因为一个IP包头用2个字节来表示报文长度,而2个字节能表示的最大长度为1111 1111 1111 1111 = 0XFF = 65535

IP协议本身是为上层协议提供分割与重组报文功能的。因此在传输过程中,原则上讲我们没有必要去关心一个包的大小。但是实际上因为分割的IP包要使用标识字段来进行区分,而IP包的标识字段不可能无限长。

在我们的数据传输过程中,为了加快传输速度和浪费不必要的流量。我们可以在开发过程中将报文信息控制在一个包内。使用64KB-IP包头长度-TCP/UDP包头长度,便是我们一个包最大可传输的报文长度。根据业务场景我们可以假设将这个报文长度控制在40KB。这样即可以准确的将一个信令控制在一个包内,又可以方便后期的一个报文扩展。(具体是否需要控制要看实际业务场景)

上一篇下一篇

猜你喜欢

热点阅读