您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 计网第一次实验HTTP、TCP抓包实验
计算机网络第一次实验智能1402班201408070221李帅玲目录EtherealLab:HTTP...................................................................................2一.实验目的...............................................................................2二.实验原理(Section2.2).......................................................2(一)HTTP基本概念................................................................2(二)HTTP报文格式................................................................2三.实验步骤及分析....................................................................4EtherealLab:TCP....................................................................................10一.实验目的.............................................................................10二.实验原理.............................................................................10三.实验步骤及分析......................................................................12四.实验总结.................................................................................17EtherealLab:HTTP一.实验目的1.学习HTTP协议中基本的GET响应交互和信息格式2.检索最大的HTML文件和插入对象的HTML文件3.学习HTTP的认证和安全知识二.实验原理(Section2.2)(一)HTTP基本概念HTTP(超文本传输协议)是Web的应用层协议,它由两个程序实现:客户程序和服务器程序。HTTP定义了Web客户向Web服务器请求Web页面的方式,以及服务器向客户传送Web页面的方式。HTTP使用TCP作为它的支撑运输协议。HTTP有两种连接方式,非持续连接和持续连接。非持续连接指应用程序把所有的请求及其响应经相同的TCP连接发送。持续连接指应用程序把每一个请求响应经一个单独的TCP连接发送。HTTP的默认模式是使用带流水线的持续连接。(二)HTTP报文格式1.HTTP请求报文:第一行:请求行(有3个字段:方法字段(GET方法)、URL字段、HTTP版本字段)第二行:首部行(指明对象所在的主机)Connection:close要求服务器使用非持续连接,发送完被请求的对象后就关闭这条连接。User-agent:指明用户代理,即向服务器发送请求的浏览器的类型。Accept-language:指明用户想得到的该对象的语言版本第三行:实体主体(若使用GET方法,则实体体为空,若使用POST方法,实体体中包含的是用户在表单字段中的输入值)2.HTTP响应报文:HTTP响应由三个部分组成,状态行、首部行、实体体状态行有3个字段:协议版本字段、状态码、状态信息实体部分是报文的主要部分,它包含了所请求的对象本身。课本Page71实例说明首部行信息:Connection:close告诉客户发送完报文后将关闭TCP连接Date指示服务器产生并发送响应报文的日期和时间。这个时间不是指对象创建或者最后修改的时间,而是服务器从它的文件系统中检索到该对象、插入到响应报文并发送该响应报文的时间Server:指示发送该报文的服务器Last-Modified:指示对象创建或者最后修改的日期和时间Content-Length:指示被发送对象中的字节数Content-Type:指示实体主体中的对象版本3.常见状态代码和短语200OK客户端请求成功301MovedPermanently请求的对象已经被永久的转移,新的URL定义在响应报文的Location中,客户软件将自动获取新的URL。400BadRequest通用差错代码,指示该请求不能被服务器理解。404NotFound被请求的文档不在服务器上505HTTPVersionNotSupported服务器不支持请求报文使用的HTTP协议版本三.实验步骤及分析答:我的浏览器和服务器的HTTP都是1.1版答:接受的语言为:en-us,en,如下显示:答:主机IP地址:192.168.1.102服务器IP地址:128.119.245.12如下显示:答:200OK,如下显示:如下显示:如下显示:答:没有。答:没有。由于缓存机制,第二次再次发送请求时,由于本地一次请求后已经缓存了请求内容,故第二次请求时,会先查看本地是否有缓存,如果有就不需要再次向服务器请求。故不会更改上次修改日期。答:查看服务器第一个响应,服务器返回的内容如下:如下显示:答:状态码为304Notodefied,如下图显示。此次服务器没有直接返回文件的内容,因为第一次发送请求时,服务器曾经返回了文件的内容,并且没有进行修改,于是服务器不用重新下载,而是返回之前的缓存文件。答:1个。答:4个答:200OK答:状态如下:答:发送了3个,地址如下图Destination显示:答:它们是从两个不同的站点并行下载的,从Destination可以看出。答:多的字段如下:EtherealLab:TCP一.实验目的二.实验原理TCP报文段由首部字段和一个数据字段组成。数据字段包含一块应用数据。MSS限制了报文段数据字段的最大长度。交互式应用通常传送长度小于MSS的数据块。TCP的首部一般是20字节,包括源端口号和目的端口号,它用于多路复用/分解来自或送到上层应用的数据,其首部也包括检验和字段。TCP报文段首部还包含下列字段:1.32比特的序号字段和32比特的确认号字段。这些字段被发送方和接收方用来实现可靠数据传输服务。2.16比特的接收窗口字段,该字段用于流量控制。3.4比特的首部长度字段,该字段指示了已32比特的字为单位的TCP首部长度。4.可选与变长的选项字段,该字段用于发送方与接收方协商最大报文段长度时,或在高速网络环境下用作窗口调节因子时使用。5.6比特的标志字段。ACK比特用于指示确认字段中的值是有效的,即该报文段包括一个对已被成功接收报文段的确认。TCP是面向连接的传输层协议,发送数据前必须通过三次“握手”建立连接,首先客户端发送连接请求(此时SYN=1,ACK=0);然后服务器接受请求,分配缓存和变量,返回响应(此时SYN=1,ACK=1);客户端接受响应,分配缓存和变量,返回响应(此时SYN=0,ACK=1),TCP连接建立。TCP发送方每发送一个报文段,就启动一个重传定时器,如果在规定的时间内没有收到接收方返回的确认,重传定时器超时,发送方将重传该报文。从发出数据到接收到确认的往返时间记作RTT(RoundTripTime).在原始算法中,重传定时器的定时宽度为Timeout=β*EstimatedRTT,其中EstimatedRTT为估算的从发出数据到接收到确认的往返时间。而EstimatedRTT=α*EstimatedRTT+(1-α)*SampleRTT(注:本实验α取0.875),这里SampleRTT是采样得到的从发出数据到接收到确认的往返时间。TCP采用“慢启动、拥塞避免、快速重传、快速恢复”的拥塞控制算法,利用拥塞窗口变量(cwnd)控制发送速度。其中慢启动是指TCP刚建立连接时将拥塞窗口变量cwnd设置为1个报文段大小,然后以指数方式放大cwnd,直到大于等于ssthresh(初始为最大拥塞窗口一半),进入拥塞避免阶段,进入拥塞避免阶段后,TCP采用线性增加方式放大cwnd。无论是慢启动阶段还是拥塞避免阶段,如果发生重传定时器超时的现象,就必须回到慢启动阶段,cwnd设置为1个报文段大小,ssthresh设置为上一次拥塞窗口值cwnd的一半。三.实验步骤及分析答:用户端:IP:192.168.1.102TCP:1161接收端:IP:128.119.245.12TCP:80答:thesequencenumberoftheTCPSYNsegment是0;SYNset=1.说明是SYN报文答:sequencenumber:1ACKnowledgementnumber:1ACKnowledgementset:1Sequencenumber:1Post在第一个数据报文中,数据报文和和三次握手中的第三个报文是一起发送给用户的,可以从这两次的序列号相同的特点看出来。SeqnumberSentTimeReceivedAckTimeRTTestimatedRTT10.0264770.0539370.027460.027385660.0417370.0772940.0355570.05386320260.0540260.1240850.0700590.09743234860.0546900.1691180.1144280.21443849460.0774050.2172990.1398940.32746364060.0781570.2678020.1896450.523411RTT=ReceivedAckTime-SentTimeEsimatedRTT=(1-a)EsimatedRTT+aSampleRTTa=0.125答:六个TCP报文的长度如下图所示:答:最小可用缓存为6780byte.接收方可用缓存大小限制了发送方的发送速率。答:没有重传,没有提示retransmitted答:实验显示,1个ACK可以确认1个数据包。由于实验所给案例抓包不稳定,故重新抓包进行分析:窗口长度=1024,RTT平均为0.5吞吐量=(0.75*W)/RTT=(0.75*1024)/0.5=1536b/s答:从图中可以看出0.3s之前指数增长,可知为慢启动阶段,其后每个RTT增加一个报文可知为拥塞控制阶段答:实验所得TCP拥塞窗口演化图没有像书上一样出现之字形状,因为网络比较稳定,报文都很顺利的传输过去了。四.实验总结通过此次实验,增强了我对HTTP协议和TCP协议的理解与掌握,增强了对TCP三次握手、拥塞控制等知识的掌握,使我对网络传输有了更深入的认识。
本文标题:计网第一次实验HTTP、TCP抓包实验
链接地址:https://www.777doc.com/doc-4393133 .html