【计算机网络】第七章:[网络层]网络协议(Part2.网络协议)

在这里插入图片描述
ICMP协议是用来测试网络是否通——ping命令。当PCAping PCB时,A会发一个ICMP请求数据包,B收到后会产生一个ICMP响应数据包。除此之外还有ICMP错误报告数据包,例如当目标网络不可到达时,当前路由器会生成一个这种数据包;TTL耗尽也会产生一个错误报告数据包。错误报告数据包包含了一部分请求数据包的内容,

错误报告数据包虽然统称为一类,但是根据错误不同返回的内容也不同,从功能是上来说都是相同的。

在这里插入图片描述
在这里插入图片描述
ICMP数据包内容如上。Type值为8是请求,0是响应。
接下来是包括错误返回包的报文格式。
在这里插入图片描述
在这里插入图片描述
类型值:Type——代码Code

ICMP协议

在这里插入图片描述
ICMP协议数据包想要在网络层中传输,就必须加IP首部。也就说ICMP协议依赖于IP协议。如果网络不畅通,则ICMP协议无法工作。
在这里插入图片描述
ICMP差错报文中,如上图可以看出有请求数据包的部分内容(首部+八个字节的数据),其余的丢掉。然后这部分数据会进行一定处理,封装成差错报文,加网络层首部传输。
下面我们来看一下具体的几个例子。

TTL过期差错报文

类型11,代码0
在这里插入图片描述
在这里插入图片描述
这个数据包里包含了请求数据包的首部,如图。

目标不可到达

类型3代码1
在这里插入图片描述

路由重定向

在这里插入图片描述
如图所示,路由重定向与其说是错误,更应该说是优化。当处于10网段的PC想要访问11网段的目标时,由于默认网关是12网段,所以数据包会优先发到RB路由器上,RB路由器收到数据包后,发现去11网段有更合适的路径(或此路无法到达11网段),此时会返回一个重定向数据包给PC,PC收到该数据包后,会生成一个临时路由,此后发向11网段的数据包都不再走网关,而是通过该路由走向更优路径。
在这里插入图片描述
在这里插入图片描述

如图所示,重定向数据包指向了推荐路径。这是一个来自10.10去向10.20的数据包,被重定向给10.100。

ICMP差错报文并不只是ping命令请求数据包出现问题时才会返回这种数据包,也可以给应用程序返回错误报告。当使用TCP协议目标端口80来访问网站,如果数据包不可到达,也会产生ICMP目标不可到达的错误报告报文。TTL耗尽时也会返回TTL耗尽的差错报告报文。

差错报告报文除了IP首部还有后面8个字节,这8个字节里有传输层信息(比如目标端口),从而指明客户端的哪一个应用程序,所以当差错报文返回后,操作系统可以知道应该把这个数据包转给那个应用程序(比如各种浏览器)。

ping命令

作为计算机网络验证连通性最基本的命令,其实没有需要再拓展开说明的。接下来介绍的是经验之谈。

在这里插入图片描述
注意观察的点:
来自:从哪里返回的数据包,可能不是目标,而是途中的路由器
字节:一般默认32字节,可以人为设置,通过-l 命令
时间:往返时间
TTL:生存时间
一般而言,企业中ping网关,往返时间不大于10ms,如果比10ms大,则要考虑是不是有设备在网络中发广播导致网络堵塞。没有什么科学依据,经验之谈。
在这里插入图片描述
这种网络排错最难,因为你说他通吧,它经常不通,说不通吧,偶尔还通一个。这种情况我们的第一步推测是网络堵了,使用抓包工具抓包。找出是谁发的广播包。找出广播包后考虑杀毒,重新插拔网线等操作。
在这里插入图片描述
案例分析1:已经打开的网页停止访问,不管怎么点网页中的连接都没有反应
这种情况要考虑两方面,第一是web服务器本身的问题,本身如果当时CPU利用率吧比较高处理不过来,会出现停止响应的情况;第二是网络突然变得非常拥堵,导致请求发不到服务器,发到服务器后数据传输效率也非常低。

分析:碰到这种问题,推荐使用第三者设备测试。我们先默认网络出现问题,然后排查所有可能出现问题的区域和情况,如果都没有问题则就是服务器的问题。
在这里插入图片描述
思路:ping断定哪一链路异常
1.用一台企业内网的设备ping互联网,确企业内网到互联网的链路是否畅通。
2.用该设备ping电信机房,确认整条链路是否畅通
3.通过服务器的IP地址和子网掩码判断服务器所在局域网内可能的设备数,并用ping命令访问,确认是某一线路的问题或者是整个网络的问题(都丢包或者只有一个丢包)
4.如果都没有问题,则是服务器出现问题。
在这里插入图片描述
确认访问路径使用ping -i 命令,将TTL设置从1开始递增,就可以追踪出一条完整的路径。一定要逐个确认,不要一次性跨网段ping,一个一个来。

在这里插入图片描述

tracert/pathping命令

tracert命令之前也介绍过,相当于ping -i的简化版,可以追踪数据包过了哪一些路由器。而pathping则比tracert更强,可以查看所经路由的丢包率。
在这里插入图片描述
图中请求超时的数据包是因为路由器可以通过管理设置,拒绝返回ICMP相应数据包,如果这样设置后,我们就不能够得知这个路由器的信息。

