成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

TCP \ UDP \ TCP 三次握手和四次揮手

網絡 通信技術
TCP 是面向連接的、可靠的、基于字節流的傳輸層通信協議。

什么是 TCP ?

TCP 是面向連接的、可靠的、基于字節流的傳輸層通信協議。

  • 面向連接:一定是「一對一」才能連接,不能像 UDP 協議可以一個主機同時向多個主機發送消息,也就是一對多是無法做到的;
  • 可靠的:無論的網絡鏈路中出現了怎樣的鏈路變化,TCP 都可以保證一個報文一定能夠到達接收端;
  • 字節流:用戶消息通過 TCP 協議傳輸時,消息可能會被操作系統「分組」成多個的 TCP 報文,如果接收方的程序如果不知道「消息的邊界」,是無法讀出一個有效的用戶消息的。并且 TCP 報文是「有序的」,當「前一個」TCP 報文沒有收到的時候,即使它先收到了后面的 TCP 報文,那么也不能扔給應用層去處理,同時對「重復」的 TCP 報文會自動丟棄。

UDP 和 TCP 的區別

1. 連接

  • TCP 是面向連接的傳輸層協議,傳輸數據前先要建立連接。
  • UDP 是不需要連接,即刻傳輸數據。

2. 服務對象

  • TCP 是一對一的兩點服務,即一條連接只有兩個端點。
  • UDP 支持一對一、一對多、多對多的交互通信

3. 可靠性

  • TCP 是可靠交付數據的,數據可以無差錯、不丟失、不重復、按需到達。
  • UDP 是盡最大努力交付,不保證可靠交付數據。

4. 擁塞控制、流量控制

  • TCP 有擁塞控制和流量控制機制,保證數據傳輸的安全性。
  • UDP 則沒有,即使網絡非常擁堵了,也不會影響 UDP 的發送速率。

5. 首部開銷

  • TCP 首部長度較長,會有一定的開銷,首部在沒有使用「選項」字段時是 20 個字節,如果使用了「選項」字段則會變長的。
  • UDP 首部只有 8 個字節,并且是固定不變的,開銷較小。

6. 傳輸方式

  • TCP 是流式傳輸,沒有邊界,但保證順序和可靠。
  • UDP 是一個包一個包的發送,是有邊界的,但可能會丟包和亂序。

7. 分片不同

  • TCP 的數據大小如果大于 MSS 大小,則會在傳輸層進行分片,目標主機收到后,也同樣在傳輸層組裝 TCP 數據包,如果中途丟失了一個分片,只需要傳輸丟失的這個分片。
  • UDP 的數據大小如果大于 MTU 大小,則會在 IP 層進行分片,目標主機收到后,在 IP 層組裝完數據,接著再傳給傳輸層。

TCP 和 UDP 應用場景:

由于 TCP 是面向連接,能保證數據的可靠性交付,因此經常用于:

  • FTP 文件傳輸;
  • HTTP / HTTPS;

由于 UDP 面向無連接,它可以隨時發送數據,再加上UDP本身的處理既簡單又高效,因此經常用于:

  • 包總量較少的通信,如 DNS 、SNMP 等;
  • 視頻、音頻等多媒體通信;
  • 廣播通信;

TCP 三次握手和四次揮手

TCP 三次握手和四次揮手也是面試題的熱門考點,它們分別對應 TCP 的連接和釋放過程。下面就來簡單認識一下這兩個過程

TCP 三次握手

在了解具體的流程前,我們需要先認識幾個概念

  • SYN:它的全稱是 Synchronize Sequence Numbers,同步序列編號。是 TCP/IP 建立連接時使用的握手信號。在客戶機和服務器之間建立 TCP 連接時,首先會發送的一個信號。客戶端在接受到 SYN 消息時,就會在自己的段內生成一個隨機值 X。
  • SYN-ACK:服務器收到 SYN 后,打開客戶端連接,發送一個 SYN-ACK 作為答復。確認號設置為比接收到的序列號多一個,即 X + 1,服務器為數據包選擇的序列號是另一個隨機數 Y。
  • ACK:Acknowledge character, 確認字符,表示發來的數據已確認接收無誤。最后,客戶端將 ACK 發送給服務器。序列號被設置為所接收的確認值即 Y + 1。

如果用現實生活來舉例的話就是

