34

网络体检技术大揭秘(下篇)

 4 years ago
source link: https://network.51cto.com/art/201911/605598.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

网络体检技术大揭秘(下篇)

二层体检能做到逐跳(每一台设备)的路径跟踪、时延抖动等精度也非常高(如果设备都时钟同步的话精度更高),但我们享受这一切优质服务也是有代价的,我们需要支持OAM的交换机或路由器或其它网络设备。

我们用《网络体检技术大揭秘》上、和《网络体检技术大揭秘》中两篇文章向大家介绍了网络体检的必要性及两种常用的、主流的二层体检手段EFM及CFD。如果大家跟着上、中两篇一路走到这里,相信对二层体检的利弊已经有了深刻的认识。不过为了和大家证明下我也有深刻的认识,还是要多唠叨几句。二层体检能做到逐跳(每一台设备)的路径跟踪、时延抖动等精度也非常高(如果设备都时钟同步的话精度更高),但我们享受这一切优质服务也是有代价的,我们需要支持OAM的交换机或路由器或其它网络设备。这无形中就提高了准入门槛,好多普通用户就没机会接触这几种体检手段了。

好在我们还有三层体检手段,它们虽不如二层手段那么彻底(只能感知到路由器,感知不到交换机),但也足够亲民(ping、tracert 工具windows系统就自带了,可以说几乎人人都能接触到)。下面我们就把舞台交给来自三层的体检大佬们吧。

三、三层体检常用手段

1. PING

(1) ping功能概述

ping是windows操作系统自带的一个命令,当我们的业务掉链子时,我们已经养成了ping一下的习惯(没养成的建议抓紧养~)。如果能ping通,我们可以看到从我们这里到目标IP往返一趟的延时大概是多少,丢包率大概是多少。有了这些指标,我们心里应该会踏实很多,至少知道我们的业务在到达目标IP的路上经受了怎样的波折和委屈,这样我们也就能更好的理解我们的业务(在线视频)为什么播放一会儿就转圈圈了,而不是对着屏幕暗自"我艹"。

网络体检技术大揭秘--下篇

图12 ping命令执行后的结果示意图

(2)  ping原理

a. 在同一网段内

在主机 A 上运行"Ping 192.168.1.1"后,都发生了些什么呢? 首先,Ping 命令会构建一个 固定格式的 ICMP 请求数据包, 然后由 ICMP 协议将这个数据包连同地址"192.168.1.1"一起 交给IP 层协议(和 ICMP 一样,实际上是一组后台运行的进程),IP 层协议将以地址 "192.168.1.1"作为目的地址,本机 IP 地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并想办法得到 192.168.1.1的MAC地址(物理地址,这是数据链路层协议构建数据链路层的传输单元——帧所必需的),以便交给数据链路层构建一个数据帧。关键就在这里,IP层协议通过机器B的IP地址和自己的子网掩码,发现它跟自己属同一网络,就直接在本网络内查找这台机器的MAC,如果以前两机有过通信,在A机的 ARP缓存表应该有B机IP与其MAC的映射关系,如果没有,就发一个ARP请求广播,得到B机的MAC, 一并交给数据链路层。后者构建一个数据帧,目的地址是 IP 层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。主机B收到这个数据帧后,先检查它的目的地址,并和本机的物理地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将 IP 数据包从帧中提取出来,交给本机的 IP 层 协议。同样,IP 层检查后,将有用的信息提取后交给 ICMP协议,后者处理后,马上构建 一个 ICMP 应答包,发送给主机 A,其过程和主机 A 发送 ICMP 请求包到主机 B 一模一样。

b. 不在同一网段内

在主机 A 上运行"Ping 192.168.2.1"后,开始跟上面一样,到了怎样得到 MAC 地址时,IP 协议通过计算发现 D 机与自己不在同一网段内,就直接将交由路由处理,也就是将路由的 MAC 取过来,至于怎样得到路由的 MAC,跟上面一样,先在 ARP 缓存表找,找不到就广 播吧。路由得到这个数据帧后,再跟主机 D 进行联系,如果找不到,就向主机 A 返回一个超时的信息。

2. TRACERT

(1) TRACERT功能概述

