網(wǎng)絡(luò)協(xié)議

OSI七層模型

開放系統(tǒng)互連參考模型 (Open System Interconnect )是國(guó)際標(biāo)準(zhǔn)化組織(ISO)和國(guó)際電報(bào)電話咨詢委員會(huì)(CCITT)聯(lián)合制定的開放系統(tǒng)互連參考模型,為開放式互連信息系統(tǒng)提供了一種功能結(jié)構(gòu)的框架获诈。OSI采用了分層的結(jié)構(gòu)化技術(shù)罐盔,共分七層,物理層、數(shù)據(jù)鏈路層谭梗、網(wǎng)絡(luò)層坚芜、傳輸層、會(huì)話層谷朝、表示層洲押、應(yīng)用層。

TCP/IP模型

OSI模型比較復(fù)雜且學(xué)術(shù)化圆凰,所以我們實(shí)際使用的TCP/IP模型杈帐,共分4層,鏈路層专钉、網(wǎng)絡(luò)層娘荡、傳輸層干旁、應(yīng)用層。

TCP

TCP(Transmission Control Protocol)是面向連接的通信協(xié)議炮沐,通過(guò)三次握手建立連接争群,然后才能開始數(shù)據(jù)的讀寫,通訊完成時(shí)要拆除連接大年,由于TCP是面向連接的所以只能用于端到端的通訊换薄。
TCP提供的是一種可靠的數(shù)據(jù)流服務(wù),數(shù)據(jù)有可能被拆分后發(fā)送翔试,那么采用超時(shí)重傳機(jī)制是和應(yīng)答確認(rèn)機(jī)制是組成TCP可靠傳輸?shù)年P(guān)鍵設(shè)計(jì)轻要。超時(shí)重傳機(jī)制中最重要的是RTT(round-trip time 需要采樣統(tǒng)計(jì)一個(gè)數(shù)據(jù)包從發(fā)送端發(fā)送出去到接收到這個(gè)包的回復(fù)這段時(shí)長(zhǎng)來(lái)動(dòng)態(tài)設(shè)置重傳超時(shí)值)再根據(jù)這個(gè)RTT通過(guò)各種算法和公式平滑RTT值后,最終確定重傳超時(shí)值

三次握手

三次握手

為什么TCP握手需要三次

三次握手是保證數(shù)據(jù)可靠傳輸又能提高傳輸效率的最小次數(shù)垦缅。
為什么三次冲泥?
為了實(shí)現(xiàn)可靠數(shù)據(jù)傳輸, TCP協(xié)議的通信雙方壁涎,都必須維護(hù)一個(gè)序列號(hào)凡恍, 以標(biāo)識(shí)發(fā)送出去的數(shù)據(jù)包中,哪些是已經(jīng)被對(duì)方收到的怔球。

舉例說(shuō)明:發(fā)送方在發(fā)送數(shù)據(jù)包(假設(shè)大小為 10 byte)時(shí)嚼酝, 同時(shí)送上一個(gè)序號(hào)( 假設(shè)為 500),那么接收方收到這個(gè)數(shù)據(jù)包以后竟坛, 就可以回復(fù)一個(gè)確認(rèn)號(hào)(510 = 500 + 10) 告訴發(fā)送方 “我已經(jīng)收到了你的數(shù)據(jù)包闽巩, 你可以發(fā)送下一個(gè)數(shù)據(jù)包, 序號(hào)從 511 開始”

三次握手的過(guò)程即是通信雙方相互告知序列號(hào)起始值担汤,并確認(rèn)對(duì)方已經(jīng)收到了序列號(hào)起始值的必經(jīng)步驟涎跨。

如果只是兩次握手, 至多只有連接發(fā)起方的起始序列號(hào)能被確認(rèn)崭歧, 服務(wù)器選擇的序列號(hào)則得不到確認(rèn)隅很。
四次握手,三次就已經(jīng)實(shí)現(xiàn)驾荣,沒(méi)有必要四次外构。

TCP的三次握手的漏洞-SYN洪泛攻擊

三次握手中有一個(gè)第二次握手,服務(wù)端向客戶端應(yīng)答請(qǐng)求播掷,應(yīng)答請(qǐng)求是需要客戶端IP的审编,攻擊者就偽造這個(gè)IP,往服務(wù)器端狂發(fā)送第一次握手的內(nèi)容歧匈,當(dāng)然第一次握手中的客戶端IP地址是偽造的垒酬,從而服務(wù)端忙于進(jìn)行第二次握手但是第二次握手當(dāng)然沒(méi)有結(jié)果,所以導(dǎo)致服務(wù)器端被拖累,死機(jī)勘究。
1.無(wú)效連接監(jiān)視釋放(不推薦)
2.延緩TCB分配方法
一般的做完第一次握手之后矮湘,服務(wù)器就需要為該請(qǐng)求分配一個(gè)TCB(連接控制資源),通常這個(gè)資源需要200多個(gè)字節(jié)口糕。延遲TCB的分配缅阳,當(dāng)正常連接建立起來(lái)后再分配TCB則可以有效地減輕服務(wù)器資源的消耗。
3.使用防火墻
防火墻在確認(rèn)了連接的有效性后景描,才向內(nèi)部的服務(wù)器(Listener)發(fā)起SYN請(qǐng)求

四次揮手

四次揮手

進(jìn)入了TIME-WAIT狀態(tài)十办。注意此時(shí)TCP連接還沒(méi)有釋放,必須經(jīng)過(guò)2?MSL(最長(zhǎng)報(bào)文段壽命/最長(zhǎng)分節(jié)生命期 max segement lifetime超棺,MSL是任何IP數(shù)據(jù)報(bào)能夠在因特網(wǎng)中存活的最長(zhǎng)時(shí)間向族,任何TCP實(shí)現(xiàn)都必須為MSL選擇一個(gè)值。RFC 1122[Braden 1989]的建議值是2分鐘棠绘,不過(guò)源自Berkelcy的實(shí)現(xiàn)傳統(tǒng)上改用30秒這個(gè)值件相。這意味著TIME_WAIT狀態(tài)的持續(xù)時(shí)間在1分鐘到4分鐘之間)的時(shí)間后,當(dāng)主動(dòng)關(guān)閉端撤銷相應(yīng)的TCB(傳輸控制塊)后氧苍,才進(jìn)入CLOSED狀態(tài)夜矗。

為什么TCP的揮手需要四次

TCP是全雙工模式, 當(dāng)主機(jī)1(客戶端)發(fā)出FIN報(bào)文段時(shí)只是表示主機(jī)1已經(jīng)沒(méi)有數(shù)據(jù)要發(fā)送了,這個(gè)時(shí)候主機(jī)1還是可以接受來(lái)自主機(jī)2(服務(wù)端)的數(shù)據(jù)候引,當(dāng)主機(jī)2也發(fā)送了FIN報(bào)文段時(shí)這個(gè)時(shí)候就表示主機(jī)2也沒(méi)有數(shù)據(jù)要發(fā)送了侯养。所以對(duì)全雙工模式來(lái)說(shuō)敦跌,為了徹底關(guān)閉澄干,就需要通信兩端的4次交互。

為什么需要TIME-WAIT狀態(tài)

1柠傍、可靠的終止TCP連接麸俘。(服務(wù)端可能沒(méi)有收到ACK信息,會(huì)重新發(fā)送FIN)
2惧笛、保證讓遲來(lái)的TCP報(bào)文有足夠的時(shí)間被識(shí)別并丟棄从媚。

HTTP

一次完整http請(qǐng)求的過(guò)程

