最新protocol-analysis(协议分析).doc

上传人:1595****071 文档编号:48038221 上传时间:2022-10-04 格式:DOC 页数:70 大小:613.50KB
返回 下载 相关 举报
最新protocol-analysis(协议分析).doc_第1页
第1页 / 共70页
最新protocol-analysis(协议分析).doc_第2页
第2页 / 共70页
点击查看更多>>
资源描述

《最新protocol-analysis(协议分析).doc》由会员分享,可在线阅读,更多相关《最新protocol-analysis(协议分析).doc(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateprotocol-analysis(协议分析)协议分析 ARP协议解码详解协议分析 ARP协议解码详解一、 ARP协议简介ARP,全称Address Resolution Protocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。IP数据包常通过以太网发送,以太网设备并不识别32位IP地址,它们是以48位以太网地址传输以太网

2、数据包。因此,必须把IP目的地址转换成以太网目的地址。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。ARP协议用于将网络中的IP地址解析为的硬件地址(MAC地址),以保证通信的顺利进行。1. ARP和RARP报头结构ARP和RARP使用相同的报头结构,如图1所示。硬件类型协议类型硬件地址长度协议长度操作类型发送方的硬件地址(0-3字节)源物理地址(4-5字节)源IP地址(0-1字节)源IP地址(2-3字节)目标硬件地址(0-1字节)目标硬件地址(2-5字节)目标IP地址(0-3字节)(图1ARP

3、/RARP报头结构)l 硬件类型字段指明了发送方想知道的硬件接口类型,以太网的值为1;l 协议类型字段指明了发送方提供的高层协议类型,IP为0800(16进制);l 硬件地址长度和协议长度指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;l 操作字段用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;l 发送方的硬件地址(0-3字节):源主机硬件地址的前3个字节;l 发送方的硬件地址(4-5字节):源主机硬件地址的后3个字节;l 发送方IP(0-1字节):源主机硬件地址的前2个字节;l 发送方IP(2-3字节):源

4、主机硬件地址的后2个字节;l 目的硬件地址(0-1字节):目的主机硬件地址的前2个字节;l 目的硬件地址(2-5字节):目的主机硬件地址的后4个字节;l 目的IP(0-3字节):目的主机的IP地址。2. ARP和RARP的工作原理ARP的工作原理如下:1. 首先,每台主机都会在自己的ARP缓冲区 (ARP Cache)中建立一个 ARP列表,以表示IP地址和MAC地址的对应关系。 2. 当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,如果有就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目

5、的主机对应的MAC地址。此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。3. 网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后给源主机发送一个 ARP响应数据包,告诉对方自己是它需要查找的MAC地址; 4. 源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。如果源主机一直没有收到ARP响应数据包,表示

6、ARP查询失败。RARP的工作原理如下:1. 发送主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址;2. 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;3. 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;4. 如果不存在,RARP服务器对此不做任何的响应;5. 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。二、 解码详解了解了ARP和RARP协议的报头结构和工

7、作原理后,我们使用科来网络分析系统抓取ARP包,其详细解码,如图1,(图1科来网络分析系统中ARP请求包详细解码)图1显示是一个ARP的请求包的解码,下面我们来详细说明:l 硬件类型:1,表示硬件借口类型为以太网类型l 协议类型:0x0800,表示发送方提供的高层协议类型是IPl 硬件地址长度:表示硬件地址长度为6字节=48位l 协议地址长度:表示IP地址长度为4字节=32位l 操作类型:1,表示ARP请求l 源物理地址:00:14:85:CA:F5:22l 源IP地址:192.168.0.92l 目标物理地址:00:00:00:00:00:00l 目标IP地址:192.168.0.208AR

8、P回应包和RARP的包类似,我们在这里就不再重复说明。协议分析 DHCP协议解码详解一、 DHCP协议简介DHCP,全称是DynamicHostConfigurationProtocol中文名为动态主机配置协议,它的前身是BOOTP,它工作在OSI的应用层,是一种帮助计算机从指定的DHCP服务器获取它们的配置信息的自举协议。DHCP使用客户端/服务器模式,请求配置信息的计算机叫做DHCP客户端,而提供信息的叫做DHCP的服务器。DHCP为客户端分配地址的方法有三种:手工配置、自动配置、动态配置。DHCP最重要的功能就是动态分配。除了IP地址,DHCP分组还为客户端提供其他的配置信息,比如子网掩

9、码。这使得客户端无需用户动手就能自动配置连接网络。1. DHCP的工作流程发现阶段,即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCPdiscover发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。提供阶段,即DHCP服务器提供IP地址的阶段。在网络中接收到DHCPdiscover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DH

10、CP客户机发送一个包含出租的IP地址和其他设置的DHCPoffer提供信息。选择阶段,即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCPoffer提供信息,则DHCP客户机只接受第一个收到的DHCPoffer提供信息,然后它就以广播方式回答一个DHCPrequest请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。确认阶段,即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP

11、request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCPACK确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。重新登录,以后DHCP客户机每次重新登录网络时,就不需要再发送DHCPdiscover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCPrequest请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCPACK确认信息。如果此IP地址已无法

12、再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCPNACK否认信息。当原来的DHCP客户机收到此DHCPNACK否认信息后,它就必须重新发送DHCPdiscover发现信息来请求新的IP地址。更新租约,DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。2. DHCP的报文格式我们来介绍一下D

13、HCP的报文格式,如图1,OP(1)Htype(1)Hlen(1)Hops(1)Transaction ID(4)Seconds(2)Flags(2)Ciaddr(4)Yiaddr(4)Siaddr(4)Giaddr(4)Chaddr(16)Sname(64)File(128)Options(variable)(图1 DHCP的 报文格式)l OP:若是client送给server的封包,设为1,反向为2;l Htype:硬件类别,ethernet为1;l Hlen:硬件长度,ethernet为6;l Hops:若数据包需经过router传送,每站加1,若在同一网内,为0;l Transact

14、ion ID:事务ID,是个随机数,用于客户和服务器之间匹配请求和相应消息;l Seconds:由用户指定的时间,指开始地址获取和更新进行后的时间;l Flags:从0-15bits,最左一bit为1时表示server将以广播方式传送封包给 client,其余尚未使用;l Ciaddr:用户IP地址;l Yiaddr:客户IP地址;l Siaddr:用于bootstrap过程中的IP地址;l Giaddr:转发代理(网关)IP地址;l Chaddr:client的硬件地址;l Sname:可选server的名称,以0x00结尾;l File:启动文件名;l Options:,厂商标识,可选的参

15、数字段二、 解码信息通过DHCP的 工作流程,我们知道从DHCP服务器获取配置信息的4个阶段中,DHCP客户端会出现有4种报文(DHCPDISCOVERY,DHCPOFFER,DHCPREQUEST,DHCPACK)。我们分别来看看4报文的解码内容:1. 发现阶段使用科来网络分析系统捕获DHCP DISCOVERY 数据包,如图2,(图2 DHCP DISCOVERY数据包解码)由图2可以看到DHCP DISCOVERY包的解码信息,由于DHCP是BOOTP的以个扩展,DHCP兼容BOOTP,我们可以看到BOOTP和DHCP的解码。2. 提供阶段使用科来网络分析系统捕获DHCP OFFER数据

16、包,如图3,(图3 DHCP OFFER数据包解码)3. 选择阶段使用科来网络分析系统捕获DHCP REQUEST数据包,如图4,(图4 DHCP REQUEST数据包解码)4. 确认阶段使用科来网络分析系统捕获DHCP ACK数据包,如图5,(图5 DHCP ACK数据包解码)以上为DHCP工作的4种数据包,每种数据包都是有区别的。协议分析 ICMP协议解码详解一、 ICMP协议简介ICMP全称Internet Control Message Protocol,中文名为因特网控制报文协议。它工作在OSI的网络层,向数据通讯中的源主机报告错误。ICMP可以实现故障隔离和故障恢复。网络本身是不可

17、靠的,在网络传输过程中,可能会发生许多突发事件并导致数据传输失败。网络层的IP协议是一个无连接的协议,它不会处理网络层传输中的故障,而位于网络层的ICMP协议却恰好弥补了IP的缺限,它使用IP协议进行信息传递,向数据包中的源端节点提供发生在网络层的错误信息反馈。ICMP的报头长8字节,结构如图1所示。比特0 78 15 16 比特31类型(0或8)代码(0)检验和为使用数据(图1ICMP报头结构)l 类型:标识生成的错误报文,它是ICMP报文中的第一个字段;l 代码:进一步地限定生成ICMP报文。该字段用来查找产生错误的原因;l 校验和:存储了ICMP所使用的校验和值。l 未使用:保留字段,供

18、将来使用,起值设为0l 数据:包含了所有接受到的数据报的IP报头。还包含IP数据报中前8个字节的数据;ICMP协议提供的诊断报文类型如表1所示。类型描述0回应应答(Ping应答,与类型8的Ping请求一起使用)3目的不可达4源消亡5重定向8回应请求(Ping请求,与类型8的Ping应答一起使用)9路由器公告(与类型10一起使用)10路由器请求(与类型9一起使用)11超时12参数问题13时标请求(与类型14一起使用)14时标应答(与类型13一起使用)15信息请求(与类型16一起使用)16信息应答(与类型15一起使用)17地址掩码请求(与类型18一起使用)18地址掩码应答(与类型17一起使用)(表

19、1ICMP诊断报文类型)ICMP提供多种类型的消息为源端节点提供网络层的故障信息反馈,它的报文类型可以归纳为以下5个大类:l 诊断报文(类型8,代码0;类型0,代码0);l 目的不可达报文(类型3,代码0-15);l 重定向报文(类型5,代码0-4);l 超时报文(类型11,代码0-1);l 信息报文(类型12-18)。二、 详细解码使用科来网络分析系统捕获数据包,我们得到ICMP回显报文的信息,如图1所示,(图1 科来网络分析系统抓取的ICMP回显报文)我们详细介绍在图1中的解码信息,l 类型:8,表示是一个ICMP回显请求报文;l 代码:0,表示网络不可达;l 校验和:表示ICMP的0x4

20、25C;使用IP校验和的算法。l 标识:0x0400l 序列号:0x0700,每一个ICMP回显报文都有一个序列号且是递增的l 数据:表示是一个32字节的数据注:以上是一个ICMP回送报文,可以看出了和前面列出的ICMP报文有点不一样。因为ICMP有几种类型的报文(目标不可达报文,重定向报文,超时报文,回送请求和回送应答报文),每一种报文都相对都有一些区别,这里我们就不在特别介绍。协议分析 IP协议解码详解一、 IP协议简介IP,全称Internet Protocol,中文名叫因特网协议,它工作在OSI的网络层,它负责将数据传输到正确的目的地,同时也负责路由。无论传输层使用何种协议,都要依赖I

21、P来发送和接受数据。IP提供一种无连接的传输机制,这就意味着在网络传输的每个数据报都作为独立的单元来对待。IP并不维护服务器和客户端之间的连接细节。IP不能保证数据传输的可靠性。然而,这些并不意味着分组将被毫无规则的忽略,而是仅在网络出现故障时才会发生数据丢失。下面我们来介绍一下IP数据报的格式、IP数据报格式,如图1,版本头部长度服务类型总长度标识分段标志分段偏移量生存时间协议校验和源地址目标地址选项填充数据(图1 IP数据报的格式)l 版本:用于传输数据的IP版本,大小为4位;l 头部长度:用于规定报头长度;l 服务类型:用于设置数据传输的优先权或者优先级,其大小为8位;l 总长度:指出数

22、据报的总长,数据报总长=报头长度+数据长度,大小为16位;l 标识:用于标识所有的分段,大小为16位;l 分段标志:确定一个数据报是否可以分段,同时也指出当前分段后面是否还有更多分段,大小为3位;l 分段偏移量:由目标计算机用于查找分段在整个数据报中的位置,大小位13位;l 生存时间:设置数据报可以经过的最多路由器数。长度为8位;l 协议:指定用于创建数据字段中的数据的上层协议,大小为8位;l 校验和:检查所传输数据的完整性,大小为16位;l 源地址:源IP地址,字段长度为32位;l 目标地址:目标IP地址,字段长度为32位;l 选项:不上一个必须的字段,字段长度具体取决于所选择的IP选项;

23、l 数据:包含网络中传输的数据,IP数据报还包括上层协议的报头信息;二、 解码详解使用科来网络分析系统捕获IP数据包,其详细解码如图2,(图2 科来网络分析系统中IP数据包的详细解码)图2为科来网络分析系统中IP数据包的详细解码,下面我们来分别说明IP数据包的解码信息:版本:4,表示当前网络中为IPv4;头部长度:4,表示IP报头长度为5x4=20字节;服务类型:0,表示当前IP数据包中没有使用服务类型字段;总长度:40,表示该数据报总长为40字节;标识:表示该数据报的标识为0x41AB(16进制);分段标志:第二位为1,表示该数据报不能被分段,分段偏移量:由于没有被分段,所以该分段便偏移量为

24、0;生存时间:表示该数据报最多可以经过128个路由;上层协议:6代表TCP协议;校验和:该数据报校验和为0x36A8(正确),表示该数据报是完整的;源IP地址:192.168.0.208;目标IP地址:192.168.0.92;选项:表示该数据报没有选项字段;协议分析 PPPOE Discovery协议解码详解一、 PPPOE协议介绍PPPOE,全称Point-to-Point Protocol Over Ethernet,它工作在OSI的数据链路层,PPPOE协议提供了在广播式的网络(如以太网)中多台主机连接到远端的访问集中器(我们对目前能完成上述功能的设备为宽带接入服务器)上的一种标准。1

25、. PPPOE的工作原理PPPOE协议共包括两个阶段,即PPPOE的发现阶段(PPPOE Discovery Stage)和PPPOE的会话阶段(PPPOE Session Stage)。而两者的主要区别在于只是在PPP的数据报文前封装了PPPOE的报文头。当一个主机希望能够开始一个PPPOE会话时,它首先会在广播式的网络上寻找一个访问集中器,当然可能网络上会存在多个访问集中器时,对于主机而言则会根据各访问集中器(AC,Access Concentration)所能提供的服务或用户的预先的一些配置来进行相应的选择。当主机选择完了所需要的访问集中器后,就开始和访问集中器建立一个PPPOE会话进程

26、。在这个过程中访问集中器会为每一个PPPOE会话分配一个唯一的进程ID,会话建立起来后就开始了PPPOE的会话阶段,在这个阶段中已建立好点对点连接的双方(这种点对点的结构与PPP不一样,它是一种逻辑上的点对点关系)就采用PPP协议来交换数据报文,从而完成一系列PPP的过程,最终将在这点对点的逻辑通道上进行网络层数据报的传送。2. PPPOE的数据报文格式我们简要介绍一下PPPOE的数据报文格式。PPPOE的数据报文是被封装在以太网帧的数据域内的。简单来说我们可能把PPPOE报文分成两大块,一大块是PPPOE的数据报头,另一块则是PPPOE的净载荷(数据域),对于PPPOE报文数据域中的内容会随

27、着会话过程的进行而不断改变。下图1为PPPOE的报文的格式:版本类型代码会话ID长度域净载荷(或数据域)(图1 PPPOE数据报格式)l PPPOE数据报文最开始的4位为版本域,协议中给出了明确的规定,这个域的内容填充0x1。l 紧接在版本域后的4位是类型域,协议中同样规定,这个域的内容填充为0x1。l 代码域占用1个字节,对于PPPOE 的不同阶段这个域内的内容也是不一样的。 l 会话ID点用2个字节,当访问集中器还未分配唯一的会话ID给用户主机的话,则该域内的内容必须填充为0x0000,一旦主机获取了会话ID后,那么在后续的所有报文中该域必须填充那个唯一的会话ID值。l 长度域为2个字节,

28、用来指示PPPOE数据报文中净载荷的长度。l 数据域,有时也称之为净载荷域,在PPPOE的不同阶段该域内的数据内容会有很大的不同。在PPPOE的发现阶段时,该域内会填充一些Tag(标记);而在PPPOE的会话阶段,该域则携带的是PPP的报文。这里我们主要来介绍一下PPPOE发现阶段的报文格式以及它的报文:1) PPPOE数据报文中Tag(标记)的格式对于发现阶段的PPPOE数据报文而言,它的净载荷可能包含零个或多个Tag(标记),实际上这些标记的意义非常类似于PPP配置参数选项,它同样也是要经过协商的。对于PPPOE协议而言,没有像PPP的配置参数选项那样定义了很多细节,而只是一个初略的定义,

