本文做者:francisk84算法
1.協議數據庫
在計算機網絡的世界中,要說最重要的必然會想到協議,那麼問題來了,什麼是協議?協議是控制兩個或多個對等實體進行通訊的規則的集合.所以在計算機網絡分層中協議是水平的.OSI將計算機網絡分爲7層,自底向上爲物理層-鏈路層-網絡層-傳輸層-會話層-表示層-應用層,TCP/IP體系將網絡分爲四層,自底向上爲物理鏈路層-網絡層-傳輸層-應用層.之間的對應關係如圖1所示,不管是哪一種劃分方法,對於協議來講,網絡層的協議只能是雙方的網絡層使用,而不能是網絡層對其餘層使用。
各類各樣的協議應用於不一樣的場合下,例如IP地址解析就須要ARP協議,反向解析就須要RARP協議.IP協議只向上提供無鏈接的服務,何爲無鏈接服務?就是盡最大努力交付,所以網絡層不提供服務質量的承諾,所以網絡層是能夠出現分組丟失,失序等。目前主流的IP協議爲IPv4,可是IPv6一直在不斷髮展。IP數據的基礎單位稱爲分組.服務器
2.網絡包的傳輸過程網絡
在TCP/IP體系中,網絡涉及到四層:鏈路層,網絡層,傳輸層,應用層。 以太網(幀)在鏈路層,IP(分組)在網絡層,TCP或者UDP(報文)在傳輸層,HTTP等應用層協議數據在應用層.數據包在發送端產生,每經過一層均會添加首部,在接收端每經過一層均刪除首部。具體的網絡流過程如圖所示
所以從圖中能夠看出,報文的首部越長,傳輸的比率也就越低,這也就解釋了爲何在雲環境下傳輸文件或者提交代碼到GitHub/GitLab中,感受速度變慢了,實際上也確實是變慢了,相對於http協議,https會更加的慢一些,由於https在tcp的三次握手的基礎上又增長了9次加密通道的步驟。https的握手過程以下圖所示:tcp
簡單的說https=http+ssl,http的三次握手不變,增長了9次ssl通道加密過程。所以,一次https的通道構建須要tcp握手包3個+ssl握手包9個,在ssl過程當中加密解密須要消耗CPU的計算資源,所以容易成爲瓶頸。分佈式
3.路由加密
在網絡中,路由是一個很是重要的概念,路由是指從源到目的地時,決定端到端路徑的網絡範圍的進程。路由又有單播,多播,廣播等。路由又分爲內部網關路由(IGP)和邊界網關路由(EGP),IGP須要用到兩個很是經典的路由算法RIP和OSPF。EGP則使用BGP協議。計算機網絡
3.1RIP-距離矢量算法3d
特色:blog
下圖爲某一個路由表R1
和R2
R1收到了R2的路由表,便會更新本身的路由表,更新的結果爲R1-new
RIP協議的缺點是:
3.2 OSPF協議(使用了Dijkstra算法)
OSPF的主要特徵就是使用分佈式的鏈路狀態協議,相對於RIP協議它的特色以下
- 向本自治系統的全部路由器發送路由表(洪泛)
- 發送的信息是全部路由器的鏈路狀態
- 只有當鏈路狀態發生改變的時候才洪泛
- 最終全部的路由器能創建一個鏈路數據庫,即全網的拓撲結構
優勢:
缺點:
3.3NAT
NAT是一個地址轉換協議,在IP地址中有一些IP地址是公網地址,有一些IP地址只有本地才能訪問,若是把本地才能訪問的IP地址放到公網中就是NAT的任務。NAT是爲了解決IP地址不足的問題。NAT主要包括靜態NAT,動態NAT和NAPT,在此主要介紹NAPT,NAPT又包括SNAT和DNAT。
NAT的原理如圖所示:
圖中的
1.本機發出一個數據包,目的網絡地址是12.120.76.24:8080
2.NAT服務器對數據包的源地址進行修改122.167.12.89:8000
即SNAT
5.NAT對數據包的目的IP進行修改,DNAT
NAT服務器有兩個網卡,一個對內,一個對外,而且維護着一個對照表
經過對照表進行地址映射.