小明 - 客戶端 小紅 - 服務端

  • 小明給小紅打電話,接通了后,小明說喂,能聽到嗎,這就相當于是連接建立。
  • 小紅給小明回應,能聽到,你能聽到我說的話嗎,這就相當于是請求響應。
  • 小明聽到小紅的回應后,好的,這相當于是連接確認。在這之后小明和小紅就可以通話/交換信息了。

TCP 四次揮手

在連接終止階段使用四次揮手,連接的每一端都會獨立的終止。下面我們來描述一下這個過程。

  • 首先,客戶端應用程序決定要終止連接(這里服務端也可以選擇斷開連接)。這會使客戶端將 FIN 發送到服務器,并進入 FIN_WAIT_1 狀態。當客戶端處于 FIN_WAIT_1 狀態時,它會等待來自服務器的 ACK 響應。
  • 然后第二步,當服務器收到 FIN 消息時,服務器會立刻向客戶端發送 ACK 確認消息。
  • 當客戶端收到服務器發送的 ACK 響應后,客戶端就進入 FIN_WAIT_2 狀態,然后等待來自服務器的 FIN 消息
  • 服務器發送 ACK 確認消息后,一段時間(可以進行關閉后)會發送 FIN 消息給客戶端,告知客戶端可以進行關閉。
  • 當客戶端收到從服務端發送的 FIN 消息時,客戶端就會由 FIN_WAIT_2 狀態變為 TIME_WAIT 狀態。處于 TIME_WAIT 狀態的客戶端允許重新發送 ACK 到服務器為了防止信息丟失。客戶端在 TIME_WAIT 狀態下花費的時間取決于它的實現,在等待一段時間后,連接關閉,客戶端上所有的資源(包括端口號和緩沖區數據)都被釋放。

還是可以用上面那個通話的例子來進行描述

  • 小明對小紅說,我所有的東西都說完了,我要掛電話了。
  • 小紅說,收到,我這邊還有一些東西沒說。
  • 經過若干秒后,小紅也說完了,小紅說,我說完了,現在可以掛斷了
  • 小明收到消息后,又等了若干時間后,掛斷了電話。
責任編輯:華軒 來源: 今日頭條
相關推薦

2015-10-13 09:42:52

TCP網絡協議

2019-06-12 11:26:37

TCP三次握手四次揮手

2021-01-29 06:11:08

TCP通信三次握手

2021-05-18 12:27:40

TCP控制協議

2024-01-12 08:23:11

TCPACK服務器

2021-07-03 17:47:25

TCP控制協議

2017-09-25 21:27:07

TCP協議數據鏈

2019-02-01 09:38:16

2014-09-19 09:46:46

TCPIP

2021-05-28 09:08:20

TCP連接序列號

2020-06-29 14:50:47

TCP狀態ACK

2020-02-17 10:10:43

TCP三次握手四次揮手

2023-10-28 09:07:57

TCP面試三次握手

2025-05-20 08:38:03

2023-11-01 08:04:08

WiresharkTCP協議

2015-11-09 09:58:56

2022-11-17 10:20:49

TCP三次握手四次揮手

2023-10-17 15:44:19

TCP四次揮手

2021-08-04 08:01:28

Linux 三次握手Linux 系統

2018-08-10 09:23:19

TCP考點數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 伊人操| 国产乱码久久久久久 | 日韩欧美在线观看视频 | 一区二区三区在线免费观看 | 色狠狠一区 | 亚洲一区二区三区在线 | 欧美福利视频 | 欧美大片一区 | 欧美一区成人 | 亚洲精品自在在线观看 | 精品国产免费一区二区三区演员表 | 中文字幕日韩一区 | 日本精品一区二区 | 国产午夜在线 | 91视视频在线观看入口直接观看 | 国产精品视频在线播放 | 久久国产一区二区三区 | 国产一区二区三区高清 | 888久久久 | 久久丝袜视频 | 久久人人网 | 色婷婷狠狠 | 一区二区中文 | 一级黄色日本片 | 欧美精品一区三区 | 亚洲一区视频在线播放 | 久久精品免费观看 | 日本字幕在线观看 | 日韩精品久久一区 | 午夜免费精品视频 | 日韩国产在线观看 | 久久久精品一区二区三区 | 国产一级在线 | 九九亚洲| 五月天婷婷激情 | 天天搞天天搞 | 亚洲国产精品久久久 | 日本久久黄色 | 91欧美精品成人综合在线观看 | 久久免费高清视频 | 亚洲欧洲成人av每日更新 |