29、因此在实际当中实现这个过程会依据不同厂商的设备有不同。首先还是让我们看一下承载在PPPOE报文数据域中的标记封装格式,如图2,类型长度数据(图2 标记的封装格式)从图2中可以看出,标记的封装格式采用的是大家所熟知的TLV结构,也即是(类型+长度+数据)。标记的类型域为2个字节,下表列出了各种标记类型的含义:标记类型标记说明0x0000表示PPPOE报文数据域中一串标记的结束,为了保证版本的兼容性而保留,在有些报文中有应用。0x0101服务名,主要用来表明网络侧所能提供给用户的一些服务。0x0102访问集中器名,当用户侧接收到了AC的回应的PADO报文时,就可获从所携带的标记中获知访问集中器的名

30、子,而且还可以据此来选择相应的访问集中器。0x0103主机唯一标识,类似于PPP数据报文中的标识域,主要是用来匹配发送和接收端的,因为对于广播式的网络中会同时存在很多个PPPOE的数据报文。0x0104AC-Cookies,主要被用来防止恶意性DOS功击。0x0105销售商的标识符。0x0110中继会话ID,对于PPPOE的数据报文也同样可以像DHCP报文一样被中断到另外的AC上终结,这个字段则是用来维护另一个连接的。0x0201服务名错误,当请求的服务名不被对端所接受时,会在响应的报文中携带这个标记。0x0202访问集中器名出错。0x0203一般性错误。l 标记的长度域为2个字节,它用来指明

