unix 网络协议的深度分析

上传人:xzh****18 文档编号:33880648 上传时间:2018-02-18 格式:DOC 页数:15 大小:562.50KB
返回 下载 相关 举报
unix 网络协议的深度分析_第1页
第1页 / 共15页
unix 网络协议的深度分析_第2页
第2页 / 共15页
unix 网络协议的深度分析_第3页
第3页 / 共15页
unix 网络协议的深度分析_第4页
第4页 / 共15页
unix 网络协议的深度分析_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《unix 网络协议的深度分析》由会员分享,可在线阅读,更多相关《unix 网络协议的深度分析(15页珍藏版)》请在金锄头文库上搜索。

1、UNIX 网络协议的深度分析简介: 无论您是在监控您的网络以便发现性能问题、调试一个应用,还是在您的网络上发现一个您不认识的应用,有时您都需要对您的 UNIX 网络中使用的协议进行深度分析,以便了解它们的作用。有一些协议很容易确定和理解,即使它们使用非标准端口。而另外一些协议则需要进行更多的观察以了解它们在做什么、在交换什么信息。在本文中,我们将介绍对 UNIX 网络中使用的协议进行深度分析的技术。引言网络已经是无处不在,很多时候我们都会利用网络与不同主机进行通信,包括网络内部和外部的。大多数情况下这不会遇到问题,但是有时您需要仔细检查您的网络以查明问题原因。 仔细检查网络流量内容的原因有很多

2、。其中第一个原因是您可能正在调试一个现有的网络应用,或者您正在开发一个应用,而您想要监控通过您的网络的流量。第二个原因是需要识别可能耗尽网络带宽和资源的流量。对于前一种情况,您可能已经知道协议的内容了,但是您希望能够更深入地了解正在传输的实际数据,例如,在使用 Web 服务时。对于后一种情况,确定数据包的内容需要了解正在使用的协议的一些扩展知识。 在 TCP/IP 和 UDP/IP 的通信中,最主要的元素是用于确定主机和端口号的 IP 地址。端口号用于提供额外的通信通道,这样您才能够在两个主机之间实现多个连接。其中端口定义还有一些标准。例如,端口 25 是专用于电子邮件(SMTP)传输,而大多

3、数网站都是运行在端口 80(HTTP)上的。这些规范可以使程序之间通过一个熟悉的通道进行通信,这与您选择电话或传真号的道理是一样的。 虽然有这样一些规范,但是您实际想使用哪些端口是没有任何限制或约束的。事实上,大多数情况下一些破坏性网络应用和一些安全性方法会故意使用非标准端口。例如,有些应用会通过将一个标准端口用于不同的协议而隐藏内容,如在端口 25 上使用 HTTP 协议。此外,有时某些应用也会使用与标准不同的端口,这样端口的用途就明显了(如,将端口 99 用于 HTTP) ,或者将特定的协议流量封装到另一个协议中。最后的方法实际上是网络通道和虚拟私有网络(VPN )所使用的方法。 不管网络

4、流量原因和复杂性,第一个步骤都会开始记录数据。记录原始数据如果您希望记录网络原始数据,以便自己检查这些信息,那么您可以使用许多不同的工具。大多数的网络嗅探器也能够解码和解密特定的数据包内容,这能够帮助您研究一个已知协议的内容。 在 Solaris 上,您可以使用 snoop 工具,而在 AIX 上,您可以使用 iptrace 工具。您也可以尝试使用跨平台的 tcpdump 工具,它支持大多数的 UNIX 和 Linux 操作系统。这些工具能够帮您捕捉和解码数据包,通常也能为您执行大多数的协议分析。注意,现代交换机不会将 Ethernet 数据包发送到每一个端口上,这通常会限制您从当前主机获取的

5、信息量。许多现代交换机具有一个管理端口,它通常带有与这种监控完全相同的所有数据包的副本。 解码网络传输最复杂的是网络数据包中信息的级别。此外,大部分信息也会经过二进制编码后再发送,从网络捕捉完全原始的数据包需要进行大量的操作才能捕捉您需要的数据。通过使用实现某些处理的工具,您可以简化解码网络数据的过程。 例如,在一个 Ethernet 上查看一个典型的 TCP/IP 协议,您将会发现网络中传输的数据包括: Ethernet 数据包头,包括 Ethernet 来源和目标地址,数据包大小和 Ethernet 数据包类型。 IP 报头,由 IP 寻址(来源和目标) ,协议标识和 IP 标记。您也会得

6、到关于分片和数据包顺序的信息。 TCP 报头,它包含端口上的信息、隐含的协议、标记和顺序编号。 即使有这些信息,我们仍然无法了解实际内容。在 TCP(或 UDP)协议之下还有额外的协议,标准数据协议(包括 HTTP、SMTP 和 FTP) ,或者封装性协议,如 Remote Procedure Call (RPC) 和 RPC 的子类型,如 NFS。 通常这些工具必须使用协议和/或端口号来确定正在传输的内容。所以,如果流量是通过非标准端口传输的,那么这些信息可能无法正确解码。 基本的网络分析本文之前提到的许多网络嗅探工具都提供了不同级别的协议解码,它们是通过检查端口和内容来确定所使用的协议实现

