计算机网络OSI参考模型
各层的数据格式为
OSI参考模型共为七层,从上至下是:应用层、表示层、会话层、传输层、网络层、数据链路层以及物理层。数据链路层又可分为LLC逻辑链路子层以及MAC介质访问控制子层。
数据从一个主机到另一个主机传输过程
当网络中的两台计算机要进行通信时,数据由发送端的应用层向下,逐层传送,而且每一层都为原始数据添加报头(有的层除增加报头外,还需要添加报尾),这也称为数据封装的过程。当封装好的数据到达物理层后,就会根据连接两台设备所使用的物理介质类型,将数据帧的各个比特转换为电压、光源、无线电波等物理层信号,通过中间网络设备,发送端的数据会被送达接收端的物理层。
在接收端,数据的还原需要进行一个封装的反过程,从物理层向上直到应用层,随着数据逐层向上传递,协议数据单元的报头及报尾被一层层剥离。最终实现了数据从发送端到接收端的传递。
数据的封装与解封装
数据在传输过程中被层层封装
常用网络通信协议结构图
数据包
包(Packet)是TCP/IP协议通信传输中的数据单位,一般也称“数据包”。有人说,局域网中传输的不是“帧”(Frame)吗?没错,但是TCP/IP协议是工作在OSI模型第三层(网络层)、第四层(传输层)上的,而帧是工作在第二层(数据链路层)。上一层的内容由下一层的内容来传输,所以在局域网中,“包”是包含在“帧”里的。
简单的说,你上网打开网页,这个简单的动作,就是你先发送数据包给网站,它接收到了之后,根据你发送的数据包的IP地址,返回给你网页的数据包,也就是说,网页的浏览,实际上就是数据包的交换。
1、数据链路层对数据帧的长度都有一个限制,也就是链路层所能承受的最大数据长度,这个值 称为最大传输单元,即MTU。以以太网为例,这个值通常是1500字节。
2、对于IP数据包来讲,也有一个长度,在IP包头中,以16位来描述IP包的长度,也就是说, 一个IP包,最长可能是65535字节。
3、结合以上两个概念,第一个重要的结论就出来了,如果IP包的大小,超过了MTU值,那么就需要–分片,也就是把一个IP包分为多个,这个概念非常容易理解,一个载重5T的卡车,要拉10T的货,它当然就得分几次来拉了。
4、IP分片是很多资料常讲的内容,但是我倒是觉得分不分片其实不重要,重要的是另一个东西。一个数据包穿过一个大的网络,它其间会穿过多个网络,每个网络的MTU值是不同的。我们可以设想,如果 接受/发送端都是以太网,它们的MTU都是1500,我们假设发送的时候,数据包会以1500来封装,然而,不幸的是,传输中有一段X.25网,它的MTU是576,这会发生什么呢?我想,这个才是我们所关心的。 当然,结论是显而易见的,这个数据包会被再次分片,咱开始用火车拉,到了半路,不通火车,只通汽车,那一车货会被分为很多车……仅此而已,更重要的是,这种情况下,如果IP包被设置了“不允许分片标志”,那 会发生些什么呢?对,数据包将被丢弃,然后收到一份ICMP不可达差错,告诉你,需要分片!这个网络中最小的MTU值,被称为路径MTU,我们应该有一种有效的手段,来发现这个值。
来源:CSDN
作者:luuJa_IQ
链接:https://blog.csdn.net/luuJa_IQ/article/details/104101999