31、标记数据域的长度。l 标记的数据域中用来放置不同类型标记所对应的相关数据。2) PPPOE发现阶段的数据报文PPPOE的发现阶段可分为四步,其实这个过程也是PPPOE四种数据报文的交换的一个过程。当完成这四步后,用户主机与访问集中器双方就能获知对方的MAC地址和唯一的会话ID号,从而进入到下一个阶段(PPPOE的会话阶段)。实际上双方在互相知道了对方的MAC地址后,就已经在广播式的网络上确定了一一的对应关系,为了保证这个连接的有效性,同时使PPPOE协议能更加灵活的运用,因此还加入了会话ID字段,通过这两个条件就可完成确定双方点对点的关系。在这个阶段一开始,由于接入用户并不知道访问集中器的MA

32、C地址,则使用类似于ARP解析的过程的机制来获取访问集中器的MAC地址。首先由接入用户侧发起一个初始化的广播报文,对于访问集中器如果配置了PPPOE的业务时,它会时实检测网络上的数据包,当发现以太网数据帧中所承载的是PPPOE报文时(通过协议域的内容来区分),就会将其交给相应的模块去处理。当收到初始化报文后,访问集中器会向该用户回应一个报文。如果网络上存在很多这样的访问集中器且都收到了用户侧发送的初始化报文时,它们也都会向用户侧会送一个确认报文,如果该用户收到这个报文后,则会依据报文中所携带的内容或本端的一些配置来选择一个唯一的访问集中器进行会话。到此时已完成了前两步了,那么剩下的两步则是协商