7、的。 例如,snoop 和 tcpdump 都提供了关于 UDP 和 TCP 上不同协议的不同级别的详细信息。例如,在 snoop 中,您可以获得从顶级协议到所传输的单个数据块的关于 NFS 操作的详细信息。例如,您可以通过指定监控 RPC 使用 NFS 协议来实现对 NFS 流量的监控:$ snoop -v rpc nfs。 它能输出非常详细的数据包信息,并且它们应该进行更紧密的观察。 清单 1 提供了 Ethernet 报头数据。 清单 1. Ethernet 报头数据ETHER: - Ether Header -ETHER: ETHER: Packet 64 arrived at 16:

8、14:41.79434ETHER: Packet size = 238 bytesETHER: Destination = 0:1a:ee:1:1:c0, ETHER: Source = 0:21:28:3c:c0:61, ETHER: Ethertype = 0800 (IP)ETHER: 这里的输出表明 Ethernet 数据包包含了 IP 数据、全部数据包大小和时间,以及数据包的目标和来源地址。 清单 2 显示的是 IP 报头。其中除了协议和来源/ 目标地址信息,其余许多 IP 数据是没有用的。清单 2. IP 报头IP: - IP Header -IP: IP: Version = 4

9、IP: Header length = 20 bytesIP: Type of service = 0x00IP: xxx. . = 0 (precedence)IP: .0 . = normal delayIP: . 0. = normal throughputIP: . .0. = normal reliabilityIP: . .0. = not ECN capable transportIP: . .0 = no ECN congestion experiencedIP: Total length = 224 bytesIP: Identification = 27460IP: Fla

10、gs = 0x4IP: .1. . = do not fragmentIP: .0. . = last fragmentIP: Fragment offset = 0 bytesIP: Time to live = 64 seconds/hopsIP: Protocol = 6 (TCP)IP: Header checksum = 4d11IP: Source address = 192.168.0.112, tiger.mcslp.priIP: Destination address = 192.168.0.2, bear.mcslp.priIP: No optionsIP:在 清单 3 中

11、,您可以看到 TCP 报头。同样,这些信息中通常只有来源和目标端口号才是有用的,因为这些信息将可用于确定预期的协议,或者提供给您可用于更进一步观察这个端口所传输流量的信息。 清单 3. TCP 报头TCP: - TCP Header -TCP: TCP: Source port = 2049TCP: Destination port = 889 (Sun RPC)TCP: Sequence number = 2834727685TCP: Acknowledgement number = 2654368001TCP: Data offset = 32 bytesTCP: Flags = 0x18

12、TCP: 0. . = No ECN congestion window reducedTCP: .0. . = No ECN echoTCP: .0. . = No urgent pointerTCP: .1 . = AcknowledgementTCP: . 1. = PushTCP: . .0. = No resetTCP: . .0. = No SynTCP: . .0 = No FinTCP: Window = 32806TCP: Checksum = 0x4852TCP: Urgent pointer = 0TCP: Options: (12 bytes)TCP: - No ope

13、rationTCP: - No operationTCP: - TS Val = 34449495, TS Echo = 253458642TCP:清单 4 的倒数第二部分显示的是 RPC 报头数据。清单 4. RPC 报头数据RPC: - SUN RPC Header -RPC: RPC: Record Mark: last fragment, length = 168RPC: Transaction id = 3041181596RPC: Type = 1 (Reply)RPC: This is a reply to frame 63RPC: Status = 0 (Accepted)RP

14、C: Verifier : Flavor = 0 (None), len = 0 bytesRPC: Accept status = 0 (Success)RPC: 最后, 清单 5 提供了 NFS 数据包内容,包括权限(文件模式)、文件大小、拥有者和其他信息。在这里,这个 NFS 操作请求是进行文件系统统计(这等同于 ls 操作结果),因此这就是详细信息。 清单 5. NFS 数据包内容NFS: - Sun NFS -NFS: NFS: Proc = 18 (Get filesystem statistics)NFS: Status = 0 (OK)NFS: Post-operation a

15、ttributes: NFS: File type = 2 (Directory)NFS: Mode = 0777NFS: Setuid = 0, Setgid = 0, Sticky = 0NFS: Owners permissions = rwxNFS: Groups permissions = rwxNFS: Others permissions = rwxNFS: Link count = 24, User ID = 502, Group ID = 10NFS: File size = 29, Used = 2560NFS: Special: Major = 4294967295, Minor = 4294967295NFS: File system id = 781684113418, File id = 4304616NFS: Last access time = 28-Feb-10 15:4

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业合同/协议

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号