一、引入
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.函式的原型可以單獨放於乙個標頭檔案中,一定要具有...