应用层网络协议分析Word格式.docx
- 文档编号:5678299
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:12
- 大小:439.30KB
应用层网络协议分析Word格式.docx
《应用层网络协议分析Word格式.docx》由会员分享,可在线阅读,更多相关《应用层网络协议分析Word格式.docx(12页珍藏版)》请在冰点文库上搜索。
也指明该帧是第14帧,传输334字节,捕获334字节。
[Protocolsinframe:
eth:
ip:
tcp:
http]可看出所封装的层结构:
应用层用的是HTTP协议,传输层用的是TCP协议,网络层用的是IP协议。
[ColoringRuleStringName:
HTTP]
[ColoringRuleString:
http||tcp.port==80]从这里我们可以知道,HTTP对应的TCP端口号为80。
在TCP和UDP中,都采用了16bit端口号来识别应用程序。
其中,低于1024的端口号被称为众所周知的端口号,它们由RFC3232所定义,大于等于1024的端口号被上层用来建立与其他主机的会话,并且在TCP数据段中被TCP用来作为源方和目的方的地址,具体将在下面传输层中分析。
2、以太网帧:
从以太网帧中,我们可以看到,目的的MAC地址为:
00:
16:
d3:
ee:
0e:
3f,源MAC地址为:
01:
02:
28:
1a:
34。
Multicast:
ThisisaUNICATframe表示是单播帧。
Type:
IP(0x0800)表示帧中封装了IP分组,若Type为0x0806表示帧中封装了ARP分组,这两种帧的分组会被取出,并交付给相应的子程序。
3、IP包:
InternetProtocol,Src:
31.0.0.2(31.0.0.2),Dst:
31.0.0.1(31.0.0.1)可了解目地IP和源IP,此包是client端向server发送的http请求报文,所以,目地IP是31.0.0.1,源IP是31.0.0.2。
Version:
4表示版本4。
IPv6的版本号为6。
Headerlength:
20bytes首部长为20字节。
它是以4B为单位进行计数的,该字段是可变的,当没有选项时,首部长为20B,对应该字段值为5;
当有选项时,该字段最大值为15,对应60B的首部长度。
DifferentiatedServicesField:
0x00(DSCP0x00:
Default;
ECN:
0x00)表示服务类型。
不同的应用有不同的服务质量要求,该字段则是体现网络层的IP分组有不同的服务类型,但在大多数的TCP/IP实现中并不支持服务类型,因此这些位置都为0,路由器也会忽略该字段。
TotalLength:
320表示IP数据包的总长度为320字节。
Identification:
0x0432(1074)标识位,在系统范围内,每发出一个IP包,其值自动增加1。
Flags:
0x04(Don’tFragment)表示没有分段。
保留位:
1位
不分段(DF,Don'
tFragment):
更多段(MF,MoreFragments):
Fragmentoffset:
0表示分段偏移为0。
Timetolive:
128生命周期值,当每经过1个路由器,其值自动减1。
Protocol:
TCP(0x06)负载协议,表示IP数据包负载的协议。
Headerchecksum:
0xb783[correct]首部校验和,只对分组的首部进行校验,而不对分组的数据进行校验。
Source:
31.0.0.2(31.0.0.2)表示源IP地址。
Destination:
31.0.0.1(31.0.0.1)表示目的IP地址。
4、TCP报文:
在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。
HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。
通过数据包,我们也可清楚地了解到TCP连接的建立:
(1)SYN报文:
该报文由client发起,Sequencenumber:
0表示客户端向服务器端发送数据时的第一个数据字节的序号就是0。
Client建立的源端口号为1102,请求的是http服务(目的端口为80)。
0x0002(SYN)该标志位表示了这是一个SYN报文,可看到SYN位置1,而ACK位置0,这表明这是一个tcp连接请求。
(2)SYN+ACK报文:
此报文为服server同意接受连接时,向client发回的报文,用于回应client的建立连接的请求。
Sequenennumber:
0表示server向client发送数据时第一个数据字节的序号为0。
Tcp的通信的全双工的,在每个方向上的编号是独立的。
Acknowledgementnumber:
1为确认号字段,表明server下一个要接受的报文段中第一个数据字节的编号。
该报文段的标志位变成了Flags:
0x00012(SYN,ACK),表示这是一个SYN+ACK报文,可看到SYN位置1,ACK位置1,这表明服务器端接受连接,则使用SYN位和ACK位作为应答来回应客户端的连接请求。
(3)ACK报文:
这是由client发送的确认报文,Sequencenumber:
1表示客户端向服务器端发送数据时的数据字节的序号为1(其值为客户端向服务器端发送数据时的第一个数据字节的序号+1),Acknowledgementnumber:
1为确认号字段,表明client下一个要接受的报文段中第一个数据字节的编号。
此报文段的标志位为Flags:
0x00010(ACK),表示这是一个ACK报文,可看到SYN位置0,而ACK位置1,客户端使用ACK标志和确认号字段来确认收到了服务器端的SYN+ACK报文。
通过这3个报文的交换,完成了TCP连接的建立。
(4)client请求http的报文:
Sourceport:
1102(1102)表示源主机所建立的源端口号为1102。
Destinationport:
http(80)表示目的端口号为80,即接收方主机本次连接建立HTTP连接。
源主机是从1024——65535中指定的源端口号,80是被定义为http服务的端口号,TCP不像在数据链路层和网络层中的协议那样,它和它的上层协议不使用硬件的和逻辑的地址来区别发送方的主机地址,它们使用端口号来实现。
1序列号为1。
上一报文中,客户端的Acknowledgementnumber也表明将接收第一个数据字节编号为1。
[Nextsequenennumber:
281]要发送的下一序列号为:
281。
20bytes首部长20B,它与IP首部长度一样是可变的,都取决于可选项。
0x0018(PSH,ACK)
Acknowledgment:
set确认位,用来指示确认号有效,当它置0时,说明该报文不包含确认信息,确认号字段值则被忽略。
Push:
set表示请求推送,要立即将报文交给接收应用进程,而不再等到整个缓存满后才向上交付。
Windowsize:
65535指明窗口大小,其范围为0~65535,当其大小为0时,表示收到了包括确认号减1在内的所有数据,但当前接收方缓存已满,不能再接收,希望发送方不再发送数据了。
而发送方也必需要等到收到窗口大小非0的确认报文后,才能继续发送。
5、HTTP报文:
(1)请求报文:
GET/HTTP/1.1\r\n表示是请求http服务的报文,http的版本为HTTP1.1。
至今,HTTP有三个版本:
0.9、1.0、1.1,0.9只接受GET一种请求方法,没有在通讯中指定版本号,且不支持请求头。
由于该版本不支持POST方法,所以客户端无法向服务器传递太多信息;
1.0这是第一个在通讯中指定版本号的HTTP协议版本,至今仍被广泛采用,特别是在代理服务器中;
1.1当前版本,持久连接被默认采用,并能很好地配合代理服务器工作。
还支持以管道方式在同时发送多个请求,以便降低线路负载,提高传输速度,除此之外,它还有一个明显的改进——错误通知的管理。
在http的响应报文中,200多表示正常,300多表示请求重定向到其它的URL,400多表示客户端出现差错,500多表示服务器端出现差错。
GET是表示向服务器请求一个文件,可GET仅仅是HTTP众多方法中的一种,它还有POST:
向服务器发送数据让服务器进行处理;
PU和:
向服务器发送数据并存储在服务器内部;
HEAD:
检查一个对象是否存在;
DELET:
表示从服务器上删除一个文件;
CONNET:
表示对通道提供支;
TRACE:
跟踪到服务器的路径;
OPTIONS:
查询Web服务器的性能。
Accept:
application/x-shockwave-flash,image/gif,image/-xbitmap,image/jpeg,image/pjpeg,*/*\r\n表示客户能够接受的媒体格式
Accept-Language:
zh-cn\r\n表示客户能够处理的字符集:
简体中文
Accept-Encoding:
gzip,deflate\r\n表示客户能够处理的编码方案。
HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。
大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。
User-Agent:
Mozilla/4.0(compatible;
MSIE6.0;
windowsNT5.1;
SV1)\r\n包含HTTP客户端运行的浏览器类型。
Host:
31.0.0.1\r\n
Connection:
Keep-Alive\r\n表示此HTTP连接的类型为Keep-Alive。
在HTTP/1.1协议中,所有的请求头,除Host外,其余都是可选的。
服务器端接收到客户端请求的数据后,服务器便会向客户回送请求,将HTML文件发给客户端。
但由于考虑到大数据易出错,并且传输时会一直占用带宽,重传时也会造成大量的带宽浪费,以及设备的缓存容量等问题,TCP便将传输的数据分段在较小的范围内并做好相应标记,以提高传输效率。
在以太网中,数据包的大小在64-1518字节之间,如果客户端请求的页面大于1518字节,则会将请求的页面分段传送给客户端被分段的数据及控制信息都由TCP控制。
我们可以看到,在HTTP请求报文之后,有10个TCP报文,它们是服务器端向客户端发送的被分段的包含HTML数据应答报文及客户端接收到后的确认报文。
我们将列举其中的三个作为说明,以下是服务器回送用户要求的html文件的第一个数据包和第二个数据包的内容:
Sequencenumber:
1序列号在TCP连接过程中,服务器端向客户端发送的同意连接中序列号为0,所以此序列号为1。
NextSequencenumber:
1461表示服务器端发送的下一个序列号为1461。
Ackonwledgementnumber:
281表示服务器端下一个要接受的报文段中第一个数据字节的编号为281。
Sequencenumber:
1461表示服务器端向客户端发送的序列号,与上一报文中NextSequencenumber:
1461吻合。
Nextsequencenumber:
2921表示服务器端发送的下一个序列号为2921。
客户端确认接收到的数据:
281表示序列号为281,这与服务器端将要接收的的报文段中第一个数据字节的编号为281相吻合。
Acknowledgementnumber:
2921表示客户端下一个要接收的报文段的中第一个字节的序列号为2921,这与服务器端发送的下一个序列号2921相吻合。
Ack位置1确认接收到的信息。
由于使用了选择性确认机制,所以服务器端只需要发送接收到确认报文中标志的下一个报文便可。
除此之外,我们还将注意到,期间每个服务器端发TCP报文中都有如下重组字段:
ReassembledPDUinframe:
25表示在第25帧(包含响应报文的帧)中重组分段信息。
(2)响应报文:
首先我们看到了分块的重组信息,第15、16、18、20、21、23、25帧中的数据被重组到了第25帧中。
其次我们来重点关注下HTTP的响应部分:
HTTP/1.1200ok\r\n表示的是URI(UniformResourceIdentifier,统一资源标识符)及其版本,“200OK”是HTTP响应的状态码,表示客户端请示的页面存在,且状态正常。
Date:
Thu,14May200906:
07:
40GMT\r\n表示连接服务的时间。
Server:
Microsoft-IIS/6.0\r\n指明服务器名和版本号。
X-Powered-By:
ASP.NET\r\n表示当前请求页面的脚本类型为ASP。
Content-Length:
9018\r\n显示此HTTP连接的内容的长度。
Content-Type:
text/html\r\n显示此HTTP连接的内容类型。
Set-Cookie:
ASPSESSIONIDQSTATDTR=LEOLDINBPNHLDKENBKMBDLLC;
path=/\r\n表示此HTTP连接的Cookie信息。
Line-basedtextdata:
text/htmlWeb服务器传送给客户端浏览器的HTML代码。
当客户端接收完信息后,会向服务器端发起终止连接,服务器端再响应终止。
TCP连接的通信方式是全双工的,所以每个方向必须单独地进行关闭。
只有当两个方向上的连接都被释放时,TCP连接才被完全释放。
但连接的释放不是必须由客户端发起,有时也会由服务器端发起。
从以上数据分析,我们已经可以大致看出http应用服务的整个工作流程和数据流的走向。
HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。
HTTP服务器则在那个端口监听客户端发送过来的请求。
一旦收到请求,服务器(向客户端)发回一个状态行,比如"
HTTP/1.1200OK"
,和(响应的)消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信息。
HTTP是基于TCP传输的对于HTTP服务是至关重要的,一个网页必须传送很多数据,而TCP协议提供传输控制,按顺序组织数据,和错误纠正能在一定程度上更高效率的保证了数据的传输。
例如在以太网中,数据包的大小在64-1518字节之间,如果客户端请求的页面大于1518字节,则会将请求的页面分段传送给客户端,客户端浏览器接收到Web服务器传送给自己的HTML代码后,便开始读取数据并将其显示为网页。
在关闭HTTP服务时,客户肯服务器都可以通过关闭套接字来结束TCP/IP对话。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 应用 网络 协议 分析