如何重复执行一条命令直至运行成功?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!
在我们的日常工作中,需要我们重复做的工作简直不能太多。比如,我们想要确认网络是否是连通的,传统的做法就是使用 ping 命令不停去测试某个地址(比如百度)。网络比较好还好说,但如果网络很差,那么就需要一直去运行 ping 命令。
作为程序员,重复性的工作怎么能忍呢?只要是重复性的工作,就有可能使用编程的方式来解决!
下面良许就介绍两种方法重复执行一条命令直至运行成功。
解决重复性的工作,自然而然会想到循环 。在 Shell 里,循环无非 3 种:for、while、until 。在本文里,我们使用后两种循环:while 、until 。
关于这两种循环,有编程基础的小伙伴应该是比较熟悉的了,这里再复习一下。
对于 while 循环,在循环条件是 true 的情况下,它会重复执行循环体(包含在 do ... done 结构体里),直到循环条件变成 false 。
而对于 untile 循环,刚好与 while 循环相反,在循环条件是 false 的情况下,它会重复执行循环体(包含在 do ... done 结构体里),直到循环条件变成 true 。
好了,复习完基础知识,我们再来看看如何用这两个循环实现我们的目的。
1. 使用 while 循环
还是以重复测试网络连通性为例。我们可以使用以下命令来解放我们的双手:
对于这条命令,它将重复执行 ping 命令,如果不成功,则 sleep 2 秒之后继续尝试,直到成功。成功之后,将在终端打印 succeed 字样。
简单介绍:
我们将这个命令分解开,然后简要介绍各个模块的作用。
这是循环条件,我们的要求是「当 ping 命令执行失败时,执行循环体」,所以我们要在 ping 之前加一个 ! 。
这部分就是循环体。当循环条件成立时,就进入到循环体。为了不让这个程序抢占太多资源,我们在循环体里睡眠 2 秒。一旦循环条件不成立时,就跳出循环体。
这部分是跳出循环体之后执行的语句,仅仅是打印一个 succeed 字样,当然你要做其它事也可以。
2. 使用 until 循环
我们使用 until 循环来完成同样的事情,它的写法如下:
实现的效果与上面无异,所不同的是,当循环条件为真时,退出循环。
我们也来简单拆解一下。
这部分是循环条件,它将执行 ping 命令,执行结果作为判断依据。直到 ping 命令执行成功时,才退出循环。
循环体,睡眠 2 秒。
成功后做的事情。
3. 重复执行上个命令直到成功
这里再额外拓展一下,如何重复执行上个命令直到成功?
我们知道,想要重复运行上次的命令,可以使用这个命令:
那如何判断上个命令执行是否成功呢?我们可以通过判断 $? 的值是否为 0 来确定。
【云栖号在线课堂】每天都有产品技术专家分享!课程地址:https://yqh.aliyun.com/live
立即加入社群,与专家面对面,及时了解课程最新动态!【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK
原文发布时间:2020-05-26本文作者:良许Linux本文来自:“掘金”,了解相关信息可以关注“掘金”
一些在线检测网站打开速度工具大分享
一些在线检测网站打开速度工具大分享
网页载入速度对于一个网站来讲很关键,Google已经将一个网站的载入速度列入了网站关键字seo排名的考虑因素当中,也就是说如果你的网站有足够的内容,而且载入速度比别人的网站更快一步的话,那么你就是获得更好的排名。那么下面就赶快测试你的网站,提高网站访问速度吧。
1:用Ping命令简单测网站速度的方法
Ping可以用来检查网络是否通畅或者网络连接速度,点击开始→运行 在运行中输入“cmd”回车或点击确定,输入ping www.你的网址.com 就可以了。
(新手只需注意本图红框里的含义即可)
Ping结果属于表示,bytes表示发送多少字节,time是时间,时间越小速度越快,TTL可以判断对方操作系统,TTL=119是XP系统,但TTL一般不准,服务器可以修改注册表更改TTL类型,更详细测速的办法,请多多搜索。
新手只需看最下面一行即可,最短时间、最长时间和平均时间(时间越短越好),这样你就能大致判断出网站的速度了。
同样,站长之家的ping工具也不错,网址seo
2:用tracert命令简单测网站速度的方法
测试方法和ping命令类似,只是ping换成tracert www.你的网址.com, tracert就是用来检测从终端客户到你的服务器所在机房的“跳数”和响应时间,也就是测试出服务器与全国各地客户的连接速度,当到达任何一个网关的时候,tracert会进行三次测试,并把三次测试的结果以ms为单位显示,当然time时间越短越好。
3:全方位的免费网站速度测试工具 — GTmetrix
gtmetrix.com提供了丰富的详细的测量结果,它结合了Google Page Speed和Yahoo! YSlow的网页速度测试功能,并且提供可行的建议帮你改善网站速度。无需注册为会员即可使用该工具,并建议如何来优化网页中每个元素的,最重要的是会根据网站的具体情况,直接告诉你导致网站加载速度变慢的根源在哪里。
做为GTmetrix注册会员,你可以设置每天、每周或每月自动测试一次你的网站,可设置测试记录自动保存,还能够同时对4个网址进行对比测试。如果你不知道自己的载入速度到底是快还是慢,你可以输入一个名站来对比结果,比如Google.com
4:比较哪个网站载入速度较快 — WhichLoadsFaster
2010年7月7日,FastSoft推出免费动态网站加速互动演示网站 WhichLoadsFaster.com WhichLoadsFaster是一个免费公开网速测试工具,用以促进Web网站间良性竞争让网页浏览速度更快。
它是通过你的连接,在你的浏览器里,让两个真实的网页在你面前展示出来。所以使用WhichLoadsFaster是反应当前你的网络下来对比两个站的速度的。
5:国内免费的网站速度测试平台 — WebKaka
这个网站是卢松松一直在用的,卡卡网是国内的一家帮你测试网站页面载入速度的免费站长工具,即时检测你的网站在全国各地访问的有效性、响应时间以及打开速度,目前在全国15个省市、美国、澳大利亚、日本等8个国家均设有检测点。此类网站速度测试工具基本都是国外的,国内的测速服务还比较少。卡卡网主要有网站速度测试、ping检测、路由追踪等功能。
里面的网址我已经收录到seo博客大全的实用工具中了,当然还有其他很不错的检测网站打开速度,比如speedtest.cn,speedtest.net等,同时,在你选择网站空间时,能用到本文的一些小方法,相信对你选择物美价廉的空间是个不错的办法。
测试网站访问速度的5个方法
网页载入速度对于一个网站来讲很关键,Google已经将一个网站的载入速度列入了网站关键字排名的考虑因素当中,也就是说如果你的网站有足够的内容,而且载入速度比别人的网站更快一步的话,那么你就是获得更好的排名。那么下面就赶快测试你的网站,提高网站访问速度吧。
1:用Ping命令简单测网站速度的方法
Ping可以用来检查网络是否通畅或者网络连接速度,点击开始→运行 在运行中输入“cmd”回车或点击确定,输入ping www.你的网址.com 就可以了。
Ping结果属于表示,bytes表示发送多少字节,time是时间,时间越小速度越快,TTL可以判断对方操作系统,TTL=119是XP系统,但TTL一般不准,服务器可以修改注册表更改TTL类型,更详细测速的办法,请多多搜索。
新手只需看最下面一行即可,最短时间、最长时间和平均时间(时间越短越好),这样你就能大致判断出网站的速度了。
同样,站长之家的ping工具也不错,网址:http://ping.chinaz.com/
2:用tracert命令简单测网站速度的方法
测试方法和ping命令类似,只是ping换成tracert www.你的网址.com, tracert就是用来检测从终端客户到你的服务器所在机房的“跳数”和响应时间,也就是测试出服务器与全国各地客户的连接速度,当到达任何一个网关的时候,tracert会进行三次测试,并把三次测试的结果以ms为单位显示,当然time时间越短越好。
3:全方位的免费网站速度测试工具 — GTmetrix
gtmetrix.com提供了丰富的详细的测量结果,它结合了Google Page Speed和Yahoo! YSlow的网页速度测试功能,并且提供可行的建议帮你改善网站速度。无需注册为会员即可使用该工具,并建议如何来优化网页中每个元素的,最重要的是会根据网站的具体情况,直接告诉你导致网站加载速度变慢的根源在哪里。
做为GTmetrix注册会员,你可以设置每天、每周或每月自动测试一次你的网站,可设置测试记录自动保存,还能够同时对4个网址进行对比测试。如果你不知道自己的载入速度到底是快还是慢,你可以输入一个名站来对比结果,比如Google.com
网址:http://gtmetrix.com
4:比较哪个网站载入速度较快 — WhichLoadsFaster
2010年7月7日,FastSoft推出免费动态网站加速互动演示网站 WhichLoadsFaster.com WhichLoadsFaster是一个免费公开网速测试工具,用以促进Web网站间良性竞争让网页浏览速度更快。
它是通过你的连接,在你的浏览器里,让两个真实的网页在你面前展示出来。所以使用WhichLoadsFaster是反应当前你的网络下来对比两个站的速度的。
网址:http://whichloadsfaster.com/
5:国内免费的网站速度测试平台 — WebKaka
这个网站是卢松松一直在用的,卡卡网是国内的一家帮你测试网站页面载入速度的免费站长工具,即时检测你的网站在全国各地访问的有效性、响应时间以及打开速度,目前在全国15个省市、美国、澳大利亚、日本等8个国家均设有检测点。此类网站速度测试工具基本都是国外的,国内的测速服务还比较少。卡卡网主要有网站速度测试、ping检测、路由追踪等功能。
网址:http://www.webkaka.com
里面的网址我已经收录到博客大全的实用工具中了,当然还有其他很不错的在线网速测试的网站,比如speedtest.cn,speedtest.net等,同时,在你选择网站空间时,能用到本文的一些小方法,相信对你选择物美价廉的空间是个不错的办法。
转载:http://blog.csdn.net/zzw945/article/details/6598788
本文转自 boy461205160 51CTO博客,原文链接:http://blog.51cto.com/461205160/1735298
注意啦!10 个你需要了解的 Linux 网络和监控命令
下面列出来的10个基础的每个Linux用户都应该知道的网络和监控命令。网络和监控命令类似于这些:hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool 用于查看linux服务器ip地址,管理服务器网络配置,通过 telnet 和ethernet建立与linux之间的网络链接,查看linux的服务器信息等。下面让我们看看在linux下的网络和监控命令的使用。
hostname
hostname 没有选项,显示主机名字
hostname –d 显示机器所属域名
hostname –f 显示完整的主机名和域名
hostname –i 显示当前机器的ip地址
ping
ping 将数据包发向用户指定地址。当包被接收,目标机器发送返回数据包。ping 主要有两个作用:
用来确认网络连接是畅通的。
用来查看连接的速度信息。
如果你 ping www.yahoo.com 它将返回它的ip地址 。你可以通过 ctrl+C 来停止命令。
ifconfig
查看用户网络配置。它显示当前网络设备配置。对于需要接收或者发送数据错误查找,这个工具极为好用。
iwconfig
iwconfig 工具与 ifconfig 和ethtool类似。是用于无线网卡的 . 你可以用他查看设置基本的Wi-Fi 网络信息,例如 SSID, channel和encryption.还有其他很多配置你也可以查看和修改,, 包括 接收灵敏度, RTS/CTS, 发送数据包的分片大小,以及无线网卡的重传机制。
nslookup
nslookup 这个命令在 有ip地址时,可以用这个命令来显示主机名,可以找到给定域名的所有ip地址。而你必须连接到互联网才能使用这个命令。
例子. nslookup blogger.com
你也可以使用 nslookup 从ip获得主机名或从主机名获得ip。
traceroute
一个方便的工具。可用来查看数据包在提交到远程系统或者网站时候所经过的路由器的IP地址、跳数和响应时间。同样你必须链接到互联网才能使用这个命令。
finger
查看用户信息。显示用户的登录名字、真实名字以及登录终端的名字和登录权限。这是unix一个很老的命令,现在已很少使用了。
telnet
通过telnet协议连接目标主机,如果telnet连接可以在任一端口上完成即代表着两台主机间的连接良好。
telnet hostname port – 使用指定的端口telnet主机名。这通常用来测试主机是否在线或者网络是否正常。
ethtool
ethtool允许你查看和更改网卡的许多设置(不包括Wi-Fi网卡)。你可以管理许多高级设置,包括tx/rx、校验及网络唤醒功能。下面是一些你可能感兴趣的基本命令:
ethtool -i 显示一个特定网卡的驱动信息,检查软件兼容性时尤其有用
ethtool -p 启动一个适配器的指定行为,比如让适配器的LED灯闪烁,以帮助你在多个适配器或接口中标识接口名称
ethtool -s 显示网络统计信息
ethtool speed <10|100|1000> 设置适配器的连接速度,单位是Mbps
netstat
发现主机连接最有用最通用的Linux命令。你可以使用”netstat -g”查询该主机订阅的所有多播组(网络)
netstat -nap | grep port 将会显示使用该端口的应用程序的进程id
netstat -a or netstat –all 将会显示包括TCP和UDP的所有连接
netstat –tcp or netstat –t 将会显示TCP连接
netstat –udp or netstat –u 将会显示UDP连接
netstat -g 将会显示该主机订阅的所有多播网络。
本文转自Linux就该这么学博客园博客,原文链接:http://www.cnblogs.com/linuxprobe/p/5948010.html,如需转载请自行联系原作者
Ping不通不代表主机不在线!
局域网络中,测试客户机当前是否在线一般都是ping对方,返回TTL=XXX 就在线,返回Request timed out一般就“当做”它不在线。极少有人继续往下探究,直到确定对方是否在线。
其实Request timed out真正的含义是对方没有响应ICMP ECHO REQUEST包或者响应这个包超时换句话说就是你没收到对方的ICMP ECHO REPLY包。下面几种情况都有可能返回Request timed out:
1.对方不在线
2.网络中存在防火墙(这里只考虑目标主机安装了防火墙的情况,不考虑网络设备与源头)
3.网络延迟或者网络拥塞(正常情况下极少发生)
可是后两种情况往往被人忽视。
一、原理部分
一个ping包的原理:
1.首先查本地arp cache信息,看是否有对方的mac地址和IP地址映射条目记录。如果有则直接发送icmp echo request包。
2.如果没有,则发起一个arp请求广播包,等待对方告知具体的mac地址。
3.收到arp响应包之后,获得某个IP对应的具体mac地址,有了MAC地址之后才可以建立数据链路层连接,进行通讯。同时对ip-mac地址做一个本地cache。
4.发出icmp echo request包,收到icmp echo reply包。
Tcpdump抓包求证ping过程:
22:00:29.123851 arp who-has 192.168.1.61 tell 192.168.1.122
22:00:29.123881 arp reply 192.168.1.61 is-at 0:f:1f:ff:71:44
22:07:47.655451 192.168.1.122 > 192.168.1.61: icmp: echo request (DF) (ttl 64, id 0, len 84)
22:07:47.655487 192.168.1.61 > 192.168.1.122: icmp: echo reply (ttl 128, id 25674, len 84)
二、Windump抓包使其无所遁形。
Ping远端开启XP内置防火墙的机器(192.168.2.27),以下操作均在本地机器完成。
本机安装WinPcap工具和拷贝windump工具。
打开两个命令提示符窗口。一个发送ping ip-addr命令。一个打开windump抓包。
注:为了确保能够发出arp请求,请先确认本地arp cache中没有缓存目标IP-MAC的条目,“arp -a”查看;或者清空arp缓存,“arp -d”,再进行以下操作。
窗口1,可以看到开启防火墙后得到time out。无法判断是否在线。
D:\Documents and Settings\Leaves>ping 192.168.2.27
Pinging 192.168.2.27 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Ping statistics for 192.168.2.27:
Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),
窗口2(需要上面的ping命令调用arp request请求,这就是上面ping的目的)
D:\>windump -n -i 1 arp host 192.168.2.17
windump: listening on \Device\NPF_{5AEB58D5-4F88-4B3F-B5D8-56ED494AF764}
16:07:38.721001 arp who-has 192.168.2.27 tell 192.168.2.1716:07:38.721987 arp reply 192.168.2.27 is-at 00:03:ff:41:7b:9a (有ARP回应,说明在线!小样,看你还敢不敢隐身)
windump参数
-D 获取网卡ID及信息
-i 接需要侦听网卡序号,利用-D得到。
-n 不把ip解析成计算机名
arp为协议
host 接需要侦听的IP(因为是我ping 2.27,所以我侦听自己的2.17端口ip)
路漫漫其修远兮,吾将上下而求索!
本文转自yangye1985 51CTO博客,原文链接:http://blog.51cto.com/yangye/477793,如需转载请自行联系原作者
《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》—第3章3.4节识别在线设备
本节书摘来自异步社区《BackTrack 5 Cookbook中文版——渗透测试实用技巧荟萃》一书中的第3章3.4节识别在线设备,作者【美】Pritchett Willie , 【墨】David De Smet,更多章节内容可以访问云栖社区“异步社区”公众号查看。
3.4 识别在线设备在执行渗透测试之前,首先要确定目标网络范围中哪些设备在线。
广为人知的简单的方法是ping目标网络。当然,这会被对方主机发现,它们也可能拒绝响应ping命令,这不是我们希望的结果。
操作步骤现在开始搜索连入网络的设备。首先打开一个终端窗口。
1.借助Nmap,我们可以确定一台主机是否开机,如下所示。
nmap -sP 216.27.130.162
Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-04-27
23:30 CDT
Nmap scan report for test-target.net (216.27.130.162)
Host is up (0.00058s latency).
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
2.我们也可以使用Nping(Nmap软件包中有这个程序),它的输出更为详尽(见图3.4)。
nping --echo-client“public”echo.nmap.org
3.我们还可以向一台指定主机发送十六进制的数据。
阿里云容器服务cni网络插件terway非官方网络性能测试
作者:荣滨,酷划在线后端架构师,关注微服务治理,容器化技术,Service Mesh等技术领域
terway网络性能测试
酷划在线成立于2014年,是国内激励广告行业的领军者。酷划致力于打造一个用户、广告主、平台三方共赢的激励广告生态体系,旗下产品“酷划锁屏”“淘新闻”分别为锁屏、资讯行业的领跑者。
伴随着公司服务端架构向微服务演进的过程中,服务增多,运维成本提高,资源利用率低,等问题日益凸显,目前公司服务器规模超过700+台ECS,服务数量1000+,随着容器化技术的成熟,计划在近期大规模将生产环境迁移到阿里云容器服务平台上,但由于VxLan等主机转发模式的Overlay网络均有一定的性能损耗,所以我们将目光瞄准阿里云容器服务平台开源的terway网络插件,期望使用能够动态绑定弹性网卡的容器服务达到ECS的网络性能,进而对terway网络性能进行详细的评估。
测试说明
本测试基于阿里云容器服务Kubernetes版(1.12.6-aliyun.1),Kubernetes集群使用阿里云控制台创建,测试分两部分:
同可用区网络性能测试
跨可用区网络性能测试
本测试的所有网络流量均为跨节点通信(容器分布在不同的宿主机节点上)本测试的所有测试均穿插测试超过3组取结果平均值
关键指标
吞吐量(Gbit/sec)
PPS(Packet Per Second)
延时(ms)
测试方法
吞吐量,PPS测试使用iperf3 版本信息如下:
iperf 3.6 (cJSON 1.5.2)
Linux iperf3-terway-57b5fd565-bwc28 3.10.0-957.5.1.el7.x86_64 #1 SMP Fri Feb 1 14:54:57 UTC 2019 x86_64
Optional features available: CPU affinity setting, TCP congestion algorithm setting, sendfile / zerocopy, socket pacing
测试机命令:
# 启动服务器模式,暴露在端口16000,每1秒输出一次统计数据
iperf3 -s -i 1 -p 16000
陪练机命令:
# 测试吞吐量
# 客户端模式,默认使用tcp通信,目标机为172.16.13.218,持续时间45,-P参数指定网卡队列数为4(跟测试的机型有关),目标端口16000
iperf3 -c 172.16.13.218 -t 45 -P 4 -p 16000
# 测试PPS
# 客户端模式,使用udp发包,包大小为16字节,持续时间45秒,-A指定CPU亲和性绑定到第0个CPU
iperf3 -u -l 16 -b 100m -t 45 -c 172.16.13.218 -i 1 -p 16000 -A 0
# 测试延迟
# ping目标机30次
ping -c 30 172.16.13.218
测试结果
同可用区网络性能测试
机型说明
测试机型选用ecs.sn1ne.2xlarge,规格详情如下
测试结果
说明:纵轴表达流量流出方向,横轴表达流量流入方向,所以组合情况一共有9种
名词解释:
terway-eni:代表动态创建弹性网卡并绑定POD的terway网络模式
terway:代表默认的terway网络模式
结果解读
各种模式下均可将网卡带宽打满,从吞吐量上看结果无明显区别
从流量流入容器角度看数据,流向terway-eni模式在各项指标均接近甚至超过流向宿主机的性能
从流量流出容器角度看数据,terway-eni模式性能接近但略低于宿主机流量流出性能,但明显高于terway默认网络
跨可用区网络性能测试
测试机型选用ecs.sn1ne.8xlarge,规格详情如下
测试结果
说明:纵轴表达流量流出方向,横轴表达流量流入方向,所以组合情况一共有9种
名词解释:
terway-eni:代表动态创建弹性网卡并绑定POD的terway网络模式
terway:代表默认的terway网络模式
结果解读
由于增加了跨可用区的调用,使影响结果的因素变多
host to host的吞吐量,并没有达到网卡的理论最大值,但是流入terway-eni的吞吐量基本达到了机型的带宽6 Gbit/sec,需要进一步调查宿主机间吞吐量上不去的原因
从容器流出的流量角度看,terway-eni模式整体明显高于terway默认网络模式,但低于宿主机网络性能
从流入容器的流量角度看,terway-eni的PPS结果数据优势比较明显,接近甚至超越宿主机网卡性能
总体结论
terway的网络性能测试中表现出了与宣传一致的性能,通过与作者的沟通中了解到,由于将弹性网卡直接放入POD的namespace内,虽然网卡驱动的中断依然由宿主机内核完成,但是网络包不会出现在宿主机namespace的网络栈,减少了宿主机的一层cni网桥转发及复杂路由的性能损失,这也是为什么在某些场景下超过宿主机网络栈性能的表现。
《非常网管:网络管理从入门到精通(修订版)》一1.3 ISO/OSI参考模型
本节书摘来异步社区《非常网管:网络管理从入门到精通(修订版)》一书中的第1章,第1.3节,作者: 崔北亮 , 陈家迁,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.3 ISO/OSI参考模型
非常网管:网络管理从入门到精通(修订版)上一节对协议分层和网络体系结构进行了概述。接下来,本节介绍一些具体的网络体系结构,首先介绍一个重要的网络体系结构,即OSI参考模型。
在网络发展初期,许多研究机构、计算机厂商和公司都大力发展计算机网络。从ARPANET出现至今,已经推出了许多商品化的网络系统。这种自行发展的网络,在体系结构上差异很大,以至于它们之间互不相容,难于相互连接以构成更大的网络系统。为此,许多标准化机构积极开展了网络体系结构标准化方面的工作,其中最为著名的就是国际标准化组织ISO提出的开放系统互连OSI参考模型。OSI参考模型是研究如何把开放式系统(即为了与其他系统通信而相互开放的系统)连接起来的标准。
OSI参考模型将计算机网络分为7层,如图1-3-1所示。下面将从最底层开始,依次介绍模型的各层所要完成的功能。
1.物理层物理层(Physical Layer)的主要功能是完成相邻节点之间原始比特流的传输。物理层协议关心的典型问题是,使用什么样的物理信号来表示数据“1”和“0”,一位持续的时间多长,数据传输是否可同时在两个方向上进行,最初的连接如何建立以及完成通信后连接如何终止,物理接口(插头和插座)有多少针以及各针的用处。物理层的设计主要涉及物理层接口的机械、电气、功能和过程特性,以及物理层接口连接的传输介质等问题。物理层的设计还涉及通信工程领域内的一些问题。物理层常用的网络设备有中继器(Repeater)和集线器(Hub)。
2.数据链路层数据链路层(Data Link Layer)的主要功能是在不可靠的物理线路上进行数据的可靠传输。数据链路层完成的是网络中相邻节点之间可靠的数据通信。为了保证数据的可靠传输,发送方把用户数据封装成帧(Frame),并按顺序传送各帧。由于物理线路的不可靠,因此发送方发出的数据帧有可能在线路上发生出错或丢失,从而导致接收方不能正确接收到数据帧。为了保证能让接收方对接收到的数据进行正确性判断,发送方为每个数据分块计算出CRC(Cyclic Redundancy Check,循环冗余校验),并把CRC添加到帧中,这样接收方就可以通过重新计算CRC来判断数据接收的正确性。一旦接收方发现接收到的数据有错,则发送方必须重传这一帧数据。然而,相同帧的多次传送也可能使接收方收到重复的帧。例如,接收方给发送方的“确认帧”被破坏后,发送方也会重传上一帧,此时接收方就可能接收到重复帧。数据链路层必需解决由于帧的损坏、丢失和重复所带来的问题。
数据链路层要解决的另一个问题是,防止高速发送方的数据把低速接收方“淹没”。因此需要某种信息流量控制机制使发送方得知接收方当前还有多少缓存空间。为了控制的方便,流量控制常常和差错处理一同实现。
在局域以太网中,数据链路层通过MAC(Media Access Control,介质访问控制)地址负责主机之间数据的可靠传输。数据链路层的设备必须能识别出数据链路层的地址,如局域网交换机能构造MAC地址表,基于MAC地址进行数据转发;网卡本身具有MAC地址,能根据MAC地址判断数据包是否是发往本机的数据包。网桥、交换机和网卡都属于数据链路层的设备。
实验1-2 查看局域网中的某台主机是否在线如何查看局域网中某台主机是否在线呢?可以选择“开始”→“运行”命令,输入“cmd”后单击“确定”按钮,在打开的DOS窗口中输入“ping 某主机的IP地址”。如果收到“Reply from …”,则说明该主机肯定是在线的;如果收到“Request time out”,是否能说明该主机一定不在线呢?回答是否定的,收到超时信息并不能说明该主机一定不在线,因为如果该主机运行防火墙软件,禁止ping命令回应,收到的信息也是“Request time out”。ping执行完以后,可以通过在DOS窗口中输入“arp -a”,查看本机的ARP(Address Resolution Protocol,地址解析协议)缓存,如果有缓存条目,则说明该主机是在线的,如果没有缓存条目,则说明该主机不在线。
为了更形象地说明这个问题,请参照图1-3-2。第一次执行“ping 192.168.1.220 –n 1”命令,尝试去ping 192.168.1.220这个IP地址,其中的“-n 1”是ping命令的参数,表示只ping一个数据包,ping命令默认发送的是4个包。结果收到了192.168.1.220的应答包,“Reply from 192.168.1.220: bytes=32 time<1ms TTL=128”,其中“byte=32”表示收到的字节数,ping 的应答包默认大小是32字节;“time<1ms”,表示从发出ping包到收到应答,花费的时间小于1ms,这个值可以用来简单地判断网络的健康状况;“TTL=128”,TTL表示生存周期,每经过一台路由器,这个值至少减1。这个值和具体的操作系统以及从ping的源主机到ping的目标主机之间经过的路由器数量也有关,因不同的操作系统默认的初始值不同,可能的初始值是64、128、255。假如操作系统的默认初始值是128,则上面的结果表示,没有经过任何一台路由器就到达目标了,假如操作系统的默认值是255,则经过的路由器可能就是255-128=127,这是不可能的情况,因为Internet上没有任何两台主机之间的路由器会达到这个数值。
确定源和目标之间的路由器数量,可使用“tracert”命令,如图1-3-3所示。使用ping命令测试从www.263.net返回的包的TTL(Time To Live,生存时间)是49,源主机和www.263.net主机之间经过的路由器数量大概是64-49=15,说“大概”是因为每经过一台路由器,TTL至少减1,有时减的不止是1,这和具体的网络有关。接下来使用tracert命令测试。其中“-d”是附加参数,如果不加这个参数,tracert命令执行的速度会比较慢,因为计算机尝试把每台路由器的IP地址解析成域名,这会花很多的时间,而且意义不大。“-d”参数表示计算机不执行IP到域名的反向解析,这会大大加快执行速度。结果显示,经过14台路由器到达目标,第15跳已经是目标地址了。由此可见,ping命令中的TTL可以用来粗略判断源主机和目标主机之间经过的路由器的数量,ping只能测试计算机的连通情况,无法定位到中间出故障的某一台路由器上,而tracert可以更准确地定位到某台出故障的路由器上。
开启计算机“192.168.1.3”的防火墙。在计算机“192.168.1.3”上,右键单击“网上邻居”,在快捷菜单中选择“属性”,打开“网络连接”窗口,右键单击“本地连接”,在快捷菜单中选择“属性”,如图1-3-4所示。
在打开的“本地连接 属性”对话框中,选择“高级”选择卡,选中“通过限制或阻止……”复选框,启用计算机的防火墙,如图1-3-5所示。
在计算机“192.168.1.3”上启用防火墙后,如图1-3-2所示,ping 192.168.1.3时,收到了超时的提示,原因是防火墙阻止了ping包。再ping一个不存在的IP地址“192.168.1.4”,也收到了超时的提示,如何准确判断出哪一个IP地址是在线的呢?图1-3-2中所示的“arp -a”命令用来显示本机保存的ARP缓存,可以看到两个条目“192.168.1.220”和“192.168.1.3”,却没有看到“192.168.1.4”的条目,由此可以判断“192.168.1.220”和“192.168.1.3”主机在线,“192.168.1.4”主机不在线。由此也可以得知,防火墙对ARP是阻止不了的。IPv4中,针对局域网的ARP攻击危害巨大,很难防御,本书第4部分通过分析ARP攻击原理,具体介绍一些防御攻击的切实可行的解决办法。
3.网络层网络层(Network Layer)的主要功能是完成网络中主机间的报文传输。在广域网中,这包括产生从源端到目的端的路由,根据采用的路由协议,选择最优的路径,本书将在第3部分介绍路由的相关知识。
当报文不得不跨越两个或多个网络时,又会产生很多新问题。例如,第二个网络的寻址方法可能不同于第一个网络,第二个网络也可能因为第一个网络的报文太长而无法接收,两个网络使用的协议也可能不同。网络层必须解决这些问题,使异构网络能够互连。
网络层涉及的协议有IP、IPX等,网络层的设备必须能识别出网络层的地址,如路由器、三层交换机等都可以根据IP地址做路径选择,它们都属于网络层设备。
实验1-3 查看ADSL上网获取到的IP地址如图1-1-17所示,查看给计算机静态分配的IP地址。如果通过ADSL上网,计算机将会动态获取到一个IP地址,如何查看获取的IP地址呢?
可以在DOS窗口中执行“ipconfig”命令,查看计算机静态分配的IP地址或动态获取的IP地址、使用“ipconfig /all”命令除了可以查看计算机的IP地址外,还可以查看计算机网卡的MAC地址,以及DNS服务器地址。如图1-3-6所示,ADSL显示的结果与图1-3-6所示类似,但IP地址是动态获取的。
4.传输层传输层(Transport Layer)的主要功能是完成网络中不同主机上的用户进程之间可靠的数据通信。最好的传输连接是一条无差错的、按顺序传送数据的管道,即传输层的连接是真正端到端的连接。换言之,源端主机上的某进程是利用报文头和控制报文与目标主机上的对等进程进行对话。
由于绝大多数主机都支持多任务操作,因而机器上有多个进程,这意味着多条连接将进出主机,因此需要以某种方式区别报文属于哪条连接。识别这些连接的信息可以放入传输层的报文头中。除了将几个报文流多路复用到一条通道上,传输层还必须管理跨网连接的建立和拆除。这就需要某种命名机制,使机器内的进程能够说明它希望交谈的对象。另外,还需要有一种机制来调节信息流,使高速主机不会过快地向低速主机传送数据。
传输层相关的协议有TCP、UDP(User Datagram Protocol,用户数据报协议),它们涉及服务使用的端口号,主机根据端口号识别服务(常用的WWW服务端口号是80,FTP服务端口号是21等)和区分会话(源IP、源端口号、目标IP、目标端口号,四者共同唯一标识一个会话)。对一些常用的服务,在文件“C:WINDOWSsystem32driversetcservices”中记录了服务名、所使用的协议(TCP或UDP)、默认端口号。
实验1-4 查看服务使用的端口号对一些不常使用或用户自己开发的服务程序,用户可以先建立到服务端的连接,然后在DOS窗口中输入命令“netstat -n”,查看服务所对应的端口号。此方法也适用于一些常用服务。先连接主机“192.168.1.220”的远程桌面(有关远程桌面的使用,本书将在第2部分介绍),然后执行“netstat”命令来查看远程桌面所使用的协议和端口号,如图1-3-7所示。可以看出远程桌面使用的协议是TCP,本地主机的IP地址是192.168.1.200,使用的端口号是1756,该端口号是一个大于1024(包括1024)以上的随机值;外部主机的IP地址是192.168.1.220,端口号是3389,3389是远程桌面默认使用的端口号。
5.会话层会话层(Session Layer)允许不同机器上的用户之间建立会话关系。会话层允许进行类似传输层的普通数据的传送,在某些场合还提供了一些有用的增强型服务。会话层允许用户利用一次会话在远端的分时系统上登录,或者在两台机器间传递文件。
会话层提供的服务之一是管理对话控制。会话层允许信息同时双向传输,或任一时刻只能单向传输。如果属于后者,则类似于物理信道上的半双工模式,会话层将记录此时该轮到哪一方传输数据。一种与对话控制有关的服务是令牌管理(Token Management)。有些协议保证双方不能同时进行同样的操作,这一点很重要。为了管理这些活动,会话层提供了令牌,令牌可以在会话双方之间移动,只有持有令牌的一方可以执行某种关键性操作。另一种会话层服务是同步。如果在平均每小时出现一次大故障的网络上,两台机器间要进行一次两小时的文件传输,则会出现严重的问题。每一次传输中途失败后,都不得不重新传送这个文件。当网络再次出现大故障时,可能又会半途而废。为了解决这个问题,会话层提供了一种方法,即在数据中插入同步点。每次网络出现故障后,仅仅重传最后一个同步点以后的数据。
6.表示层表示层(Presentation Layer)完成某些特定的功能,对这些功能,人们常常希望找到普遍的解决办法,而不必由每个用户自己来实现。值得一提的是,表示层以下各层只关心从源主机到目标主机可靠地传送比特,而表示层关心的是所传送信息的语法和语义。表示层服务的一个典型例子是用一种大家一致选定的标准方法对数据进行编码。
网络上计算机可能采用不同的数据表示,所以需要在数据传输时进行数据格式的转换。例如,在不同的机器上常用不同的代码来表示字符串(ASCII和EBCDIC)、整型数(二进制反码或补码)以及机器字的不同字节顺序等。为了让采用不同数据表示法的计算机之间能够相互通信并交换数据,在通信过程中使用抽象的数据结构来表示传送的数据,而在机器内部仍然采用各自的标准编码。管理这些抽象数据结构,并在发送方将机器的内部编码转换为适合网络上传输的传送语法,以及在接收方做相反的转换等,都是由表示层来完成的。
另外,表示层还涉及数据压缩和解压、数据加密和解密等工作。
7.应用层网络的目的在于支持运行于不同计算机的进程之间的通信,而这些进程则是为用户完成不同任务而设计的。应用层(Application Layer)包含大量人们普遍需要的协议,如HTTP(Hyper Text Transfer Protocol,超文本传输协议)、FTP(File Transfer Protocol,文件传输协议)、SMTP(Simple Message Transfer Protocol,简单邮件传输协议)、DNS(Domain Name Service,域名解析服务)等。
对于需要通信的不同应用来说,应用层的协议都是必需的。例如,当某个用户想要获得远程计算机上的一个文件拷贝时,要向本机的文件传输软件发出请求,这个软件与远程计算机上的文件传输进程通过文件传输协议进行通信,这个协议主要处理文件名、用户许可状态和其他请求细节的通信。远程计算机上的文件传输进程使用其他特征来传输文件内容。
由于每个应用有不同的要求,应用层的协议集在ISO/OSI模型中并没有定义,但是有些确定的应用层协议,包括虚拟终端、文件传输和电子邮件等,都可作为标准化的候选。值得注意的是,OSI模型本身不是网络体系结构的全部内容,这是因为它并未确切地描述用于各层的协议和实现方法,而仅仅规定每一层应该完成的功能。不过,ISO已经为各层制定了相应的标准,但这些标准并不是模型的一部分,它们是作为独立的国际标准被发布。
在OSI参考模型中,有3个基本概念:服务、接口和协议。OSI模型的最重要的贡献是将这3个概念区分清楚。
OSI参考模型是在其协议开发之前设计出来的。这意味着OSI模型不是基于某个特定的协议集而设计的,因而它更具有通用性。但另一方面,也意味着OSI模型在协议实现方面存在某些不足。实际上,OSI协议过于复杂,这也是OSI从未真正流行开来的原因所在。
虽然OSI模型和协议并未获得巨大的成功,但是OSI参考模型在计算机网络的发展过程中仍然起到了非常重要的指导作用,作为一种参考模型和完整体系,它仍对今后计算机网络技术标准化、规范化方向发展具有指导意义。接下来介绍目前广泛使用的TCP/IP。
即时通讯、在线教学、视频会议——服务器带宽计算说明与网络品质测试
对一个实时的网络语音视频系统而言,网络的品质对该系统的用户的体验具有决定性的作用,所以,在正式部署系统之前,进行较全面的网络测试和网络调优工作是非常必要的。这将是一个复杂的系统工程,如果有专业的团队来做这件事情是最好的。然而,一般的公司都是由开发人员或实施人员来做这些事情。比如需要进行如下分析:目标用户主要分布在哪些城市?在哪个地方或哪些地方(分布式方案)部署服务器对整体目标用户而言综合效果最为理想?如何部署?带宽需要多大?是否需要支持双线或多线(电信、联通、移动、铁通等)?等等。
本文不打算全面系统地介绍这些内容,而是只把其中最重要的部分拿出来,没有专业网络调优团队的中小公司可以按照下面给出的信息,进行一些必要的测试和分析。在做完这些后,对网络的基本情况就大致心中有数了。
一. 带宽占用大小
在语音视频聊天系统或视频会议系统中,语音、视频、电子白板、远程桌面等功能对网络带宽的要求分别如何了?
我们先假设一种常见的场景:假设N个在线用户同时进行1对1的多媒体沟通(即分为N/2组),在不考虑P2P通道的情况下,带宽的大致占用如下表所示(以OMCS语音视频框架为例,与QQ流量要求接近):
对于视频和远程桌面而言 --
帧 频: 8~10 fps 。
普通质量:对应EncodeQuality取值为 8 左右。
高 质 量:对应EncodeQuality取值为 3 左右。
说明:
1.流量对称
对服务器而言,上行、下行的流量是对称的;对客户端而言,进、出的流量几乎也是对称的。上表中列出的只是单向的流量。
2.正比推算
以视频为例,如果视频的尺寸不是320x240,那么可以按比例推算带宽的占用。假设视频大小为640x480,那么,带宽的占用将增加4倍((640x480)/(320x240))。
3.考虑P2P
如果启用了P2P通道,那么,服务端带宽占用会减小,但客户端带宽占用保持不变。假设P2P的成功率为70%,则服务端的带宽占用将减少至原来的30%。
4.视频会议
上面的数据是基于1对1的多媒体沟通,如果是类似视频会议的场景,则沟通就是多对多的,这时,带宽的占用就会增加,服务器的上下行的流量也不再对称。
比如,有M个用户在一个视频会议室聊天,每个用户的视频都要广播给其它的(M-1)个用户,而且,每个用户都要接收其它(M-1)个用户的视频数据,所以带宽的占用就会增加很多。
二.服务器共享带宽与独享带宽
语音视频数据都是实时采集、实时播放的数据,除了对服务器带宽的速度有要求外,更要求服务器带宽通信质量的稳定性,即网络延时小、网络抖动小。很容易理解,如果网络抖动较大,听到的声音就是断断续续的(OMCS内置了抖动缓冲区JitterBuffer,但也只能在一定程度内减轻这个问题)。
所以,服务器的带宽要求必须是独享带宽,共享带宽无法满足实时语音视频的要求。对实时语音视频而言,100M的共享带宽,还不如5M的独享。这也就是为什么通常租服务器时,IDC会免费送你100M的共享带宽,而租5M的独享带宽,却一年要花几千块钱。
另外,要注意:
(1)IDC服务器带宽的单位是bits/s,而我们通常说的网速的单位是bytes/s。它们之间是8倍的关系 -- 比如,服务器的带宽是1M的,说明下载的速度最多可以达到120kB/s左右。
(2)IDC服务器带宽指上行和下行的总和。比如,服务器的带宽是1M,说明在同一时刻,下载的速度和上传的速度加起来不会超过120kB/s。
三.带宽计算示例
1.即时通讯:我有1000个客户端同时在线,同时进行视讯的人数为100,请问服务端大概需要租多少带宽?
解:假设摄像头视频尺寸为640*480,音、视频为普通质量,P2P成功率为75%。
则 640*480尺寸的视频一路带宽占用是:20*((640x480)/(320x240))= 80KB/s
一路音频由表中数据得知为5KB/s
故总共需要 100*(80+5)*8/1000*25% =17Mbit/s 服务器带宽。
2.视频教学:我有100个客户端,其中1个人是老师,老师将自己的桌面和声音广播给99个学生,这种情况需要多少服务器带宽?
解:假设老师桌面分辨率为1024*768,音频为高质量
则一路音、视频所占带宽为100 + 8 = 108KB/s
故总共需要 100*108*8/1000 = 86.4Mbit/s服务器带宽
3.视频会议:我有10个人进行视频会议,每个人将自己的视频广播给其他的9个人,服务端需要多少带宽?
解:假设摄像头视频尺寸为320*240,视频质量为高质量。
则每个人上行1路下行9路,10个人则上行10路下行90路。下行合起来是100路,即10*10路。
则总共需要 100*35*8/1000 = 28Mbit/s服务器带宽
四.网络品质测试与监控
1.客户端网络抖动
在服务器的带宽质量得到保证后,参与语音视频会话的各个客户端,如果希望都能达到比较流畅的体验,则需要达到以下亮点:
(1)客户端到服务器的ping延时低于100ms。
(2)ping的最大抖动范围不超过20ms。
其中,网络抖动对流畅性的影响更大。在测试时,建议将到服务器的ping打开,如此可以观察ping对语音视频流畅性的影响。
注:ping命令加上 -t 就可以连续不断地 ping。如 ping 192.168.0.123 -t
2.观察网络流量
测试时,推荐在各个客户端机器上安装 NetLimiter 网络监控软件,可以实时查看客户端和服务器之间的上下行流量、以及客户端与客户端之间的P2P通道上的网络流量。
通过将网络流量监控与ping结合起来,就能很容易地测试网络的实时状态。
3.测试客户端与服务器之间的网络速度
通过windows自带的远程桌面的拷贝文件功能,结合上面的NetLimiter监控,我们可以很容易地测试出客户端电脑与服务器之间的网络速度。
(1)在客户端电脑上,使用windows自带的远程桌面功能(如win7下,开始菜单->所有程序->附件->远程桌面连接),连接到目标服务器上。
(2)上行拷贝:从当前电脑拷贝一个50M以上的文件到服务器上。
(3)下行拷贝:从服务器上拷贝一个50M以上的文件到当前电脑。
(4)在拷贝正在进行过程中,打开NetLimiter的界面,持续观察客户端与服务器之间传递的网络速度。
(5)测试时,建议持续观察5分钟以上,观察时请特别注意:(1)上下行速度分别是多少?(2)速度是否稳定?
(6)如果是类似视频会议这样的系统,假设需求一般是4个人在同一个会议室,那么,可选择4个代表性(所在的地理区域具有代表性)的用户,然后在这4个人的电脑上同时进行这一测试,分别记录这4个测试结果。
(7)进行此测试时,可以同时观察到服务器的持续的ping值。
然后逐一分析每一个结果看其是否能满足OMCS的带宽要求。
NetLimiter 截图如下所示:
《Nmap渗透测试指南》—第2章2.8节ICMP Ping Types扫描
本节书摘来自异步社区《Nmap渗透测试指南》一书中的第2章2.8节ICMP Ping Types扫描,作者 商广明,更多章节内容可以访问云栖社区“异步社区”公众号查看。
2.8 ICMP Ping Types扫描表2.7所示为本章节所需Nmap命令表,表中加粗命令为本小节所需命令——ICMP Ping Types扫描。
使用-PE;-PP;-PM选项可以进行ICMP Ping Types扫描。ICMP(Internet Control Message Protocol)是Internet控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用
Nmap发送一个ICMP type 8(回声请求)报文到目标IP地址,从运行的主机得到一个type 0(回声响应)报文。-PE选项简单地来说是通过向目标发送ICMP Echo数据包来探测目标主机是否在线,正因为许多主机的防火墙会禁止这些报文,所以仅仅ICMP扫描对于互联网上的目标通常是不够的。但对于系统管理员监视一个内部网络,它们可能是实际有效的途径。使用-PE选项打开该回声请求功能。-PP选项是ICMP时间戳Ping扫描,虽然大多数的防火墙配置不允许ICMP Echo请求,但由于配置不当可能回复ICMP时间戳请求,所以可以使用ICMP时间戳来确定目标主机是否存活。-PM选项可以进行ICMP地址掩码Ping扫描。这种扫描方式会试图用备选的ICMP等级Ping指定主机,通常有不错的穿透防火墙的效果。
(1)使用ICMP Echo扫描方式
root@Wing:~# nmap -PE -v 192.168.121.1
Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-27 21:22 CST
Initiating Ping Scan at 21:22
Scanning 192.168.121.1 [1 port]
Completed Ping Scan at 21:22, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 21:22
Completed Parallel DNS resolution of 1 host. at 21:22, 0.01s elapsed
Initiating SYN Stealth Scan at 21:22
Scanning 192.168.121.1 [1000 ports]
Discovered open port 139/tcp on 192.168.121.1
Discovered open port 135/tcp on 192.168.121.1
Discovered open port 445/tcp on 192.168.121.1
Discovered open port 49159/tcp on 192.168.121.1
Discovered open port 49152/tcp on 192.168.121.1
Discovered open port 843/tcp on 192.168.121.1
Discovered open port 912/tcp on 192.168.121.1
Increasing send delay for 192.168.121.1 from 0 to 5 due to 119 out of 395 dropped probes since last increase.
Discovered open port 49155/tcp on 192.168.121.1
Discovered open port 7000/tcp on 192.168.121.1
Discovered open port 902/tcp on 192.168.121.1
Discovered open port 8000/tcp on 192.168.121.1
Stats: 0:02:15 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 99.99% done; ETC: 21:25 (0:00:00 remaining)
Stats: 0:02:16 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 99.99% done; ETC: 21:25 (0:00:00 remaining)
Discovered open port 49153/tcp on 192.168.121.1
Completed SYN Stealth Scan at 21:25, 148.61s elapsed (1000 total ports)
Nmap scan report for 192.168.121.1
Host is up (1.0s latency).
Not shown: 987 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
514/tcp filtered shell
843/tcp open unknown
902/tcp open iss-realsecure
912/tcp open apex-mesh
7000/tcp open afs3-fileserver
8000/tcp open http-alt
49152/tcp open unknown
49153/tcp open unknown
49155/tcp open unknown
49159/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 148.68 seconds
Raw packets sent: 1744 (76.720KB) | Rcvd: 1017 (40.716KB)
root@Wing:~#
(2)使用ICMP时间戳Ping扫描
root@Wing:~# nmap -PP -v 163.com
Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-27 21:24 CST
Initiating Ping Scan at 21:24
Scanning 163.com (123.58.180.8) [1 port]
Completed Ping Scan at 21:24, 2.01s elapsed (1 total hosts)
Nmap scan report for 163.com (123.58.180.8) [host down]
Other addresses for 163.com (not scanned): 123.58.180.7
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.08 seconds
Raw packets sent: 2 (80B) | Rcvd: 0 (0B)
root@Wing:~#
(3)使用ICMP地址掩码Ping扫描
root@Wing:~# nmap -PM -v 192.168.121.1
Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-27 21:27 CST
Initiating Ping Scan at 21:27
Scanning 192.168.121.1 [1 port]
Completed Ping Scan at 21:27, 2.01s elapsed (1 total hosts)
Nmap scan report for 192.168.121.1 [host down]
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.05 seconds
Raw packets sent: 2 (64B) | Rcvd: 0 (0B)
root@Wing:~#
可以看到,不同的扫描方式穿过不同的防火墙时有着不同的结果。