ARP协议

ARP是IP协议的基础,IP协议是ICMP协议的基础。没有ARP协议则IP协议无法正常工作,IP协议无法工作则ICMP协议也无法工作。
我们知道数据链路层的数据帧传输需要使用目标和源MAC地址。而目标MAC地址对于刚接入网络的设备是未知的。
对于局域网,此时新设备会发送ARP广播,会发送给交换机相连的所有设备,但是只有目标设备会返回一个信息,告诉它目标MAC地址是多少。有了MAC地址,才能在数据链路层传输。没有MAC地址,数据包是无法到达目的地的。所以说ARP协议为IP协议提供服务。
对于非局域网,网段不同时,使用ARP解析网关的mac地址,路由器告诉网关mac地址。然后到达广域网后,点到点链路中不需要目标MAC地址。数据包到达目标网段后,路由器会用arp广播解析目标设备,然后记录到缓存中,从此之后就能正常交互了。
在这里插入图片描述
所以说,路由器端口中一般缓存着局域网内所有设备的mac地址。使用命令

show arp       GNS3思科路由器命令
arp -a             (cmd)命令

ARP欺骗

ARP协议解析mac地址靠广播,对方告诉什么是什么,并不会验证真假,这就会有潜在风险。
网络执法官应用程序:通过arp欺骗来禁止网络中某些设备的通信。
在这里插入图片描述
假如说B安装了网络执法官程序,B不允许A和C通讯,则当A发送arp广播后,C返回一个mac地址给A,在此后B接着发一个不存在的虚假mac地址给A,然后A收到了一个新的对于C的mac地址,由于arp协议并不纠错,就会用新的mac覆盖真正的mac地址。那么当A向C通信时,数据包无法转发给不存在的mac地址,进而丢包,导致a与c无法通信。同理,如果限制的是a和路由器的通信,则会导致a无法上网,因为数据包无法转发到路由器。
防止ARP欺骗的方法:
1.启用防ARP欺骗的安全软件(如局域网)
但是,网络执法官不仅会对主机进行欺诈,仍然会对路由器进行欺诈,也就说,当我们为电脑添加安全软件后,即便电脑能够百分百防御arp欺诈,而路由器却仍然会受到影响,这会导致间歇性丢包和网络延迟大,导致网络不畅通。
2.绑定mac地址

arp -s IP地址 MAC地址

将mac地址静态绑定到对应IP的主机上,ARP欺骗将无法实现。但是静态MAC地址重启就重置了,如果想要永久设置。
新建记事本,输入[arp -s IP地址 MAC地址]后保存为.bat文件,重命名只要不是arp即可。然后运行。这样就可以绑定了。
路由器上也可以添加绑定静态mac地址的命令

arp IP地址 MAC地址(A4D6.AAAA.AAAA)arpa
MAC地址要写4位用1个点来隔开,每位是1个字节

综上,如果想要完美防止ARP欺骗,我们需要在设备上绑定mac的同时,在路由器上也绑定mac地址。

IGMP协议

组播(多播)

全称组播管理协议,组播和多播是一个意思。
在这里插入图片描述
相对于点对点链路,流媒体服务器需要给每一个对服务器有请求的设备建立一条链路,则对干路带宽要求极高,且负担重。组播的核心就是服务器只传一份数据,然后需要的设备自取这一份数据,能够大量节省服务器资源。流媒体服务中,点播内容可以进行互动(拖拽进度条)而组播只能观看(观看位置完全取决于服务器)。现在的直播产业中,也是应用此技术,当进入一个直播间,无法后退前几分钟的内容,需要等待主播下播后资源全部截取下来才能够进行点播服务。
在这里插入图片描述
组播就是一组电脑都绑定一个地址,然后就可以接收多播数据包。多播地址的地址范围是224.0.0.0~239.255.255.255。
这些地址也有被保留的地址,不能随意使用。
在这里插入图片描述
如果一个服务器要同时播多个媒体资料,则可以用多个多播地址来实现同时多播。这里多播地址想象成频道更好理解,想要收看这个频道就播到这个频道,这个过程由用户决定,服务器只管播放。
在这里插入图片描述
48位二进制构成,前25位完全一致。这种情况下可能会出现多个多播地址构造的mac地址相同的情况。
在这里插入图片描述
这种情况下,MAC地址相同,但是IP地址不同,由网络层来区分给哪个应用程序,所以没问题。
在这里插入图片描述
不同网段之间收看多播内容也是服务器只发一份数据过来,然后计算机收看。如果某网段所有用户都不再收看这一多播资源,那么路由器就会告诉上一个路由器不需要继续发多播数据过来了,逐级反馈,最后这一个网段就没有多播信号了。而当某一网段出现第一个需要收看这个多播信号的设备时,网关路由会根据多播路由表和上一个路由器请求多播流,从而实现多播信号的收看。路由器也会周期性检测网段是否有活动状态的用户,没有则会申请取消多播流继续传输。

IGMP协议的功能:看以太网中的计算机都绑定了哪些多播地址。由该协议负责扫描这个网段有多少组成员和组播地址。

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