1. 程式人生 > 實用技巧 >Web實驗理解資料的封裝和解封裝

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協議進行處理

應用層收到原始資料,資料傳輸完成