天津做网站报价,新网站怎么做排名,广西网站建设介绍,桂林黄页大全桂林本地信息网前言#xff1a;本节内容进入博主讲解的网络层级中的最后一层#xff1a;数据链路层。 首先博主还是会线代友友们认识一下数据链路层的报文。 然后会带大家重新理解一些概念#xff0c;比如局域网交换机等等。然后就是ARP协议。 讲完这些#xff0c; 本节任务就算结束。 那… 前言本节内容进入博主讲解的网络层级中的最后一层数据链路层。 首先博主还是会线代友友们认识一下数据链路层的报文。 然后会带大家重新理解一些概念比如局域网交换机等等。然后就是ARP协议。 讲完这些 本节任务就算结束。 那么下面废话不多说开始我们的学习吧 ps建议友友们先学习上三层在学习本节内容哦 目录
认识报文
局域网
局域网通信原理
如何看待局域网
交换机
MSS和MTU
ARP协议
ARP原理
谈ARP报头
模拟一次过程
ARP周边问题 认识报文 首先, 数据链路层解决的是直接相连的主机之间进行数据交付的问题。 接下来这里有两个问题 1、Mac帧如何做到解包和封装。 2、如何做到分用 对于第一个问题我们mac帧解包采用的是定长报文。所以当我们收到报文时根据定长的报文将报头和有效载荷进行分离。 对于第二个何题如做分用就是根报文里面的一个字段叫做类型这个类型就是记录了报文的类型如果是0800就是数如果时0806那么就是ARP请求如果是8035那么就是RARP请求。
局域网
局域网通信原理 每一台主机H1、H2等等都有它的Mac地址Mac1、Mac2、Mac3.....Mac7。 我们之前说过就此如老师问小王你为什么没交作业其实教室里面的人都听到了只是大部分的人一听目的地址是小王说明不关自己的事情就直接把老师说的报文丢弃了。只有小王收到报文后目的地址是小王自己也是小王那么就知道是发给自己的。然后就拿着报文向上交付。所以局域网通信的过程其实是有很多吃瓜群众的。 就比如上面从Mac1发向Mac7的报文。其实Mac1要向局域网内的每一台主机都发送一份这个报文(数据)。但是只有Mac7收到后不会将报文丢弃。 但是这里就有了一个问题如果一个局域网内的两个主机都发送数据假如H1和H3发送数据。那么在底层当中两台主机发送的数据就一定会发生数据碰撞。并目两台主机能够识别碰撞的信息。检测到了后就实行碰撞避免算法来保证任何时刻只有一台主句在局域网中发送。 并且局域网中主机数量越务发生碰撞的概率太大这也就是为什么我们在人多的地方有时候网会卡顿因为发生数据碰撞概率大一旦发生数据碰撞那么就要实行 碰撞避免算法就要等一等。
如何看待局域网 我们可以把局域网看成多台主机所对应的临界资源。 A主机发送数据数据从上向下进行交付。在网络层先做决策。当我们做完决策我们发现我们就是要发给中间的某一个路由器比如说发给路由器R。这个数据发给路由R的时候一定是数据链路层先收到。然后去掉CRC和报头再由数据链路层向上交付给网络层。然后网络层就得到了一个带有IP报头的报文。 然后如果又要将这个数据发向别的路由器。那么就要将IP报文重新向下交付。所以这个整体的过程就是一个解包然后重新封包的过程。 交换机 随着局域网的主机增多我们会诞生一种新的网络设备。这种设备叫做交换机。这种交换机的设备是工作在数据链路层的。交换机能够识别到数据碰撞不会影响另一边。所以假如我们的左边发生了数据碰撞了那么我们的右边的数据正常转发没有问题。 一般情况下就是交换机左侧的报文不会发送到右侧就能减少右侧的报文数量。就不容易发生数据碰撞。所以综上交换机有一个特点:划分碰撞域减少局域网碰撞。
MSS和MTU 正因为数据顿最多字节就是1500 那么就倒逼着网络层最多发送1500字节的数据网络层就要分片。 又因为分片不太好 所以就要尽可能减少分片。 所以如何减少分片呢? 就是规定TCP最多发送多少个字节那么发送多少 首先数据最多1500说明IP报文最多能有1500个字节。然后要知道TCP发送过来的报文是在IP报文的有效载荷部分。IP报头20字节那么TCP报头加有效载荷就不能超过1480个字节。 TCP的报头加有效载荷是哪里来的? TCP内部有一个流式缓冲区。 倒时候我们就是从流式缓冲区中拿数据。拿多少? TCP的报头加有效载荷为1480那么有效载荷最多1460。 所以拿1460个字节最多。这个1460就是我们的MSS。这就是为什么当中我们的滑动窗口中要一段一段的滑动。 上面的这个数据帧对多就是1500这个1500就是MTU。
ARP协议 我们在学习IP的时候其实就已经知道了所谓了数据发送到目标网络本质就是通过无数个连续的子网实现的。我们也学过了其实我们发送到报文在子网中进行跳跃的时候跳到一个路由器上面就要先解包向上交付到网络层。然后检查dst和src。如果不是的话再封包向下交付到数据链路层然后进行跳转。就是下面这个过程 问题是如果我们的路由器向上交付后在网络层发现dst IP就是在自己的局域网中。那么路由器就要重新封装mac顿交给目标主机了。 可是路由器怎么知道我们的目标主机的mac地址的呢?所以此时在局域网当中还要有一种协议:ARP(工作在数据链路层局域网当中) 。ARP协议的作用是在局域网中将目标主机的IP地址转化为mac地址。 下面是一种局域网 下面是一个IP报文从A发来的目的主机是B。 如何将目标主机内的IP地址转化为mac地址呢?
ARP原理 加入上面是主机A和主机B的IP和MAC地址。 如果是主机A想要向主机B发送数据。开始主机A是先进行广播。就是广播说我想要与IP地址170.20.1.2进行通信我的IP地址是170.20.1.1MACA。IP地址为170.20.1.2的主机MAC地址是多少这个广播就是一次ARP请求。 然后主机B就收到了这个ARP请求。然后就返回一个ARP响应包: 170.20.1.2的MAC地址是XXX。
谈ARP报头 下面是ARP报头以及其中的各个字段 硬件类型指的是网络类型。这个固定写法为1为以太网。 协议类型:指要转化的地址类型 0x0800为IP地址。 硬件地址长度对于以太网地址长度是6 协议地址长度对于IP地址为4字节 OP字段为1表示ARP请求。OP字段为2表示ARP应答 发送端和目的就是我们的路由器和目标主机。 模拟一次过程 此时入口路由收到了一个报文: 因为我们的中转路由要将报文发给主机B。但是他只知道主机B的IP地址不知道MAC地址那么怎么办呢。所以中转路由就要发起ARP请求了。 ARP请求报文格式如下。先不填写Mac帧 怎么填这个报文呢 硬件类型填1表示以太网。 协议类型是IP地址转化为MAC地址。所以填0800 硬件长度就是6协议地址长度就是4。 然后OP字段是1。 发送端的以太网地址是谁呢? 就是MACR。 发送端的IP地址就是IPR。 目的以太网地址不知道所以就是全F。 目的IP就是IP B。 然后添加Mac帧 添加好MAC顺之后就发送向局域网了然后局域网当中的每一合主机都受到了这个报文、所以每合主机都要处理如果不是B主机。那么就是收到这个报文解包并处理。先进行MAC的解包。然后发现报头的目的以太网地是全F所以A就要处理2这个报文然后又看帧类型是0806说明就是ARP请求所以这个主机就要把数据帧向上交付给上层也就是ARP软件层。然后ARP软件层就查看目的IP地址是IP B不是自己。就把这个报文丢弃了。 但是这里有一个问题任何一个主机既可以收到ARP清求也可以收到ARP应答。我怎么知道我这个收到的应答就是我刚刚发过去的请求的应答呢。所以就要先看一下OP。如果OP是1就是个请求。如果是2就是应答。 如果是主机B主机B收到后发现就是发给自己的。那么就要应答了。应答的时候OP字段就不能是1了 OP要变成2。发送方和目的也要调换一下了。 然后就把应答报文发到以太网中。路由就发现这个报文是发给我的。然后就能拿到主机B的MAC地址了。这里要注意的是在ARP的过程中收到的任何ARP报文都是先看OPOP决定了什么呢??OP决定了ARP的类型: 请求或者应答。如果是请求我们看的是目的MAC地址和目的IP。如果是应答我们看的是发送端的MAC地址和发送端的IP。看看这两个是否相等。
ARP周边问题 arp主机的Mac地址和IP地址都是数据会被主机缓存起来 (临时缓存)可以使用arp-a查看 1、arp不是每次都要做的因为它已经被缓存了。 arp只有在缓存失效的时候才会进行.
2、我可以通过我的IP和子网掩码得到我的网络号然后拼接IP地址 ping所有的主机。得到所有主机的IP和mac。
3 、如果我收到多次同样的arp应答我会以最新的为准。这就导致了一个问题——基于ARP的称为中间人方式。 如下 上面这种中间主机定向的向目标主机发送大量的arp构建出虚假的IP地址和Mac地所对应的映射关系。以后所有的报文都会转发给这个主机。这种技术叫做arp欺骗。 如果以后中间主机不再丢弃了而是将数据发给路由器。以后路由器返回数据也会返回给中间主机。然后由中间主机发给原本的主机。以后原本主机和路由器都不知道中间主机的存在这台中间主机就成功地成为了一台局域网当中的中间人机器。 这种方式叫做基于arp的称为中间人的方式。 ——————以上就是本节全部内容哦 如果对友友们有帮助的话可以关注博主 方便学习更多知识哦