前面的話
上一篇中,介紹了網(wǎng)絡(luò)基礎(chǔ)。本文將詳細(xì)介紹客戶機(jī)在瀏覽網(wǎng)頁abc.com時(shí),數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸過程
以圖為例,PC1通過HTTP協(xié)議訪問位于Server上的網(wǎng)頁。那么,網(wǎng)頁數(shù)據(jù)在網(wǎng)絡(luò)中是如何傳輸?shù)哪??下面是具體的實(shí)現(xiàn)步驟
客戶機(jī)處理
HTTP協(xié)議的職責(zé)是生成針對目標(biāo)WEB服務(wù)器的HTTP請求報(bào)文,該報(bào)文就是需要傳遞的數(shù)據(jù)
下沉到傳輸層后,由于HTTP協(xié)議使用的是TCP協(xié)議,為了方便通信,將HTTP請求報(bào)文按序號分為多個(gè)報(bào)文段(segment),并對每個(gè)報(bào)文段進(jìn)行封裝。PC1使用本地一個(gè)大于1024以上的隨機(jī)TCP源端口(這里假設(shè)是1030)建立到目的服務(wù)器TCP80號端口的連接,TCP源端口和目的端口被加入到報(bào)文段中,學(xué)名叫協(xié)議數(shù)據(jù)單元(Protocol Data Unit, PDU)。因TCP是一個(gè)可靠的傳輸控制協(xié)議,傳輸層還會(huì)加入序列號、窗口大小等參數(shù)
傳輸層封裝后的數(shù)據(jù)分段下沉到網(wǎng)絡(luò)層后,封裝網(wǎng)絡(luò)層的頭部,主要就是添加源和目的IP地址,成為數(shù)據(jù)包。用戶通常使用主機(jī)名或域名來訪問服務(wù)器,這時(shí)就需要通過應(yīng)用層的DNS服務(wù)來通過域名查找IP地址,或逆向從IP地址反查域名。這里的源IP地址是193.1.1.2,目的IP地址是195.1.1.2
網(wǎng)絡(luò)層封裝后的數(shù)據(jù)包下沉到數(shù)據(jù)鏈路層,封裝幀頭和幀尾。幀尾是添加被稱做CRC的循環(huán)冗余校驗(yàn)部分。幀頭主要是添加數(shù)據(jù)鏈路層的地址,即數(shù)據(jù)鏈路層的源地址和目的地址,用在以太網(wǎng)上的體現(xiàn)就是添加源MAC地址和目的MAC地址。PC1比較要去往的目標(biāo)IP地址,發(fā)現(xiàn)服務(wù)器的IP地址195.1.1.2不在本地網(wǎng)絡(luò)中,PC1知道要發(fā)往不同網(wǎng)絡(luò)中的數(shù)據(jù)包,首先要發(fā)往網(wǎng)關(guān),也就是圖中路由器R1快速以太網(wǎng)接口Fa0/0的1P地址193.1.1.1。PC1査詢本地的ARP緩存,如果找到193.1.1.1對應(yīng)的MAC地址則進(jìn)行封裝;如果在ARP緩存中沒有找到193.1.1.1對應(yīng)的MAC地址,則使用ARP協(xié)議,査詢到網(wǎng)關(guān)對應(yīng)的MAC地址 “00-11-BC-7D-25-03” 。于是,這里的源MAC地址是PC1的MAC地址“00-1B-24-7D-25-01”,目的MAC地址是網(wǎng)關(guān)的MAC地址 “00-11-BC-7D-25-03”
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26