170326 第六章应用层 HTTP访问过程 应用层总结 习题
一.HTTP访问过程
1.1 场景:按照三种情况捕获数据包:
(1)清空浏览器缓存后,访问服务器并捕获数据包。
(2)在上一次访问的基础上,再重新访问一次并捕获数据包。
(3)将服务器端的文件进行修改后再访问,并捕获数据包。
1.2 服务器架设与拓扑
(1)在服务器端用IIS5.1架设WWW服务器,在服务器的wwwroot文件夹下建立文件index.htm。
(2)从客户端访问该服务器,然后捕获数据包。
(3)拓扑图
(4)客户端环境,打开浏览器,清空缓存,在浏览器地址栏输入服务器的IP地址,然后回车。
(5)浏览器窗口中显示完整的内容后,停止捕获数据包
(6)再次访问服务器
(7)修改服务器端文件后访问服务器
二.应用层总结
2.1 应用层协议有很多,每个协议都是为了解决某一类的应用问题。而问题的解决又往往是通过位于不同主机中的应用进程之间的通信和协同工作来完成的。
2.2 应用层的许多协议都是基于客户服务器方式。
客户和服务器都是指通信中所涉及的两个应用进程。客户是服务的请求方,服务器是服务提供方。
2.3 域名系统DNS
(1)域名分三类:国家顶级域名、通用顶级域名、基础结构域名。
(2)域名服务器:根域名服务器、顶级域名服务器、权限域名服务器、本地域名服务器。
2.4 文件传送协议FTP
(1)FTP的两个连接:控制连接—21;数据连接—20;
(2)FTP的使用方式:浏览器方式;客户端软件方式;命令行方式。
2.5 简单文件传送协议TFTP,使用69号端口,发送的报文是512字节的整数倍,使用UDP。
2.6 远程终端协议Telnet,端口号23。
2.7 万维网WWW
(1)统一资源定位符URL
(2)超文本传送协议HTTP
(3)超文本标记语言HTML
(4)HTTP使用传输层的TCP,需要经历建立连接、数据传送、释放连接的过程。
(5)HTTP的报文结构
2.8 代理服务器
2.9 电子邮件
(1)简单邮件传送协议SMTP—端口25
(2)邮局协议POP3—端口110
2.10 动态主机配置协议DHCP
2.11 简单网络管理协议SNMP—端口161
三. 习题
3.1 客户端启动浏览器,向某WWW服务器发送请求,通过客户端捕获数据包,其中有一个数据包中的HTTP响应报文中的部分内容为
该信息说明什么?
答案:
(1)说明该报文是服务器发送给客户端的。
(2)说明客户端本地缓存的文件与服务器中保存的文件的修改时间一致,即服务器没有修改文件。
(3)该报文中只包含了HTTP首部字段,没有包含页面内容。
(4)客户端收到该报文后,从客户端的缓存读取文件。
3.2客户端启动浏览器,向某WWW服务器发送请求,通过客户端捕获数据包,第一个TCP报文段的发送方向?第一个TCP报文的作用?通过什么字段表示该作用?通常情况下,该报文段中的TCP首部中TCP偏移量大于5,超过5的部分说明什么?
答案:
(1)客户端发给服务器的。
(2)第一个TCP报文的作用是客户端向服务器发送连接建立请求,希望建立连接。
(3)在TCP报文段首部中的SYN位置位、确认号字段为0。
(4)表示TCP首部有选项,该选项是最大段长度
3.3 客户端启动浏览器,向某WWW服务器发送请求,在交互的过程中,通过客户端捕获数据包,某个数据包中TCP的源端口号是80,TCP中的窗口字段的内容为255,问,该数据包发送方向?窗口值说明什么?
答案:
(1)该数据包是从服务器发向客户端的。
(2)该窗口值说明,服务器端的接收窗口为255个字节,目的是通知发送方,将发送窗口设置为255。
(3)另外可以说明服务器端的缓存能力不高,或者服务器端正在处理大量的请求。
3.4 客户端启动浏览器,向某WWW服务器发送请求,在交互的过程中,通过客户端捕获数据包,某个数据包中TCP首部的后面有6个字节的额外数据,问,这6个字节的额外数据说明什么?该数据帧的总长度是多少?
答案:
(1)这6个字节是为了保证符合传输要求而填充的额外数据。
(2)该数据帧的总长度应为64字节。
3.5 客户端启动浏览器,向某WWW服务器发送请求,在交互的过程中,通过客户端捕获数据包,某个数据包中TCP首部的SYN位置1,且确认号字段为0,试说明该报文段的作用是什么?通常是从客户端发给服务器的,还是从服务器发送给客户端的?通常情况下,捕获到的数据包中,第几个报文段是客户端向服务器端请求内容的报文段?
答案:
(1)该报文段是发起连接请求的报文段。
(2)该报文段是从客户端发送给服务器的。
(3)第4个报文段是向服务器端请求内容的。
3.6 客户端启动浏览器,向某WWW服务器发送请求,在交互的过程中,通过客户端捕获数据包,连续的几个数据包中IP首部TTL字段依次为64、128、64、128,请问这四个数据包中,哪个数据包经过了路由器?经过了几个路由器?为什么?
答案:
(1)这四个数据包都没有经过路由器。
(2)因为TTL字段的值是默认值,没有改变,说明这四个数据包是在局域网内,通过交换机转发的或者是两个直连计算机之间的通信。