古詩詞大全網 - 團隊口號 - 淺談網絡相關協議

淺談網絡相關協議

TCP/IP參考模型是計算機網絡的祖父ARPANET及其後續互聯網使用的參考模型。ARPANET是由DoD(美國國防部)發起的研究網絡。漸漸地,它通過租用的電話線連接了數百所大學和政府部門。當無線網絡和衛星出現時,現有的協議在與它們連接時出現了問題,因此需要壹種新的參考架構。這種體系結構在其兩個主要協議出現後被稱為TCP/IP參考模型。——引用百度百科的解釋。

1.應用層,(協議http)?

2.傳輸層(TCP)

3.?網絡層(ip)

4.鏈路層(網絡電纜等。)

?答:3g 4g 5g -對應->鏈路層

1.幀用於表示數據鏈路層中的數據包單元。

2.碼片是ip中的數據單位。

3.數據段代表Tcp數據流中的信息。

4.消息是指應用協議中的數據單元。

(流程)

用戶a發送了壹條消息,例如我是Android:

交給Tcp層(傳輸層)打包,附上Tcp包頭。?我是安卓(Tcp頭)

交給ip層(網絡層)打包。附加ip數據包報頭。?我是安卓(Tcp頭)(ip頭)

將其交給數據鏈路層,並附上以太網數據包報頭。我是安卓(Tcp頭)(ip頭)(以太網頭)

然後交給物理層進行相關傳輸:

用戶b收到消息:

壹層壹層解開:

數據鏈路層打開以太網報頭:?我是安卓(Tcp頭)(ip頭)

Ip層(網絡層)我是安卓(Tcp頭)

Tcp層(傳輸層)?我是安卓?

上層接收。?我是機器人。

這種設計的目的是遵循單壹責任的原則

?TCP是壹種可靠的面向連接的協議。在發送和接收數據之前,需要與對方建立可靠的連接,包括三次握手建立連接和四次揮手斷開連接。UDP是壹種無連接的通信協議。在數據傳輸之前,源和終端不建立連接。發送方盡快將數據拋出網絡,接收方從消息隊列中讀取消息段。

IP地址的作用主要是尋址。(ip地址(網絡層):給網絡或主機分配壹個邏輯地址,以區分mac地址。隨意改。Mac地址(數據鏈路)不能改變)

例如:

公司有兩棟樓?

A棟:有壹個通信子網。

B棟,有壹個通信子網。

有兩臺路由器將A(通信子網)和B(通信子網)連接到局域網。

a有自己的子網,由多臺計算機組成。?b也是自己電腦的子網。

現在A棟有壹臺A機(ip地址:192.168.1.2)。

B棟有壹臺B機(ip地址:192.167.1.2)。

a向機器B發送數據:

包到了路由器,當前包不在我的子網,我就去找哪個子網是192+067。-並發送到相應的路由器。

它怎麽知道是192.5438+067.438+0.2?

在我們的子網中,每臺電腦都要保存在路由器中,並告訴其他機器我的ip地址和mac地址是什麽。然後發送到對應的電腦。路由器給每臺電腦發壹份,但是網卡會判斷數據包的mac地址和電腦的mac地址是否相同,如果不同就直接丟棄。

所以這裏就引出了網絡嗅探的網絡攻擊:

在同壹個子網中。不要讓網卡接收數據,提前把獲得的數據都抓起來。

標準建立的端口號:0 ~ 1023?1024~49151

服務器程序設置端口號。

客戶。操作系統會給它分配壹個49152-65535。

因此,我們可以通過源ip地址、目的ip地址、協議號、源端口號和目的端口號來識別通信。

這裏我們重點關註TCP:

特點:

面向連接,

可靠性,

RTT(往返時間)和RTO(重新傳輸超時)。

數據分類

流控制

全雙工

