【計算機網絡】Udp詳解

前言

上幾文章我們講解了應用層協議Http和Https,要知道應用層協議有很多,這些都是程序員自己定制的,而真正要傳輸的時候,是要在操作系統的傳輸層進行的,今天我們就來學習一下傳輸層協議Udp的

標識一個通信

要進行跨網絡通信,就要標識一個網絡通信的唯一性

通常需要:源IP、目的IP、協議號、源端口號、目的端口號這五個信息來標識一個網絡通信。

端口劃分

  • 0-1023
    屬于知名端口號,Http、FTP、SSH等廣為使用的應用層協議,端口號是固定的。

    • SSH,使用22端口
    • FTP,使用21端口
    • telnet,使用23端口
    • Http,使用80端口
    • Https,使用443端口

可以使用以下命令查看知名端口號:

cat /etc/services
  • 1024-65535
    操作系統動態分配對策端口號,客戶端程序的端口號就是從這里面隨機分配的。

我們設計端口的時候,要避開這些知名端口。

netstat

是一個查看網絡狀態的工具

選項:
- n,拒絕顯示別名,能夠數字化就全數字化
- l ,只列出在監聽狀態(listen)的服務狀態
- p,顯示建立相關鏈接的程序名
- t ,只顯示tcp相關
- u,只顯示udp相關
- a,顯示所有選項,默認不顯示listen相關

pidof

通過進程名查看進程id

Udp協議端格式

在這里插入圖片描述

可以看到,Udp報頭長度總共八個字節,其中,十六位Udp長度表示數據報的報頭+報文總共的大小,十六位校驗和出錯會直接將數據報丟棄。

而且由于十六位Udp長度的限制,TCP能傳輸的大小是有限的。一個Udp能傳輸的數據最大長度是64k,超過就需要在應用層手動分包多次傳送,并在接收端手動拼裝。

Udp特點

  • 無連接,不需要建立連接,知道ip和端口號就能傳輸
  • 不可靠,沒有確認傳傳機制,udp不反回任何錯誤信息
  • 面向數據報,不能靈活控制讀寫數據的次數和數量
  • 簡單。

面向數據報

應用層交給Udp多長的報文,Udp就要直接發送,不能拆分和并,例如:

發送端調用sendto,發送100字節,那么接收端必須調用一次recvfrom100字節,不能循環調用recvfrom,每次10字節

Udp緩沖區

Udp沒有真正的發送緩沖區,調用sendto會直接將要發送的數據交給內核,由內核將數據傳輸給網絡并進行后續動作

Udp具有接收緩沖區,但是這個緩沖區不保證Udp數據報的順序,如果緩沖區滿了,照樣會被丟棄

也因此,Udp socket 既可以寫也可以讀,是全雙工的。

基于Udp的協議

  • NFS,網絡文件系統
  • TFTP,簡單文件傳輸協議
  • DHCP,動態主機配置協議
  • BOOTP,啟動協議
  • DNS,域名解析協議

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/37996.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/37996.shtml
英文地址,請注明出處:http://en.pswp.cn/news/37996.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL 深度分頁優化

MySQL 深度分頁優化 理解總結: 分頁使用limit ,前提是要排序好的數據,這時候,就推薦使用帶索引的字段排序,因為索引是天然有序的,不需要像是無序的字段一樣,全表掃描,如果太大的話…

“深入探究JVM:解密Java虛擬機的工作原理“

標題:深入探究JVM:解密Java虛擬機的工作原理 摘要:本文將深入探究Java虛擬機(JVM)的工作原理,包括JVM的組成部分、類加載過程、運行時數據區域、垃圾回收機制以及即時編譯器等。通過解密JVM的工作原理&…

js加密解決方案1:在AutoJS中實現Promise的必要性、好處與缺點

AutoJS是一款強大的Android自動化工具,可以幫助用戶編寫腳本來實現手機自動化操作。然而,它的加密代碼只支持ES5語法,不支持許多ES6的新特性,如Promise等功能。如果想在ES5語法環境中使用ES6的一些新特性,就需要自己實…

汽車上的電源模式詳解

① 一般根據鑰匙孔開關的位置來確定整車用電類別,汽車上電源可以分為常電,IG電,ACC電 1)常電。常電表示蓄電池和發電機輸出直接供電,即使點火開關在OFF檔時,也有電量供應。一般來講模塊的記憶電源及需要在車…

Python系統學習1-7-字典

一、字典 1、概念及內存圖 列表:由一系列變量組成的可變序列容器字典:由一系列鍵值對組成的可變散列容器字典優勢:利用(內存)空間,換取(CPU查找)時間 鍵key 必須唯一且為不…

hbase 報錯 Master passed us a different hostname to use; was=

原因 wsl2的 /etc/hosts 配置的不兼容,我這里是ubuntu22 命令行輸入hostname 看輸出什么,比如輸出 aaa 那么替換/etc/hosts 127.0.0.1 aaa

