网络基础——数据链路层&ARP

阿鲤在之前已经把应用层,传输层,网络层都总结分享了;但是还差链路层,今天补上

在说链路层之前,让我们先认识一下以太网

①:以太网不是一种具体的网络结构,而是一种技术标准;即包含了数据链路层的内容,也包含了一些物理层的内容;eg:网络拓扑结构,控制访问方式,传输速率等;

②:例如以太网中的网线必须使用双绞线;传输速率有10M,100M,1000M等

③:以太网是当前应用最广泛的局域网技术;和以太网并列的还有令牌环网,无线LAN等

介绍了这么多,那么以太网帧的格式是怎样的?

①:源地址/目的地址:指的MAC地址(网卡的硬件地址),长度是48位,在网卡出厂时就固定化了

②:类型:IP,ARP,RARP

③:CRC:校验和

ok,我们大致知道了以太网帧的格式,接下来让我们具体看看MAC地址

①:mac地址是用来标识数据链路层中相连的节点的;

②:长度为48位,也就是6字节;一般使用16进制加上冒号的形式来表示;eg:08:00:27:03:fb:19

③:mac地址在网卡出厂的时候就确定了,不能修改。mac地址是唯一的,有的虚拟机中可以修改,但是虚拟机中的mac地址不是真实的,可能会产生冲突。

注意:在网络通信中,ip地址是用来标识起点和重点的;而mac地址使用来标识每一个区间的起点和终点的

ok,我们了解了MAC地址,再让我们看看以太网帧中的数据

MTU就相当于我们在发快递时对包裹尺寸的限制;

①:以太网帧中的数据长度规定,最小46字节,最大1500字节;ARP数据包的长度不够46字节,需要在后面填充

②:最大值1500称为以太网的最大传输单元MTU,不同的网络类型有不同的MTU

③:如果一个数据包的大小超过了MTU,就需要在链路层对数据进行分包

④:不同的数据链路层标准的MTU是不同的

我们了解了MTU,那么MTU对tcp,udp这些网络层的协议会有什么影响呢?对ip协议又有什么影响呢?

MTU对ip协议的影响:

由于MTU的限制,对于较大的ip包会进行分包

①:将较大的ip包分成多个小包,并且给每个小包打上标签(ip协议中的标识)

②:每个小包的ip协议头的3位标志字段,进行分片标志(第一位为0,第二位为1,第三位为结束标志)

③:接收端收到之后会对数据进行重组;如果重组失败,就会丢弃,而且ip不会负责数据重传

MTU对UDP协议的影响:

①:udp协议规定的数据不能超过1472(1500-20(ip首部)-8(udp首部));若已超过这个大小,就会进行分片;分片就会增加丢包的几率;所以要控制udp数据的大小,小于1472

MTU对TCP协议的影响:

①:tcp协议 单个数据报的长度是通过MSS来控制的;在连接建立的时候,双方会协商这个MSS的大小

②:mss的大小是不可能大于mtu的,因为mtu的大小=ip头部大小 + tcp头部大小 + MSS(数据)

ok,说了这么多,那么怎样在linux中查看硬件地址会MTU呢?

ifconfig

说了mac地址,MTU,以太网协议帧格式,都是为了看链路层数据的发送方式打铺垫的。

在网络传输中,ip地址使用来标识源端和目的端的,而mac地址是用来标识每一个节点的。

为了将ip地址和mac地址关联起来;在以太网中使用ARP协议对ip地址和mac地址进行映射;

ARP协议的作用

在网络通信的时候,源主机的应用程序知道目的主机的ip地址和端口号,却不知道目的主机的硬件地址;而数据报在被网卡收到之后,如果数据报的硬件地址和网卡地址不符,就会被丢弃。

因此在通讯前必须获得目的主机的硬件地址;ARP协议就是解决这个问题的。

ARP的工作流程

①:源主机发送ARP请求,询问对应ip地址的mac地址;并将这个请求广播到本地网段(mac地址的FF:FF:FF:FF:FF:FF标识广播)

②:目的主机接受到广播的ARP请求,发现其中的ip地址与本机相符,则发送一个ARP应答包给源主机,将自己的硬件地址填写在应答包中;

③:每台主机都维护一个ARP缓存表,可以用arp -a命令查看。缓存表中的表项有过期时间(一般为20分钟)。这个的原因是因为ip地址是动态分配的,会改变。

APR数据报格式:

 

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

协议类型:指要转换的协议类型,0X800为ip协议

硬件地址长度:对于以太网,就是6字节

协议地址长度:对于ip协议就是4字节

op字段:1标识ARP请求,2表示ARP应答

 

好了,以上就是阿狸对链路层学习的总结了,希望可以帮助到大家;若有误,请慷慨指出。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值