通信過程上下層關系
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5COkRzYzMTOiNGN5QmZmR2NzQjMzYjYwMmN3YTNxEmY08CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
UDP簡介
網絡通信
是把資料直接發出去,而不管對方是不是在收信,就算是UDP無法送達,也不會産生ICMP差錯封包。
概述
(1)UDP 隻在 IP 的資料報服務之上增加了很少一點的功能,即端口的功能和差錯檢測的功能
(2)優點
(3)發送資料之前不需要建立連接配接
(4)UDP 的主機不需要維持複雜的連接配接狀态表。
(5)UDP 使用者資料報隻有8個位元組的首部開銷。
(6)網絡出現的擁塞不會使源主機的發送速率降低。這對某些實時應用是很重要的。
UDP資料包首部
UDP資料包
TCP簡介
提供了一種可靠的資料傳輸服務,TCP是面向連接配接的,隻有連結建立起來後才能通信。
優點
(1)面向連接配接
(2)可靠
(3)全雙工
(4)面向位元組流
TCP資料標頭部
TCP資料標頭
注:
資料流中的每一個位元組都編上一個序号。序号字段的值則指的是本封包段所發送的資料的第一個位元組的序号。
确認号:下一封包的序号
URG = 1 :緊急指針字段有效。它告訴系統此封包段中有緊急資料,應盡快傳送(相當于高優先級的資料)
ACK = 1 : 确認号字段才有效
PSK = 1 :盡快傳遞給接受程序
RST = 1 :嚴重錯誤,重新連接配接
SYN = 1 :連結請求
FIN = 1 :連結結束
選項字段:長度可變。TCP 隻規定了一種選項,即最大封包段長度 MSS (Maximum Segment Size)。MSS 告訴對方 TCP:“我的緩存所能接收的封包段的資料字段的最大長度是 MSS 個位元組。”
UDP和TCP對比:
TCP和UDP對比
概念:
1、UDP 封包頭
可以看到,相比 TCP 封包,UDP 的封包的域相對少了很多,有源端口、目标端口、資料包長度、奇偶校驗值、和使用者資料來組成。
2、UDP 的特點
簡單的封包結構,也就意味着 UDP 不像 TCP 那樣支援錯誤重傳、滑動視窗等精細控制,其特點如下:
3、UDP簡介
(1)、面向非連結
UDP 是一個無連接配接的協定,連接配接之前,源端和終端之間不建立連接配接,當它想傳送時,就簡單的去抓取來自應用程式的資料,并盡可能快的把它扔到網絡上。
在發送端,UDP 傳送資料的速度僅僅是受應用程式生成資料的速度、計算機的能力、和傳輸帶寬的限制。在接收端,UDP 把每個消息段放在隊列中,應用程式每次從隊列中讀取一個消息段。
(2)、不維護連結狀态,支援同時向多個用戶端傳輸相同的資訊
由于傳輸資料不建立連接配接,是以也就不需要維護連接配接狀态,包括收發狀态。是以一台伺服器可同時向多個客戶機傳輸相同的消息。
(3)、資料包報頭隻有8個位元組,額外開銷較小
相對于 TCP 的20個位元組,UDP 包的額外開銷小很多。
(4)、吞吐量受限于資料生成速率、傳輸速率以及機器性能
吞吐量不受擁擠控制算法的調節,隻受限于資料生成速率、傳輸帶寬、源端和終端主機性能的限制。
(5)、盡最大努力傳遞、不保證可靠傳遞、不需要維持複雜的連結狀态
(6)、面向封包,不對應用程式送出的封包資訊進行拆分或者合并
發送方的 UDP 對應用程式交下來的封包,在添加首部後,就向下傳遞給 IP 層,
既不拆分,也不合并,而是保留這些封包的邊界。是以,應用程式需要選擇合适的封包大小。上層解決。
結論:
TCP 和 UDP 是 OSI 模型中的運輸層中的協定,TCP 提供可靠的通信傳輸,而 UDP 則常被
用于讓網絡和細節控制交給應用層的通信傳輸,兩者差別如下:
TCP:面向連接配接 VS UDP:面向無連接配接
1、TCP 有三次握手的連接配接過程,UDP 适合消息的多點傳播發送,從單個點向多個點傳輸資訊。
2、可靠 VS 不可靠
3、有序性(利用了序列号保證了消息封包順序傳遞,到達可能無需,但是TCP最終會排序)VS無序
4、速度(慢:因為要建立連結,保證消息的可靠性,和有序性,需要做額外的很多事情)VS(快:速度比較敏感的應用,比如線上視訊媒體,電視廣播,多人線上遊戲)
5、量級(重量級,20位元組)VS輕量級:展現在源資料的頭大小為8個位元組