日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算机网络-UDP协议

發(fā)布時(shí)間:2025/6/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机网络-UDP协议 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 1 概述
  • 2 UDP的主要特點(diǎn)
  • 3 UDP的首部格式
    • 3.1 傳輸關(guān)系
    • 3.2 首部格式
    • 3.3 UDP 基于端口的分用和復(fù)用
    • 3.4 UDP校驗(yàn)

1 概述

用戶數(shù)據(jù)報(bào)協(xié)議(UDP,User Datagram Protocol),UDP作為傳輸層的一個(gè)重要的協(xié)議,它的主要的功能是在IP端到端的服務(wù)之上,增加了有限的兩個(gè)功能:

  • 復(fù)用和分用的功能
  • 差錯(cuò)檢測的功能
  • 另外,雖然UDP協(xié)議只提供不可靠的交付,看起來似乎非常不完美,但是UDP協(xié)議在某些方面具有特殊的優(yōu)點(diǎn):

  • 比如我們?cè)诳丛诰€視頻的時(shí)候我們要求數(shù)據(jù)是最新的最快的,如果這個(gè)時(shí)候要求數(shù)據(jù)的準(zhǔn)確性,那么會(huì)帶來較大的延遲,就像我們?cè)诳粗辈デ蛸惖臅r(shí)候,我們希望看到準(zhǔn)備直播畫面,而不是有延遲半分鐘或一分鐘的畫面
  • 另外一個(gè)典型的例子,比如在網(wǎng)絡(luò)管理過程中我們希望采集到網(wǎng)絡(luò)的實(shí)時(shí)數(shù)據(jù),這個(gè)時(shí)候網(wǎng)絡(luò)管理會(huì)使用某種基于UDP協(xié)議的方式,采集到最新最快的數(shù)據(jù),若是采集過來的數(shù)據(jù)有延遲,那么這個(gè)數(shù)據(jù)已經(jīng)不是實(shí)時(shí)數(shù)據(jù)了,不能表示此時(shí)網(wǎng)絡(luò)的狀況了
  • 所以在有些情況下,UDP協(xié)議簡單快速的特點(diǎn),比TCP協(xié)議更有優(yōu)勢(shì)

    2 UDP的主要特點(diǎn)

  • UDP 是無連接的:發(fā)送數(shù)據(jù)之前不需要建立連接,因此減少了開銷和發(fā)送數(shù)據(jù)之前的時(shí)延,這個(gè)特點(diǎn)是UDP協(xié)議的首要特點(diǎn),可以這么說,UDP其他的特點(diǎn),都是或多或少源自于這個(gè)特點(diǎn)
  • UDP 使用盡最大努力交付:即不保證可靠交付,因此主機(jī)不需要維持復(fù)雜的連接狀態(tài)表,發(fā)送端只需要把數(shù)據(jù)打包成UDP數(shù)據(jù)報(bào),交給IP協(xié)議傳輸,中間經(jīng)過了哪些路由器,最后有沒有到達(dá)目的主機(jī),數(shù)據(jù)有沒有出錯(cuò),需不需要重傳,這些主機(jī)問題都不知道
  • UDP 是面向報(bào)文的:所謂報(bào)文就是應(yīng)用層交下來的報(bào)文,應(yīng)用層有各種各樣的報(bào)文,比如HTTP報(bào)文,FTP報(bào)文等,根據(jù)不同的應(yīng)用層協(xié)議封裝成不同的報(bào)文,UDP 對(duì)應(yīng)用層交下來的報(bào)文,既不合并,也不拆分,而是保留這些報(bào)文的邊界。UDP 一次交付一個(gè)完整的報(bào)文,在網(wǎng)絡(luò)層,IP協(xié)議可能會(huì)進(jìn)行拆分工作
  • 應(yīng)用程序必須選擇合適大小的報(bào)文

    • 若報(bào)文太長,UDP 把它交給 IP 層后,IP 層在傳送時(shí)可能要進(jìn)行分片,這會(huì)降低 IP 層的效率
    • 若報(bào)文太短,UDP 把它交給 IP 層后,會(huì)使 IP 數(shù)據(jù)報(bào)的首部的相對(duì)長度太大,這也降低了 IP 層的效率
  • UDP 沒有擁塞控制:因此網(wǎng)絡(luò)出現(xiàn)的擁塞不會(huì)使源主機(jī)的發(fā)送速率降低。這對(duì)某些實(shí)時(shí)應(yīng)用是很重要的。很適合多媒體通信的要求,也就是說使用UDP協(xié)議的發(fā)送端,完全不會(huì)感知當(dāng)前網(wǎng)路的狀態(tài)是擁塞還是通暢,UDP協(xié)議還是會(huì)發(fā)送出去
  • UDP 支持一對(duì)一、一對(duì)多、多對(duì)一和多對(duì)多的交互通信:這時(shí)目的主機(jī)不一定是單個(gè)主機(jī),有可能是多個(gè)主機(jī)同時(shí)接收到發(fā)送端發(fā)送的UDP報(bào)文
  • UDP 的首部開銷小:只有 8 個(gè)字節(jié),比 TCP 的 20 個(gè)字節(jié)的首部要短,這樣也就意味著把數(shù)據(jù)組成UDP報(bào)文時(shí)所要做的工作更少,消耗資源小,發(fā)送速度也更快
  • 3 UDP的首部格式

    3.1 傳輸關(guān)系

    UDP協(xié)議作為傳輸層的一個(gè)經(jīng)典協(xié)議,它和上下層的傳輸關(guān)系如下:

  • 應(yīng)用層會(huì)把應(yīng)用層報(bào)文交付給運(yùn)輸層
  • 運(yùn)輸層的UDP協(xié)議,直接把上層交付下來的所有數(shù)據(jù)當(dāng)作UDP數(shù)據(jù)報(bào)的數(shù)據(jù)部分,再加上UDP首部交付給下層IP層
  • IP層把運(yùn)輸層交付下來的整個(gè)UDP數(shù)據(jù)報(bào)當(dāng)作IP數(shù)據(jù)報(bào)的數(shù)據(jù)部分,再加上IP首部,繼續(xù)交給下一層

  • 3.2 首部格式

    • 除去兩個(gè)端口號(hào)字段,還有一個(gè)長度字段,它用來標(biāo)明整個(gè)UDP報(bào)文的長度是多少,最后一個(gè)字段是校驗(yàn)和字段,它實(shí)現(xiàn)了對(duì)整個(gè)UDP報(bào)文的校驗(yàn)功能

    3.3 UDP 基于端口的分用和復(fù)用

  • 在UDP首部前兩個(gè)字段當(dāng)中,是源端口和目的端口,從接收端來講,當(dāng)接收端從 UDP報(bào)文中拆解出兩個(gè)端口號(hào)之后,會(huì)根據(jù)端口號(hào)標(biāo)識(shí)的內(nèi)容,發(fā)送給上一層的應(yīng)用程序,從而實(shí)現(xiàn)了端口的分用
  • 復(fù)用是分用的相反過程,應(yīng)用程序把數(shù)據(jù)交付下來之后,其中的端口號(hào)就標(biāo)明了這是哪一個(gè)應(yīng)用進(jìn)程,
  • 3.4 UDP校驗(yàn)

    • 在計(jì)算檢驗(yàn)和時(shí),臨時(shí)把“偽首部”和 UDP 用戶數(shù)據(jù)報(bào)連接在一起。偽首部僅僅是為了計(jì)算檢驗(yàn)和
    • 所謂偽首部,可以理解它就是一個(gè)假的,它并沒有一個(gè)實(shí)際的地址空間,在進(jìn)行UDP報(bào)文封裝的時(shí)候并沒有這部分內(nèi)容,要不然UDP協(xié)議的首部是20 (8+12) 個(gè)字節(jié),而不是我們所說的8個(gè)字節(jié),實(shí)際傳輸過程中,也并沒有這樣的字段
    • 設(shè)置這個(gè)偽首部,只是為了計(jì)算 校驗(yàn)和,這個(gè)偽首部包含的內(nèi)容,如上圖所示,這就有所疑問了,對(duì)于運(yùn)輸層來講,本身沒有IP地址這一概念,因?yàn)镮P地址是在網(wǎng)絡(luò)層中路由器轉(zhuǎn)發(fā)所用的地址,為了計(jì)算校驗(yàn)和而強(qiáng)制引入的偽首部,包含IP地址信息,實(shí)際上會(huì)破壞網(wǎng)絡(luò)分層,引入偽首部的目的,就是為了讓UDP兩次檢查數(shù)據(jù)是不是正確的到達(dá)了目的地,其中一次是對(duì)UDP端口號(hào)和其他數(shù)據(jù)的校驗(yàn),另一次是對(duì)IP地址的再校驗(yàn),因?yàn)镮P地址再路由器轉(zhuǎn)發(fā)過程中,有可能會(huì)發(fā)現(xiàn)IP地址錯(cuò)誤,所以UDP協(xié)議覺得IP地址校驗(yàn)是很有必要的
    • 如下就是校驗(yàn)的例子,簡單來說就是把首部部分,每2個(gè)字節(jié)寫成一行,然后按列排下來,每一列對(duì)應(yīng)的每一位進(jìn)行求和,得出來的結(jié)果再求反碼,再將其放入校驗(yàn)和的位置中

    總結(jié)

    以上是生活随笔為你收集整理的计算机网络-UDP协议的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。