国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【計算機(jī)網(wǎng)絡(luò) 】傳輸層——UDP

這篇具有很好參考價值的文章主要介紹了【計算機(jī)網(wǎng)絡(luò) 】傳輸層——UDP。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

傳輸層

傳輸層概念

在學(xué)習(xí)HTTP等應(yīng)用層協(xié)議時,為了便于理解,可以簡單的認(rèn)為HTTP協(xié)議是將請求和響應(yīng)直接發(fā)送到了網(wǎng)絡(luò)當(dāng)中。但實際應(yīng)用層需要先將數(shù)據(jù)交給傳輸層,由傳輸層對數(shù)據(jù)做進(jìn)一步處理后再將數(shù)據(jù)繼續(xù)向下進(jìn)行交付,該過程貫穿整個網(wǎng)絡(luò)協(xié)議棧,最終才能將數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)當(dāng)中。

傳輸層負(fù)責(zé)可靠性傳輸,確保數(shù)據(jù)能夠可靠地傳送到目標(biāo)地址。為了方便理解,在學(xué)習(xí)傳輸層協(xié)議時也可以簡單的認(rèn)為傳輸層協(xié)議是將數(shù)據(jù)直接發(fā)送到了網(wǎng)絡(luò)當(dāng)中。

再談端口號

端口號(Port)標(biāo)識一個主機(jī)上進(jìn)行網(wǎng)絡(luò)通信的不同的應(yīng)用程序。當(dāng)主機(jī)從網(wǎng)絡(luò)中獲取到數(shù)據(jù)后,需要自底向上進(jìn)行數(shù)據(jù)的交付,而這個數(shù)據(jù)最終應(yīng)該交給上層的哪個應(yīng)用處理程序,就是由該數(shù)據(jù)當(dāng)中的目的端口號來決定的。

從網(wǎng)絡(luò)中獲取的數(shù)據(jù)在進(jìn)行向上交付時,在傳輸層就會提取出該數(shù)據(jù)對應(yīng)的目的端口號,進(jìn)而確定該數(shù)據(jù)應(yīng)該交付給當(dāng)前主機(jī)上的哪一個服務(wù)進(jìn)程。

【計算機(jī)網(wǎng)絡(luò) 】傳輸層——UDP,計算機(jī)網(wǎng)絡(luò),計算機(jī)網(wǎng)絡(luò),udp,網(wǎng)絡(luò)協(xié)議
因此端口號是屬于傳輸層的概念的,在傳輸層協(xié)議的報頭當(dāng)中就會包含與端口相關(guān)的字段。

在TCP/IP協(xié)議中,用“源IP地址”,“源端口號”,“目的IP地址”,“目的端口號”,“協(xié)議號”這樣一個五元組來標(biāo)識一個通信。

服務(wù)器就是通過“源IP地址”,“源端口號”,“目的IP地址”,“目的端口號”,“協(xié)議號”來識別一個通信的。

  • 先提取出數(shù)據(jù)當(dāng)中的目的IP地址和目的端口號,確定該數(shù)據(jù)是發(fā)送給當(dāng)前服務(wù)進(jìn)程的。
  • 然后提取出數(shù)據(jù)當(dāng)中的協(xié)議號,為該數(shù)據(jù)提供對應(yīng)類型的服務(wù)。
  • 最后提取出數(shù)據(jù)當(dāng)中的源IP地址和源端口號,將其作為響應(yīng)數(shù)據(jù)的目的IP地址和目的端口號,將響應(yīng)結(jié)果發(fā)送給對應(yīng)的客戶端進(jìn)程
    【計算機(jī)網(wǎng)絡(luò) 】傳輸層——UDP,計算機(jī)網(wǎng)絡(luò),計算機(jī)網(wǎng)絡(luò),udp,網(wǎng)絡(luò)協(xié)議
    通過netstat命令可以查看到這樣的五元組信息。
    -n:拒絕顯示別名,能顯示數(shù)字的全部轉(zhuǎn)換成數(shù)字。
    -l:僅列出處于LISTEN(監(jiān)聽)狀態(tài)的服務(wù)。
    -p:顯示建立相關(guān)鏈接的程序名。
    -t(tcp):僅顯示tcp相關(guān)的選項。
    -u(udp):僅顯示udp相關(guān)的選項。
    -a(all):顯示所有的選項,默認(rèn)不顯示LISTEN相關(guān)。
    【計算機(jī)網(wǎng)絡(luò) 】傳輸層——UDP,計算機(jī)網(wǎng)絡(luò),計算機(jī)網(wǎng)絡(luò),udp,網(wǎng)絡(luò)協(xié)議
    其中的Local Address表示的就是源IP地址和源端口號,F(xiàn)oreign Address表示的就是目的IP地址和目的端口號,而Proto表示的就是協(xié)議類型。