33、一些所提供的服务选项和获取PPPOE会话阶段所必须的会话ID值。说明:在这个阶段,所有数据报文是被承载在以太网的数据域中的,而且以太网数据帧的协议域始终为0x8863。在PPPOE发现阶段的四步的过程中,PPPOE会遇到PADI、PADO、PADR和PADS这四种报文。PPPOE中的PADT报文是用来终止一条会话的。l PADI(PPPOE Active Discovery Initiation)报文PPPOE发现阶段的第一步,也即是由用户侧首先发送这样一个报文。用户主机是以广播的方式发送这个报文,所以该报文所对应的以太网帧的目的地址域应填充为全1,而源地址域填充用户主机的MAC地址。广播包可

34、能会被多个访问集中器接收到。 l PADO(PPPOE Active Discovery Offer)报文PPPOE发现阶段的第二步,也即是由访问集中器回应各用户主机发送的PADI报文,此时该报文所对应的以太网帧的源地址填充访问集中器的MAC地址,而目的地址则填充从PADI中所获取的用户主机的MAC地址。l PADR(PPPOE Active Discovery Request)报文PPPOE发现阶段的第三步,也即是由用户主机向访问服务器发送单播的请求报文。当用户主机收到PADO报文后,会从这些报文中挑选一个访问集中器作为后续会话的对象。由于用户主机在收到PADO报文后,就获知了访问集中器的M

