TCP/IP四层模型-数据链路层

1.作用:解决同一种数据链路中节点之间数据的传递问题(点到点)

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

3.以太网帧格式:

其中

       目的地址/源地址:网卡的硬件地址;

       类型:指帧协议类型,数据链路层有三种协议类型:IP、ARP、RARP,分别对应类型码0800、0806、0835;

       数据:即经传输层、网络层封装之后的需要要发送的数据,在数据链路层再进行封装,最终以数据帧的格式在链路中传递;

       CRC:CRC校验码

4.MAC地址

      用来识别数据链路层中相连的节点,长度为6byte,48bit,一般使用16进制数字加上冒号的形式来表示

      在网卡出厂的时候就确定了,不能修改,通常情况下都是唯一的。

     特例:虚拟机中的mac地址,不是真正的mac地址,可能会有冲突;

               有一些网卡支持用户配置mac地址。

5.ARP协议:建立主机IP地址和MAC地址的相互映射关系。

      网络通讯时如果源主机知道目标主机的IP地址,但是不知道目标主机的MAC地址,那么在传输数据的时候,应该先是由对方的最底层网卡接收数据,而数据包中的硬件地址却不知道,就无法接收。因此在通讯前必须获得目的主机的MAC地址。而ARP协议正好解决了这一问题。

1)ARP数据报格式:

其中:

      硬件类型:链路层网络类型,1表示以太网

      协议类型:指的是要转换的地址类型,0x0800为IP地址

      硬件地址长度:硬件类型的地址长度,硬件类型是以太网的话硬件地址长度为6byte

      协议地址长度:协议类型所占地址长度,IP地址的地址长度为6byte

      op:为1表示是ARP请求,为2表示是ARP应答

      从ARP数据报格式可以看到以太网MAC地址和源MAC地址在以太网首部和ARP请求/应答中个出现了一次,对于链路层为以太网的情况是多余的,但链路层若是其它网络类型就可能有必要了。

2)ARP协议工作流程:

       ⑴源主机发出ARP请求,询问目标主机的硬件地址,并将这个请求广播(以太网帧头部目的主机MAC地址填FF:FF:FF:FF:FF:FF)到本地网段。

       (2)目的主机收到广播的ARP请求,发现其中的IP地址与自己相符,则发送一条ARP应答数据包给源主机,将自己的MAC地址写入以太网帧首部。

3)ARP缓存表:

        每个主机都有维护一个ARP缓存表,缓存表中的表项过期时间为20分钟,过期后想再次获取目的主机mac地址仍需发送ARP请求。

维护缓存表的原因:提高传输效率,不用每次传输数据都请求目的主机的硬件地址。

缓存表表项过期原因:主机的IP地址是一直变更的,若目的主机断线重连,可能IP就是另一个了。

6.MTU

1)定义:数据链路层数据帧中的数据在传输时的最大传输单元称为MTU,不同的网络类型MTU长度不同。

    以太网帧中规定数据长度在46~1500之间,1500就是以太网中的MTU长度。

2)MTU对IP协议的影响

   对于较大的IP数据包(长度超过1680(1500-20))需要进行的分包操作,到达对端时再将这些小包按顺序重组,并拼装到一起返回给传输层;

  一旦这些小包丢失,接收端的重组就会失败,但IP层不会负责重新传输数据。

3)MTU对UDP协议的影响

   一旦UDP数据长度超过1472(1500-20(IP首部)-8(UDP首部)),就会在网络层被分片,分片后有任一IP数据报丢失,都会引起对端网络层的重组失败。

  即:UDP数据报如果在网络层被分片,整个数据丢失率就会大大增加。    

4)MTU对TCP的影响

  受制于MTU,TCP的一个数据报也不能无限大,TCP的单个数据报的最大消息长度称为MSS。

  在TCP建立连接的过程中,通信的双方会进行MSS协商:

        理想状态下,MSS的值正好可以是在IP数据报不会被分片处理的最大长度(受制于MTU);

        双方在发送SYN的时候会在TCP头部写入自己能支持的MSS值,在得知对方的值后取两者中的最小值作为最终MSS;

        MSS的值就位于TCP首部40字节变长选项中(kind)。

5)MSS可以保证在合理的MTU下尽量不分/少分片。

      ifconfig:查看主机的硬件地址(MAC)、MTU和IP地址。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值