淺談網(wǎng)絡(luò)相關(guān)協(xié)議

曾經(jīng)被TCP/IP概念困苦已久确镊,決心做一個(gè)總結(jié)。

? ? ? ?TCP/IP參考模型是計(jì)算機(jī)網(wǎng)絡(luò)的祖父ARPANET和其后繼的因特網(wǎng)使用的參考模型范删。ARPANET是由美國(guó)國(guó)防部DoD(U.S.Department of Defense)贊助的研究網(wǎng)絡(luò)蕾域。逐漸地它通過(guò)租用的電話線連結(jié)了數(shù)百所大學(xué)和政府部門(mén)。當(dāng)無(wú)線網(wǎng)絡(luò)和衛(wèi)星出現(xiàn)以后到旦,現(xiàn)有的協(xié)議在和它們相連的時(shí)候出現(xiàn)了問(wèn)題旨巷,所以需要一種新的參考體系結(jié)構(gòu)。這個(gè)體系結(jié)構(gòu)在它的兩個(gè)主要協(xié)議出現(xiàn)以后添忘,被稱(chēng)為T(mén)CP/IP參考模型(TCP/IP reference model)采呐。--引用百度百科上的一段解釋。

TCP/IP 模型是由以下幾個(gè)部分組成:

1.應(yīng)用層搁骑,(協(xié)議http)?

2.傳輸層(TCP)

3.?網(wǎng)絡(luò)層(ip)

4.鏈路層(網(wǎng)線等)

Q :在這里提一個(gè)問(wèn)題斧吐,我們平常說(shuō)的3g,4g,5g對(duì)應(yīng)的是哪一層呢?

?A : 3g 4g 5g ---對(duì)應(yīng)---->鏈路層

網(wǎng)絡(luò)中傳輸?shù)男g(shù)語(yǔ)名稱(chēng):

包是全能性術(shù)語(yǔ)

1.幀用于表示數(shù)據(jù)鏈路層中包的單位

2.片是ip中數(shù)據(jù)的單位

3.段則表示Tcp數(shù)據(jù)流中的信息

4.消息是指應(yīng)用協(xié)議中數(shù)據(jù)的單位

網(wǎng)絡(luò)傳輸數(shù)據(jù)流程:

(流程)

用戶(hù)A發(fā)送了一段信息比如 i am Android :

交給Tcp層(傳輸層)打包 仲器,附加Tcp包首部煤率。?i am Android (Tcp首部)

交給ip層(網(wǎng)絡(luò)層)打包。附加ip包首部娄周。?i am Android (Tcp首部)(ip首部)

交給數(shù)據(jù)鏈路層涕侈,附加以太網(wǎng)包首部。i am Android (Tcp首部)(ip首部)(以太網(wǎng)首部)

隨后交給物理層進(jìn)行相關(guān)的傳輸:

用戶(hù)b收到消息:

一層一層解開(kāi):

數(shù)據(jù)鏈路層將以太網(wǎng)首部打開(kāi) :?i am Android (Tcp首部)(ip首部)

ip層(網(wǎng)絡(luò)層)??i am Android (Tcp首部)

Tcp層(傳輸層)???i am Android?

上一層接收煤辨。?i am Android裳涛。

這樣設(shè)計(jì)的目的是:遵循單一職責(zé)原則

TCP和UDP的區(qū)別:

? TCP是面向連接的可靠的協(xié)議,在收發(fā)數(shù)據(jù)前必須和對(duì)方建立可靠的連接众辨,建立連接的3次握手端三,斷開(kāi)連接的4次揮手。而UDP是面向無(wú)連接的通訊協(xié)議鹃彻,數(shù)據(jù)傳輸前郊闯,源端和終端不建立連接,發(fā)送端盡可能快的將數(shù)據(jù)扔到網(wǎng)絡(luò)上蛛株,接收端從消息隊(duì)列中讀取消息段团赁。

注:基于udp.在應(yīng)用層可以自己實(shí)現(xiàn)了連接和重傳 ---》udt.(http3)

IP地址的作用是主要是尋址。(ip地址(網(wǎng)絡(luò)層) :為網(wǎng)絡(luò)或主機(jī)配一個(gè)邏輯地址谨履,為mac地址做區(qū)分欢摄。隨意更改。mac地址(數(shù)據(jù)鏈路成)不能更改)

