4.傳輸層

傳輸層協議有哪些

TCP / UDP

TCP/UDP 比較&使用場景

TCP UDP 都是傳輸層協議,都基於IP協議。

協議 是否需要建立會話 可靠傳輸 分段傳輸 流量控制 例子
TCP 建立會話 可靠傳輸 需要將要傳輸的文件分段傳輸 流量控制 QQ傳文件,訪問WEB,訪問FTP
UDP 不需要建立會話 不可靠傳輸

不分段

(一個包就能完成通信)

不需要流量控制 發QQ信息(也是UDP包反饋收到,否則消息發送失敗),DNS解析,多播組播(收直播)

TCP傳的是

UDP傳的是報文

小擴展:QQ視頻通話,是TCP還是UDP

如果TCP,可靠性要求很高,如果丟包,會要求重傳,則收視頻的方面會"一秒也不錯過",但會卡頓。

如果UDP,可靠性要求不高,如果丟包,不要求重傳,收視頻的方面,雖然丟失某幾秒的內容,但是實時交流。

傳輸層協議 和 應用層協議 之間的關係:

傳輸層:TCP協議 UDP協議

應用層:http https ftp smtp等協議

傳輸層:通過不同的端口號,來區分不同的應用層協議

http = TCP + 80端口

https = TCP + 443端口

FTP = TCP +21

SMTP = TCP +25

應用層協議和傳輸層協議之間的關係 


- 服務使用TCP或UDP的端口偵聽客戶端請求 
- 客戶端使用IP地址定位服務器  ; 使用目標端口,定位服務 
- 可以在服務器網卡上設置只開放必要的端口,實現服務器網絡安全(不讓遠程連接,就不開3389)(只開80端口,別的都關)

網絡層 與 傳輸層 的不同

網絡層:主機與主機的通信

傳輸層:進程與進程的通信

瀏覽器訪問,會話都有啥

不同網頁窗口,源端口不衝突,目標端口80

例:瀏覽器1 5997端口 訪問 80端口,回來的也是給 5997端口 

(有可能一個頁面 播放2個視頻,連2個不同的服務器  則2個會話)


TCP:點到點  --什麼是socket

socket == IP地址+ 端口

TCP協議如何實現可靠傳輸?

停止等待協議:沒有確認,我就等待

只要你沒告訴我你收到了,我就認爲你沒收到。

功能實現了,但是實際上,信道利用率太低!

滑動窗口技術 保證流水線傳輸

得到確認,移動

累積確認

124發送到了,3丟了,這種情況下:B確認 收到了2(1已經收到了)

五層傳輸流程

  • 應用層:給出數據
  • 傳輸層:切割分段,加首部(包括源端口、目的端口序列號seq、確認號ackSYN ACK 窗口信息等),首部+ 切割的數據  == 【段】
  • 網絡層:得到傳輸層的【段】,加上ip首部(包括源ip地址、目標ip地址、協議等), ip首部 + 【段】 == 【包】
  • 數據鏈路層:得到【包】 加 源mac地址 目標mac地址,幀頭、幀尾、 FCS  得到 【幀】
  • 物理層:01010101

(重要,很有成就感!!!!)

TCP首部

注:確 == 確認號、序 == 序號、源 == 源端口、目 == 目標端口

ACK == 0代表確認號無效,1代表有效

SYN == 同步標記。  SYN == 1 建立會話請求 ,XP扔過去。WEB站點同意,SYN = 1 扔回來。

真實情況下,TCP如何實現可靠傳輸

以字節byte爲單位的滑動窗口技術

確認號7

選擇性確認 s ack :可以只發丟失的

擁塞控制

路由器需要處理的數據包太多,忙不過來,丟包了

剛開始是 擁塞窗口 = 1(單位:報文段),然後2的指數增加;

一旦達到慢開始門限,增長方式變爲 ++;

若出現網絡擁塞:擁塞窗口 = 1;慢開始門限 /= 2;

快重傳:

一般情況:如果已知3丟了,還需要收到4 5,再發送確認.

快重傳:已知3丟了,應該立即連發3個確認,讓你重傳3 4 5。

快恢復(與快重傳 配套)

剛開始是 擁塞窗口 = 1(單位:報文段),然後2的指數增加;

一旦達到慢開始門限,增長方式變爲 ++;

若收到3個重複的確認(快重傳算法):新慢開始門限 = current擁塞窗口 / 2;擁塞窗口 = 新慢開始門限; 開始++;

TCP連接的建立,三次握手

傳輸連接有三個階段,即:建立連接、數據傳送、釋放連接。

採用的都是 client/server 方式

SYN 只有前兩次,兩次已經同步好了。

第三次 沒有SYN了,只有ACK,是再次確認。

若沒有第三次確認

三次握手:“爲了防止已失效的連接請求報文段(第一份)突然又傳送到了服務端,因而產生錯誤”

三次握手時,各自狀態

連接釋放

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章