一、TCP/IP網路模型
應用層
負責在不同的應用層協議的約束下,如http、dns、ftp,通過應用行程間的互動來完成特定網路應用
應用層只需要專注于為用戶提供應用功能即可,無需關心資料如何傳輸
應用層是作業在作業系統中的用戶態,傳輸層及以下則作業在內核態
傳輸層
負責進一步為兩臺主機設備中行程之間的通信提供資料傳輸服務
有兩個傳輸協議:TCP(可靠)和UDP(不可靠)
當應用層需要傳輸的資料較大,超過了傳輸層的MSS(TCP最大報文段長度),就要將資料包進行分塊,然后分塊傳輸
傳輸層負責將資料傳輸給指定主機設備的應用,這些應用使用埠號
進行區分
傳輸層的報文中會攜帶埠號
網路層
負責將將資料在互聯網之中從一個設備傳輸到另一個設備
最常使用的是IP協議,當IP報文大小超過MTU(以太網一般為1500位元組)就會進行分片
有兩個重要作用:尋址和路由
尋址
IP地址分為網路號和主機號,分別通過與子網掩碼和子網掩碼的反碼進行按位與運算即可得到
通過網路號和主機號進行尋址
路由
當IP資料包到達一個網路節點(路由器、交換機等等)時,通過路由選擇演算法決定走哪條路
所以,IP 協議的尋址作用是告訴我們去往下一個目的地該朝哪個方向走,路由則是根據「下一個目的地」選擇路徑,尋址更像在導航,路由更像在操作方向盤,
網路介面層
網路介面層主要為網路層提供「鏈路級別」傳輸的服務,負責在以太網、WiFi 這樣的底層網路上發送原始資料包,作業在網卡這個層次,使用 MAC 地址來標識網路上的設備,
此處,涉及到IP地址與MAC地址的轉換,需要使用ARP協議
總結
二、鍵入網址到網頁顯示,期間發生了什么?
HTTP請求——DNS——協議堆疊——TCP——IP——MAC——網卡——交換機——路由器——交換機——服務器
第一步瀏覽器決議URL地址
然后根據url地址,獲得Web服務器域名,生成http請求
第二步查詢服務器域名對應的IP地址
此時就需要使用DNS地址查詢服務,現在本地快取中查,沒有再去各個層級去查,直到獲得目標服務器IP地址
第三步將請求送往作業系統的協議堆疊
協議堆疊分為兩部分,上部分是TCP、UDP協議,下部分是IP協議,IP協議中還包含ICMP和ARP
然后通過上述協議完成一系列操作
TCP協議
重要概念:可靠、序列號、確認號、狀態位、視窗大小、流量控制、擁塞控制、三次握手、四次揮手
MSS:除去 IP 和 TCP 頭部之后,一個網路包所能容納的 TCP 資料的最大長度,超過則拆解為一塊塊
IP協議
重要概念:IP地址、網路號、主機號、子網掩碼、根據路由表選擇發送的網卡
MTU:一個網路包的最大長度,以太網中一般為 1500 位元組,
MAC幀
重要概念:
發送方MAC地址在本機網卡中的ROM中
通過查詢路由表得知目的方的MAC地址
ARP協議找MAC地址,其中有ARP快取(只快取幾分鐘),也會以廣播的形式在以太網中(局域網內)詢問MAC地址
第四步到達網卡
經過上述步驟,將形成一個網路包,(MAC頭部(IP頭部(TCP頭部(HTTP報文))))
然后通過網卡將上述數字信號(網路包)轉化為電信號
網卡中有快取,將上述網路包添加幀首部和幀尾部,FCS幀校驗序列
第五步到達交換機
上述資料幀從網卡發出后,首先送到在同一局域網內的交換機
交換機不具有MAC地址,而是接收記錄所有包
交換機有MAC地址表存著兩個資訊:
存著設備的MAC地址和該設備連接在交換機的哪個埠上
于是根據目的MAC地址在交換機的MAC表中匹配從而將資料幀發出對應的埠
如果沒有匹配到,則發往所有埠
- 因為路由器是基于 IP 設計的,俗稱三層網路設備,路由器的各個埠都具有 MAC 地址和 IP 地址;
- 而交換機是基于以太網設計的,俗稱二層網路設備,交換機的埠不具有 MAC 地址,
第六步到達路由器
經過不斷重復第五步,資料幀最侄訓到達路由器
路由器也是通過查找路由表來轉發資料幀的
首先通過MAC地址判斷是否發給自己,然后去掉MAC頭部,得到IP頭部,查詢路由表從而轉發目標
查詢路由表的程序就是將目的IP不斷與子網掩碼進行&運算,得到網路號進行對比
在上述程序中IP永遠不會變,MAC一直變化
最終到達目標IP地址服務器
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/539596.html
標籤:Java