35、AC地址,因此PADR报文所以应的以太网帧的源地址填充用户主机的MAC地址,而以太网的目的地址填充为访问集中器的MAC地址。l PADS(PPPOE Active Discovery Session-confirmation)报文PPPOE发现阶段的第四步,也即是最后一步,此时访问集中器当收到PADR报文时,就准备进入开始一个PPP的会话了,而此时访问集中器会为在这个会话分配一个唯一的会话进程ID,并在发送给主机的PADS报文中携带上这个会话ID。当然如果访问集中器不满足用户所申请的服务的话,则会向用户发送一个PADS报文,而其中携带一个服务名错误的标记,而且此时该PADS报文中的会话ID填充

36、0x0000。l PADT(PPPOE Active Discovery Terminate)报文PADT报文可能在会话进行开始之后的任意时间内被发送,主要是用来终止一个PPPOE会话的止。它可以由主机或访问集中器发送,目的地址填充为对端的以太网的MAC地址二、 PPPOE Discovery详细解码我们使用科来网络分析系统捕获PPPOE数据包,如图3,(图3 PPPOE Discovery的详细解码)查看科来网络分析系统中的详细解码,可以看出这是PPPOE发现阶段的第一步的PADI报文,我们来详细说明:l 版本:1,协议中给出了明确的规定,这个域的内容填充0x1。l 类型:1协议中也给了明确

