Web实验理解数据的封装和解封装
实验,利用web服务理解数据的封装和解封装
实验拓展
# Client配置:
ip:10.1.1.1
netmask:255.255.255.0
# web服务器配置:
ip:10.1.1.2
netmask:255.255.255.0
httpserver:
port:80
# index.html
this is index.html
实验过程
1.交换机LSW1的Eth 0/0/1进行抓包
2.使用Client1访问web服务
3.查看抓取的包
# TCP三次握手建立:
25 52.875000 10.1.1.1 10.1.1.2 TCP nfs > http [SYN] Seq=0 Win=8192 Len=0 MSS=1460
26 52.875000 10.1.1.2 10.1.1.1 TCP http > nfs [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460
27 52.875000 10.1.1.1 10.1.1.2 TCP nfs > http [ACK] Seq=1 Ack=1 Win=8192 Len=0
# 首先是Client和web客户端进行TCP的三次握手
客户端向服务端进行TCP的连接请求,发送SYN请求位,序列号为0 seq=0
服务器端首先同意请求 发送ACK确认位,然后确认位ack=0+1,进行确认,同时也发送自己SYN请求位,seq序列号为0 seq=0
客户端收到服务器的确认报文后,还要向服务器发出确认 ACK ,确认号为1 ack=0+1(服务器的发送序号+1) ,序号为0+1(客户端第一次发送的序号+1)
# 这个过程可以这样理解:
客户端:“您好,服务器,我有数据要传给你,建立连接把”
服务器:“好的,我已准备好”
客户端:“好的,谢谢你的同意”
# 数据封装过程:
# 应用层:
Hypertext Transfer Protocol
# 传输层:
Transmission Control Protocol, Src Port: clearvisn (2052), Dst Port: http (80), Seq: 1, Ack: 1, Len: 164
# 网络层
Internet Protocol, Src: 10.1.1.1 (10.1.1.1), Dst: 10.1.1.2 (10.1.1.2)
# 数据链路层:
Ethernet II, Src: HuaweiTe_72:30:52 (54:89:98:72:30:52), Dst: HuaweiTe_d0:52:03 (54:89:98:d0:52:03)
# 物理层
Frame 12: 218 bytes on wire (1744 bits), 218 bytes captured (1744 bits)
# 过程描述
应用层接收应用层http协议产生的数据,上交给传输层;
传输层根据应用层的http协议封装TCP协议(源端口2052和目的端口80和窗口大小等),生成数据段,上交给网络层
网络层封装ip头部(包括TTL生存时间255,protocol协议号为 6,源ip和目的ip等),生成数据包,上交给数据链路层
数据链路层封装帧头和帧尾,帧头包括目的mac、源mac,根据网络层的协议类型封装类型字段 0x0800(IP),生成数据帧,上交给物理层
数据帧到达物理层,物理层把数据帧转为比特留,交给物理介质
# 解封装过程
物理层接收客户端发来的二进制数据,转化为数据帧,上交给数据链路层
数据链路层接到数据帧,将去掉帧头和帧尾,根据帧头中的类型(0x0800)交给网络层的IP协议进行处理
网络层收到数据,将去掉IP头部,根据IP头部中的协议号6和ip地址交给传输层TCP的进行处理
传输层收到数据包,将去掉TCP头部,根据TCP头部中的端口80交给应用层的HTTP协议进行处理
应用层收到原始数据,数据传输完成
作者:ccku
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。如有问题或建议,请多多赐教,非常感谢。