協(xié)議號和端口號

協(xié)議號是存在于IP報頭當(dāng)中的,其長度是8位。協(xié)議號指明了數(shù)據(jù)報所攜帶的數(shù)據(jù)是使用的何種協(xié)議,以便讓目的主機(jī)的IP層知道應(yīng)該將該數(shù)據(jù)交付給傳輸層的哪個協(xié)議進(jìn)行處理。

端口號是存在于UDP和TCP報頭當(dāng)中的,其長度是16位。端口號的作用是唯一標(biāo)識一臺主機(jī)上的某個進(jìn)程。

端口號區(qū)域

端口號的長度是16位,因此端口號的范圍是0 ~ 65535:

0 ~ 1023:知名端口號。比如HTTP,F(xiàn)TP,SSH等這些廣為使用的應(yīng)用層協(xié)議,它們的端口號都是固定的。

1024 ~ 65535:操作系統(tǒng)動態(tài)分配的端口號??蛻舳顺绦虻亩丝谔柧褪怯刹僮飨到y(tǒng)從這個范圍分配的。

常見端口號

有些服務(wù)器是非常常用的,這些服務(wù)器的端口號一般都是固定的:

  • ssh服務(wù)器,使用22端口。
  • ftp服務(wù)器,使用21端口。
  • telnet服務(wù)器,使用23端口。
  • http服務(wù)器,使用80端口。
  • https服務(wù)器,使用443端口。

我們可以查看/etc/services文件,該文件是記錄網(wǎng)絡(luò)服務(wù)名和它們對應(yīng)使用的端口號及協(xié)議。
【計算機(jī)網(wǎng)絡(luò) 】傳輸層——UDP,計算機(jī)網(wǎng)絡(luò),計算機(jī)網(wǎng)絡(luò),udp,網(wǎng)絡(luò)協(xié)議

pidof

pidof命令可以通過進(jìn)程名,查看進(jìn)程id。
【計算機(jī)網(wǎng)絡(luò) 】傳輸層——UDP,計算機(jī)網(wǎng)絡(luò),計算機(jī)網(wǎng)絡(luò),udp,網(wǎng)絡(luò)協(xié)議

pidof命令可以配合kill命令快速殺死一個進(jìn)程。
【計算機(jī)網(wǎng)絡(luò) 】傳輸層——UDP,計算機(jī)網(wǎng)絡(luò),計算機(jī)網(wǎng)絡(luò),udp,網(wǎng)絡(luò)協(xié)議

UDP

UDP (User Datagram Protocol) 是在 OSI 七層模型中的傳輸層上的一種協(xié)議。它和 TCP 類似是用來傳輸數(shù)據(jù)的,但是 UDP 更加簡單、高效、靈活,適用于對數(shù)據(jù)傳輸速度要求較高,但對可靠性要求不高的場景,例如游戲、音頻、視頻等實時通訊場景。

網(wǎng)絡(luò)套接字編程時用到的各種接口,是位于應(yīng)用層和傳輸層之間的一層系統(tǒng)調(diào)用接口,這些接口是系統(tǒng)提供的,我們可以通過這些接口搭建上層應(yīng)用,比如HTTP。我們經(jīng)常說HTTP是基于TCP的,實際就是因為HTTP在TCP套接字編程上搭建的。

而socket接口往下的傳輸層實際就是由操作系統(tǒng)管理的,因此UDP是屬于內(nèi)核當(dāng)中的,是操作系統(tǒng)本身協(xié)議棧自帶的,其代碼不是由上層用戶編寫的,UDP的所有功能都是由操作系統(tǒng)完成,因此網(wǎng)絡(luò)也是操作系統(tǒng)的一部分。

UDP協(xié)議格式

【計算機(jī)網(wǎng)絡(luò) 】傳輸層——UDP,計算機(jī)網(wǎng)絡(luò),計算機(jī)網(wǎng)絡(luò),udp,網(wǎng)絡(luò)協(xié)議

  • 16位源端口號:表示數(shù)據(jù)從哪里來。
  • 16位目的端口號:表示數(shù)據(jù)要到哪里去。
  • 16位UDP長度:表示整個數(shù)據(jù)報(UDP首部+UDP數(shù)據(jù))的長度。
  • 16位UDP檢驗和:如果UDP報文的檢驗和出錯,就會直接將報文丟棄。