例如:

公司有兩棟大樓?

A大樓:有一個(gè)通訊子網(wǎng)

B大樓笋粟,有一個(gè)通訊子網(wǎng)

有兩個(gè)路由器將A(通訊子網(wǎng))和B(通訊子網(wǎng))連接起來(lái) 局域網(wǎng)

A里面有它自己的多臺(tái)計(jì)算機(jī)怀挠,組成的子網(wǎng)析蝴。 ?B也是它自己的多臺(tái)計(jì)算機(jī)組成的子網(wǎng)

現(xiàn)在A樓里面有臺(tái)a機(jī)器(ip地址:192.168.1.2)

B樓里面有臺(tái)b機(jī)器(ip地址:192.167.1.2)

a發(fā)送數(shù)據(jù)給b機(jī)器:

數(shù)據(jù)包到達(dá)路由器,當(dāng)前的數(shù)據(jù)包不是我的子網(wǎng)里面的绿淋,于是去找哪個(gè)子網(wǎng)是192.167.-----》發(fā)給相應(yīng)的路由器

它是怎么知道要發(fā)給的是192.167.1.2呢闷畸?

在我們的子網(wǎng)中,每一個(gè)計(jì)算機(jī)都要在路由器保存吞滞,告訴別的機(jī)器里面我的ip地址和mac地址是多少佑菩。然后在發(fā)給相應(yīng)的計(jì)算機(jī)。路由器給每個(gè)計(jì)算機(jī)發(fā)送一份冯吓,但是網(wǎng)卡在收到數(shù)據(jù)包倘待,判斷數(shù)據(jù)包的mac地址是否和本機(jī)的mac地址一樣,不一樣直接丟棄组贺。

所以在這里引出了一個(gè)網(wǎng)絡(luò)嗅探的網(wǎng)絡(luò)攻擊:

在同一個(gè)子網(wǎng)上凸舵。不讓網(wǎng)卡收到數(shù)據(jù),將獲取的數(shù)據(jù)提前全部抓住失尖。

端口號(hào):

用來(lái)識(shí)別同一臺(tái)計(jì)算機(jī)中進(jìn)行通信的不同應(yīng)用程序啊奄,因此,它被稱(chēng)為程序地址掀潮。

端口號(hào)的有關(guān)范圍:

標(biāo)準(zhǔn)既定端口號(hào):0~1023 ?1024~49151

服務(wù)端的程序制定端口號(hào)菇夸。

客戶(hù)端。操作系統(tǒng)會(huì)為它分配一個(gè) 49152——65535仪吧。

所以我們可以通過(guò)一個(gè)源ip地址庄新,目標(biāo)ip地址 ,協(xié)議號(hào)薯鼠,源端口號(hào)以及目標(biāo)端口號(hào)這五個(gè)元素識(shí)別一個(gè)通信择诈。

在這里我們著重講一下TCP:

Tcp:(Transmission Control Protocol)

特性:

面向連接,

可靠性出皇,

RTT(往返時(shí)延羞芍,Round-Trip Time) 和RTO(重傳超時(shí),Retransmission TimeOut)

數(shù)據(jù)排序

流量控制

全雙工

對(duì)上面特性進(jìn)行的解釋?zhuān)?/h3>

