溫馨提示:請您在閱讀本文之前,點擊文章上方的「關注」,以後您就可以免費收到智慧網絡2333每天推送的網絡、寬頻等內容了。謝謝您的關注與轉發!
計算機眼睛裡只有0、1,計算機上看到的漢字、英文字母、數字、特殊符號,在計算機眼裡也是由0、1組成的串串。
當把「01100011」存儲到物理介質上,這個二進位流在不同介質有不同的表示方法,硬碟、光碟、磁帶機、U盤對這個串串,肯定有不同的表現形式,但計算機並不care,因為下次讀取介質時,依然會讀取「01100011」,0是一種狀態,1是另一種狀態,寫入/讀取數據時,遵從同樣的標準,讀取數據時,才能還原出原始的數據,對嗎?
同理,當傳輸「01100011」時,無論是採用電信號、光信號、電磁信號,只是每種傳輸介質對於0、1的不同呈現形式,只要通信的雙方遵從同樣的標準,發送方把0、1以特有的信號狀態,把「01100011」編碼成一串狀態流,接收方再把這串狀態流還原成「01100011」,這就是計算機通信的基礎原理,這就是大名鼎鼎的OSI參考模型的物理層!
可是,信號在傳輸時,可能由於信號傳輸距離過長,而衰減太厲害,以至於接收方無法把信號還原成「01100011」,而是還原成「01100010」。發送方為了讓接收方能夠校驗數據,通常在數據末尾附有數據校驗,這裡自然會校驗失敗而丟棄,這就是丟包。丟包就是不再處理這串數據流,也不會朝著目的地的方向繼續發送。
還有,信號遭遇噪音干擾、線纜質量粗劣而產生信號差錯,也會造成丟包。丟包的可能性有幾十種之多,如網絡擁堵、TTL=0、報文尺寸大於上限、報文尺寸小於下限、沒有路由指示、防火牆過濾、網速限制等等。
Internet對IP位址統一管理,Internet基礎架構已經為這些IP生成了導航指示,這就是我們經常聽到的全球路由表,這些路由表可以幫助IP報文導航到目的地,同時返程的IP報文也可以藉助這個導航信息返回原始發送方。
介紹了以上的背景知識,聰明的讀者可以邏輯推理,用戶發送的「01100010」數據前一定有目的IP、源IP位址。目的IP的存在是為了到達目的地,源IP的存在是為了IP報文能夠返回,即一來一回。這個就是打遍天下無敵手的IP協議,對應OSI參考模型的網絡層。
Internet是開放互聯的,一台電腦一根網線就可以連上Internet訪問世界上任何電腦了,這聽起來很誘人,壞人也是這麼想的。
在Internet上傳輸的數據,如果沒有加密,比如http,那就是數據在裸奔,只要壞人能捕獲到流量,就能看到裸奔的數據,還能篡改數據,這令人毛骨悚然。
但壞人要看裸奔的數據,首先要保證流量流經壞人控制的設備,這個有點難度。
需要將用戶裸奔的數據加密傳輸,到達終點再解密成明文數據,這樣壞人就沒有辦法偷窺、篡改數據了,即使捕獲到流量也毫無辦法,因為加密/解密 密鑰只有發送方、接收方知道,其它第三方都不知道,也就沒有辦法解密。
常用的加密技術有TLS、SSH、IPsec。
所謂加密、解密就是將明文數據「01100010」,變換成其它的表示形式,如「11011001」,變換後的串串已經和原始的串串已經大相逕庭了,「11011001」即使在Internet上傳輸被壞人捕獲,也無法還原其本來的樣子。
那誰能把串串還原成其本來的面目,接收方!
接收方有解密的密鑰、也知道解密的算法!
接收方可以小菜一碟地還原出「11011001」,這個解密/解密操作仿佛魔術遊戲一般。
讀者一定很好奇,接收方是如何知道解密算法、解密密鑰的?原來在傳輸「11011001」之前,通信雙方使用控制協議協商溝通,並就加密參數達成了共識。為了區別於數據傳輸通道,通常稱這種控制協議為控制通道!
本文轉載自知乎,如有侵權請聯繫刪除!