- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCPIP数据包解析示例
IP协议(Internet Protocol)是网络层协议,用在因特网上,TCP,UDP,ICMP,IGMP数据都
是按照IP数据格式发送得。IP协议提供的是不可靠无连接得服务。IP数据包由一个头部和一个正文
部分构成。正文主要是传输的数据,IP头部由20字节的固定长度和一个可选任意长度部分构成,以大
段点机次序传送,从左到右,IP协议数据包格式如下
TCP协议(TRANSMISSIONCONTROLPROTOCOL)是传输层协议,为应用层提供服务,和UDP
不同的是,TCP协议提供的可靠的面向连接的服务,跟IP头部差不多,基本的长度也是20字节。TCP
数据包是包含在一个IP数据报文中的,TCP数据包如下
这是一次FTP的连接,呵呵,是cuteftp默认的cuteftp的FTP站点,IP地址是:1。
我的IP地址假设为:。下面的数据就是TCP/IP连接过程中的数据传输。我们可以分
析TCP/IP协议数据格式以及TCP/IP连接的三次握手情况。下面的这些十六进制数据只是TCP/IP
协议的数据,不是完整的网络通讯数据。
第一次,我向FTP站点发送连接请求(TCP数据的可选部分去掉了)
-1
IP头部: 4500 0030 52 5240 0080 062c23 c0a801 01d8 03e215
TCP头部:0d2800 15 505f a906 0000 0000 70 0240 00c029 0000
第一字节,45,其中4是IP协议的版本(Version),说明是IP4。5是IHL位,表示IP
头部的长度,是一个4bit字段,最大就是1111了,值为15,IP头部的最大长度就是60字节。而这
里为5,说明是20字节,这是标准的IP头部长度,头部报文中没有发送可选部分数据。
接下来的一个字节00是服务类型(TypeofService)。这个8bit字段由3bit的优先权子字段
(现在已经被忽略),4bit的TOS子字段以及1bit的未用字段(现在为0)构成.4bit的TOS子字
段包含:最小延时、最大吞吐量、最高可靠性以及最小费用构成,这四个1bit位最多只能有一个为1,
本例中都为0,表示是一般服务。
接着的两个字节00 30是IP数据报文总长,包含头部以及数据,这里表示48字节。这48字节
由20字节的IP头部以及28字节的TCP头构成(本来截取的TCP头应该是28字节的,其中8字节为
可选部分,被我省去了)。因此目前最大的IP数据包长度是65535字节。
再是两个字节的标志位(Identification):5252,转换为十进制就是21074。这个是让目的
主机来判断新来的分段属于哪个分组。
下一个字节40,转换为二进制就是0100 0000,其中第一位是IP协议目前没有用上的,为
0。接着的是两个标志DF 和MF。DF为1表示不要分段,MF为1表示还有进一步的分段(本例为0)。
然后的0 0000是分段便移(Fragment Offset)。
80这个字节就是TTL(TimeToLive)了,表示一个IP数据流的生命周期,用Ping显示的
结果,能得到TTL的值,很多文章就说通过TTL位来判别主机类型。因为一般主机都有默认的TTL
值,不同系统的默认值不一样。比如WINDOWS为128。不过,一般Ping得到的都不是默认值,
这是因为每次IP数据包经过一个路由器的时候TTL就减一,当减到0时,这个数据包就消亡了。这
也时Tracert的原理。本例中为80,转换为十进制就是128了,我用的WIN2000。
继续下来的是06,这个字节表示传输层的协议类型(Protocol)。在RFC790中有定义,6表
示传输层是TCP协议。
2c 23这个16bit是头校验和(HeaderChecksum)。
接下来c0a801 01,这个就是源地址(SourceAddress)了,也就是我的IP地址。
转换为十进制的IP地址就是:,同样,继续下来的32位d8 03e215是目标地
址,1
好了,这就是20字节的IP数据报头了。继续看TCP的头部吧,这个是作为IP数据包的数据部分
传输的。
TCP头部:0d2800 15 505f a906 0000 0000 70 0240 00c029 0000
一来就是一个两字节段0d 28,表示本地端口号,转换为十进制就是3368。第二个两字节段
00 15表示目标端口,因为我是连接FTP站点,所以,这个就是21啦,十六进制当然就是00 15。
接下来的四
文档评论(0)