我們在應(yīng)用層看到的端口號大部分都是16位的,其根本原因就是因為傳輸層協(xié)議當(dāng)中的端口號就是16位的。

我們在學(xué)習(xí)協(xié)議的時候通常要弄清楚兩個問題

問題1:UDP如何將報頭和有效載荷進(jìn)行分離?

UDP的報頭當(dāng)中只包含四個字段,每個字段的長度都是16位,總共8字節(jié)。因此UDP采用的實際上是一種定長報頭,UDP在讀取報文時讀取完前8個字節(jié)后剩下的就都是有效載荷了。

問題2:UDP如何決定將有效載荷交付給上層的哪一個協(xié)議?

UDP上層也有很多應(yīng)用層協(xié)議,因此UDP必須想辦法將有效載荷交給對應(yīng)的上層協(xié)議,也就是交給應(yīng)用層對應(yīng)的進(jìn)程。

應(yīng)用層的每一個網(wǎng)絡(luò)進(jìn)程都會綁定一個端口號,服務(wù)端進(jìn)程必須顯示綁定一個端口號,客戶端進(jìn)程則是由系統(tǒng)動態(tài)綁定的一個端口號。UDP就是通過報頭當(dāng)中的目的端口號來找到對應(yīng)的應(yīng)用層進(jìn)程的。

報頭的數(shù)據(jù)結(jié)構(gòu)其實就是結(jié)構(gòu)體
【計算機(jī)網(wǎng)絡(luò) 】傳輸層——UDP,計算機(jī)網(wǎng)絡(luò),計算機(jī)網(wǎng)絡(luò),udp,網(wǎng)絡(luò)協(xié)議

UDP數(shù)據(jù)封裝:

當(dāng)應(yīng)用層將數(shù)據(jù)交給傳輸層后,在傳輸層就會創(chuàng)建一個UDP報頭類型的變量,然后填充報頭當(dāng)中的各個字段,此時就得到了一個UDP報頭。

此時操作系統(tǒng)再在內(nèi)核當(dāng)中開辟一塊空間,將UDP報頭和有效載荷拷貝到一起,此時就形成了UDP報文。

UDP協(xié)議的特點

UDP傳輸?shù)倪^程就類似于寄信,其特點如下:

  • 無連接:知道對端的IP和端口號就直接進(jìn)行數(shù)據(jù)傳輸,不需要建立連接。
  • 不可靠:沒有確認(rèn)機(jī)制,沒有重傳機(jī)制;如果因為網(wǎng)絡(luò)故障該段無法發(fā)到對方,UDP協(xié)議層也不會給應(yīng)用層返回任何錯誤信息。
  • 面向數(shù)據(jù)報:不能夠靈活的控制讀寫數(shù)據(jù)的次數(shù)和數(shù)量。
  • 無序性:UDP 協(xié)議是無序的,發(fā)送的數(shù)據(jù)可能會經(jīng)過不同的路徑到達(dá)目標(biāo)地址,因此接收方可能無法按照發(fā)送順序?qū)?shù)據(jù)進(jìn)行組裝。

面向數(shù)據(jù)報:應(yīng)用層交給UDP多長的報文,UDP就原樣發(fā)送,既不會拆分,也不會合并,這就叫做面向數(shù)據(jù)報。

UDP的緩沖區(qū)

  • UDP沒有真正意義上的發(fā)送緩沖區(qū)。調(diào)用sendto會直接交給內(nèi)核,由內(nèi)核將數(shù)據(jù)傳給網(wǎng)絡(luò)層協(xié)議進(jìn)行后續(xù)的傳輸動作。
  • UDP具有接收緩沖區(qū)。但是這個接收緩沖區(qū)不能保證收到的UDP報的順序和發(fā)送UDP報的順序一致;如果緩沖區(qū)滿了,再到達(dá)的UDP數(shù)據(jù)就會被丟棄。
  • UDP的socket既能讀,也能寫,因此UDP是全雙工的。

接收緩沖區(qū)的作用

如果UDP沒有接收緩沖區(qū),那么就要求上層及時將UDP獲取到的報文讀取上去,如果一個報文在UDP沒有被讀取,那么此時UDP從底層獲取上來的報文數(shù)據(jù)就會被迫丟棄。