1、首先進(jìn)行DNS域名解析(本地瀏覽器緩存患整、操作系統(tǒng)緩存或者DNS服務(wù)器)拜效,首先會(huì)搜索瀏覽器自身的DNS緩存(緩存時(shí)間比較短,大概只有1分鐘各谚,且只能容納1000條緩存)
b)如果瀏覽器自身的緩存里面沒(méi)有找到紧憾,那么瀏覽器會(huì)搜索系統(tǒng)自身的DNS緩存
c)如果還沒(méi)有找到,那么嘗試從 hosts文件里面去找
d)在前面三個(gè)過(guò)程都沒(méi)獲取到的情況下昌渤,就去域名服務(wù)器去查找赴穗,
2、三次握手建立 TCP 連接
在HTTP工作開始之前,客戶端首先要通過(guò)網(wǎng)絡(luò)與服務(wù)器建立連接般眉,HTTP連接是通過(guò) TCP 來(lái)完成的了赵。HTTP 是比 TCP 更高層次的應(yīng)用層協(xié)議,根據(jù)規(guī)則甸赃,只有低層協(xié)議建立之后柿汛,才能進(jìn)行高層協(xié)議的連接,因此埠对,首先要建立 TCP 連接苛茂,一般 TCP 連接的端口號(hào)是80;
3鸠窗、客戶端發(fā)起HTTP請(qǐng)求
4妓羊、服務(wù)器響應(yīng)HTTP請(qǐng)求
5、客戶端解析html代碼稍计,并請(qǐng)求html代碼中的資源
瀏覽器拿到html文件后躁绸,就開始解析其中的html代碼,遇到j(luò)s/css/image等靜態(tài)資源時(shí)臣嚣,就向服務(wù)器端去請(qǐng)求下載
6净刮、客戶端渲染展示內(nèi)容
7、關(guān)閉 TCP 連接

DNS劫持和HTTP劫持

