接上篇計算機網絡總結(一);html
5、會話層、表示層和應用層算法
在TCP/IP四層模型中,這三層是直接合併成應用層來理解,統稱爲應用層,傳輸層以及傳輸層如下的各層提供的是完整的通訊服務,應用層則是面向用戶的一層,咱們來複習一下以前的重要傳輸協議UDP和TCP,對應用層來講,視頻、語音和實時信息這些多媒體的信息發佈,注重信息的實時性,哪怕是這一秒的信息丟失,下一秒也馬上會有新數據填充進來,在傳輸層採用的就是UDP協議,而那些注重可靠信息傳送的,好比金融信息,可靠通信等等,這些在傳輸層採用的就是TCP協議,能夠看到,看似簡單的UDP協議,在實際應用中仍是很普遍的。瀏覽器
這裏介紹面向應用層經常使用的幾種協議;安全
DNS(Domain Name System:域名系統協議)是一種分佈式網絡目錄服務,DNS服務的端口號是53,,主要用於域名與 IP 地址的相互轉換,以及控制電子郵件的發送;在傳輸層通訊中,是經過IP地址和端口號來完成進程間通訊的,可是IP地址和端口號記憶起來毫無邏輯、至關複雜,因而,咱們使用域名系統來幫助咱們記憶,好比你Ping一下baidu.com,相對於計算機來講這個域名就會直接轉化爲IP地址,DNS服務就是將點分十進制的IP地址轉化爲方便記憶的域名,實際中是經過域名服務器來完成這個操做的,在域名服務器中記錄着域名和IP地址的映射關係,當你訪問某一域名時,首先會訪問本地的域名服務器,若是沒找到,則向上一級的域名服務器訪問,直到找到對應的IP地址,返回給本機,就能完成這個操做了,如如下的操做,就完成了域名到IP地址的轉換:服務器
DHCP(Dynamic Host Configuration Protocol:動態主機配置協議)是一個局域網協議,是應用UDP協議的應用層協議,其實就是解決咱們的電腦在鏈接不一樣路由器時,IP地址不斷變化的過程,通常咱們電腦使用的都是動態分配IP地址,DHCP服務器的默認監聽端口是67,好比咱們在家連入WIFI時,主機會使用UDP協議廣播DHCP發現報文,DHCP服務器接收這條報文後,就會發出DHCP提供報文,而後主機再向DHCP服務器發出DHCP請求報文,這時DHCP服務器迴應並會提供它的IP地址供主機使用,這時咱們的主機就有IP地址使用了。簡單點說就是:網絡
主機:「兄弟,大家那誰有IP地址啊?」架構
DHCP服務器:「我這有,我這有。」分佈式
主機:「給我一個唄!」加密
DHCP:「給你,給你!」計算機網絡
這裏須要提醒一下,其實你的電腦和路由器使用的是同一個IP地址,經過NAT技術,區別不一樣端口號來實現的鏈接;
看到這裏,你們確定會以爲,DHCP協議和前面介紹的RARP協議很像,確實,其實DHCP協議從某種程度上來講是對RARP協議的升級,如今的RARP協議其實已經被淘汰了,其功能有DHCP協議完成。
HTTP(Hyper Text Transfer Protocol:超文本傳輸協議)是一種可靠的傳輸協議,HTTP協議的端口號是80,它的底層是一般是依靠TCP/IP協議完成的,所謂的超文本就是指包含超連接的文本,採用的CS架構(Client/Server:客戶端/服務端),它用於從Web服務器傳輸超文本到本地瀏覽器的傳送協議。它可使瀏覽器更加高效,使網絡傳輸減小。它不只保證計算機正確快速地傳輸超文本文檔,還肯定傳輸文檔中的哪一部分,以及哪部份內容首先顯示(如文本先於圖形)等。
HTTP協議經常使用的幾種請求方法:
HTTP協議返回的狀態碼及其含義:
HTTPS協議是基於HTTP協議的,HTTP協議是一種明文傳輸,而HTTPS(Secure)是安全的HTTP協議,它的端口號是443,HTTPS的安全基礎是SSL(Secure Sockets Layer:安全套接層);
這裏首先引入兩個加密模型概念,若是通訊雙方使用的相同的祕鑰進行加密和解密,則稱爲「對稱加密」,若是通訊雙方使用的是不一樣的祕鑰加密和解密,則稱爲「非對稱加密」;在「非對稱加密」中使用的兩把祕鑰A,B是擁有必定數學關係的一組祕鑰,經常使用的就是公鑰和私鑰,好比我如今頒發給你們個人公鑰,你們要給我傳輸加密信息,就能夠經過公鑰加密以後傳輸給我,等我接受到信息的以後,再經過我本身擁有的私鑰解密,這樣就完成了加密傳輸過程,在這裏,使用過公鑰加密以後,沒法用公鑰解開,保證了信息的私密性,只能經過私鑰解密;
此外,還有一個重要概念:數字證書,是可信任組織頒發給特定對象的認證,在網絡中,能夠用來識別對方身份,相似網絡身份證同樣,並且數字證書中還包含了頒發方的公鑰,這點很關鍵,在SSL加密中,會使用到。
接下來咱們講解整個SSL過程:
經過以上三步,其實整個SSL加密過程就所有完成了,服務端接收到用它本身公鑰加密的隨機數3以後,使用其私鑰解密,就能夠獲得隨機數3了,這樣,客戶端和服務端就都獲得了隨機數一、2和3,而後經過第一步客戶端發送給服務端的加密算法生成一個對稱祕鑰,就能進行加密傳輸了,爲何說SSL是安全的加密傳輸呢?
咱們來考慮第三方如何也能獲得這個祕鑰來破解加密通訊,首先,你必須攔截到三次所有的信息,假設你完成了這個操做,這樣你能夠獲得信息有加密算法、隨機數1和隨機數2,可是你沒法獲得隨機數3,由於隨機數3的解密私鑰並未傳輸,因此保證了祕鑰的安全;
回顧整個SSL過程,咱們能夠發現,它是一個對稱加密和非對稱加密均使用了的加密過程,在傳遞隨機數3的過程當中,使用了公鑰和私鑰的非對稱加密,而最後都經過加密算法和対應隨機數生成了相同的祕鑰,使用對稱加密進行通訊。
進一步分析,SSL過程是位於應用層和傳輸層之間的,在實際創建鏈接的過程當中,首先是客戶端和服務端創建443端口的TCP鏈接,而後再進行SSL安全參數握手過程,生成相同的祕鑰以後,最後才進行客戶端和服務單的發送數據操做。
總的來講,其實應用層的協議不少也很複雜,這裏就不一一介紹了。
6、總結
其實整個過程,理清脈絡,搞清楚爲何要有這個協議,這個協議是幹什麼的,又是怎麼實現的。這樣細品,其實仍是很清晰的,不過總體來講,上面講到的這些都只是皮毛,還有許多知識的大門沒有打開,告辭,告辭!