前面的話
上一篇中,介紹了網(wǎng)絡基礎。本文將詳細介紹客戶機在瀏覽網(wǎng)頁abc.com時,數(shù)據(jù)在網(wǎng)絡中的傳輸過程
以圖為例,PC1通過HTTP協(xié)議訪問位于Server上的網(wǎng)頁。那么,網(wǎng)頁數(shù)據(jù)在網(wǎng)絡中是如何傳輸?shù)哪??下面是具體的實現(xiàn)步驟
客戶機處理
HTTP協(xié)議的職責是生成針對目標WEB服務器的HTTP請求報文,該報文就是需要傳遞的數(shù)據(jù)
下沉到傳輸層后,由于HTTP協(xié)議使用的是TCP協(xié)議,為了方便通信,將HTTP請求報文按序號分為多個報文段(segment),并對每個報文段進行封裝。PC1使用本地一個大于1024以上的隨機TCP源端口(這里假設是1030)建立到目的服務器TCP80號端口的連接,TCP源端口和目的端口被加入到報文段中,學名叫協(xié)議數(shù)據(jù)單元(Protocol Data Unit, PDU)。因TCP是一個可靠的傳輸控制協(xié)議,傳輸層還會加入序列號、窗口大小等參數(shù)
傳輸層封裝后的數(shù)據(jù)分段下沉到網(wǎng)絡層后,封裝網(wǎng)絡層的頭部,主要就是添加源和目的IP地址,成為數(shù)據(jù)包。用戶通常使用主機名或域名來訪問服務器,這時就需要通過應用層的DNS服務來通過域名查找IP地址,或逆向從IP地址反查域名。這里的源IP地址是193.1.1.2,目的IP地址是195.1.1.2
網(wǎng)絡層封裝后的數(shù)據(jù)包下沉到數(shù)據(jù)鏈路層,封裝幀頭和幀尾。幀尾是添加被稱做CRC的循環(huán)冗余校驗部分。幀頭主要是添加數(shù)據(jù)鏈路層的地址,即數(shù)據(jù)鏈路層的源地址和目的地址,用在以太網(wǎng)上的體現(xiàn)就是添加源MAC地址和目的MAC地址。PC1比較要去往的目標IP地址,發(fā)現(xiàn)服務器的IP地址195.1.1.2不在本地網(wǎng)絡中,PC1知道要發(fā)往不同網(wǎng)絡中的數(shù)據(jù)包,首先要發(fā)往網(wǎng)關(guān),也就是圖中路由器R1快速以太網(wǎng)接口Fa0/0的1P地址193.1.1.1。PC1査詢本地的ARP緩存,如果找到193.1.1.1對應的MAC地址則進行封裝;如果在ARP緩存中沒有找到193.1.1.1對應的MAC地址,則使用ARP協(xié)議,査詢到網(wǎng)關(guān)對應的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”