第七章 TCP和UDP原理

2022-06-23 09:33:24 字數 2599 閱讀 1401

一、引入

1.tcp/ip協議族的傳輸層協議主要包括tcp和udp

2.tcp是面向連線的可靠的傳輸層協議。它支援在並不可靠的網路上實現面向連線的可靠的資料傳輸

3.udp是無連線的傳輸協議,主要用於支援在較可靠的鏈路上的資料傳輸,或用於對延遲較敏感的應用

二、tcp/ip傳輸層的作用

1.傳輸層作用:

1)提供面向連線或者無連線的服務

2)維護連線狀態

3)對應用層資料進行分段和封裝

4)實現多路復用

5)可靠的傳輸資料

6)執行流量控制

三、tcp的基本原理

1.特點

三次握手->建立可靠連線

確認機制->應答接收

埠號->多路復用

序列號->丟失檢測、亂序重排

完整性校驗->差錯檢測

視窗機制->流量控制

2.tcp封裝

3.tcp/udp 埠號

4.tcp建立過程

1)建立

2)拆除

3)傳輸確認

4)超時重傳

5)滑動視窗

6)三次握手過程說明

1、由客戶端傳送建立tcp連線的請求報文,其中報文中包含seq序列號,是由傳送端隨機生成的,並且將報文中的syn欄位置為1,表示需要建立tcp連線。(syn=1,seq=x,x為隨機生成數值)

2、由服務端回覆客戶端傳送的tcp連線請求報文,其中包含seq序列號,是由回覆端隨機生成的,並且將syn置為1,而且會產生ack欄位,ack欄位數值是在客戶端傳送過來的序列號seq的基礎上加1進行回覆,以便客戶端收到資訊時,知曉自己的tcp建立請求已得到驗證。(syn=1,ack=x+1,seq=y,y為隨機生成數值)這裡的ack加1可以理解為是確認和誰建立連線。3

、客戶端收到

服務端傳送的tcp建立驗證請求後,會使自己的序列號加1表示,並且再次回覆ack驗證請求,在服務端發過來的seq上加1進行回覆。(syn=1,ack=y+1,seq=x+1)

7)四次揮手過程說明:

1、客戶端傳送斷開tcp連線請求的報文,其中報文中包含seq序列號,是由傳送端隨機生成的,並且還將報文中的fin欄位置為1,表示需要斷開tcp連線。(fin=1,seq=x,x由客戶端隨機生成)

2、服務端會回覆客戶端傳送的tcp斷開請求報文,其包含seq序列號,是由回覆端隨機生成的,而且會產生ack欄位,ack欄位數值是在客戶端發過來的seq序列號基礎上加1進行回覆,以便客戶端收到資訊時,知曉自己的tcp斷開請求已經得到驗證。(fin=1,ack=x+1,seq=y,y由服務端隨機生成)

3、服務端在回覆完客戶端的tcp斷開請求後,不會馬上進行tcp連線的斷開,服務端會先確保斷開前,所有傳輸到a的資料是否已經傳輸完畢,一旦確認傳輸資料完畢,就會將回覆報文的fin欄位置1,並且產生隨機seq序列號。(fin=1,ack=x+1,seq=z,z由服務端隨機生成)

4、客戶端收到服務端的tcp斷開請求後,會回覆服務端的斷開請求,包含隨機生成的seq欄位和ack欄位,ack欄位會在服務端的tcp斷開請求的seq基礎上加1,從而完成服務端請求的驗證回覆。(fin=1,ack=z+1,seq=h,h為客戶端隨機生成) 

至此tcp斷開的4次揮手過程完畢

四、udp的基本原理

1.udp封裝

2.tcp和udp的對比

五、本章總結

1.tcp和udp通過埠號標識上層應用和服務

2.tcp通過三次握手建立可靠連線

3.tcp通過校驗和進行差錯校驗,通過序列號、確認和超時重傳機制實現可靠傳輸,通過滑動視窗實現流量控制

4.udp實現簡單、資源占用少,實時性強,適用於可靠性高的網路和延遲敏感的應用

編譯原理 第七章

1 語法樹 語法樹,有向非迴圈圖和字尾式表示源程式的自然層次結構 2 字尾式 中 綴式 a b c b c 字尾式 a b c b c 3 三位址 表示 一般形式 x y op z 4 語法制導翻譯生成三位址 需要用到的量 1 e.place表示存放e值的名字。2 e.code表示對e求值的三位址語...

python第七章 python教程(第七章)

字典和集合 字典是python中唯一,乙個對映型別 如何建立乙個字典,如下 dict dict 滲透 網路安全 怎麼理解字典呢?現實生活中的字典可以通過首字母進行查詢要查詢的漢子,python也可以這樣理解,通過 前的元素查詢到冒號後的元素。為什麼說字典是唯一乙個對映型別呢?看圖。對映型別區別與序列...

第七章 函式

1.ansi c 允許函式原型的使用,函式宣告提供給編譯器和之後的呼叫函式返回值型別,引數型別和數量的資訊,而k c用單獨的列表給出引數的型別,編譯器只記住函式的返回值型別,但不儲存函式的引數數量和型別 2.沒有return語句的函式,隱式的返回 3.函式的原型可以單獨放於乙個標頭檔案中,一定要具有...