? ? ?假設(shè)應(yīng)用層有一串報(bào)文要通過(guò)網(wǎng)絡(luò)發(fā)送郊艘,進(jìn)行流轉(zhuǎn)(傳輸層荷科,網(wǎng)絡(luò)層等),假如用戶(hù)發(fā)送一個(gè)很大的數(shù)據(jù)呢纱注?如何保證用戶(hù)發(fā)送的數(shù)據(jù)不被丟失呢畏浆?在這里就要對(duì)這個(gè)很大的數(shù)據(jù)進(jìn)行拆分了,ip層會(huì)進(jìn)行拆分成片狞贱,按照一般來(lái)說(shuō)刻获,以太網(wǎng)能接收的是1046字節(jié),按照1046字節(jié)進(jìn)行分片,再往對(duì)端進(jìn)行傳輸斥滤,這種情況下問(wèn)題就出現(xiàn)了将鸵,我本來(lái)是一個(gè)很大的數(shù)據(jù),現(xiàn)在發(fā)送出去佑颇,被切成了許多片顶掉,如果中途丟了幾個(gè)片呢,我如何能保證數(shù)據(jù)到對(duì)端之后的完整呢挑胸。然后TCP里面提出了重傳超時(shí)和應(yīng)答確認(rèn)機(jī)制來(lái)確保數(shù)據(jù)的完整性痒筒。假如對(duì)端一直沒(méi)有收到對(duì)方的消息,它不會(huì)一直等下去茬贵,而是在一個(gè)時(shí)間后簿透,進(jìn)行重傳一次,那么這個(gè)時(shí)長(zhǎng)如何確定呢解藻,操作系統(tǒng)在設(shè)計(jì)的時(shí)候會(huì)引入一個(gè)RTT機(jī)制老充,也就是往返時(shí)延機(jī)制。一個(gè)數(shù)據(jù)包從我這一端發(fā)送到另外一端螟左,然后收到對(duì)方的應(yīng)答啡浊,以這個(gè)時(shí)長(zhǎng)為往返時(shí)延。操作系統(tǒng)會(huì)對(duì)最新的一次往返時(shí)延胶背,都會(huì)對(duì)自己內(nèi)部的RTO進(jìn)行重新計(jì)算巷嚣。這個(gè)重傳超時(shí)不是固定的。

數(shù)據(jù)排序:拆分成一片片后钳吟,對(duì)方在組成一個(gè)完整的數(shù)據(jù)包之前要清楚順序廷粒,所以網(wǎng)絡(luò)協(xié)議上會(huì)在這一端進(jìn)行排序。以方便在對(duì)端進(jìn)行完整的組裝红且。

流量控制(滑動(dòng)窗口):我的通訊對(duì)端處理數(shù)據(jù)能力不一樣坝茎,發(fā)送端只管發(fā)送,對(duì)端可能接收后還要進(jìn)行一下處理,所以可能接收的數(shù)據(jù)能力沒(méi)有你發(fā)送方發(fā)的快直焙,所以還有一種機(jī)制景东,應(yīng)答報(bào)文或者發(fā)送報(bào)文會(huì)告訴對(duì)端,目前我一次性能接收多少數(shù)據(jù)奔誓。

全雙工:在通訊兩個(gè)對(duì)端斤吐,接收方和服務(wù)端可以同時(shí)向?qū)Χ税l(fā)送也可以同時(shí)接收對(duì)端的數(shù)據(jù)。

TCP連接中的三次握手

客戶(hù)端(connect) :

1.先向服務(wù)器發(fā)送SYN的報(bào)文(SYN = 1 seq = 23412)厨喂。 客戶(hù)端狀態(tài):SYN_SENT

2.服務(wù)端收到報(bào)文后和措,向客戶(hù)端作出相應(yīng)的應(yīng)答(SYN = 1. ACK = 1,ack?= 23413 seq = 6478)??服務(wù)端狀態(tài):SYN_RCVD

3.客戶(hù)端收到報(bào)文后,進(jìn)行檢查:ACK是否為1?ack 是否是23413 ?蜕煌,客戶(hù)端就確定服務(wù)器收到了我的SYN = 1 seq = 23412 報(bào)文派阱。向服務(wù)器作出應(yīng)答

4.客戶(hù)端應(yīng)答發(fā)送給服務(wù)器ACK = 1,ack =??6479,?客戶(hù)端狀態(tài):ESTABLISHED

5.服務(wù)端收到客戶(hù)端的報(bào)文后斜纪。服務(wù)端狀態(tài):ESTABLISHED

為什么TCP需要三次握手贫母?

Tcp是面向連接的文兑,所以需要雙方都確認(rèn)連接的建立(維護(hù)序列號(hào))。

SYN洪泛攻擊:通過(guò)網(wǎng)絡(luò)所在的端口發(fā)送大量偽造原地址的攻擊報(bào)文腺劣,造成服務(wù)器端上的半開(kāi)連接隊(duì)列被占滿(mǎn)绿贞,從而阻止其他用戶(hù)進(jìn)行訪問(wèn)。

