利用網(wǎng)絡(luò)的應(yīng)用程序有很多,包括web瀏覽器、電子郵件、遠程登錄、文件傳輸、網(wǎng)絡(luò)管理等。能夠讓這些應(yīng)用進行特定通信處理的正式應(yīng)用層協(xié)議。TCP和IP等下層協(xié)議是不依賴于上層應(yīng)用類型、使用性范圍非常廣的協(xié)議。而應(yīng)用協(xié)議則是為了實現(xiàn)某種應(yīng)用而設(shè)計和創(chuàng)造的協(xié)議。我們講的TCP/IP中的應(yīng)用層覆蓋了OSI參考模型中的會話層、表示層、應(yīng)用層3層的所有功能。
遠程登錄
TELNET
TELNET利用TCP的一條連接,通過這一條連接向主機發(fā)送文字命令并在主機上執(zhí)行。本地用戶好像直接與遠端內(nèi)部的Shell相連著似的,直接在本地進行操作。
所謂的行模式就是指沒從鍵盤輸入一個換行,就講該行的數(shù)據(jù)進行1整行發(fā)送給服務(wù)器。透明模式就是客服端每輸入一個字符都要發(fā)送給服務(wù)器。
SSH
SSH是加密的遠程登錄系統(tǒng)。TELNET中登錄時無需輸入密碼就可以發(fā)送,容易造成通信竊聽和非法入侵的危險。使用SSH后可以加密通信內(nèi)容。即時信息被竊聽也無法破解所發(fā)送的密碼、具體命令以及命令返回的結(jié)果是什么。
SSH有如下功能:
可以使用更強的認(rèn)證機制
可以轉(zhuǎn)發(fā)文件
可以使用端口轉(zhuǎn)發(fā)功能
文件傳輸(FTP)
FTP是在兩個相連的計算機之間進行文件傳輸時使用的協(xié)議。它使用兩條TCP連接:一條用來控制,另一條用于數(shù)據(jù)(文件)的傳輸。
電子郵件
提供電子郵件服務(wù)的協(xié)議叫做SMTP。SMTP為了實現(xiàn)高效發(fā)送郵件內(nèi)容,在其傳輸層使用了TCP協(xié)議。
MIME
MIME協(xié)議是為了擴展電儀郵件的文本格式的,之前的電子郵件只能處理文本格式,通過MIME協(xié)議的擴展,現(xiàn)在可以發(fā)送靜態(tài)圖像、動畫、聲音、程序等各種形式的數(shù)據(jù)。MIME規(guī)定了應(yīng)用消息的格式,因此在OSI模型中它相當(dāng)于表示層。
POP
POP協(xié)議是一種用于接收電子郵件的協(xié)議。因為我們平常使用電子郵件的時候,并不能時刻保證我們的郵箱應(yīng)用處理活躍狀態(tài),所以我們需要當(dāng)我們打開郵箱時,主動去獲取我們收到的郵件,這就是POP協(xié)議的工作。
IMAP
和POP協(xié)議類似,IMAP也是接收電子郵件的協(xié)議。只是在POP中郵件由客戶端進行管理,而在IMAP中郵件則由服務(wù)器進行管理。
使用IMAP時,可以不必從服務(wù)器上下載所有郵件也可以閱讀。由于IMAP是在服務(wù)器端處理MIME信息,所以它可以實現(xiàn)當(dāng)某一封郵件含有10個附件時“只下載7個附件”的功能,而POP中必須要把整個郵件下載下來才能閱讀。
HTTP(超文本傳輸協(xié)議)
HTTP一定是我們最熟悉不過的一種協(xié)議了。當(dāng)我們訪問web頁面時,就是使用的HTTP協(xié)議,HTTP協(xié)議的工作機制如下:
HTTP一共經(jīng)歷了3個版本,即HTTP1.0,HTTP1.1,HTTP2.0,它們的區(qū)別如下:
長連接:
HTTP1.0需要使用keep-alive參數(shù)來告知服務(wù)器端要建立一個長連接,而HTTP1.1默認(rèn)支持長連接
節(jié)約帶寬:
HTTP1.1支持只發(fā)送header信息(不帶任何body信息),如果服務(wù)器認(rèn)為客戶端有權(quán)限請求服務(wù)器,則返回100,否則返回401??蛻舳巳绻邮艿?00,才把body發(fā)送到服務(wù)器。當(dāng)服務(wù)器返回401的時候,節(jié)約了帶寬。
HOST域:
HTTP1.0沒有HOST域
多路復(fù)用:
HTTP2.0使用多路復(fù)用的技術(shù),做到同一個連接并發(fā)處理多個請求,并且并發(fā)請求的數(shù)量比HTTP1.1大了好幾個數(shù)量級
數(shù)據(jù)壓縮:
HTTP1.1不支持header數(shù)據(jù)的壓縮,HTTP2.0使用HPACK算法對header的數(shù)據(jù)進行壓縮,這樣數(shù)據(jù)體積小了,在網(wǎng)絡(luò)上傳輸就會更快。
服務(wù)器推送:
在HTTP2.0中服務(wù)器可以對客戶端的一個請求發(fā)送多個響應(yīng),并且可以緩存。
更詳細的比較請看這里。
網(wǎng)絡(luò)管理
SNMP
SNMP是一款基于UDP/IP的協(xié)議。SNMP中管理端叫做管理器(網(wǎng)絡(luò)監(jiān)控終端),被管理端叫做代理(路由器、交換機等)。決定管理器與代理之間的通信中所要交互信息的就是SNMP。
MIB
MIB相當(dāng)于SNMP的表示層,它是一種能夠在網(wǎng)絡(luò)上傳輸?shù)慕Y(jié)構(gòu)。SNMP就是講MIB指寫入代理,也可以從代理中讀取MIB值。這樣就可以收集沖突的次數(shù)和流量統(tǒng)計等信息,可以修改接口的IP地址,還可以進行路由器的啟停、設(shè)備的啟動和關(guān)閉等處理。
大家可以進群學(xué)習(xí)交流,一起分享更多的面試題和精彩的demo QQ:2673218363 QQ群:725611317
