了解網(wǎng)絡(luò)安全行業(yè)的都知道,網(wǎng)絡(luò)安全協(xié)議是營(yíng)造網(wǎng)絡(luò)安全環(huán)境的基礎(chǔ),是構(gòu)建安全網(wǎng)絡(luò)的關(guān)鍵技術(shù)。常見的網(wǎng)絡(luò)協(xié)議如HTTP協(xié)議、TCP/IP協(xié)議、FTP協(xié)議等。
如果你想進(jìn)入網(wǎng)安行業(yè),這些協(xié)議都是需要重點(diǎn)要學(xué)習(xí)和了解的,這也將是決定你的安全技術(shù)瓶頸高低的一個(gè)重要因素。
那么今天安仔就跟大家簡(jiǎn)單介紹下,我們?cè)谧鼍W(wǎng)絡(luò)安全工作中,常見到的幾個(gè)協(xié)議;
HTTP協(xié)議
舉個(gè)栗子,老張喜歡看島國(guó)小片,時(shí)常泡在論壇上和網(wǎng)友交流最新資訊,老張是通過(guò)瀏覽器瀏覽網(wǎng)頁(yè)的,而瀏覽器就是借助HTTP協(xié)議與論壇服務(wù)器溝通交流。
FTP協(xié)議
還是老張,老張購(gòu)買了該網(wǎng)站的會(huì)員,可以無(wú)限制下載高清小片,老張是通過(guò)瀏覽器下載影音文件的,瀏覽器是借助FTP協(xié)議與文件下載服務(wù)器溝通交流。
SMTP協(xié)議
近10個(gè)G的高清文件,老張心潮澎湃打開文件,傻了,“孫悟空大戰(zhàn)白骨精”映入眼簾。。。老張怒了,打開電子郵件客戶端寫投訴郵件,怒斥不良網(wǎng)站的欺詐行為!而電子郵件客戶端是借助SMTP協(xié)議與郵件服務(wù)器溝通交流。
通常稱與人類直接打交道的協(xié)議,叫應(yīng)用層(Application)協(xié)議,或者業(yè)務(wù)層協(xié)議。
上文的三個(gè)協(xié)議對(duì)應(yīng)三種業(yè)務(wù):
· 瀏覽網(wǎng)頁(yè) --HTTP
· 下載文件 --FTP
· 發(fā)送郵件 --SMTP
通俗地說(shuō),應(yīng)用層協(xié)議,如同人類的小秘書兼翻譯,用服務(wù)器可以聽得懂的語(yǔ)言與服務(wù)器溝通。
假設(shè)服務(wù)器只會(huì)SMTP語(yǔ)言,老張使用只會(huì)FTP語(yǔ)言的小翻譯來(lái)和服務(wù)器嘮嗑,就會(huì)呈現(xiàn)一幅“雞同鴨講”的滑稽畫面。而老張使用會(huì)SMTP語(yǔ)言的小翻譯就可以順暢地溝通。
但應(yīng)用層協(xié)議,不過(guò)是人類的小翻譯,只擅長(zhǎng)翻譯工作,其它的啥也不會(huì)!
HTTP、FTP、SMTP三個(gè)小翻譯,能把老張的需求翻譯成由“0”、“1”組成的小串串,簡(jiǎn)稱應(yīng)用數(shù)據(jù)塊。
那么,問題來(lái)了,
1. 應(yīng)用數(shù)據(jù)塊如何在浩瀚的互聯(lián)網(wǎng)準(zhǔn)確無(wú)誤找到目的地?
2. 服務(wù)器回應(yīng)數(shù)據(jù)塊如何在浩瀚的互聯(lián)網(wǎng)準(zhǔn)確無(wú)誤地返回?
3. 應(yīng)用數(shù)據(jù)塊在到達(dá)目的地之前丟失了,如何處理?
4. 服務(wù)器回應(yīng)數(shù)據(jù)塊旅途中丟失了,如何處理?
這些問題在TCP/IP協(xié)議面前,都不再是問題!
TCP/IP協(xié)議就是為了解決這些問題而誕生的!!!
IP協(xié)議
在應(yīng)用數(shù)據(jù)塊的外層寫上目的地IP地址,使得應(yīng)用數(shù)據(jù)塊可以找到目的地,這樣就解決問題1。
還會(huì)在應(yīng)用數(shù)據(jù)塊的外層寫上源IP地址,使得服務(wù)器回應(yīng)數(shù)據(jù)塊返回源主機(jī),這樣就解決問題2。
抬杠的同學(xué)會(huì)說(shuō),應(yīng)用數(shù)據(jù)塊外層寫上目的IP地址,就一定可以到達(dá)目的地?不一定吧!
把老張的網(wǎng)線拔了、無(wú)線關(guān)了、移動(dòng)網(wǎng)絡(luò)4G也關(guān)了,把老張的所有訪問互聯(lián)網(wǎng)的通道全關(guān)閉了,應(yīng)用數(shù)據(jù)塊還能到達(dá)目的地哇?
那肯定不能到達(dá),神仙來(lái)了也愛莫能助!
所以在這里這種強(qiáng)調(diào)兩點(diǎn):
· 底層物理網(wǎng)絡(luò)的連通性是IP能否正常工作的前提
· IP路由表在全球路由器里完成了同步
即使有了這兩個(gè)前提條件,也不能100%保證IP報(bào)文能夠到達(dá)目的地!
信號(hào)傳輸過(guò)程失真造成丟包、網(wǎng)絡(luò)發(fā)生擁堵而丟包。。。
我們還需要一個(gè)協(xié)議,這個(gè)協(xié)議需要有以下特質(zhì):
· 當(dāng)丟包發(fā)生時(shí),能夠自動(dòng)修復(fù)丟包,而無(wú)需人的手動(dòng)干預(yù)
· 能夠智能感知網(wǎng)絡(luò)的擁堵情況,網(wǎng)絡(luò)空閑時(shí),盡最大速率發(fā)包;網(wǎng)絡(luò)擁堵時(shí),降低速率發(fā)包,不給互聯(lián)網(wǎng)添堵
滿足這個(gè)特質(zhì)的協(xié)議,它的名字叫TCP協(xié)議。
TCP協(xié)議
TCP協(xié)議也不是什么大神,不過(guò)是一個(gè)任勞任怨的流量調(diào)度員。說(shuō)到底它就有一個(gè)本事:
確認(rèn)機(jī)制!
憑著這個(gè)看家本領(lǐng),TCP可以保證應(yīng)用數(shù)據(jù)的可靠傳輸。
也正是這個(gè)確認(rèn)機(jī)制,讓千千萬(wàn)萬(wàn)個(gè)學(xué)習(xí)TCP協(xié)議的同學(xué),苦苦掙扎痛不欲生!
但愿有同學(xué)讀完這篇文章,快速脫離苦海。。。
TCP確認(rèn)機(jī)制
通俗地說(shuō),TCP會(huì)對(duì)發(fā)出的數(shù)據(jù)包(以下簡(jiǎn)稱包裹)進(jìn)行編號(hào),如同快遞的快遞單號(hào)一樣。對(duì)方TCP收到包裹,會(huì)回復(fù)一個(gè)確認(rèn)消息,確認(rèn)收到了該編號(hào)的包裹了。
這非常好理解,生活里這樣的故事每天都在發(fā)生。男生給異地的女友快遞一個(gè)包裹,記下快遞單號(hào)123456,過(guò)兩天女友回復(fù)一個(gè)消息,快遞單號(hào)123456已收到!
有同學(xué)會(huì)說(shuō),確認(rèn)機(jī)制可以理解,TCP發(fā)數(shù)據(jù)就發(fā)數(shù)據(jù),但為何TCP發(fā)數(shù)據(jù)之前需要連接?
在互聯(lián)網(wǎng)上可以找到各種各樣的解釋,而我的觀點(diǎn)是:
雙方通過(guò)TCP連接,分享彼此的應(yīng)用數(shù)據(jù)塊第一個(gè)字節(jié)的原點(diǎn)序號(hào)。
如果TCP沒有提前分享,接收方不知道接收的數(shù)據(jù)是否是第一個(gè)包。
如果不是第一個(gè)包,接收方的TCP卻將該數(shù)據(jù)包提交給應(yīng)用程序,應(yīng)用程序壓根無(wú)法理解。
為何無(wú)法理解?
應(yīng)用程序以為是第一個(gè)包,其實(shí)并不是,應(yīng)用程序的小翻譯(HTTP/FTP/SMTP)瞬間懵逼,風(fēng)雨中瑟瑟發(fā)抖。。。
分享了原點(diǎn)序列號(hào),即使第二個(gè)、第三個(gè)數(shù)據(jù)包先到達(dá)目的地,而第一個(gè)數(shù)據(jù)包姍姍來(lái)遲的情況,接收方的TCP可以耐心等待第一個(gè)數(shù)據(jù)包的到來(lái),然后按序?qū)?shù)據(jù)包提交給應(yīng)用程序。這樣應(yīng)用程序的小翻譯就會(huì)秒懂。。。
有了TCP協(xié)議的幫助,即使老張的網(wǎng)線拔掉了一段時(shí)間,稍后再插入,恢復(fù)了網(wǎng)絡(luò)連通性,老張中斷的文件下載任務(wù)可以繼續(xù)工作,而無(wú)需老張重新下載。
UDP協(xié)議
UDP有點(diǎn)像街頭的郵筒,應(yīng)用程序的數(shù)據(jù)包扔進(jìn)郵筒就好了,就耐心地等待數(shù)據(jù)包到達(dá)目的地。但扔進(jìn)郵筒之前,需要寫好以下信息:
· 收件人的地址(目的IP)
· 收件人的姓名(目的端口號(hào))
· 寄件人地址(源IP)
· 寄件人姓名(源端口號(hào))
IP司機(jī)會(huì)瞬間地將郵筒里的信件,運(yùn)往世界各個(gè)角落。
比較奢侈的是,一個(gè)IP司機(jī)運(yùn)一件信件。
文章開頭的老張,其實(shí)一直在使用UDP協(xié)議,只是UDP協(xié)議不和老張直接打交道,老張覺察不到而已。
但老張使用的瀏覽器、郵件客戶端卻一直和UDP協(xié)議直接打交道。老張要下載文件,首先要域名解析獲得服務(wù)器的IP地址,而完成域名解析任務(wù)的是DNS協(xié)議。
DNS協(xié)議
DNS協(xié)議將自己的域名解析請(qǐng)求報(bào)文扔到UDP郵筒里,被IP司機(jī)運(yùn)輸?shù)接蛎?wù)器家中,服務(wù)器返回域名解析應(yīng)答,同樣通過(guò)UDP郵筒郵寄服務(wù)。
那么你現(xiàn)在是不是了解各種協(xié)議的作用和區(qū)別了?如果你還有疑問,歡迎私信回復(fù)【協(xié)議】添加客服小姐姐,拉你加入安界網(wǎng)安全大咖學(xué)習(xí)交流群,一起學(xué)習(xí),一起進(jìn)步哦!
小白入行網(wǎng)絡(luò)安全、混跡安全行業(yè)找大咖,以及更多成長(zhǎng)干貨資料,歡迎關(guān)注@安界人才培養(yǎng)計(jì)劃
我是安仔,一名剛?cè)肼毦W(wǎng)絡(luò)安全圈的網(wǎng)安萌新,歡迎關(guān)注我,跟我一起成長(zhǎng)。
本文轉(zhuǎn)載來(lái)源:
https://zhuanlan.zhihu.com/p/58117320,如需轉(zhuǎn)載,請(qǐng)聯(lián)系原作者授權(quán)!






