网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 局域网DIY—专业局域网网站 >> 局域网教程 >> 硬件与代理 >> [协议专栏] >> 文章正文
  用协议分析工具学习TCP/IP          【字体:
用协议分析工具学习TCP/IP
作者:互联网    文章来源:www.98pc.com    点击数:    更新时间:2006-4-28    
要指出的是这是FTP的控制端口,数据传送时用另一端口,第三组的分析能看到这一点。客户端与服务器联系时随机开一个大于1024的端口,本例为04 28,换算成十进制为1064。你的电脑中了木马也会开一个服务端口。观察端口非常重要,不但能看出本机提供的正常服务,还能看出不正常的连接。Windows察看端口的命令时netstat。

  32位序号:也称为顺序号(Sequence Number),简写为SEQ,从上面三次握手的分析可以看出,当一方要与另一方联系时就发送一个初始序号给对方,意思是:“让我们建立联系吧?”,服务方收到后要发个独立的序号给发送方,意思是“消息收到,数据流将以这个数开始。”由此可看出,TCP连接完全是双向的,即双方的数据流可同时传输。在传输过程中双方数据是独立的,因此每个TCP连接必须有两个顺序号分别对应不同方向的数据流。

  32位确认序号:也称为应答号(Acknowledgment Number),简写为ACK。在握手阶段,确认序号将发送方的序号加1作为回答,在数据传输阶段,确认序号将发送方的序号加发送的数据大小作为回答,表示确实收到这些数据。在第三组的分析中将看到这一过程。

  4位首部长度:。这个字段占4位,它的单位时32位(4个字节)。本例值为7,TCP的头长度为28字节,等于正常的长度2 0字节加上可选项8个字节。,TCP的头长度最长可为60字节(二进制1111换算为十进制为15,15*4字节=60字节)。

  6个标志位。

  URG 紧急指针,告诉接收TCP模块紧要指针域指着紧要数据

  ACK 置1时表示确认号(为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。

  PSH 置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。

  RST 置1时重建连接。如果接收到RST位时候,通常发生了某些错误。

  SYN 置1时用来发起一个连接。

  FIN 置1时表示发端完成发送任务。用来释放连接,表明发送方已经没有数据发送了。

  图13的3个图分别为3-5行TCP协议的头信息,这三行是三次握手的过程,我们看看握手的过程标志位发生了什么?

  如图13-1请求端208号机发送一个初始序号(SEQ)987694419给1号机。标志位SYN置为1。

  如图13-2服务器1号机收到这个序号后,将应答信号(ACK)和随机产生一个初始序号(SEQ)1773195208发回到请求端208号机,因为有应答信号和初始序号,所以标志位ACK和SYN都置为1。

  如图13-3请求端208号机收到1号机的信号后,发回信息给1号机。标志位ACK置为1,其它标志为都为0。注意此时SYN值为0,SYN是标示发起连接的,上两部连接已经完成。



  16位窗口大小:TCP的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节。窗口大小是一个16字节字段,因而窗口大小最大为65535字节。

  16位检验和:检验和覆盖了整个的TCP报文段: TCP首部和TCP数据。这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。

  16位紧急指针:只有当U R G标志置1时紧急指针才有效。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。

  选项:图13-1和图13-2有8个字节选项,图13-3没有选项。最常见的可选字段是最长报文大小,又称为MSS (Maximum Segment Size)。每个连接方通常都在握手的第一步中指明这个选项。它指明本端所能接收的最大长度的报文段。图13-1可以看出208号机可以接受的最大字节数为1460字节,1460也是以太网默认的大小,在第三组的数据分析中可以看到数据传送正是以1460字节传送的。

握手小结

  上面我们分开讲了三次握手,看着有点散,现在小结一下。



第三组 数据传输

1)下图显示的是57-60行的数据



图14