随着知识的积累,我们一定会有更高的"追求"。比如说我们通过ping知道了丢包率,那我们一定会好奇在哪个地方丢了,我们在去往目标IP的路上都翻了什么山越了什么岭。是的,follow your heart,这绝对不是你在没事儿找事儿,这个需求合理的很。那么,有没有办法满足我们的好奇心呢。答案都在tracert这个命令里,tracert这个命令也是windows操作系统自带的一个命令,我们tracert加上自己期望访问的网址(域名),一回车就能见证奇迹,不信看下图~,途中经历的每一跳路由信息都会一一罗列出来(列出的只是经过的路由器的信息,经过的交换机tracert大兄弟是支配不动的,需要用我们前文和大家一起认识的二层CFD技术里的链路跟踪功能)。

网络体检技术大揭秘--下篇

图13 tracert命令执行后的结果示意图

(2) TRACERT原理

Tracert 命令用IP生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。

首先,tracert送出一个TTL是1的IP 数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL减1。此时,TTL变为0,所以该路由器会将此数据包丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),tracert 收到这个消息后,便知道这个路由器存在于这个路径上,接着tracert 再送出另一个TTL是2 的数据包,发现第2 个路由器...... tracert 每次将送出的数据包的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个数据包抵达目的地。当数据包到达目的地后,该主机则不会送回ICMP time exceeded消息,一旦到达目的地,由于tracert通过UDP数据包向不常见端口(30000以上)发送数据包,因此会收到「ICMP port unreachable」消息,故可判断到达目的地。

tracert 有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,Tracert给TTL记数器加1,继续进行。

3. TWAMP

前面ping和tracert这哥俩虽然能对网络进行体检,但都是社区级别的体检——不够全面、专业、权威。下面要给大家引荐的这位由IETF的IP性能指标工作小组亲手培育,英文名TWAMP,名如其人,是一种双向主动测量协议。它定义了一种测量网络中任意两台支持这项标准的设备之间往返IP性能的灵活方法。利用TWAMP,你可以通过已经部署的网络设备之间的合作,有效地测量传输的完整IP性能。

(1) TWAMP工作原理

TWAMP一般由Control-Client、Server、Session-Sender及Session-Reflector四大组件组成。

网络体检技术大揭秘--下篇

图14 TWAMP内部组件及关系图

这四个组件可以独立部署在四台设备上,更常用的做法是Control-Client、Session-Sender组个队一起部署在一台设备上,Server、Session-Reflector结个伴一起部署在另一台设备上。Control-Client和Server采用TCP进行控制面的连接建立,用于初始化、开始、结束测量会话以及取得它们的结果,同时TWAMP控制协议还支持对测量和控制会话进行身份认证和加密等安全性操作,如下图的TWAMP-Control交互。Session-Sender和Session-Reflector采用UDP进行测试数据的收发,如下图的TWAMP-Test交互。控制面建立连接以后创建测试session(可以创建多个session),测试session之间按照控制面的要求收发测试流(udp流)进行测试,测试结果反馈给Control-Client进行汇总分析计算并出结果。Seesion-Reflector收到Seesion-Sender的报文后会尽快返回给Seesion-Sender,当然在返回前会加一些时戳之类的信息作为素材供Control-Client进行计算。

网络体检技术大揭秘--下篇

图15 TWAMP组件常见部署方式

为了避免文字表述抽象、空洞、难懂,我们又及时安排了一个高清无码大图供大家理解消化TWAMP的工作原理。

网络体检技术大揭秘--下篇

图16 TWAMP工作原理示意图

做了这么多铺垫和渲染,那你一定会问TWAMP到底能测哪些指标?是的,泛泛而谈、言之无物的行为无异于耍流氓。TWAMP其实能干不少事儿的,下面我们就来介绍下它能测试的性能指标。

(2) TWAMP测试性能指标

网络性能又分为整体性能和节点性能之分,两者之间的关系是统一的。通过对端到端测量指标的分析就可以得到网络的整体性能。性能指标主要包括以下参数:

  • 连通性(Connectivity)。网络连通性是指网络连通的程度。这一指标主要与丢包率相关,一般网络可用性会会有一个阈值,当丢包率高于这一数值时网络判定为不可用,相反则为网络可用。
  • 数据包传输时延(Data Packet Transmission Delay)。时延是指又分为单向时延和往返时延。单向时延是指某一节点接收到数据源所发出的数据包时所经历的时间。往返时延是指由数据源发送数据包到达指定节点后,指定节点立即发送反馈数据包,此数据包到达源点是所经历的时长。因为时延是随时间变化的,若进行网络测量,应按照某段时间内的平均值计算时延。
  • 丢包率。丢包率是指数据源发出的数据包数量与反馈数据包之间的差值占源数据包总量的百分比。 

【编辑推荐】

【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK