数据链路层

打印 上一主题 下一主题

主题 808|帖子 808|积分 2424

个人主页:Lei宝啊 

愿所有美好准期而遇


目录
以太网
以太网帧格式
Mac地址
对比IP地址和Mac地址
MTU
MTU对IP协议的影响
互换机
ARP协议



以太网

以太网是目前应用最广泛的局域网技能,和以太网并列的还有令牌环网以及无线LAN等。
以太网帧格式


第一行就是以太网帧格式,目的mac地址,源mac地址,类型指的是哪种协议将数据交给了他,他将来分用时,又要将数据交付给谁。这个类型字段有三种值,0800对应IP数据报,0806对应ARP协议,8035对应RARP协议。
Mac地址

Mac地址用来识别数据链路层中相连的节点,长度为 48 位, 及 6 个字节. 一样平常用 16 进制数字加上冒号的形式来表现(例如: 08:00:27:03:fb:19),在网卡出厂时就确定了, 不能修改. mac 地址通常是唯一的。
对比IP地址和Mac地址

IP地址描述的是起点和尽头,目的地址在传输过程中是不会改变的,源IP地址因为NAT技能,在传输过程中会替换为WAN口IP。
Mac地址在传输过程中,目的地址和源Mac地址不停会发生变革。
MTU

MTU叫做数据链路层的最大传输单元,不同的网络类型有不同的MTU,最大值1500称为以太网的最大传输单元。
简单来说,就是数据链路层要求以太网帧的数据长度最小是46字节,最大不超过1500字节,假如一个数据包交到数据链路层时超过了1500字节,就需要对数据进行分片。
MTU对IP协议的影响

我们上篇文章说到IP协议时,有三个字段没有解释,这里我们就可以解释那三个字段了。

当网络层向数据链路层交付的数据包大于他的MTU时,网络层就会进行分片,怎么分片?

IP报头的16位标识,用来标识主机发送的报文,假如这个报文被分片,那么每一片的这个字段都是相同的。
3位标志,第一位保留,第二位为1表现禁止分片,这时间假如报文长度超过MTU,那么这个报文就会被直接抛弃。第三位表现更多分片,假如分片了,那么最后一片报文设置为0,其他分片的报文设置为1.
13位片偏移,实在就是分片相对于原始IP报文开始处的偏移,实际偏移的字节数是这个字段乘以8,因此,除了第一个报文,其他报文的长度必须是8的整数倍,否则除8就大概除不清,报文也就不连续了。
我们从接收方角度来看看,报文是如何被组装的:

这里也就表现出了,为什么在Tcp传输层,滑动窗口中的数据不是一次全发到下层,而是分批次发送,就是为了减少下层的分片,只管不使分片,因为分片是有危害的,一个就是增长了丢包概率,一个就是丢片后需要全部重传。
   MTU     UDP   协议的影响      一旦   UDP   携带的数据超过   1472(1500 - 20(IP   首部  ) - 8(UDP   首部  )),   那么就会在网络层分成多个 IP   数据报  .      这多个   IP   数据报有任意一个丢失  ,   都会引起接收端网络层重组失败  .   那么这就意味着,   假如   UDP   数据报在网络层被分片  ,   整个数据被丢失的概率就大大增长了  .        MTU    对于    TCP    协议的影响          TCP    的一个数据报也不能无穷大   ,    还是受制于    MTU. TCP    的单个数据报的最大 消息长度,    称为    MSS(Max Segment Size);          TCP    在创建连接的过程中   ,    通信双方会进行    MSS    协商   .然后接纳min(send_MSS, recv_MSS)。         最理想的环境下   , MSS    的值恰好是在    IP    不会被分片处置惩罚的最大长度   (   这个长度仍然是受制于数据链路层的 MTU).          双方在发送    SYN    的时间会在    TCP    头部写入自己能支持的    MSS    值   . 然后双方得知对方的 MSS 值之后   ,    选择较小的作为最终    MSS.          MSS    的值就是在    TCP    首部的    40    字节变长选项中   (kind=2)             查察硬件地址和     MTU                  利用      ifconfig      下令     ,      即可查察      ip      地址     , mac      地址     ,      和      MTU;            互换机

    我们说在局域网主机间通信时,大概会发生数据碰撞,从而有碰撞避免策略,同时,一台主机发送消息,局域网内所有主机都会收到这个报文,只是丢不抛弃的题目,那么互换机就用来分别碰撞域。
    当互换机中没有记录主机的位置时,同一侧的主机相互发送消息,另一侧的主机仍然会收到这个报文,然后抛弃,接下来,这两个主机的位置就被互换机记录下来,位于互换机的同一侧,下次他们再相互发送消息,这个报文不会到互换机的另一侧,直接就被拦截了,纵然他们发生了数据碰撞,也不会影响到另一侧。
    ARP协议

    现在,整个网络通信,我们只剩下最后一个题目,那就是,在局域网下,以太网添补目的mac地址时填什么?他怎么知道对方的mac地址?
    这就需要ARP协议将IP地址转换为Mac地址,怎么转换呢?
   

    也就是说,主机A要向主机B发送消息,就在局域网中进行广播,向每一台主机发送ARP哀求,当主机B收到这个ARP哀求,与自己的IP地址核对,发现是发给自己的,就会发回ARP应答,也是这个格式,双方也就知道相互的Mac地址了。
    但是每一次发送消息都要发送ARP哀求吗?不是,只是第一次发送时,之后就会将目标的IP地址和Mac地址创建映射关系进行保存。
   

      

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

渣渣兔

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表