计算机网络基础之数据链路层

目录

数据链路层的作用

以太网

以太网帧格式

理解MAC地址

理解ARP协议

理解MTU


        数据链路层介于物理层和网络层之间,在物理层提供的服务的基础上向网络层提供服务。数据链路层解决的是在局域网内点到点的问题。

 

数据链路层的作用

        两个设备(同⼀种数据链路节点)之间进行数据传递。


以太网

        以太网是⼀种技术标准,既包含了数据链路层的内容, 也包含了⼀些物理层的内容。例如:规定了网络拓扑结构访问控制方式传输速率等。


以太网帧格式

     


理解MAC地址

  MAC地址:

  • 用于识别同一数据链路中互联的节点(识别连接到同一传输介质上的设备 / 标识同一链路中不同计算机的一种识别码)        
  • 长度为48位,即6字节。一般用16进制数字加上冒号的形式来表示,例如08:00:27:03:fb:19.                                                        
  •  Mac地址在网卡出厂时就确定了,不能修改。MAC地址通常是唯一的

理解ARP协议

 ARP协议:从分组数据包的IP地址中解析出物理地址(MAC地址)的协议。(建立了主机IP地址和MAC地址的映射关系

                     它不是⼀个单纯的数据链路层的协议,是介于数据链路层和网络层之间的一个协议。

 

原理:以目标IP地址为线索,用来定位下一个应该接收数据分包的网络设备对应的MAC地址。如果目标主机不在同一个链路上,             可以通过ARP查找下一跳路由器的MAC地址。(ARP只适用于IPv4)

工作机制:ARP是借助ARP请求与ARP响应两种类型的包确定MAC地址的。           

                    

                    

总结:从一个IP地址发送ARP请求包以了解其MAC地址,目标地址将自己的MAC地址填入其中的ARP响应包返回到IP地址,由               此可以通过ARP从IP地址获得MAC地址,实现链路内的IP通信。


理解MTU

        MTU意为最大传输单元 (相当于发快递时对包裹尺寸的限制),是指一种通信协议的某一层上所能通过的最大数据报大小,以字节为单位。大部分网络设备的MTU都是1500。

  • 以太网帧中的数据长度规定最小46字节,最大1500字节。ARP数据包的长度不够46字节,就要在后面补填充位。
  • 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,就需要对数据包进行分片。分片是在网络层进行的。
  • 不同的数据链路层标准的MTU是不同的。在Linux下,MTU的值为1500。  

 

一、MTU对IP协议的影响
       由于数据链路层MTU的限制,对于较大的IP数据包要进行分片。将较大的IP包分成多个小包,并给每个小包打上标签。每个小包IP协议头的16位标识(id)都是相同的。每个小包的IP协议头的3位标志字段中,第2位置为0,表示允许分片,第3位来表示结束标记(当前是否是最后一个小包,是的话置为1,否则置为0)。到达对端时再将这些小包按序重组,拼装到一起返回给传输层。一旦这些小包中任意一个小包丢失,接收端的重组就会失败,但IP层不会负责重新传输数据分片和组装都是在网络层进行

 

二、MTU对UDP协议的影响
        UDP携带的数据一旦超过1472(1500-20(IP首部)-8(UDP首部)),那么就会在网络层分成多个IP数据报。这多个IP数据报有任意一个丢失,都会引起接收端网络层重组失败,这就意味着,如果UDP数据报在网络层被分片,整个数据被丢失的概率就会大大增加。

 

三、MTU对TCP协议的影响
        和UDP一样,TCP的一个数据报也不能无限大,还是要受制于MTU。TCP的单个数据报的最大消息长度,称为MSS。

        TCP在建立连接过程中,通信双方会进行MSS协商。最理想的情况,就是MSS的值正好是在IP不会被分片处理的最大长度,即1460(1500-20(IP首部)-20(TCP首部))。双方在发送SYN的时候,会在TCP头部写入自己能支持的MSS值,然后双方得知对方的MSS值之后,选择较小的作为最终的MSS。MSS的值在TCP首部的40字节变长选项中。

 

注:Linux下,使用ifconfig命令,即可查看IP地址、MAC地址和MTU等。
 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章