一個報文從一臺主機(jī)傳輸?shù)搅硪慌_主機(jī),在傳輸過程中會消耗主機(jī)資源和網(wǎng)絡(luò)資源。如果UDP收到一個報文后僅僅因為上次收到的報文沒有被上層讀取,而被迫丟棄一個可能并沒有錯誤的報文,這就是在浪費主機(jī)資源和網(wǎng)絡(luò)資源。

因此UDP本身是會維護(hù)一個接收緩沖區(qū)的,當(dāng)有新的UDP報文到來時就會把這個報文放到接收緩沖區(qū)當(dāng)中,此時上層在讀數(shù)據(jù)的時就直接從這個接收緩沖區(qū)當(dāng)中進(jìn)行讀取就行了,而如果UDP接收緩沖區(qū)當(dāng)中沒有數(shù)據(jù)那上層在讀取時就會被阻塞。因此UDP的接收緩沖區(qū)的作用就是,將接收到的報文暫時的保存起來,供上層讀取。

UDP傳輸數(shù)據(jù)注意事項

需要注意的是,UDP協(xié)議報頭當(dāng)中的UDP最大長度是16位的,因此一個UDP報文的最大長度是64K(包含UDP報頭的大?。?。

然而64K在當(dāng)今的互聯(lián)網(wǎng)環(huán)境下,是一個非常小的數(shù)字。如果需要傳輸?shù)臄?shù)據(jù)超過64K,就需要在應(yīng)用層進(jìn)行手動分包,多次發(fā)送,并在接收端進(jìn)行手動拼裝。文章來源地址http://www.zghlxwxcb.cn/news/detail-738539.html

