用协议分析工具学习TCP/IP(2)

1、TCP/IP的基本原理
  本文的重点虽然是根据实例来解析TCP/IP,但要讲明白下面的过程必须简要讲一下TCP/IP的基本原理。
  1)网络是分层的,每一层分别负责不同的通信功能。
  TCP/IP通常被认为是一个四层协议系统,TCP/IP协议族是一组不同的协议组合在一起构成的协议族。尽管通常称该协议族为TCP/IP,但TCP和IP只是其中的两种协议而已,如表1所示。每一层负责不同的功能:
TCP/IP层描述 主要协议 主要功能
应用层 HTTP、Telnet、FTP和E-mail等 负责把数据传输到传输层或接收从传输层返回的数据
传输层 TCP和UPD 主要为两台主机上的应用程序提供端到端的通信,TCP为两台主机提供可靠的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。UPD则为应用层提供一种非常简单的服务。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据能到达另一端。
网络层 ICMP、IP和IGMP 有时称作互联网层,主要为数据包选择路由,其中IP是TCP/IP协议族中最为核心的协议。所有的TCP、UPD、ICMP及IGMP数据协议都以IP数据包格式传输。
链路层 ARP、RARP和设备驱动程序及接口卡 发送时将IP包作为帧发送;接收时把接收到的位组装成帧;提供链路管理、错误检测等。

表1

  分层的概念说起来非常简单,但在实际的应用中非常的重要,在进行网络设置和排除故障时对网络层次理解得很透,将对工作有很大的帮助。例如:设置路由是网络层IP协议的事,要查找MAC地址是链路层ARP的事,常用的Ping命令由ICMP协议来做的。
  图5显示了各层协议的关系,理解它们之间的关系对下面的协议分析非常重要。

用协议分析工具学习TCP/IP(图五)
图5

  2)数据发送时是自上而下,层层加码;数据接收时是自下而上,层层解码。
  当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图6所示。TCP传给IP的数据单元称作TCP报文段或简称为TCP段。I P传给网络接口层的数据单元称作IP数据报。 通过以太网传输的比特流称作帧(Frame)。
  数据发送时是按照图6自上而下,层层加码;数据接收时是自下而上,层层解码。

用协议分析工具学习TCP/IP(图六)
图6

  3)逻辑上通讯是在同级完成的
  垂直方向的结构层次是当今普遍认可的数据处理的功能流程。每一层都有与其相邻层的接口。为了通信,两个系统必须在各层之间传递数据、指令、地址等信息,通信的逻辑流程与真正的数据流的不同。虽然通信流程垂直通过各层次,但每一层都在逻辑上能够直接与远程计算机系统的相应层直接通信。
  从图7可以看出,通讯实际上是按垂直方向进行的,但在逻辑上通信是在同级进行的。

用协议分析工具学习TCP/IP(图七)
图7

  2、过程描述
  为了更好的分析协议,我们先描述一下上述例子数据的传输步骤。如图8所示:
  1)FTP客户端请求TCP用服务器IP地址建立连接。
  2)TCP发送一个连接请求分段到远端的主机,即用上述IP地址发送一份IP数据报。
  3) 如果目的主机在本地网络上,那么IP数据报可以直接送到目的主机上。如果目的主机在一个远程网络上,那么就通过IP选路函数来确定位于本地网络上的下一站路由器地址,并让它转发IP数据报。在这两种情况下,IP数据报都是被送到位于本地网络上的一台主机或路由器。
  4) 本例是一个以太网,那么发送端主机必须把32位的IP地址变换成48位的以太网地址,该地址也称为MAC地址,它是出厂时写到网卡上的世界唯一的硬件地址。把IP地址翻译到对应的MAC地址是由ARP协议完成的。
  5) 如图的虚线所示,ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机,这个过程称作广播。ARP请求数据帧中包含目的主机的IP地址,其意思是“如果你是这个IP地址的拥有者,请回答你的硬件地址。”
  6) 目的主机的ARP层收到这份广播后,识别出这是发送端在寻问它的IP地址,于是发送一个ARP应答。这个ARP应答包含I P地址及对应的硬件地址。
  7) 收到ARP应答后,使ARP进行请求—应答交换的IP数据包现在就可以传送了。
  8) 发送IP数据报到目的主机。

用协议分析工具学习TCP/IP(图八)

图8

北大青鸟网上报名
北大青鸟招生简章