每日一课&(数据链路层与IP包头)(每日e课)

网友投稿 339 2022-09-21


每日一课&(数据链路层与IP包头)(每日e课)

第三课:数据链路层与IP包头。

数据链路层:传输数据帧,数据帧的报文格式是:D.MAC、S.MAC、TYPE、DATA、FCS。日常说的二层通信实际上指的就是在数据链路层的通信,数据链路层通信是基于源MAC学习,基于目的MAC转发。数据链路层的主要作用就是提供MAC寻址。

数据帧的封装过程:在数据包中添加上帧头--目的MAC,源MAC,TYPE类型和帧尾FCS校验字段,将数据包封装成一个数据帧。数据的封装过程是由里到外,也就是从上层到下层;数据解封装是从外到里,也就是从底层到高层。

报文字段详解:

目的MAC:数据帧中的目标网络的MAC地址,也就是需要将数据传给该MAC地址。

源MAC:数据帧中的源MAC地址,当数据传递给对方时,对方可以根据数据帧中的源MAC地址进行数据回复。

TYPE:类型字段,标识上层使用的是何种协议,比如数据链路层的上层是网络层,如果在TYPE字段中显示值为0x0800则表示在上层使用的是IP协议则上层是网络层。如果是0x0806表示上层使用的是ARP协议,早期网络中并没有定义ARP属于哪层,只能说是数据链路层之上,但是不属于网络层。

DATA:数据信息,上层进行封装需要传输的数据信息。

FCS:帧校验字段,在接收到一个数据帧时先进行数据帧的校验(查看数据是否被篡改或损坏),校验通过后再进行处理。

MAC地址分类:在第一个节字中的第8位是0则表示该MAC是单播MAC。第8位是1则表示该MAC是组播MAC,如果MAC的6个字节全为F则表示MAC是广播形的。

IP包头报文格式:

Vs:版本号4个(bit),现在使用的是IPV4,使用二进制表示就是  0000 0100;以后会是IPV6 0000 0110.

Header length:头部长度4(bit),代表IPV4的包头长度。

DSF: 8个bit。也称为TOS,在早期使用3bit进行取值,可以提供0-7共8种取值,由于8种取值无法满足使用则扩展到6bit,0-63共64种取值,该取值类型称为DSCP值。只要用于QOS进行区分服务的。

Total length:总长度16bit,代表整体报文的总长度。总长度-包头长度=数据长度。

Identification:标志字段共16bit,用来标记同一组数据包。数据在分片后就需要使用到该字段标识出相同的一组数据包。

Flags:标示符3bit,里面有三种类型,有一种用于保留没被使用,另外两种是 DF和MF,DF置1后表示该数据包不允许分片。MF置1后表示该数据包后面还有更多分片。

Fragment offse:段偏移量13bit,用来标记该分片排在整个数据包中哪个位置。比如MTU规定了最大数据包为1500,那么发送数据时IP包头占了20字节也就是数据只能发1480,当该字段值显示为4440则代表偏移了3个1480,也就是在分片中排在第4,没有偏移的分片0排在第一,偏移了1480排第二,偏移了2960排第三。

TTL:生存时间8bit,一种防环机制,每经过一台三层设备就-1,默认是255.

Protocol:协议号8bit,用来表示上层使用的是什么服务,如网络层的上层是传输层,那这个字段就用来表示这个数据包在传输层是使用TCP还是UDP,如果显示为6则表示数据包在传输层使用的是TCP协议,如果是17则表示使用的是UDP协议。

Header Checksum :校验和16bit,这个和数据链路层的数据帧的校验不一样,数据帧是校验整个数据,而IP报文中这个字段只是校验IP包头。

源IP:32bit,发送端的源IP地址,在网络层是通过IP寻址方式进行数据通信,与数据链路层的源MAC地址使用方式类似。

目的IP:32bit,接收端的IP地址,在网络层是通过IP寻址方式进行数据通信,与数据链路层的目的MAC地址使用方式类似。

IP Opti:可选项,用来封装一些其他数据。最大时占40个字节,IP包头是20字节,也就是整个IP包头就是20-60个字节。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringCloud @FeignClient参数的用法解析
下一篇:每日一课&(OSI七层模型数据封装全过程与物理层)(每日e课英语怎么样)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~