2)解释数据包

  这四行数据是数据传输过程中一个发送一个接收的过程。

  前文说过,TCP提供一种面向连接的、可靠的字节流服务。当接收端收到来自发送端的信息时,接受端要发送一条应答信息,表示收到此信息。数据传送时被TCP分割成认为最适合发送的数据块。一般以太网在传送时TCP将数据分为1460字节。也就是说数据在发送方被分成一块一块的发送,接受端收到这些数据后再将它们组合在一起。

  57行显示1号机给208号机发送了大小为1514字节大小的数据,注意我们前文讲过数据发送时是层层加协议头的,1514字节=14字节以太网头 + 20字节IP头 + 20字节TCP头 + 1460字节数据

  58行显示的应答信号ACK为:1781514222,这个数是57行得SEQ序号1781512762加上传送的数据1460,208号机将这个应答信号发给1号机说明已收到发来的数据。

  59、60行显示的是继续传送数据的过程。

  这个过程就像我向张三借书,借给我几本我要说:“我已借了你几本了。”,他说:“知道了”。

3)头信息

  图15-1和图15-2分别是57行和58行的头信息,解释参考第二组。



第四组 终止连接

1)下图显示的是93-96行的数据



图16


2)解释数据包

93-96是两机通讯完关闭的过程。

  建立一个连接需要三次握手,而终止一个连接要经过4次握手。这是因为一个TCP连接是全双工(即数据在两个方向上能同时传递),每个方向必须单独地进行关闭。4次握手实际上就是双方单独关闭的过程。

  本例文件下载完后,关闭浏览器终止了与服务器的连接图16的93-96行显示的就是终止连接所经过4次握手过程。

  93行数据显示的是关闭浏览器后,如图17-1所示208号机将FIN置1连同序号(SEQ)987695574发给1号机请求终止连接。

  94行数据和图17-2显示1号机收到FIN关闭请求后,发回一个确认,并将应答信号设置为收到序号加1,这样就终止了这个方向的传输。

  95行数据和图17-3显示1号机将FIN置1连同序号(SEQ)1773196056发给208号机请求终止连接。

  96行数据和图17-4显示208号机收到FIN关闭请求后,发回一个确认,并将应答信号设置为收到序号加1,至此TCP连接彻底关闭。

3)头信息






六、扫描实例

  下面我们再举个ping的实例,测试某台计算机是否通,最常用的命令就是ping命令。Ping 一台计算机,出现如图18所示界面就是通,出现如图19所示界面就是不通,不通有两种情况,一是该计算机不存在或没接网线,二是该计算机安装了防火墙并设置为不允许ping。如何区别这两种情况呢?下面还是利用iris跟踪上述情况。



图18




图19


  如图20是ping通的情况。

  如图21是ping不通该计算机不存在的情况。从图可以看出ARP请求没有回应。

  如图22是ping不通,该计算机存在但安装了防火墙的情况。从图可以看出ARP请求有回应。但ICMP请求没回应。

  从分析可以看出虽然后两种情况的表面现象是一样的,但实质确是截然相反的。通过头信息可以清楚的看出PING是

  ICMP协议来完成的,通讯过程是在第三层完成的,没有用到第四层的TCP协议。



图20




图21




图22



七、后记

  本文不是个教程,许多问题都没有涉及到,比如TCP重发、IP分解、路由等,只是提出个学习思路,希望能起到抛砖引玉的作用。TCP/IP协议族是非常复杂的,但只要理解了还是不难学的。最后向感兴趣的朋友提个问题:分别telnet三台机器,一台正常23端口开放,一台网是通的但23端口没开放,另外一台是不存在的。用我们学过的方法跟踪一下,比较三个的不同。其实这就是用TCP扫描判断对方机器是否在线的一种方法。

上一页  [1] [2] 

文章录入:wuwq    责任编辑:wuwq 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    多协议交换GMPLS前瞻
    多协议标志交换(MPLS)基本原
    MPLS包头结构在协议栈中的位
    多协议标志交换(MPLS)基本原
    多协议标志交换基本原理
    sniffer帮助理解子网掩码、网
    用Ethereal分析协议数据包
    QQ协议分析之TCPF包结构
    QQ协议分析之TCPF包数据分析
    基于HTTP的QQ协议之我所见
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    局域网DIY】.版权所有 客服QQ:5820031 站长:晨光
    Copyright © 2000-2020 www.LANDIY.net All Rights Reserved
     


    粤ICP备05009256号