?假設應用層有壹串消息要通過網絡發送以供流通(傳輸層、網絡層等)。).用戶發送大量數據怎麽辦?如何保證用戶發送的數據不會丟失?這個龐大的數據在這裏要被拆分,ip層會被拆分成碎片。壹般來說,以太網可以接收1046字節,按照1046字節進行切片,然後傳輸到對端。在這種情況下,問題就出現了。我以前是壹個龐大的數據,現在把它發出去,切割成很多塊。如果我中途丟了幾塊,那麽TCP提出重傳超時和確認機制,保證數據完整性。如果對等體沒有收到對方的消息,它不會永遠等待,而是在壹定時間後重新發送,那麽這個時間如何確定呢?操作系統在設計時,會引入RTT機制,即往返延遲機制。壹個數據包從我這邊發給對方,然後收到對方的回復,這個時間就是往返延遲。操作系統將針對最新的往返延遲重新計算其內部RTO。這個重傳超時是不固定的。

數據排序:被拆分成碎片後,對方要知道順序才能形成完整的數據包,所以網絡協議會在這壹端進行排序。以便於在相對端的完全組裝。

流量控制(滑動窗口):我的通信對手有不同的數據處理能力。發送方只是發送數據,對方收到後可能需要處理,所以可能收到的數據沒有妳發送方發送的快。所以也有壹個機制,會告訴對方我壹次響應壹個消息或者發送壹個消息收到了多少數據。

全雙工:在通信的兩個相對端,接收器和服務器可以同時發送或接收來自對端的數據。

客戶端(連接):

1.首先向服務器發送SYN消息(SYN = 1 seq = 23412)。客戶端狀態:同步發送

2.服務器收到消息後會回復客戶端(SYN = 1。ACK = 1,ACK?= 23413 seq = 6478)服務器狀態:RCVD

3.客戶端收到消息後檢查:ACK是1嗎?ack是23413嗎?,客戶端確定服務器收到了我的SYN = 1 seq = 23412消息。響應服務器

4.客戶端用ACK = 1和ACK = 6479回復服務器。客戶狀態:已建立

5.在服務器接收到來自客戶端的消息後。服務器狀態:已建立

Tcp是面向連接的,所以需要雙方確認連接的建立(維護序列號)。

SYN flooding攻擊:通過網絡所在端口發送大量偽造原始地址的攻擊報文,造成服務器上半開連接隊列滿,從而阻止其他用戶訪問。

原理:攻擊者的客戶端使用偽造的ip地址向服務器發送請求(第壹次握手,服務器的響應消息永遠不會發送給真實的客戶端,服務器在等待客戶端的三次握手(永遠不會),服務器在等待這個半開連接的同時消耗資源。如果有成千上萬個這樣的連接,就會耗盡主機資源,從而達到攻擊的目的。

解決方案:

1.無效的連接監控版本。

2.延遲TCB分配方法

第三步:防火墻

客戶端第壹次發送關閉請求,fin = 1 seq = 98745-->;客戶端:Fin_wait_1

客戶端響應:ack = 1 ack = 98756-> CLOSE _ WAIT?

客戶端接收來自服務器的請求——“客戶端?鰭_等待_2

服務器發送消息FIN = 1 seq = 76432-“Close”。

客戶端收到服務器的請求-> time _ waiting回復ACk = 1?ack = 76433?

服務器->關閉

客戶端時間_等待持續壹段時間?:2 * MSL-& gt;客戶端關閉

因為Tcp是雙重作業(客戶端和服務器可以互相發送和接收請求),所以雙方都需要確認關閉和連接。

MSL:最長段壽命(最長存活時間RFC定義為2分鐘系統30秒);TIME_WAITING其實是1-4 min。

服務器發送消息——“客戶端應該回復。網絡丟失,服務器再次發送。

端口沖突:

A:端口A:8080?

乙:8080端口

如果A馬上關閉,B已經申請了,但是服務器還在發送,只是還沒有收到。b收到了。

wireshark?tcpdump。