计算机网络体系小知识
網絡架構通常分為兩種:OSI七層與TCP/IP五層網絡架構
OSI七層模型:
TCP/IP五層網絡架構:
?
下面是對TCP/IP五層網絡架構的通俗解釋:
應用層: 應用層協議中的內容,是整個網絡傳輸的核心,網絡五層體系服務的最終目標就是它。
? 它類似于一名乘客,需要從百度服務器乘車到你的電腦中。
? 應用層協議的內容,就是我們程序直接面對的,要使用的數據。
常見的應用層協議(乘客)有:
DNS 協議
DNS 協議,Domain Name System,用來把域名轉化為 IP。
DNS 這個協議幫我們完成這個記憶,有了個域名,想知道對應的 IP,
DNS 從本地查。如果本地沒有記錄,又會去本地的域名服務器查...直到根域名服務器,
是一個分布式的過程。如果服務器遷移,IP 地址修改,域名服務商是會幫忙刷新 DNS 服務器的緩存的。
為什么有這么一個協議存在?我知道目標主機的 IP,直接填不就好了?這個當然沒問題,但是全世界這么多網址,IP 數量龐大,
要真的使用數字記憶的話,那是很困難的。如果又發生了更換了服務器,那 IP 也要跟著換,客戶端沒有即使更換又會造成大量問題。
還有有的時候用 CDN 加速,如果直接填 IP,就直接繞開了 CDN 去源服務器取數據了。
HTTP 協議
在格式各樣的計算機網絡中,有一個圣地那就是萬維網 WWW。
在這個網絡中行走的乘客就是 HTTP 協議,帶著文本,圖像、視頻等數據,往來于不同的站點。
所以也可以把它們看成攜帶著大量貨物的商隊,來往于各個城市站點。
-----------------------
運輸層: 運輸層是體系結構的調度者,管理著數據的傳輸的一些策略。
? 什么時候可以傳?要傳多少?要不要接收?什么時候結束?
? 運輸層有兩個調度者,兩種不同的風格,分別為 TCP 和 UDP。
TCP 很嚴格,一個包都不能有失,完美主義的處女座,因為紀律嚴明且要求嚴格的 TCP 工作效率并不高,
每次發完一陣子都要確認一下是否順序正確,不正確的話再發個包。UDP 就比較不拘小節,丟包了亂序了都不管,
所以在網絡環境好的情況下,UDP 可以做到快速而且正確率高。
TCP 調度者的工作內容主要三大塊,分別為可靠傳輸、流量控制和擁塞避免。簡單理解,可靠傳輸就是希望傳輸過程中有丟包或者錯誤包的現象,
讓發送端重傳;流量控制就是建了個緩沖池,讓接收方和發送方用合適的速率傳輸,不會因為傳輸太快導致數據丟失。
比如我們有一個倉庫大小就那么大,東西都還沒用完,又不停地往里面存東西,那么直接結果是倉庫爆了后后面送過來的貨物還要重新送,
還不如直接告訴發送端,倉庫滿了,等等吧。這就是后面會提到的 TCP 首部的窗口大小;擁塞避免就是在網絡環境差的情況下,
有好的機制減低發包節奏,緩解網絡環境。比如在某個城市開車,出行的人突然增加,那么等個時間再出來。
UDP 調度者因為不需要嚴格的建立連接,又不需要各種確認機制保證包不亂,所以整個協議非常輕量。
如果想要保證數據的完整且接收的順序無誤,那么得應用層協議自己來。
-----------------------
網絡層:網絡層的是體系結構的向導,負責找到要到達接收方的路徑。
經過了傳輸層,包大小確定了,傳輸時間也決定了。然后,手里只有 IP 和 端口號,就像現在廈門,并且知道了目標地點是北京,可是該怎么走呢?
需不需要中轉?中轉的地方又在哪里?
這時候要看 IP 協議族了。這個大家族都吃這碗飯,提供指路服務。
運輸層的包,比如 TCP 或者 UDP,向導會填入目的信息。所以,在這個過程中它做的就是找到下一站,然后到達之后再尋找下一站直到終點
網絡層向導會去問路,如何能夠找到最短路徑,或者能最快到達的路徑呢?比如從中國到美國,是從太平洋走,還是先去歐洲再走大西洋呢?那條路能夠更快到達目的地。
于是問路就有了兩種不同的策略,有用 RIP 協議去問路,又或者是 OSPF 協議去問路。
但是到達數據到達數據鏈路層的包只認物理地址怎么辦?所以這里還有個 ARP 協議,用來找到 IP 對應地址的硬件地址,方式還是用廣播。
像我們平時使用 Wireshark 抓包看到的,經常會有一些向導往整個局域網里問,“who has xxxxx? Tell xxxxx”。目標會給向導答復,
到時候把硬件地址記錄下來即可。
-----------------------
數據鏈路層:數據鏈路層里的協議就是要使用的交通工具了。
不同網絡的差異性主要就體現在這一層。對于數據,并不需要我們路上經過了什么,怎么走。但交通工具要明白。不同的網絡,交通情況是不一樣,所以有不同的策略來走。
比如去往 ISP 使用 PPP 協議。
在普通局域網內部使用 CSMA/CD 協議。
數據鏈路層的協議,無論選擇什么樣的行走策略,無論是在天上飛的,地上跑的,海里游的,都會面臨三個基本問題:封裝成幀、透明傳輸和差錯檢測。
解決了這三個問題,那么這個交通工具就可以上路了。
-----------------------
物理層:什么時候出發,去什么地方,用什么方式走都已經確定好了,轉化為二進制信號后,由物理層真實地發送到目標地址去。
那這條路物理層傳輸的帶寬怎樣,就像我們的道路是四車道還是六車道,是大道還是羊腸小路。傳輸的速率怎樣,就像這條路的路況如何,是坑坑洼洼的還是一馬平川。
物理層的特性決定的路況。不同地方的貧富差距不一樣,或者環境的限制,修的路也不一樣。有的用雙絞線,有的用同軸電纜,再不錯的就用光纖了。所以,在相同的時間里,
在不同的物理層設備環境中,可能你還在廈門島內堵車,我已經搭動車飛馳 200 公里到另一座城市。
-----------------------
小結:
當我們要發送一個數據,經過這五層協議,為了完成每一層協議的功能,比如可靠傳輸、確定路由等,這些協議都會添加一些必要的首部來完成功能。
這里我們使用 TCP 協議作為傳輸層協議,所以到達物理層前要發送出去的包在每層協議添加首部后會有這樣的結構:
?
參考文章:三分鐘快速理解計算機網絡體系結構 http://www.jianshu.com/p/e5aa40925429
轉載于:https://www.cnblogs.com/zhou--fei/p/7651793.html
總結
以上是生活随笔為你收集整理的计算机网络体系小知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 请问小仙炖燕窝怎样,有营养吗?
- 下一篇: 不知道毛戈平彩妆哪款最值得入手?