利用SNIFFER PRO学习TCP/IP(二)

原创 2004年08月14日 17:31:00

下面开始分析数据包的结构:

选择NO.12,可以看到SYN段的的详细情况,看到中间的(he,不知道这叫什么栏)协议分析,从TCPDataLink的封装可看得一清二楚,可以发现有三项(Tree折合起来就可看到)(1)DLC:Ethertype = 0800, size = 62 bytes

(2) IP:D=[192.168.1.81] S=[192.168.1.36] LEN=28 ID=26052

(3)TCP:D=6666 S=2970 SYN SEQ=3614407631 LEN=0 WIN=64240

这三项对应的分别是数据链数层的数据,网络层的数据,运输层的数据,这是经过Sniffer分析显示的提示信息。数据是从运输层->网络层->链路层,我们就从运输层开始。

<<详解>>的附图我们可以知道,TCP20字节的首部 + 选项(可选) + 数据(可选),作为SYN请求,没有数据项。对照一下Sniffer的数据(Sniffer中展开TCP)

 

注:点击TCP数据的每一项,均会在下面的详细数据栏显示HEXASCII数据<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

如上图,16位源端口号为2970,16位目的端口号为6666,把<<详解>>附图打开(或打开P171),一一对应很容易就知道各项数据代表的含义。这里注意一个,保留6位数据之后是6个标志位,分别是URGACKPSHRSTSYNFIN,数据由标志位来确定所要传输的目的,如上图,只是SYN位置为1,表示这是SYN请求,如果是SYN的应答,那么SYNACK都要置为1。再看到可选项,Maximum Segment Size1460,这是最大报文大小,每个连接方通常都会在SYN请求时指明这个选项(p173)。所以在我的程序中send 2000字节的数据时会拆分报文。

 

接下来是网络层

 

把上图与<<详解>>附图的IP首部描述对应,我们看到版本号是4,即说明这是IPv4协议(he,不是先进的IPv6),首部总长度是20,即没有可选项参数。总长度为48bytes,即20位的IP长度加上28位的TCP长度,数据到达IP层时,已经把TCP的数据封装进来了。8位的协议是06,即封装的是TCP的数据(<<详解>>P7我们得知,1表示ICMP2表示IGMP6表示TCP17表示UDP)。具体的分析就可看到<<详解>>P25(我的目的并不是分析数据,那可是几本书也讲不完的,我只是告诉大家怎么利用Sniffer来学习TCP/IP)

 

再看到数据链数层

 

对照到<<详解>>P16,这是以太网帧格式,而不是802标准定义的帧格式,所以对应到P16的以太网封装。以太网封装由目的地址,源地址,类型,数据组成。这里的地址都已经是MAC地址了,对于网卡来说,它只认MAC(如果发送数据时并不知道对方MAC,那么会先发送ARP请求来得到MAC,同一个网段的MAC在缓存里面都存了有,如果同一网段主机修改IP,会向外广播,这时缓存会得以更新,呵,这又涉及到ARP了,如果想解开疑问,可以用Sniffer来捕捉相关数据,所以说Sniffer是个学习TCP/IP的很好的工具,扯远了)。再看到2个字节的类型说明,这里是0800,即说明封装的是IP数据报(0806ARP8035RARP)

<<详解>>P16我们知道,对于以太网数据部分必须最少有46字节,不足补PAD字节。(he,P21还有最大传输单元MTU,自己看了),还记得上面的TCP总长度为48bytes吗?这就是以太网的数据(不包括以太网头),已经超过了46,所以不用PAD,但你可以看到三次握手的最后ACK段,即NO.14,在这里以太网数据只有40字节,所以后面PAD6个字节。

到这,数据的封装过程我们已经都明白了。(其实我自己在分析数据的时候,发现了很多问题,我不停的翻<<详解>>,不断的尝试Sniffer不同的数据来分析)

待续!

《TCP/IP详解卷2:实现》笔记--TCP的输入

当收到的数据报的协议字段指明这是一个TCP报文段时,ipintr(通过协议协议转换表中的pr_input函数)会调用tcp_input 进行处理,tcp_inut在软件中断一级执行。 函数非常长,我们...
  • TODD911
  • TODD911
  • 2015年01月06日 22:45
  • 1685

《TCP/IP详解卷2:实现》笔记--插口层

插口层的主要功能是将进程发送的与协议有关的请求映射到产生插口时指定的与协议有关的实现。下图说明了进程中的插口 接口与内核中的协议实现之间的层次关系。 1.socket结构 插口代表一条通信链路...
  • TODD911
  • TODD911
  • 2014年09月08日 11:31
  • 2232

《TCP/IP详解卷一:协议》学习笔记三

一、引言 1、IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。 2、IP提供不可靠以及无连接的数据包服务  1)、不可靠的意思是它不能...
  • Explorer_day
  • Explorer_day
  • 2017年03月30日 21:32
  • 578

【转载】Sniffer pro 找不到网卡的解决方法

很早以前就对sniffer 感兴趣,尝试安装过不同的版本,但都以失败告终,遇到的错误都是:无法找到网卡Adapter,下图: 今天要做网管实验,所以不得不再装一次,终于解决顽疾,下面是解决方...
  • u012259492
  • u012259492
  • 2014年06月06日 18:11
  • 4687

《TCP/IP详解卷2:实现》笔记--IP选项处理

IP输入函数(ipintr)将在验证分组格式(检验和,长度等)之后,确定分组是否到达目的地之前,对选项进行处理。这表明分组所 遇到的每个路由器以及最终的目的主机都对要分组的选项进行处理。 IP分组内可...
  • TODD911
  • TODD911
  • 2014年07月22日 14:11
  • 2449

Linux下Sniffer程序的实现

Linux下Sniffer程序的实现 作者:Gianluca Insolvibile 整理:Seal(永远的FLASH) 出处:http://www.nsfocus.com 日期:2003...
  • gujintong1110
  • gujintong1110
  • 2017年06月12日 11:22
  • 217

TCP/IP学习总结

TCP/IP学习总结 一.概念的了解: 1. 熟悉TCP的状态流图(清楚的知道当客户端的TCP处于一个状态的时候,服务端的TCP处于什么状态)。 以下这个图就是TCP连接的状态变迁图:主要组成 ...
  • tanno1
  • tanno1
  • 2014年08月27日 10:32
  • 1389

TCP/IP详解学习笔记 这位仁兄写得太好了

   TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/204448.aspx ...
  • ttomqq
  • ttomqq
  • 2014年03月06日 22:39
  • 3584

TCP/IP详解 卷1,2,3详解

大家知道,TCP/IP已成为计算机网络的事实上的标准。在关于TCP/IP的论著中,最有影响的就是两部著作。一部是Douglas E. Comer的《用TCP/IP进行网际互连》,而另一部就是Steve...
  • lg2lh
  • lg2lh
  • 2014年06月25日 11:39
  • 1242

面试前TCP/IP的总结与实践(三)

IP 网际协议IP 协议位于网络层,它是 TCP/IP 协议族中最为核心的协议,所有的 TCP、UDP、ICMP 及 IGMP 数据都以 IP 数据报格式传输。IP 协议提供的是 不可靠 、 无连接 ...
  • hunterliy
  • hunterliy
  • 2017年02月17日 08:58
  • 254
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用SNIFFER PRO学习TCP/IP(二)
举报原因:
原因补充:

(最多只允许输入30个字)