苹果为什么会出现串口通讯超时时,请确定你的网络状态

其实除了《Badland 2》和《GTA:自由城故事》之外,独立游戏《人在做天在看》、GL大厂...
因为不能访问第三方应用数据,Siri 能够给用户提供的服务还是比较基础性的,但是很多...
游戏中Om Nom有5种不同状态,不同状态可以让Om Nom在不同关卡顺利解开谜题。
2015 年即将结束,在过去的一年当中,不知道你对于 Mac 的表现如何评价?
苹果似乎在表达这样的心声:我们会这么乌龙么?
对于果粉来说,心爱的 iPhone 出现问题是一件非常苦恼的事。如果你的 iPhone 保修期还...
相比于iPad Pro,配件发货的时间要长得多。
同样可能会搭载高通骁龙820的 Galaxy S7 也要采用热管散热,难道对高通骁龙820散热真...
一直以来开罗工作室还在不断的推出新的游戏作品。不久之前,开罗工作室在苹果商店当中...
《Scribblenauts》(涂鸦冒险家)最新续作《Scribblenauts Unlimited》(涂鸦冒险家:...
《HNTR》可不是什么几何概念作品,可能从名字上大家猜到了应该会有一个擅于捕捉猎物的...
在本作当中玩家将拿上自己的滑板到大马路上体验滑板运动的乐趣。
《城市飞奔:伦敦(City Run London)》是 City Quests 推出的一款冒险作品,游戏为我...
随着大批玩家的涌入,原本只是单纯拼速度、秀操作的赛车游戏也逐渐走上了系统化、分类...
King 一直以来都喜欢开发消除类游戏,《糖果粉碎传奇》如今还在为公司贡献数额不菲的...
这个充电底座到底值不值得买呢?看完威锋网的评测,大家心里或许更有底。
自Apple Watch上市以来,关于其电池续航的问题一直是用户的痛点。
也许那些听力或者是视力有障碍的用户可以通过这些设备来更好地了解苹果。
iPad外设制造商Brydge最近为iPad Pro推出了一款专属的键盘产品,它就是配备了2个铰链...
虽然很厚,但出门可以少带一根棒棒也是极好的,并且通过蓝牙控制,还省了根线。
周二的时候,知名配件厂商Otterbox发布了三款iPad保护套新品,分别面向iPad Pro、新款...
就像 iPhone 6s 系列刚进入印度那样,iPad Pro、Apple Pencil 和 Smart Keyboard 在当...
手机手表一起充逼格不知高到哪里去了,还完美支持 Apple Watch 的 Nightstand Mode 床...
怎么破:无法完成你的itunes store 的请求 ,网络连接超时,请确定你的网络是活动的
注册时间 最后登录
在线时间164 小时 UID
主题帖子人气
青苹果, 积分 125, 距离下一级还需 75 积分
现在是日,WIN10上的ITUNES进入APP STORE时,显示:无法完成你的itunes store 的请求 ,网络连接超时,请确定你的网络是活动的 ...
注册时间 最后登录
在线时间180 小时 UID
主题帖子人气
把网络弄好呀。
注册时间 最后登录
在线时间164 小时 UID
主题帖子人气
其它程序都能联网,网络应该没问题。
注册时间 最后登录
在线时间0 小时 UID
主题帖子人气
我也遇到了同样的问题
(200.42 KB, 下载次数: 2)
00:13 上传
注册时间 最后登录
在线时间164 小时 UID
主题帖子人气
无法完成你的itunes store 的请求 ,网络连接超时,请确定你的网络是活动的
注册时间 最后登录
在线时间156 小时 UID
主题帖子人气
提示: 作者被禁止或删除 内容自动屏蔽
威锋旗下产品
Hi~我是威威!
沪ICP备号-1 丨 深公安网监备案号 5
增值电信业务经营许可证:
Powered by Discuz!工业数据通信论文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
工业数据通信论文
上传于||文档简介
&&工​业​数​据​通​信
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩4页未读,继续阅读
你可能喜欢IBM Bluemix
点击按钮,开始云上的开发!
developerWorks 社区
讨论可以帮助系统管理员在 AIX® 上诊断 TCP/IP 网络相关问题的工具。在这一期中,讨论在您的主机与另一个主机的通信发生问题时如何查明实际情况。详细讨论如何进行符合逻辑的问题诊断。
, 自由 UNIX 顾问, 711 Consultancy Limited
Martin Wicks 是一位在英国伦敦生活工作的自由 UNIX 顾问。他从事 UNIX 系统已经超过 15 年,之前多年从事 IBM 大型机。他是狂热的电影爱好者,喜欢玩滑雪板和山地自行车。
本文介绍一些可以在 IBM AIX® 上使用的命令,其中许多命令也可以在其他风格的 UNIX® 上使用。当您的主机与另一个主机的通信发生问题时,这些命令有助于尽可能详细地了解实际情况。也详细讨论符合逻辑的常见问题诊断方法。
对于本文,所有样例命令和输出中使用的目标主机系统都称为 testhost。 获得更多信息根据要诊断的网络问题的性质,有时候有必要了解失败的应用程序或命令是否有详细输出、跟踪或调试选项。例如,ssh (Secure Shell) 和 scp (Secure Copy) 命令有详细输出开关(-v),这可以提供关于客户机和服务器之间的通信、密钥交换和身份验证的大量跟踪信息(见 )。
清单 1. 用提供详细输出的 ssh 会话连接远程主机
# ssh —v testhost
OpenSSH_4.2p1, OpenSSL 0.9.7d 17 Mar 2004
debug1: Reading configuration data /opt/freeware/etc/ssh_config
debug1: Connecting to testhost [10.217.1.206] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/identity type -1
debug1: identity file /root/.ssh/id_rsa type 1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: Remote protocol version 1.99, remote software version OpenSSH_4.1
debug1: match: OpenSSH_4.1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server-&client aes128-cbc hmac-md5 none
debug1: kex: client-&server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(92) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'testhost' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:14
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug1: Offering public key: /root/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /root/.ssh/id_dsa
debug1: Next authentication method: keyboard-interactive
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: password
root@testhost's password:
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Entering interactive session.
Last unsuccessful login: Wed 27 Jan 13:30:23 2010 on ssh from 10.216.163.37
Last login: Wed 10 Feb 16:05:48 2010 on /dev/pts/0 from 10.216.163.37
******************************************************************************
Welcome to AIX Version 5.3!
Please see the README file in /usr/lpp/bos for information pertinent to
this release of the AIX Operating System.
******************************************************************************
#如果可以登录进入有问题的主机(理论上,服务器无法向特定端口发送服务网络请求,但是有时候也可以在发出请求的客户机上报告错误),那么您应该在系统日志中检查相关的消息。这些文件包括 /var/adm/messages、/var/log/syslog 和 /var/log/mail 等,具体文件取决于在 /etc/syslog.conf 中如何配置系统日志守护进程;如果有 ftpd、sshd、telnetd 等守护进程,还应该检查与守护进程相关的日志。这些日志中的一个或多个常常会记录警告、错误或失败。因此,在这些日志中找到的信息可能有助于判断问题的根源。
一些服务可以配置详细、调试或跟踪型日志记录,这会在日志中记录标准信息或错误消息之外的更多信息。如果问题是可再现的,那么有必要检查是否能够在测试期间使用这种诊断日志记录。但是,不要一直启用详细日志记录,因为这么做会造成磁盘和文件系统空间问题。
为了更好地了解进程正在执行的操作,可以使用 truss 跟踪进程执行的系统调用。truss 命令既可以执行指定的命令,也可以附加到现有的进程上生成跟踪(假设您拥有这个正在运行的进程或者具有根特权)。若是后者,随时可以按 Control-C 停止跟踪。
是部分基本跟踪命令,以及 ssh testhost 的片段。-l 开关在每个跟踪条目前面加上进程 ID 作为前缀,-d 开关显示相对于跟踪起点的时间戳。
清单 2. 一个命令的基本系统调用跟踪# truss —ld ssh testhost
.0000: execve("/usr/bin/ssh", 0x2FF22B70, 0x2FF22B7C) argc: 2
.0137: __loadx(0xx2FF22A40, 0xxDEADBEEF,
0xDEADBEEF) = 0x
.0141: __loadx(0x0CxFxFxF020832C,
.0143: thread_init(0xBC) =
.0146: sbrk(0x) = 0x20015B5C
.0148: vmgetinfo(0x2FF2) = 0
.0151: sbrk(0x) = 0x20015B5C
.0153: vmgetinfo(0x2FF2) = 0
.0156: sbrk(0x) = 0x20015B5C
.0158: sbrk(0x) = 0x20015B5C
.0160: __libc_sbrk(0x) = 0x20015B60
.0163: getrpid(-1, -1, 10) = 475322
.0165: _getpid()
.9732: kioctl(0, , 0x2FF200000) = 0
.9735: getsockopt(3, 6, 1, 0x2FF2FF22550) = 0
.9737: setsockopt(3, 6, 1, 0x2FF22554, 4) = 0
.9739: ngetsockname(3, 0x2FF2FF22490) = 0
.9741: setsockopt(3, 0, 3, 0x2FF22560, 4) = 0
.9743: _select(7, 0xxxx) = 1
2785347: kwrite(3, " H14 l95121D i86 H Q o10".., 384) = 384
.9748: _select(7, 0xxxx) = 1
2785347: kread(3, " t x "0699841A E a S y\n".., 8192) = 768
.9837: _select(7, 0xxxx) = 2
Last unsuccessful login: Sat 13 Feb 22:16:28 2010 on ssh from
Last login: Sat 13 Feb 22:16:56 2010 on /dev/pts/4 from
*******************************************************************************
* Welcome to AIX Version 5.1! *
* Please see the README file in /usr/lpp/bos for information pertinent to *
* this release of the AIX Operating System. *
*******************************************************************************
2785347: kwrite(5, " x ".., 567) = 567
.9849: _select(7, 0xxxx) = 1
2785347: kread(3, " x d o e x10 # 0 A1C c17".., 8192) = 48
.1103: _select(7, 0xxxx) = 1
2785347: kwrite(5, " t e s t h o s t : r o o".., 17) = 17
testhost:root&
9.4781: _select(7, 0xxxx)
(sleeping...)
9.4781: _select(7, 0xxxx) = 1
2785347: kread(4, "04 n a80 n V\f a\0\0\010".., 16384) = 1
0.1322: _select(7, 0xxxx) = 1
2785347: kwrite(3, " O8D d r 013 g1982 o\n i".., 48) = 48
0.1327: _select(7, 0xxxx) = 1
2785347: kread(3, " p h1A 1 a I J E031D9D1C".., 8192) = 80
0.1347: _select(7, 0xxxx) = 1
2785347: kwrite(5, "\r\n", 2)
0.1352: close(5)
0.1354: _select(7, 0xxxx) = 1
2785347: kread(3, " O a *901C ^81 . B e83 R".., 8192) = 96
0.1358: close(4)
0.1360: kioctl(0, 2000000) = 0
0.1362: kioctl(0, 2151F8, 0x) = 0
0.1365: close(6)
0.1367: _select(7, 0xxxx) = 1
2785347: kwrite(3, "1A | B O # E c v9D e93 &".., 32) = 32
0.1372: sigprocmask(2, 0xFx2FF22630) = 0
0.1374: _sigaction(28, 0xx2FF226E0) = 0
0.1375: thread_setmymask_fast(0xxxx102A8043,
0xxxx) = 0x
0.1377: sigprocmask(2, 0xFx2FF22630) = 0
0.1379: _sigaction(28, 0x2FF226D0, 0x) = 0
0.1381: thread_setmymask_fast(0xxxx102A8043,
0xx0000017C, 0xx) = 0x
0.1383: kioctl(0, 2000000) = 0
0.1385: kioctl(1, 2000000) Err#25 ENOTTY
0.1387: kfcntl(1, F_GETFL, 0x) =
0.1389: kioctl(1, -, 0x2FF200000) = 0
0.1391: kioctl(1, -, 0x2FF200000) = 0
0.1393: kfcntl(1, F_SETFL, 0x) = 0
0.1395: kioctl(2, 2000000) Err#25 ENOTTY
0.1397: kfcntl(2, F_GETFL, 0x) =
Connection to testhost closed.
2785347: kwrite(2, " C o n n e c t i o n t".., 32) = 32
0.1402: shutdown(3, 2) = 0
0.1404: close(3)
0.1406: kfcntl(1, F_GETFL, 0x102A8043) =
0.1408: kfcntl(2, F_GETFL, 0x102A8043) =
0.1410: _exit(0)
# 把一个正在运行的进程(进程 ID 976)的详细跟踪发送到输出文件并显示简短摘要。使用了以下开关:
表 1. 对正在运行的进程进行详细跟踪使用的开关-o指定将跟踪写到输出文件 (/var/tmp/truss.out)-a显示传递给系统调用的所有参数-e显示传递给系统调用的所有环境字符串-f在跟踪输出中显示 fork 系统调用生成的所有子进程,包括它们的信号、错误和系统调用-l列出发出调用的进程 ID-D显示自前一个事件以来经过的时间-r all显示 Read 调用的 I/O 缓冲区的内容-w all显示 Write 调用的 I/O 缓冲区的内容-x all以十六进制格式显示系统调用的指定参数的数据-p指定要跟踪的正在运行的进程(在这个示例中是 976)清单 3. 把正在运行的进程的详细跟踪发送到文件# truss —o /var/tmp/truss.out —aeflD —r all —w all —x all —p 976
# cat /var/tmp/truss.out
psargs: sshd: testuser@pts/1 AIA,, ts/1
_select(0xxx,
0xx) (sleeping...)
_select(0xxx,
sigprocmask(0xx2FF2FF225A0)
sigprocmask(0xx2FF225A0, 0x)
1798193: kread(0xx2FF1E590, 0x) = 0x
? 2 q q A& Ao A' A,8E ) A, Au A?9D 8 A,87 {90 A1 A^ l p 0 !02 A— A% A4 A!9C\n
A| | &8E A!9F G A2 )1C M1E A^ AZ / AE p AI Az A
_select(0xxx,
sigprocmask(0xx2FF2FF225A0)
sigprocmask(0xx2FF225A0, 0x)
1798193: kwrite(0xx200A6F98, 0x) = 0x
kioctl(0xxx,
kioctl(0xxx2FF224C0,
_select(0xxx,
sigprocmask(0xx2FF22598,
0x2FF225A0) = 0x
sigprocmask(0xx2FF225A0,
1798193: kread(0xx2FF1E4F0, 0x) = 0x
t e s t h o s t : t e s t u s e r &
1798193: kread(0xx2FF1E4F0, 0x) = 0x0000003F
M o z i l l a\r\n
_select(0xxx,
sigprocmask(0xx2FF22598,
0x2FF225A0) = 0x
sigprocmask(0xx2FF225A0,
1798193: kread(0xx2FF1E4F0, 0x) = 0x
t r u s s . t x t\r\n f p d g
_select(0xxx,
0xx) (sleeping...)
#可以使用系统调用跟踪寻找潜在问题根源的错误。应该寻找带 #Err 标志的调用,这表示返回码非零,可以在 /usr/include/sys/errno.h 中查找返回码。还可以在使用 -D 开关时寻找调用之间的长 delta,通过这种方法寻找潜在的性能延迟原因。例如, 中跟踪输出示例中最后两个事件的运行时间是 2.0001 秒。
休斯顿,我们遇到问题了!既然已经掌握了可以帮助诊断网络问题的工具集,现在就来逐步看看解决常见问题的逻辑方法。下面列出与 AIX 网络相关的一些常见问题并提供诊断方法。
主机未知如果无法识别在命令中或由应用程序使用的主机名,那么通过查看 /etc/irs.conf 和 /etc/netsvc.conf 中的 hosts 记录检查解析主机名的搜索次序。对于通过名称引用的主机,必须通过名称解析机制解析它。
如果在 hosts 记录中指定 local,那么在 /etc/hosts 文件中寻找这个主机名。在
所示的示例中,可以看到用简单的 grep 命令在这个文件中寻找主机 testhost 会返回成功的匹配。主机名必须出现在第一个字段(IP 地址)后面的任何字段中。在这个示例中,这个服务器还有两个别名: 和 aixserver。这意味着,在需要主机名参数的命令中,可以用这三个名称中的任意一个引用此主机。
清单 4. 在 /etc/hosts 中寻找主机# grep testhost /etc/hosts
10.217.1.206
#如果在 hosts 记录中指定 bind 或 dns,那么使用 nslookup 确认可以通过 DNS 解析主机名。在
所示的示例中,可以看到解析已经成功了,DNS 服务器 (显示其 IP 地址)返回了主机 testhost 的 IP 地址 10.217.1.206。
清单 5. 通过 DNS 解析主机名# nslookup testhost
158.177.79.90
10.217.1.206
#可以在配置文件中指定的其他名称解析服务,这超出了本文的范围,这里不作讨论。
无响应的主机如果主机是已知的,但是用户抱怨这个主机本身或它上面运行的应用程序没有响应,那么使用 ping 并查看数据包丢失率是否为 0%(见 )。如果不是 0%,就意味着目标主机或网络有问题。
清单 6. Ping 一个有响应的主机# ping testhost
PING testhost: (10.217.1.206): 56 data bytes
64 bytes from 10.217.1.206: icmp_seq=0 ttl=253 time=0 ms
64 bytes from 10.217.1.206: icmp_seq=1 ttl=253 time=0 ms
64 bytes from 10.217.1.206: icmp_seq=2 ttl=253 time=0 ms
64 bytes from 10.217.1.206: icmp_seq=3 ttl=253 time=0 ms
----testhost PING Statistics----
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0/0/0 ms
#另外,在 time= 字段中寻找比较长的响应时间,或报告的值中出现的高峰值。这两种现象都表明网络或主机性能差,这可能就是您的用户抱怨的应用程序超时的原因。
使用 route get 查明路由(见 ),检查网络管理员是否使用了正确的网关,从而确认有到目标主机的路由。
清单 7. 获取主机的路由表信息# route get testhost
route to: testhost
destination: 10.203.35.128
mask: 255.255.255.128
gateway: 10.203.35.1
interface: en2
interf addr: myhost
flags: &UP,GATEWAY,DONE,PRCLONING&
#使用 ifconfig(见 )确保已经为 AIX 配置了报告的 interface,而且其状态是 UP 和 RUNNING。
清单 8. 显示网络接口状态# ifconfig en1
en1: flags=7e&UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,
CHECKSUM_OFFLOAD,CHECKSUM_SUPPORT,PSEG&
inet 10.216.163.37 netmask 0xffffff00 broadcast 10.216.163.255
tcp_sendspace 131072 tcp_recvspace 65536
# ifconfig -a
en2: flags=7e&UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,
CHECKSUM_OFFLOAD,CHECKSUM_SUPPORT,PSEG&
inet 10.203.35.14 netmask 0xffffff80 broadcast 10.203.35.127
en1: flags=7e&UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,
CHECKSUM_OFFLOAD,CHECKSUM_SUPPORT,PSEG&
inet 10.216.163.37 netmask 0xffffff00 broadcast 10.216.163.255
tcp_sendspace 131072 tcp_recvspace 65536
en0: flags=7e&BROADCAST,NOTRAILERS,SIMPLEX,MULTICAST,GROUPRT,64BIT,
CHECKSUM_OFFLOAD,CHECKSUM_SUPPORT,PSEG&
lo0: flags=e08084b&UP,BROADCAST,LOOPBACK,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT&
inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255
inet6 ::1/0
tcp_sendspace 65536 tcp_recvspace 65536
#使用 ping 检查是否能够从您的主机到达 ifconfig 报告的 gateway。如果无法到达这个网关,那么从您主机上的网络适配器到网关的物理连接可能有问题(例如交换机端口、线路和网卡有故障)。
使用 traceroute(见 )跟踪到目标主机和来自目标主机的完整路由。有到主机的路由不一定意味着有反向的路由,所以要让网络管理员确认两个路由都存在,而且没有任何防火墙阻止发送或接收的应用程序通信流。如果路由上的任何一站没有返回数据(由星号 [*] 表示),就表明路由有问题。但是,traceroute 用来跟踪路由的数据包也可能被防火墙阻止。这个命令的输出应该有助于网络管理员判断是否真的有路由问题。
清单 9. 跟踪到一个主机的成功路由 # traceroute testhost
trying to get source for testhost
source should be 10.216.163.37
traceroute to testhost (10.217.1.206) from 10.216.163.37 (10.216.163.37), 30 hops max
outgoing MTU = 1500
10.216.163.2 (10.216.163.2)
10.217.189.6 (10.217.189.6)
testhost (10.217.1.206)
#无响应的 TCP 端口如果一个主机是已知的而且能够响应 ping,但是应用程序或远程服务使用的某个 TCP 端口似乎没有响应,那么使用 telnet 尝试连接目标主机上的这个端口,见
所示的示例,这个示例尝试连接主机 testhost 上的端口 25。
清单 10. 测试主机上的端口 25 (SMTP)(成功)# telnet testhost 25
Connected to testhost.
Escape character is '^]'.
ESMTP Sendmail Wed, 10 Feb :28 GMT
telnet& quit
Connection closed.
#/etc/services 中列出常用的端口。成功的连接应该会产生消息 Escape character is '^]',还可能从邮件服务器等远程服务返回消息,见 。如果没有收到这些消息而且连接超时或被拒绝,那么让网络管理员检查路由上是否有防火墙阻止发送的通信流类型。另外,让目标主机的网络管理员检查应用服务器或远程服务是否正在运行并监听指定的端口,以及主机上运行的防火墙是否阻止通信流。
没有连接到有响应的 TCP 端口如果一个主机是已知的,能够响应 ping,而且在某个 TCP 端口上对其他主机有响应,但是不响应您的主机,那么使用 telnet 按
中说明的逻辑尝试连接这个端口。
使用 netstat 检查到此主机的连接及其状态,见
中的第二个示例,这个示例检查到某个 IP 地址和端口(10.217.1.206 上的端口 22)的所有连接。除非连接状态是 ESTABLISHED,否则连接仍然在建立过程中或已经终止了。例如 SYN_SENT 状态表示您的主机已经发起了三阶段握手,但是还没有从目标主机收到确认。这意味着对于此类型的通信流有到目标主机的路由,但是没有反向的路由。在这种情况下,让网络管理员检查反向的路由上是否有防火墙阻止此类型的通信流。
清单 11. 显示到主机的连接的状态# netstat -an | grep 10.217.1.206
10.203.35.14.22
10.217.1.206.1023
ESTABLISHED
10.203.35.14.46183
10.217.1.206.22
ESTABLISHED
# netstat -an | grep 10.217.1.206.22
10.203.35.14.46183
10.217.1.206.22
ESTABLISHED
# netstat -an | grep ESTABLISHED
10.203.35.14.22
10.217.1.206.1023
ESTABLISHED
10.203.35.14.46183
10.217.1.206.22
ESTABLISHED
10.216.163.37.1521
10.216.163.37.44122
ESTABLISHED
10.216.163.37.44122
10.216.163.37.1521
ESTABLISHED
127.0.0.1.199
127.0.0.1.32769
ESTABLISHED
127.0.0.1.32769
127.0.0.1.199
ESTABLISHED
10.203.35.14.46183
10.203.35.170.22
ESTABLISHED
10.216.163.37.32770
10.216.163.37.32771
ESTABLISHED
#使用 tcpdump 显示发送到主机上的指定端口或从其接收的数据包,见
中的示例。如果只显示您主机发送的数据包,这也表明从目标主机发送回的通信流有问题,因此反向路由有问题。
清单 12. 显示发送到特定主机上的特定端口或从其接收的数据包
# tcpdump -i en2 host testhost port 22
12:15:38. myhost.47216 & testhost.22: . ack
win 17520 (DF) [tos 0x10]
12:15:38. myhost.47216 & testhost.22: P 145:193(48) ack 192 win 17520 (DF)
[tos 0x10]
12:15:38. testhost.22 & myhost.47216: P 192:240(48) ack 193 win 24820 (DF)
[tos 0x10]
12:15:38. myhost.47216 & testhost.22: P 193:241(48) ack 240 win 17520 (DF)
[tos 0x10]
12:15:38. testhost.22 & myhost.47216: P 240:288(48) ack 241 win 24820 (DF)
[tos 0x10]
12:15:38. myhost.47216 & testhost.22: . ack 288 win 17520 (DF) [tos 0x10]
12:15:38. myhost.47216 & testhost.22: P 241:289(48) ack 288 win 17520 (DF)
[tos 0x10]
12:15:38. testhost.22 & myhost.47216: P 288:336(48) ack 289 win 24820 (DF)
[tos 0x10]
12:15:38. testhost.22 & myhost.47216: P 336:432(96) ack 289 win 24820 (DF)
[tos 0x10]
145 packets received by filter
0 packets dropped by kernel
#登录时间长如果用户抱怨说登录某个主机时响应时间很长,那么登录此主机,使用 dig 对用户的计算机的 IP 地址执行反向查找,见
中的示例。
清单 13. 在 DNS 中反向查找 IP 地址# dig -x 10.217.1.206
; &&&& DiG 9.2.0 &&&& -x 10.217.1.206
;; global options:
;; Got answer:
;; -&&HEADER&&- opcode: QUERY, status: NOERROR, id: 21351
;; flags: QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;206.1.217.10.in-addr.arpa.
;; ANSWER SECTION:
206.1.217.10.in-addr.arpa. 3600 IN
;; Query time: 11 msec
;; SERVER: 10.217.1.206#53(10.217.1.206)
;; WHEN: Fri Feb 12 13:28:16 2010
;; MSG SIZE
#在登录期间,主机可能会对它收到的数据包的源地址的 IP 地址执行反向查找。根据主机的配置不同,查找失败会花费一定的时间,然后继续登录。这个过程让用户觉得登录时间很长。
在 dig 返回的输出中寻找 ANSWER SECTION — 具体地说,寻找 PTR 记录,这是主机名的指针。如果没有返回这个指针,则说明登录延迟就是由此造成的。
MAC 地址查询如果应用程序需要 MAC 地址 — 例如,由于 ACL 基于 MAC 地址、防火墙规则基于 MAC 地址或配置需要 MAC 地址(例如 Linux® 和 Sun® Solaris® 上的 KickStart 或 JumpStart 安装服务) — 那么使用 entstat 并查看输出中的 Hardware Address,即可查明本地接口的 MAC 地址,见
中的示例。
清单 14. 显示网络适配器的以太网统计数据# entstat -d en2
-------------------------------------------------------------
ETHERNET STATISTICS (en2) :
Device Type: 10/100/1000 Base-TX PCI-X Adapter ()
Hardware Address: 00:02:55:d3:37:be
Elapsed Time: 114 days 22 hours 48 minutes 20 seconds
Transmit Statistics:
Receive Statistics:
--------------------
-------------------
Interrupts: 0
Interrupts:
Transmit Errors: 0
Receive Errors: 0
Packets Dropped: 0
Packets Dropped: 0
Bad Packets: 0
Max Packets on S/W Transmit Queue: 109
S/W Transmit Queue Overflow: 0
Current S/W+H/W Transmit Queue Length: 0
Broadcast Packets: 442
Broadcast Packets:
Multicast Packets: 0
Multicast Packets: 349
No Carrier Sense: 0
CRC Errors: 0
DMA Underrun: 0
DMA Overrun: 0
Lost CTS Errors: 0
Alignment Errors: 0
Max Collision Errors: 0
No Resource Errors: 0
Late Collision Errors: 0
Receive Collision Errors: 0
Deferred: 0
Packet Too Short Errors: 0
SQE Test: 0
Packet Too Long Errors: 0
Timeout Errors: 0
Packets Discarded by Adapter: 0
Single Collision Count: 0
Receiver Start Count: 0
Multiple Collision Count: 0
Current HW Transmit Queue Length: 0
General Statistics:
-------------------
No mbuf Errors: 0
Adapter Reset Count: 0
Adapter Data Rate: 200
Driver Flags: Up Broadcast Running
Simplex 64BitSupport ChecksumOffload
PrivateSegment DataRateSet
10/100/1000 Base-TX PCI-X Adapter () Specific Statistics:
--------------------------------------------------------------------
Link Status: Up
Media Speed Selected: 100 Mbps Full Duplex
Media Speed Running: 100 Mbps Full Duplex
PCI Mode: PCI-X (100-133)
PCI Bus Width: 64-bit Jumbo
Frames: Disabled
TCP Segmentation Offload: Enabled
TCP Segmentation Offload Packets Transmitted:
TCP Segmentation Offload Packet Errors: 0
Transmit and Receive Flow Control Status: Disabled
Transmit and Receive Flow Control Threshold (High): 32768
Transmit and Receive Flow Control Threshold (Low): 24576
Transmit and Receive Storage Allocation (TX/RX): 16/48
#如果一个远程主机对于您的主机是已知的,因此在缓存中存在条目,那么可以使用 arp 查明这个主机的 MAC 地址(见 )。
清单 15. 显示 arp 表中的主机条目# arp testhost
testhost (10.217.1.206) at 0:c:29:44:90:28 [ethernet] stored in bucket 0
#如果 arp 缓存中没有远程主机的条目,可以通过使用 ping 添加条目。
是否正在发送数据包?如果主机在某种程度上没有响应(完全没有响应或者在某一端口上没有响应),需要检查您的主机是否正在发送数据包,用本地应用程序或命令再现问题。然后,使用 tcpdump 显示发送到目标主机的数据包,见
中的示例。
清单 16. 显示发送到特定主机的数据包# tcpdump -i en2 dst host testhost
tcpdump: listening on en2
10:08:24. myhost.46183 & testhost.22: P :(48)
win 17520 (DF) [tos 0x10]
10:08:25. myhost.46183 & testhost.22: P 1:49(48) ack 48 win 17520 (DF)
[tos 0x10]
10:08:25. myhost.46183 & testhost.22: . ack 96 win 17520 (DF)
[tos 0x10]
10:08:25. myhost.46183 & testhost.22: P :(48) ack
win 17520 (DF) [tos 0x10]
53 packets received by filter
0 packets dropped by kernel
#如果没有看到数据包离开您的主机,那么要么是发送数据的应用程序有问题,要么是接口或路由有问题(可以用本节前面介绍的步骤进行诊断)。
是否正在接收数据包?如果主机在某种程度上没有响应(完全没有响应或者在某一端口上没有响应),需要检查是否正在从此主机接收数据包,那么用本地应用程序或命令再现问题。然后,使用 tcpdump 显示从此主机接收的数据包,见 。
清单 17. 显示特定主机发送的数据包# tcpdump -i en2 src host testhost
tcpdump: listening on en2
10:10:38. testhost.22 & myhost.46183: . ack 130 win 24820 (DF) [tos 0x10]
10:10:38. testhost.22 & myhost.46183: F 529:529(0) ack 225 win 24820 (DF)
[tos 0x10]
10:10:43. testhost & myhost: icmp: echo reply
10:10:44. testhost & myhost: icmp: echo reply
102 packets received by filter
0 packets dropped by kernel
#如果已经确认您的主机正在发送数据包(使用
中说明的步骤),但是没有收到数据包,就意味着此主机没有响应、主机上的服务没有响应或者没有反向路由(不存在反向路由或路由上的防火墙阻止通信流)。
已建立连接但应用程序或命令失败了
如果用户抱怨说应用程序或命令看起来已经成功地建立了连接,但是之后就失败了,那么看看这个命令是否有调试、跟踪或详细输出选项,重新运行,看看生成的额外输出是否能够指出问题的根源。例如,ssh 和 scp 有详细输出开关 (-v),这可以提供客户机和服务器之间协议交换的详细信息:
建立到远程主机的 TCP 端口 22 的连接。找到本地私有密钥文件。交换协议版本并答成一致。找到远程主机密钥并与本地 known_hosts 文件中此主机的条目匹配。
对于在本地找到的每个私有密钥类型,尝试执行密钥身份验证。当这些操作失败时,提示用户输入身份验证密码。
用户输入密码,登录成功,出现 shell 提示。
详细输出选项有助于查明哪个步骤失败了,可能是问题的原因。
使用 truss 跟踪命令或运行远程服务的进程(见 )。
跟踪有问题的应用程序或守护进程如果前面的步骤无法查明问题的准确原因,需要进一步诊断连接问题,那么使用 truss 对命令进行详细的系统调用跟踪。
另外,使用 truss 对运行您试图连接的远程服务的守护进程进行详细的系统调用跟踪。如果您无权访问运行此进程的用户或根用户,可能需要向远程主机的系统管理员求助。
当某个系统命令返回错误时,显示非零的返回码,显示形式是 Err#,后面跟着错误号和错误码(例如 ENOSPC)。可以在 /usr/include/sys/errno.h 中找到标准的错误码,这有助于查明错误的原因。例如,如果一个系统调用返回 Err#2 ENOENT(没有这样的文件或目录),就表示此命令要寻找一个文件或目录,但是无法找到,因此运行失败。如果一个系统调用返回 Err#28 ENOSPC(设备上没有剩余空间),就表示磁盘或文件系统满了,这可能导致守护进程无法响应服务请求。
详细的跟踪会显示来自系统调用参数的数据 (-x all) 以及 Read (-r all) 和 Write (-w all) 调用的缓冲区的内容。这些缓冲区的内容有时候能够指出问题的原因。
还可以使用 -D 开关显示每个系统调用的时间差,时间差表示自前一个事件以来流逝的秒数。应该寻找比较长的时间差,这些情况可能表示存在延迟,会导致响应时间长且性能不佳。
结束语网络问题诊断不一定像某些系统管理员认为的那样困难。本系列说明,只要具备适当的知识,您就可以诊断、分析和查明许多需要向网络管理员求助的问题的原因,让网络管理员能够更轻松地纠正问题。在某些情况下,您甚至可以自己解决问题。祝您顺利解决问题!
参考资料 :阅读 1981 年 9 月发布的 DARPA Internet Program, Protocol Specification。
(Martin Brown,developerWorks,2009 年 9 月):学习发现 UNIX 网络性能问题的快速方法。
(Sean Walberg,developerWorks,2006 年 3 月):学习使用 truss、trace 和相似的工具获取信息。
(Martin Brown,developerWorks,2007 年 12 月):了解网络扫描。这个系列分为 ,所以一定要全部阅读。
(Ken Milberg,developerWorks,2007 年 11 月):了解网络概况,学习如何监视硬件。这个系列也分为 。
:developerWorks 的“AIX and UNIX 专区”提供了大量与 AIX 系统管理的所有方面相关的信息,您可以利用它们来扩展自己的 UNIX 技能。:访问“AIX and UNIX 新手入门”页面可了解更多关于 AIX 和 UNIX 的内容。:AIX and UNIX 专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。:在这里你可以下载到可以运行在 AIX 或者是 UNIX 系统上的 IBM 服务器软件以及工具,让您可以提前免费试用他们的强大功能。:本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。IBM Systems Magazine 的内容都是由十分资深的业内人士撰写的,包括 IBM 的合作伙伴、IBM 的主机工程师以及高级管理人员。所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用 IBM 系统时有一个更好的认识。:阅读关于这些和其他技术主题的图书。
参与 AIX 和 UNIX® 论坛:
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
文章、教程、演示,帮助您构建、部署和管理云应用。
立即加入来自 IBM 的专业 IT 社交网络。
为灾难恢复构建应用,赢取现金大奖。
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=AIX and UNIXArticleID=524537ArticleTitle=网络问题判断:供系统管理员使用的 AIX 工具publish-date=

我要回帖

更多关于 pos机签到通讯超时 的文章

 

随机推荐