192.168.192.128主机访问47.99.57.252的url 192.168.192.128主机安装tcpdump工具(yum安装)并通过终端获取47.99.57.252的html页面
tcpdump -i ens33 -S host 192.168.192.128 and 47.99.57.252-i 指定网卡 -S 目的是获取ack绝对值(不加该参数ack相对值为1) host < ip > and < ip > 截获两个ip对应主机之间的通信
在还未访问时可以发现双方没有数据包传输
再开一个192.168.192.128的终端ping47.99.57.252 tcpdump有数据包传输(ICMP应答报文) 说明实验环境正常
curl命令访问47.99.57.252的html文件并得到结果
看到tcpdump抓包情况 红色框为tcp连接三次握手 黄色框为http请求以及响应 蓝色框为tcp断开四次挥手
1.[S.]代表SYN包表示主动连接,生成seq为一个随机数x 2.生成一个seq=y 给客户端发送ack,ack的值为x+1 3.客户端给服务端发送ack,ack的值为y+1
1.客户端发送http请求,此次请求为get方式 2.服务端发送ack确认 3.服务端返回数据包和状态码(因为时get方式,所以数据包和状态码在一个数据包内,如果是post请求会分别发送状态码和数据包) 4.客户端发送ack确认
1.[F.]为FIN包表示主动断开,生成seq为n 2.服务端返回ack=n+1 3.服务端返回seq=m,ack=n+1 4.看客户端返回ack=m+1
通过这个实验可以看出访问网页时tcp的大致流程 tcp连接——http请求——http响应——tcp断开 因为tcp是可靠传输协议并且面向连接,所以双方收到数据包后都会向对方传输ack确认包 http请求方式多数为get,post,响应状态码200为成功 tcp断开连接为四次握手,因为要保证数据传输全部完成才能断开
(不详细,有错误请指出~)