到了這里,關(guān)于【計算機(jī)網(wǎng)絡(luò) 】傳輸層——UDP的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 計算機(jī)網(wǎng)絡(luò)——18無連接傳輸U(kuò)DP

    計算機(jī)網(wǎng)絡(luò)——18無連接傳輸U(kuò)DP

    “盡力而為的”服務(wù),報文段可能 丟失 送到應(yīng)用進(jìn)程的報文段亂序 無連接 UDP發(fā)送端和接收端之間沒有握手 每個UDP報文段都被獨立的處理 UDP被用于 流媒體 DNS SNMP 在UDP上實現(xiàn)可靠傳輸 在應(yīng)用層增加可靠性 應(yīng)用特定的差錯格式 為什么要有UDP 不建立連接(會增加延時) 簡單:

    2024年02月20日
    瀏覽(24)
  • 【計算機(jī)網(wǎng)絡(luò)】UDP協(xié)議詳解

    【計算機(jī)網(wǎng)絡(luò)】UDP協(xié)議詳解

    目錄 前言? ? ?? 端口號的拓展 端口號范圍劃分 netstat pidof UDP協(xié)議 UDP協(xié)議端格式 UDP的特點 面向數(shù)據(jù)報 UDP的緩沖區(qū) UDP使用注意事項 基于UDP的應(yīng)用層協(xié)議 ? ??我們前面講完了 http和https協(xié)議 ,它們都屬于 應(yīng)用層 ,按照TCP/IP五層模型,我們下一層該講解 傳輸層 了。傳輸層又

    2024年02月09日
    瀏覽(22)
  • 【計算機(jī)網(wǎng)絡(luò)】UDP協(xié)議概述

    UDP協(xié)議(User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議):面向無連接的協(xié)議,不保證可靠性,但是具有較低的延遲和更快的傳輸速度,常用于實時音視頻傳輸、廣播和多播等場景。 基于數(shù)據(jù)報文 :UDP把應(yīng)用層提交給它的數(shù)據(jù)報文,添加上UDP首部后傳輸,每個UDP數(shù)據(jù)報的大小不能超過

    2024年02月06日
    瀏覽(24)
  • 【計算機(jī)網(wǎng)絡(luò)篇】UDP協(xié)議

    【計算機(jī)網(wǎng)絡(luò)篇】UDP協(xié)議

    ?作者簡介:大家好,我是小楊 ??個人主頁:「小楊」的csdn博客 ??希望大家多多支持??一起進(jìn)步呀! UDP(User Datagram Protocol)是一種無連接的傳輸層協(xié)議,它提供了一種簡單的、不可靠的數(shù)據(jù)傳輸服務(wù)。 UDP 提供了不面向連接的通信,且不對傳送的數(shù)據(jù)報進(jìn)行可靠的保證,

    2024年02月12日
    瀏覽(19)
  • 計算機(jī)網(wǎng)絡(luò)——第四層:傳輸層以及TCP UDP

    計算機(jī)網(wǎng)絡(luò)——第四層:傳輸層以及TCP UDP

    ????????連接模式的傳輸。 ????????保證按順序傳送數(shù)據(jù)包。 ????????流量控制、錯誤檢測和在數(shù)據(jù)包丟失時的重傳。 ????????用于需要可靠傳輸?shù)膽?yīng)用,如網(wǎng)絡(luò)(HTTP/HTTPS)、電子郵件(SMTP, IMAP, POP3)和文件傳輸(FTP)。 ????????數(shù)據(jù)報模式。 ???????

    2024年01月21日
    瀏覽(24)
  • 【計算機(jī)網(wǎng)絡(luò)】UDP/TCP協(xié)議

    【計算機(jī)網(wǎng)絡(luò)】UDP/TCP協(xié)議

    我們先來看一張圖; 在研究UDP前我們先來回答兩個問題: 有效載荷如何與報頭分離? 如何將有效載荷交付? 第一個問題由于在報頭里面有16位UDP長度(表示的是有效載荷+報頭長度),而報頭長度8字節(jié)是固定的,所以分離時我們只需要用整個報文的大小減去固定的8字節(jié)報頭數(shù)據(jù)即

    2024年02月08日
    瀏覽(65)
  • 【計算機(jī)網(wǎng)絡(luò)】UDP/TCP 協(xié)議

    【計算機(jī)網(wǎng)絡(luò)】UDP/TCP 協(xié)議

    端口號(Port)標(biāo)識了一個主機(jī)上進(jìn)行通信的不同的應(yīng)用程序。在 TCP/IP 協(xié)議中, 用 “源IP”, “源端口號”, “目的IP”, “目的端口號”, “協(xié)議號” 這樣一個五元組來標(biāo)識一個通信(可以通過netstat -n查看)。 0 - 1023: 知名端口號,HTTP, FTP, SSH 等這些廣為使用的應(yīng)用層協(xié)議,它們的

    2024年03月14日
    瀏覽(20)
  • 【計算機(jī)網(wǎng)絡(luò)】UDP協(xié)議與TCP協(xié)議

    【計算機(jī)網(wǎng)絡(luò)】UDP協(xié)議與TCP協(xié)議

    端口號(Port)標(biāo)識了一個主機(jī)上進(jìn)行通信的不同的應(yīng)用程序; 在TCP/IP協(xié)議中, 用 “源IP”, “源端口號”, “目的IP”, “目的端口號”, “協(xié)議號” 這樣一個五元組來標(biāo)識一個通信(可以通過netstat -n查看); 服務(wù)器的同一個服務(wù)會使用多進(jìn)程或者多線程的方式,對于不同的客戶端請

    2024年01月25日
    瀏覽(42)
  • [計算機(jī)網(wǎng)絡(luò)] 實驗3 UDP協(xié)議分析

    [計算機(jī)網(wǎng)絡(luò)] 實驗3 UDP協(xié)議分析

    實驗?zāi)康?掌握運輸層 UDP 協(xié)議內(nèi)容 理解 UDP 協(xié)議的工作原理 了解應(yīng)用層和運輸層協(xié)議的關(guān)系 實驗內(nèi)容 1.DNS查詢UDP數(shù)據(jù)分析 要求 : 使用 t c p d u m p tcpdump t c p d u m p 抓取 D N S DNS D N S 查詢網(wǎng)絡(luò)通信數(shù)據(jù)包,利用 w i r e s h a r k wireshark w i r e s h a r k 分析 U D P UDP U D P 數(shù)據(jù) 例如 : d i

    2023年04月26日
    瀏覽(46)
  • 【計算機(jī)網(wǎng)絡(luò)】TCP協(xié)議與UDP協(xié)議詳解

    【計算機(jī)網(wǎng)絡(luò)】TCP協(xié)議與UDP協(xié)議詳解

    文章目錄 一、傳輸層 1、1 再次理解傳輸層 1、2 再次理解端口號 1、2、1?端口號范圍劃分 1、2、2?認(rèn)識知名端口號 1、3 網(wǎng)絡(luò)常用指令netstat 與 pidof 二、UDP協(xié)議 2、1 UDP協(xié)議的報文 2、2 UDP的特點? 2、3 UDP的緩沖區(qū) 三、TCP協(xié)議 3、1 TCP協(xié)議的報文 3、2 確認(rèn)應(yīng)答 3、3?按序到達(dá) 3、

    2024年02月08日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包