37、的规定,这里也职能填充0x1l 代码:0x09,表示该报文是发现阶段的 PADI报文l 会话ID:0,表示还没有会话IDl 长度:16,表示PPPOE数据报文中净载荷的长度l PPP发现标记:在面我们列出的标记类型表可以看出以上主要是对PPPOE Discovery协议及详细解码的介绍。协议分析 TCP协议解码详解一、 TCP协议简介TCP,全称Transfer Control Protocol,中文名为传输控制协议,它工作在OSI的传输层,提供面向连接的可靠传输服务。TCP的工作主要是建立连接,然后从应用层程序中接收数据并进行传输。TCP采用虚电路连接方式进行工作,在发送数据前它需要在发送方

38、和接收方建立一个连接,数据在发送出去后,发送方会等待接收方给出一个确认性的应答,否则发送方将认为此数据丢失,并重新发送此数据。下面我们来介绍一下TCP的报头结构和相关工作原理:1. TCP报头TCP报头总长最小为20个字节,其报头结构如下图(图1)所示;比特0 比特15 比特16 比特31源端口(16)目的端口(16)序列号(32)确认号(32)TCP偏移量(4)保留(6)标志(6)窗口(16)校验和(16)紧急(16)选项(0或32)数据(可变)(图1TCP报头结构)源端口:指定了发送端的端口目的端口:指定了接受端的端口号序号:指明了段在即将传输的段序列中的位置确认号:规定成功收到段的序列号