原理:攻擊者客戶(hù)端利用偽造的ip地址向服務(wù)器發(fā)出請(qǐng)求(第一次握手橘原,而服務(wù)器的響應(yīng)的報(bào)文將永遠(yuǎn)發(fā)送不到真實(shí)的客戶(hù)端籍铁,服務(wù)端在等待客戶(hù)端的第三次握手(永遠(yuǎn)都不會(huì)有),服務(wù)端在等待這種半開(kāi)的連接過(guò)程中消耗了資源趾断,如果有成千上萬(wàn)的這種連接拒名,主機(jī)資源將被耗盡,從而達(dá)到攻擊的目的芋酌,

解決方案:

1.無(wú)效連接監(jiān)控釋放增显。

2.延緩TCB分配方法

3.防火墻

TCP連接中的四次揮手

第一次客戶(hù)端發(fā)送close主動(dòng)關(guān)閉請(qǐng)求,F(xiàn)IN = 1 seq = 98745----->客戶(hù)端:Fin_wait_1

客戶(hù)端進(jìn)行應(yīng)答:ACK = 1 ack= 98756 --->CLOSE_WAIT?

客戶(hù)端收到服務(wù)器的請(qǐng)求------》客戶(hù)端?Fin_wait_2

服務(wù)器發(fā)送報(bào)文 FIN = 1 seq = 76432 ------》CLOSE

客戶(hù)端收到服務(wù)器的請(qǐng)求 --------〉TIME_WAITING 應(yīng)答 ACk = 1 ?ack = 76433 ?

服務(wù)器-------->CLOSED

客戶(hù)端TIME_WAITING持續(xù)一段時(shí)間 ?: 2 * MSL------>客戶(hù)端CLOSED

為什么需要四次揮手

因?yàn)門(mén)cp是雙全工(客戶(hù)端和服務(wù)器端可以相互發(fā)送和接受請(qǐng)求)脐帝,所以需要雙方都確認(rèn)關(guān)閉和連接甸怕。

為什么需要TIME_WAITING 并且要存活那么長(zhǎng)時(shí)間:

MSL :最長(zhǎng)報(bào)文段壽命(存活的最長(zhǎng)時(shí)間 RFC 定義為2分鐘 系統(tǒng)30s);TIME_WAITING 實(shí)際1——4min

服務(wù)端發(fā)送報(bào)文---》客戶(hù)端要做應(yīng)答腮恩。網(wǎng)絡(luò)丟失梢杭,服務(wù)端重發(fā)。

端口沖突:

A:8080端口?

B: 8080端口

A立馬關(guān)閉的話秸滴,b申請(qǐng)到了武契,服務(wù)器還在發(fā),則沒(méi)收到荡含。被B收到了咒唆。

網(wǎng)絡(luò)抓包相關(guān)工具:

wireshark ?tcpdump.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市释液,隨后出現(xiàn)的幾起案子全释,更是在濱河造成了極大的恐慌,老刑警劉巖误债,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浸船,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡寝蹈,警方通過(guò)查閱死者的電腦和手機(jī)李命,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)箫老,“玉大人封字,你說(shuō)我怎么就攤上這事。” “怎么了阔籽?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵流妻,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我笆制,道長(zhǎng)合冀,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任项贺,我火速辦了婚禮,結(jié)果婚禮上峭判,老公的妹妹穿的比我還像新娘开缎。我一直安慰自己,他們只是感情好林螃,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布奕删。 她就那樣靜靜地躺著,像睡著了一般疗认。 火紅的嫁衣襯著肌膚如雪完残。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天横漏,我揣著相機(jī)與錄音谨设,去河邊找鬼。 笑死缎浇,一個(gè)胖子當(dāng)著我的面吹牛扎拣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播素跺,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼二蓝,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了指厌?” 一聲冷哼從身側(cè)響起刊愚,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎踩验,沒(méi)想到半個(gè)月后鸥诽,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡箕憾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年衙传,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厕九。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蓖捶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扁远,到底是詐尸還是另有隱情俊鱼,我是刑警寧澤刻像,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站并闲,受9級(jí)特大地震影響细睡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜帝火,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一溜徙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧犀填,春花似錦蠢壹、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至冕广,卻和暖如春疏日,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背撒汉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工沟优, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人睬辐。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓净神,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親溉委。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鹃唯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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