- 姓名:刘雪松
- 学号:201821121116
- 班级:计算1814
1 实验目的
- 使用路由器连接不同的网络
- 使用命令行操作路由器
- 通过抓取HTTP报文,分析TCP连接建立的过程
2 实验内容
使用Packet Tracer,正确配置网络参数,通过抓取HTTP数据包,分析TCP连接建立过程。
- 建立网络拓扑结构
- 配置参数
- 抓包
- 分析数据包
3. 实验报告
3.1 建立网络拓扑结构
网络拓扑图如下图所示:
一台客户端PC连接路由器,路由器再连接服务器server
3.2 配置参数
- 客户端的IP地址为
192.168.1.116,默认网关为192.168.1.117。
服务端的IP地址为
192.168.2.116,默认网关为192.168.2.117。
路由器参数配置
进入特权模式,清除路由器的现有配置,并且禁用DNS查找;
给路由器命名,配置并激活端口;
把G0/0/0端口的地址设置为192.168.117,把G0/0/1端口的地址设置为192.168.2.117。
配置路由算法;
连接192.168.1.0和192.168.2.0两个网络。
验证:
3.3 抓包,分析TCP连接建立过程
通过pc端口访问
抓到如下的报文:
报文如下
(1)画出TCP连接建立示意图
如下图所示:
(2)分析序号和确认号的变化
- 首先由客户端发送请求连接,即SYN=1,ACK=0。TCP规定,在SYN=1时不能携带数据,但是要消耗一个序号,所以申明自己的序号seq=x。
- 然后Server进行回复确认,即SYN=1,ACK=1,seq=y,ack=x+1。
- 然后客户端再次确认,但不用SYN=1,即ACK=1,seq=x+1,ack=y+1。(SYN=1时,表明这是一个请求连接或接受连接报文)。
(3)解答:为什么连接建立需要第三次握手
采用三次握手是为了防止失效的请求报文又发送到Server,从而产生错误。
4. 拓展 (不作要求,但属于加分项)
(1)分析TCP连接释放
- 在数据传输完成后,客户端先向服务端发送释放连接报文,即FIN=1,序号seq=u
- 服务端在收到释放请求后立即发送确认,确认号ack=u+1,序号seq=v,v等于服务端前面已传输过的数据的最后一字节的序号加1。此时客户端的连接关闭,不再发送数据,但可以接受数据。TCP进入半关闭状态,这个状态会持续一段时间。
- 服务器发送完数据后,向客户端发送释放报文,FIN=1,并且ack=u+1。
- 客户端收到后,发送确认,ACK=1,seq=u+1。然后客户端进入时间等待状态,经过2MSL后,才真正释放连接。
(2)解答:为什么释放连接要四次握手?
因为tcp是全双工通信,每一边关闭需要通知关闭和确认,故需要4次。
(3)解答:为什么释放连接的图和书上的不同?
可能是第二次服务器端释放连接时响应报文与发送报文当作一次同时发送给客户端了,因为服务器端没有数据发送