二 用协议分析工具学习TCP/IP


编者按:上篇我们搭建一个最简单的网络环境《用协议分析工具学习TCP/IP(一)》下面通过分析用iris捕捉的包来分析一下TCP/IP的工作过程 , 为了更清楚的解释数据传送的过程 , 我们按传输的不同阶段抓了四组数据 , 分别是查找服务器、建立连接.
第一组 查找服务器
1)下图显示的是1、2行的数据
 
图9
2)解释数据包
这两行数据就是查找服务器及服务器应答的过程 。
在第1行中 , 源端主机的MAC地址是00:50:FC:22:C7:BE 。目的端主机的MAC地址是FF:FF:FF:FF:FF:FF , 这个地址是十六进制表示的 , F换算为二进制就是1111 , 全1的地址就是广播地址 。所谓广播就是向本网上的每台网络设备发送信息 , 电缆上的每个以太网接口都要接收这个数据帧并对它进行处理 , 这一行反映的是步骤5)的内容 , ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机 。网内的每个网卡都接到这样的信息“谁是192.168.113.1的IP地址的拥有者 , 请将你的硬件地址告诉我” 。
第2行反映的是步骤6)的内容 。在同一个以太网中的每台机器都会"接收"到这个报文 , 但正常状态下除了1号机外其他主机应该会忽略这个报文 , 而1号的主机的ARP层收到这份广播报文后 , 识别出这是发送端在寻问它的IP地址 , 于是发送一个ARP应答 。告知自己的IP地址和MAC地址 。第2行可以清楚的看出1号回答的信息__自己的MAC地址00:50:FC:22:C7:BE 。
这两行反映的是数据链路层之间一问一答的通信过程 。这个过程就像我要在一个坐满人的教室找一个叫“张三”的人 , 在门口喊了一声“张三” , 这一声大家都听见了 , 这就叫广播 。张三听到后做了回应 , 别人听到了没做回应 , 这样就与张三取得了联系 。
3)头信息分析
如下图左栏所示 , 第1数据包包含了两个头信息:以太网(Ethernet)和ARP 。
图10
下表2是以太网的头信息 , 括号内的数均为该字段所占字节数 , 以太网报头中的前两个字段是以太网的源地址和目的地址 。目的地址为全1的非凡地址是广播地址 。电缆上的所有以太网接口都要接收广播的数据帧 。两个字节长的以太网帧类型表示后面数据的类型 。对于ARP请求或应答来说 , 该字段的值为0806 。
第2行中可以看到 , 尽管ARP请求是广播的 , 但是ARP应答的目的地址却是1号机的(00 50 FC 22 C7 BE) 。ARP应答是直接送到请求端主机的 。
 
表2
下表3是ARP协议的头信息 。硬件类型字段表示硬件地址的类型 。它的值为1即表示以太网地址 。协议类型字段表示要映射的协议地址类型 。它的值为0800即表示IP地址 。它的值与包含I P数据报的以太网数据帧中的类型字段的值相同 。接下来的两个1字节的字段 , 硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度 , 以字节为单位 。对于以太网上IP地址的ARP请求或应答来说 , 它们的值分别为6和4 。Op即操作(Opoperation) , 1是ARP请求、2是ARP应答、3是RARP请求和4为RARP应答 , 第二行中该字段值为2表示应答 。接下来的四个字段是发送端的硬件地址、发送端的IP地址、目的端的硬件地址和目的端IP地址 。注重 , 这里有一些重复信息:在以太网的数据帧报头中和ARP请求数据帧中都有发送端的硬件地址 。对于一个ARP请求来说 , 除目的端硬件地址外的所有其他的字段都有填充值 。
表3的第2行为应答 , 当系统收到一份目的端为本机的ARP请求报文后 , 它就把硬件地址填进去 , 然后用两个目的端地址分别替换两个发送端地址 , 并把操作字段置为2 , 最后把它发送回去 。

推荐阅读