上一節是站在伺服器和客戶端的角度講收發包的.這次我們站在包的角度上再看一下乙個包的一生
乙個包被建立的過程
有這個表就可以看出 乙個完整的包其實就是在資料報前加了三個包頭.
概述乙個包的一生
當乙個包在 ip 協議處進行最後的包裝後,它就開始了自己的旅程.遺憾的是 包 也不知道他的旅程會是怎樣的.
為什麼這麼說呢 ?
因為乙個包只知道目的地 (ip位址告訴它)和下一站該去哪(mac位址告訴它).每到乙個驛站(網路**裝置),它就會詢問 我要去 目的地,我下一站應該去哪,然後他用答案 替換了 當前的下一站, 然後它又開始了自己的旅程,依次迴圈,直到到達目的地
ip位址(ip協議)和mac位址(乙太網協議)的關係
網路**裝置 --路由器.
路由器中有一張路由表,通過對比目的ip位址來查詢下乙個 ip **裝置的ip位址.
網路**裝置 – 集線器
集線器有一張表(乙太網協議的表).通過這張表可以查出相應的傳輸方向.集線器在子網中將網路包傳輸至下乙個路由器
mac頭部
這裡對開始的說明一下:mac頭部是在ip協議層打包的,只不過是在乙太網中使用 mac 頭部.
欄位名稱
長度(位元)
含義接收方mac位址
48網路包接收放的mac位址,在區域網中使用這一位址來傳輸網路包
傳送方mac位址
48網路包傳送方的mac位址,接收方通過它來判斷是誰傳送了這個包
以太型別
16使用協議的型別.
0800 :ip協議
0806 :arp協議
86dd :ipv6
這裡有乙個問題需要解決. 上面講了,ip協議將下乙個路由器的mac位址替換掉當前的mac,那麼ip協議是怎樣知道下乙個路由器的mac位址呢??? 因為路由表只知道 下乙個路由器的 ip位址.
這裡又使用了arp協議和廣播.
arp:address resolution protocol,位址解析協議 ---- 是根據ip位址獲取mac位址的乙個tcp/ip協議.
廣播:廣播可以把包發給鏈結在同一乙太網中的所有裝置.
arp協議就向子網中的所有裝置發出詢問.如果某乙個裝置的ip位址於arp協議中的ip位址相同,這個ip位址的路由器就會把自己的mac位址返回給該主機或路由器.
為了提高查詢效率.計算機中有乙個 arp快取的記憶體空間中會保留最近幾分鐘所查詢到的mac位址.
每次查詢前現在arp快取區中查詢一遍,如果沒有則再發起詢問.
那麼為什麼arp快取區只儲存最近幾分鐘的資料呢? 如果儲存時間過長,對方的ip位址發生變化,arp快取的內容就會與現實發生差異.
網路之旅 二
上次大概的說了一下客戶端和web伺服器的互動.這一次記錄一下客戶端和web伺服器的連線和相互收發資料的具體流程.為了看清楚連線的具體流程,我們先來看看tcp頭部的具體格式 欄位名稱 長度 位元 含義傳送方埠 號 16傳送網路包的程式的埠 接收方埠號 16網路包接收方程式的埠 序號 傳送資料的順序編號...
Linux學習之旅 三
如何學習linux 有心向linux 作業系統學習的學習態度 學習linux基礎相關建議 了解計算機概論與硬體相關知識。先從linux的安裝與命令學起。熟悉linux作業系統的基礎技能。務必學會vi文字編輯器。了解shell與shell指令碼的學習。一定要會軟體管理員。建立網路基礎概念。開始試著架設...
CTF入門之旅(三)
請使用微笑過關 題目 開啟位址可以看到這樣的題目介面,進一步開啟其中的源 分析上面的 為了獲得flag,可以得出以下幾條線索 審計 1.必須對 賦值 2.的值不能有 0 9 http https ftp telnet 這些東西 3.server query string 即 輸入的值 這個字串不能有...