'基礎系列丨TCP、UDP、三次握手、四次握手'

DNS 電腦 三旺通信 2019-07-16
"
"
基礎系列丨TCP、UDP、三次握手、四次握手

傳輸層作用

  • 在傳輸數據之前,首先建立連接,協商參數
  • 將數據進行分段,符合傳輸介質的限制要求
  • 因為數據分段,所以要進行重組
  • 提供端口號,根據不同的端口號,將數據發送到相應的應用層協議
  • 不同的場合,環境,應用,使用不同的傳輸層協議

TCP

面向連接

  • 發送數據之前,首先先找到對方建立一個連接,相當於一個邏輯通道。
  • 可靠協議,效率低
  • 每收到一次數據,要進行確認,保證對方確定收到了這個數據。

TCP需要三次握手

就好比打電話,需要經過撥號,振鈴,接通。才能進行講話

過程:

A:我要跟你建立連接

B:好的,我知道了,我也要跟你建個連接

A:我知道你收到了我的連接請求,我也收到了你的連接請求

滑動窗口:

主要為了避免一次性發送的數據過多,導致對方緩存溢出。

滑動窗口是動態協商,也就是說,在建立連接的時候,就會進行協商

同時,在緩衝區發生變化的時候,也會進行協商。

TCP四次揮手

主要為了避免當一方斷開連接,而另一方不知道的情況下,需要耗費資源去維護本該斷開的連接

過程:

假設三次連接已經建立完成

A:我要跟你斷開連接了

B:好的,我知道你要斷開連接了

B:我也要跟你斷開連接

A:好的,那就斷開連接把

UDP

不需要建立連接,也不需要進行確認

盡力而為,效率相比TCP要高

比如對講機,拿起來就說,而不管對方有沒有收到,

直播視頻,使用UDP協議

點播視頻,使用TCP協議

TCP/UDP協議都是工作在傳輸層中

在傳輸層,有一個概念,叫做端口號

每一個端口號,對應一種應用層協議,比如端口號80,代表HTTP協議

而應用層協議,規定了使用何種傳輸協議來進行傳輸

比如,你訪問網頁,使用HTTP,端口號為80,那它是使用TCP來進行傳輸的

比如,你進行域名解析,使用DNS,端口號為53,那麼它就是使用UDP協議

三種類型:

知名端口號 0-1023,以及分給特定的協議,不能隨便使用

如果要使用,需要向互聯網編號分配機構申請(IANA)

註冊端口:有限的使用 1024-49511,比如8080,是作為80的補充,已經註冊

私有端口:隨意使用 49512-65535,

正常情況下:源端口為隨機生成,目的端口為知名端口

比如你訪問網頁,源端口由你電腦隨機分配,目的端口是80

TCP分段重組

為何分段:

因為數據傳輸大小受限於傳輸鏈路,或者介質的要求。

當超過限制,TCP就把大的數據拆分成一個個小段

TCP分段,基於MISS,動態協商

一般是1500-40字節(20字節IP頭部,20字節TCP頭部)

因為數據被分段了,那麼在傳輸的過程中,由於鏈路等其他的因素

收到的數據包順序不一致,就會出現錯誤

所以,在分段的時候,對每個段進行編號,當對方收到的時候,按照序號進行排列,

保證數據的準確性。

UDP不會進行分段,UDP分段基於以太網中的MTU

並且UDP不會進行數據重組,而是按照先來後到的順序

版權聲明:

本文轉載自公眾號“it666lmz”,版權歸原作者所有,轉載請保留此字段,感謝!

"
基礎系列丨TCP、UDP、三次握手、四次握手

傳輸層作用

  • 在傳輸數據之前,首先建立連接,協商參數
  • 將數據進行分段,符合傳輸介質的限制要求
  • 因為數據分段,所以要進行重組
  • 提供端口號,根據不同的端口號,將數據發送到相應的應用層協議
  • 不同的場合,環境,應用,使用不同的傳輸層協議

TCP

面向連接

  • 發送數據之前,首先先找到對方建立一個連接,相當於一個邏輯通道。
  • 可靠協議,效率低
  • 每收到一次數據,要進行確認,保證對方確定收到了這個數據。

TCP需要三次握手

就好比打電話,需要經過撥號,振鈴,接通。才能進行講話

過程:

A:我要跟你建立連接

B:好的,我知道了,我也要跟你建個連接

A:我知道你收到了我的連接請求,我也收到了你的連接請求

滑動窗口:

主要為了避免一次性發送的數據過多,導致對方緩存溢出。

滑動窗口是動態協商,也就是說,在建立連接的時候,就會進行協商

同時,在緩衝區發生變化的時候,也會進行協商。

TCP四次揮手

主要為了避免當一方斷開連接,而另一方不知道的情況下,需要耗費資源去維護本該斷開的連接

過程:

假設三次連接已經建立完成

A:我要跟你斷開連接了

B:好的,我知道你要斷開連接了

B:我也要跟你斷開連接

A:好的,那就斷開連接把

UDP

不需要建立連接,也不需要進行確認

盡力而為,效率相比TCP要高

比如對講機,拿起來就說,而不管對方有沒有收到,

直播視頻,使用UDP協議

點播視頻,使用TCP協議

TCP/UDP協議都是工作在傳輸層中

在傳輸層,有一個概念,叫做端口號

每一個端口號,對應一種應用層協議,比如端口號80,代表HTTP協議

而應用層協議,規定了使用何種傳輸協議來進行傳輸

比如,你訪問網頁,使用HTTP,端口號為80,那它是使用TCP來進行傳輸的

比如,你進行域名解析,使用DNS,端口號為53,那麼它就是使用UDP協議

三種類型:

知名端口號 0-1023,以及分給特定的協議,不能隨便使用

如果要使用,需要向互聯網編號分配機構申請(IANA)

註冊端口:有限的使用 1024-49511,比如8080,是作為80的補充,已經註冊

私有端口:隨意使用 49512-65535,

正常情況下:源端口為隨機生成,目的端口為知名端口

比如你訪問網頁,源端口由你電腦隨機分配,目的端口是80

TCP分段重組

為何分段:

因為數據傳輸大小受限於傳輸鏈路,或者介質的要求。

當超過限制,TCP就把大的數據拆分成一個個小段

TCP分段,基於MISS,動態協商

一般是1500-40字節(20字節IP頭部,20字節TCP頭部)

因為數據被分段了,那麼在傳輸的過程中,由於鏈路等其他的因素

收到的數據包順序不一致,就會出現錯誤

所以,在分段的時候,對每個段進行編號,當對方收到的時候,按照序號進行排列,

保證數據的準確性。

UDP不會進行分段,UDP分段基於以太網中的MTU

並且UDP不會進行數據重組,而是按照先來後到的順序

版權聲明:

本文轉載自公眾號“it666lmz”,版權歸原作者所有,轉載請保留此字段,感謝!

基礎系列丨TCP、UDP、三次握手、四次握手

"

相關推薦

推薦中...