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



图4

说明:为了能抓到ARP协议的包 , 在WINDOWS 2000 中运行arp –d 清除arp缓存 。

四、过程分析

1、TCP/IP的基本原理

本文的重点虽然是根据实例来解析TCP/IP , 但要讲明白下面的过程必须简要讲一下TCP/IP的基本原理 。

A.网络是分层的 , 每一层分别负责不同的通信功能 。

TCP/IP通常被认为是一个四层协议系统 , TCP/IP协议族是一组不同的协议组合在一起构成的协议族 。尽管通常称该协议族为TCP/IP , 但TCP和IP只是其中的两种协议而已 , 如表1所示 。每一层负责不同的功能:;

表1

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

图5显示了各层协议的关系 , 理解它们之间的关系对下面的协议分析非常重要 。

图5

b.数据发送时是自上而下 , 层层加码;数据接收时是自下而上 , 层层解码 。

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

数据发送时是按照图6自上而下 , 层层加码;数据接收时是自下而上 , 层层解码 。

图6

c. 逻辑上通讯是在同级完成的

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

从图7可以看出 , 通讯实际上是按垂直方向进行的 , 但在逻辑上通信是在同级进行的 。

图72、过程描述

为了更好的分析协议 , 我们先描述一下上述例子数据的传输步骤 。如图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数据报到目的主机 。

推荐阅读