Web實驗理解資料的封裝和解封裝
阿新 • • 發佈:2020-09-10
實驗,利用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協議進行處理
應用層收到原始資料,資料傳輸完成