DNS是Domain Name System的簡(jiǎn)寫硅则,即域名系統(tǒng)淹父,它作為可以將域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),能夠使人更方便的訪問(wèn)互聯(lián)網(wǎng)
DNS劫持就是通過(guò)劫持了DNS服務(wù)器怎虫,通過(guò)某些手段取得某域名的解析記錄控制權(quán)暑认,進(jìn)而修改此域名的解析結(jié)果,導(dǎo)致對(duì)該域名的訪問(wèn)由原IP地址轉(zhuǎn)入到修改后的指定IP大审,其結(jié)果就是對(duì)特定的網(wǎng)址不能訪問(wèn)或訪問(wèn)的是假網(wǎng)址蘸际,從而實(shí)現(xiàn)竊取資料或者破壞原有正常服務(wù)的目的。DNS劫持通過(guò)篡改DNS服務(wù)器上的數(shù)據(jù)返回給用戶一個(gè)錯(cuò)誤的查詢結(jié)果來(lái)實(shí)現(xiàn)的徒扶。
1.錯(cuò)誤域名解析到糾錯(cuò)導(dǎo)航頁(yè)面粮彤,導(dǎo)航頁(yè)面存在廣告。判斷方法:訪問(wèn)的域名是錯(cuò)誤的姜骡,而且跳轉(zhuǎn)的導(dǎo)航頁(yè)面也是官方的导坟,如電信的114,聯(lián)通移網(wǎng)域名糾錯(cuò)導(dǎo)航頁(yè)面圈澈。
2.錯(cuò)誤域名解析到非正常頁(yè)面惫周,對(duì)錯(cuò)誤的域名解析到導(dǎo)航頁(yè)的基礎(chǔ)上,有一定幾率解析到一些惡意站點(diǎn)士败,這些惡意站點(diǎn)通過(guò)判斷你訪問(wèn)的目標(biāo)HOST闯两、URI褥伴、 referrer等來(lái)確定是否跳轉(zhuǎn)廣告頁(yè)面,這種情況就有可能導(dǎo)致跳轉(zhuǎn)廣告頁(yè)面(域名輸錯(cuò))或者訪問(wèn)頁(yè)面被加廣告(頁(yè)面加載時(shí)有些元素的域名錯(cuò)誤而觸發(fā))這種劫持會(huì)對(duì)用戶訪問(wèn)的目標(biāo)HOST漾狼、URI重慢、 referrer等會(huì)進(jìn)行判定來(lái)確定是否解析惡意站點(diǎn)地址,不易被發(fā)現(xiàn)逊躁。
3.直接將特點(diǎn)站點(diǎn)解析到惡意或者廣告頁(yè)面似踱,這種情況比較惡劣,而且出現(xiàn)這種情況未必就是運(yùn)營(yíng)商所為稽煤,家里路由器被黑核芽,或者系統(tǒng)被入侵,甚至運(yùn)營(yíng)商的某些節(jié)點(diǎn)被第三方惡意控制都有可能酵熙。
HTTP劫持:在運(yùn)營(yíng)商的路由器節(jié)點(diǎn)上轧简,設(shè)置協(xié)議檢測(cè),一旦發(fā)現(xiàn)是HTTP請(qǐng)求匾二,而且是html類型請(qǐng)求哮独,則攔截處理。
1種是類似DNS劫持返回302讓用戶瀏覽器跳轉(zhuǎn)到另外的地址察藐,還有1種是在服務(wù)器返回的HTML數(shù)據(jù)中插入js或dom節(jié)點(diǎn)(廣告)皮璧。比如訪問(wèn)GitHub,出現(xiàn)了“我是渣渣輝分飞,是兄弟就來(lái)砍我”之類的小彈窗悴务。
有兩種HTTP劫持防劫持思路
1.采用https協(xié)議加密請(qǐng)求。但是https多了ssl握手的過(guò)程譬猫,會(huì)耗費(fèi)一定的時(shí)間和性能讯檐。
2.隱藏http請(qǐng)求的特征,例如使用對(duì)稱加密算法加密整個(gè)url删窒。市面上的各大手機(jī)應(yīng)用商店都采用了這種做法裂垦。相較于https顺囊,url加密的兼容性更好肌索,并且對(duì)CDN節(jié)點(diǎn)帶來(lái)的解密額外負(fù)擔(dān)可以忽略,但是url加密需要CDN節(jié)點(diǎn)的密切配合特碳。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末诚亚,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子午乓,更是在濱河造成了極大的恐慌站宗,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件益愈,死亡現(xiàn)場(chǎng)離奇詭異梢灭,居然都是意外死亡夷家,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門敏释,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)库快,“玉大人,你說(shuō)我怎么就攤上這事钥顽∫迤粒” “怎么了?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵蜂大,是天一觀的道長(zhǎng)闽铐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)奶浦,這世上最難降的妖魔是什么兄墅? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮澳叉,結(jié)果婚禮上察迟,老公的妹妹穿的比我還像新娘。我一直安慰自己耳高,他們只是感情好扎瓶,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泌枪,像睡著了一般概荷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上碌燕,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天误证,我揣著相機(jī)與錄音,去河邊找鬼修壕。 笑死愈捅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的慈鸠。 我是一名探鬼主播蓝谨,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼青团!你這毒婦竟也來(lái)了譬巫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤督笆,失蹤者是張志新(化名)和其女友劉穎芦昔,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體娃肿,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡咕缎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年珠十,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凭豪。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宵睦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出墅诡,到底是詐尸還是另有隱情壳嚎,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布末早,位于F島的核電站烟馅,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏然磷。R本人自食惡果不足惜郑趁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姿搜。 院中可真熱鬧寡润,春花似錦、人聲如沸舅柜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)致份。三九已至变抽,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氮块,已是汗流浹背绍载。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留滔蝉,地道東北人击儡。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蝠引,于是被迫代替她去往敵國(guó)和親阳谍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容