vb+sql醫院門診管理系統設計與系統

摘要 信息時代已經來臨,計算機應用于醫院的日常管理,為醫院的現代化帶來了從未有過的動力和機遇,為醫療衛生領域的發展提供了無限的潛力。采用計算機管理信息系統已成為醫院管理科學化和現代化的標志,給醫院帶來了明顯的經濟效益和社會效益。 本文介紹了數據庫管理系統的…

每天一個知識點——L2R

面試的時候,雖然做過醫療文獻搜索,也應用過L2R的相關模型,但涉及到其中的一些技術細節,都會成為我拿不下offer永遠的痛。也嘗試過去理解去背下一些知識點,終究沒有力透紙背,隨著時間又開始變得模糊&#xf…

海量數據遷移,亞馬遜云科技云數據庫服務為大庫治理提供新思路

1.背景 目前,文檔型數據庫由于靈活的schema和接近關系型數據庫的訪問特點,被廣泛應用,尤其是游戲、互聯網金融等行業的客戶使用MongoDB構建了大量應用程序,比如游戲客戶用來處理玩家的屬性信息;又如股票APP用來存儲與時…

Stable Diffusion - 幻想 (Fantasy) 風格與糖果世界 (Candy Land) 人物提示詞配置

歡迎關注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132212193 圖像由 DreamShaper8 模型生成,融合糖果世界。 幻想 (Fantasy) 風格圖像是一種以想象力為主導的藝術形式,創造了…

27.Netty源碼之FastThreadLocal

highlight: arduino-light FastThreadLocal FastThreadLocal 的實現與 ThreadLocal 非常類似,Netty 為 FastThreadLocal 量身打造了 FastThreadLocalThread 和 InternalThreadLocalMap 兩個重要的類。下面我們看下這兩個類是如何實現的。 FastThreadLocalThread 是對…

【論文閱讀】NoDoze:使用自動來源分類對抗威脅警報疲勞(NDSS-2019)

NODOZE: Combatting Threat Alert Fatigue with Automated Provenance Triage 伊利諾伊大學芝加哥分校 Hassan W U, Guo S, Li D, et al. Nodoze: Combatting threat alert fatigue with automated provenance triage[C]//network and distributed systems security symposium.…

uniapp安卓ios打包上線注意事項

1、安卓包注意事項 隱私政策彈框提示 登錄頁面隱私政策默認不勾選隱私政策同意前不能獲取用戶權限APP啟動時,在用戶授權同意隱私政策前,APP及SDK不可以提前收集和使用IME1、OAID、IMS1、MAC、應用列表等信息 ios包注意事項 需要有注銷賬號的功能 3、安…

前后端分離------后端創建筆記(05)用戶列表查詢接口(上)

本文章轉載于【SpringBootVue】全網最簡單但實用的前后端分離項目實戰筆記 - 前端_大菜007的博客-CSDN博客 僅用于學習和討論,如有侵權請聯系 源碼:https://gitee.com/green_vegetables/x-admin-project.git 素材:https://pan.baidu.com/s/…

vue3中簡單快速的做個表單輸入框驗證

<el-form ref"formRef" :model"processingProgressForm"><el-form-item label"服務商名稱:" :label-width"120" prop"rejectRemarks" :rules"[{ required: true, message: 服務商名稱不能為空 }]">&l…

通過網關訪問微服務,一次正常,一次不正常 (nacos配置的永久實例卻未啟動導致)

微服務直接訪問沒問題&#xff0c;通過網關訪問&#xff0c;就一次正常訪問&#xff0c;一次401錯誤&#xff0c;交替正常和出錯 負載均衡試了 路由配置檢查了 最后發現nacos下竟然有2個order服務實例&#xff0c;我明明只開啟了一個呀 原來之前的8080端口微服務還殘留&…

基于架構的軟件開發方法

基于架構的軟件開發方法 基于架構的軟件開發方法是由架構驅動的&#xff0c;即指由構成體系結構的商業、質量和功能需求的組合驅動的。使用ABSD 方法&#xff0c;設計活動可以從項目總體功能框架明確就開始&#xff0c;這意味著需求抽取和分析還沒有完成(甚至遠遠沒有完成)&am…

純C#使用Visionpro工具2 操作斑點工具

結果圖 通過斑點工具中非圓性找取圓特征 代碼 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.For…

ApacheCon - 云原生大數據上的 Apache 項目實踐

Apache 軟件基金會的官方全球系列大會 CommunityOverCode Asia&#xff08;原 ApacheCon Asia&#xff09;首次中國線下峰會將于 2023 年 8 月 18-20 日在北京麗亭華苑酒店舉辦&#xff0c;大會含 17 個論壇方向、上百個前沿議題。 字節跳動云原生計算團隊在此次 CommunityOve…