39、,确认序号包含发送确认的一端所期望收到的下一个序号TCP偏移量:指定了段头的长度。段头的长度取决与段头选项字段中设置的选项保留:指定了一个保留字段,以备将来使用标志:SYN、ACK、PSH、RST、URG、FIN SYN:表示同步 ACK: 表示确认 PSH: 表示尽快的将数据送往接收进程 RST: 表示复位连接 URG: 表示紧急指针 FIN: 表示发送方完成数据发送窗口:指定关于发送端能传输的下一段的大小的指令校验和:校验和包含TCP段头和数据部分,用来校验段头和数据部分的可靠性紧急:指明段中包含紧急信息,只有当U R G标志置1时紧急指针才有效选项:指定了公认的段大小,时间戳,选项字段的

40、末端,以及指定了选项字段的边界选项2. TCP工作原理l TCP连接建立:TCP的连接建立过程又称为TCP三次握手。首先发送方主机向接收方主机发起一个建立连接的同步(SYN)请求;接收方主机在收到这个请求后向送方主机回复一个同步/确认(SYN/ACK)应答;发送方主机收到此包后再向接收方主机发送一个确认(ACK),此时TCP连接成功建立;l TCP连接关闭:发送方主机和目的主机建立TCP连接并完成数据传输后,会发送一个将结束标记置1的数据包,以关闭这个TCP连接,并同时释放该连接占用的缓冲区空间;l TCP重置:TCP允许在传输的过程中突然中断连接,这称为TCP重置;l TCP数据排序和确认:

41、TCP是一种可靠传输的协议,它在传输的过程中使用序列号和确认号来跟踪数据的接收情况;l TCP重传:在TCP的传输过程中,如果在重传超时时间内没有收到接收方主机对某数据包的确认回复,发送方主机就认为此数据包丢失,并再次发送这个数据包给接收方,这称为TCP重传;l TCP延迟确认:TCP并不总是在接收到数据后立即对其进行确认,它允许主机在接收数据的同时发送自己的确认信息给对方。l TCP数据保护(校验和):TCP是可靠传输的协议,它提供校验和计算来实现数据在传输过程中的完整性。二、 解码详解要看懂TCP解码信息,就必须清楚知道TCP工作原理和TCP报头的相关字段信息。下面我们就通过科来网络分析系

42、统中的解码信息来认识TCP协议的报头。如下图(图2)。(图2科来网络分析系统TCP解码信息)上图显示了TCP协议中报头中字段的详细信息,这里的解码信息完全和TCP报头结构相吻合,下面我们分别来介绍解码视图中的信息:1. 源端口:1041,偏移量为34,值为2个字节;2. 目标端口:5001,端口名为 complex-link,偏移量为36,值为2个字节;3. 序列号:TCP数据包序列号为148694863,偏移量38,值为4个字节;4. 确认号:确认号为387135032,偏移量为42,值为4个字节;5. TCP偏移量:TCP偏移量为5,偏移量为46,值为4位6. 标志:PSH和ACK的值为1,这是一个确认包,收到的有效段立即发给应用,不要放入缓冲区7. 窗口:表示接收端能够接收的下一段的大小64124。8. 校验和:校验和为0x10D4(正确),表示数据没有被修改和损坏,是完整的。9. 紧急指针:因为标志字段中URG标志位的值为0,所以这里无紧急指针10. 无TCP选项:无选项内容以上为实际抓取的一个TCP数据包,大家可以通过上述的方法学习TCP协议。 成都科来软件有限公司2006年6月 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