UDP數據報結構分析(面試重點)

? ? ? ? 在傳輸層中有UDP和TCP兩個重要的協議,下面將針對UDP數據報的結構進行分析

UDP結構圖示

?UDP報頭結構的分析

? ? ? ? UDP報頭有4個屬性,分別是源端口,目的端口,UDP報文長度,校驗和,它們都占16位2個字節,所以取值范圍是0-65535

? ? ? ? 一.源端口

? ? ? ? ? ? ? ? 源端口表示發送數據時,發送方的端口號,由于占16位2個字節,所以取值范圍是0-65535,所以一個合法的端口號,有效范圍就是0-65535不能再大了(實際上0是不使用的),

????????????????知名端口號

? ? ? ? ? ? ? ? ? ? ? ? 在1-1024這個范圍的端口號,系統賦予了特定的含義,一般也不建議使用,這些端口號已經給一些名氣比較大的服務器提前安排好了(坐飛機的頭等艙一樣)

? ? ? ? 二.目的端口號

????????????????目的端口號表示發送數據時,接收方的端口號,其余的特點和源端口號相同

? ? ? ? 三.UDP報文長度

? ? ? ? ? ? ? ? 表示UDP數據報的長度,由于占用兩個字節,所以也表示一個UDP數據報能傳輸的數據是有限制的,限制在大約64kb的數據,所以當我們要傳輸的數據大于64kb時就不建議用UDP協議的方式來傳輸數據了,建議采用TCP協議的方式傳輸,因為TCP數據報傳輸數據是不限制大小的

? ? ? ? 四.校驗和

? ? ? ? ? ? ? ? 當我們在進行網絡傳輸數據的過程中,本質上就是光信號/電信號/電磁波的數據傳輸,很可能就會受到外界的干擾,數據可能會出錯,比如,本來你要傳輸的數據是0變成了1,本來是1變成了0(發生了比特翻轉),此時數據就出錯了,所以接收方在收到數據了以后就需要先確認一下,這個數據是否是一個錯誤的數據,校驗和就是簡單有效的方式

? ? ? ? ? ? ? ? 校驗和的工作原理

? ? ? ? 校驗和會把UDP數據報中的每一個字節,都依次進行累加,把累加的結果,保存在兩個字節的變量中,加著加著可能就溢出了,但溢出也無所謂,將所有的字節都加了一遍,最終就獲得了校驗和

????????在傳輸數據的時候,就會把原始數據和校驗和一起傳遞過去,接收方收到數據,同樣也收到了發送方送過來的校驗和,接收方按同樣的方式再算一遍,獲得了新的校驗和,將新的校驗和與舊的校驗和進行對比,如果相同就說明數據正確,反之則不正確,要重新發送數據

? ? ? ? 此時可能會有一些高手想到,就算校驗和相同也可能傳輸的數據是錯誤的,因為二進制數據可能會有一個位置從0變為了1,另一個位置從1變為了0,這樣算出來的校驗和還是相同的,但傳輸的數據是錯誤的

? ? ? ? 確實會有這樣的情況,但這只能算是一個誤差,誤差是不可避免的,因為本來出現比特翻轉就是一個小概率事件,而發生兩次比特翻轉并且還剛好抵消,這更是非常小的概率了,所以我們只將這種情況看作是一個誤差。

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

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

相關文章

.devos勒索病毒解密方法|勒索病毒解決|勒索病毒恢復|數據庫修復

導言: 隨著科技的迅猛發展,網絡安全問題也日益凸顯。近期,一種名為 .devos 的勒索病毒在網絡安全領域引起了廣泛的關注和警惕。本文91數據恢復將 探討如何解密被其加密的數據文件,并提供預防措施以避免受到類似威脅的侵害。 如不幸…

【java面向對象中static關鍵字】

提綱 static修飾成員變量static修飾成員變量的應用場景static修飾成員方法static修飾成員方法的應用場景static的注意事項static的應用知識:代碼塊static的應用知識:單例設計模式 static靜態的意思,可以修飾成員變量,成員方法&a…

FPGA_學習_14_第一個自寫模塊的感悟和ila在線調試教程與技巧(尋找APD的擊穿偏壓)

前一篇博客我們提到了,如果要使用算法找到Vbr,通過尋找APD采集信號的噪聲方差的劇變點去尋找Vbr是一個不錯的方式。此功能的第一步是在FPGA中實現方差的計算,這個我們已經在上一篇博客中實現了。 繼上一篇博客之后,感覺過了很久了…

【Image captioning】ruotianluo/self-critical.pytorch之1—數據集的加載與使用

【Image captioning】ruotianluo/self-critical.pytorch之1—數據集的加載與使用 作者:安靜到無聲 個人主頁 數據加載程序示意圖 使用方法 示例代碼 #%%from __future__ import absolute_import from __future__ import division from __future__ import print_…

Flink-網絡流控及反壓剖析

參考: Apache Flink學習網

開源,微信小程序 美食便簽地圖(FoodNoteMap)的設計與開發

目錄 0 前言 1 美食便簽地圖簡介 2 美食便簽地圖小程序端開發 2.1技術選型 2.2前端UI設計 2.3主頁界面 2.4個人信息界面 2.5 添加美食界面 2.6美食便簽界面 2.8 美食好友界面 2.9 美食圈子界面 2.10 子頁面-店鋪詳情界面 2.11 后臺數據緩存 2.12 訂閱消息通知 2.1…

Redis為什么能如此之快

推薦閱讀 AI文本 OCR識別最佳實踐 AI Gamma一鍵生成PPT工具直達鏈接 玩轉cloud Studio 在線編碼神器 玩轉 GPU AI繪畫、AI講話、翻譯,GPU點亮AI想象空間 資源分享 「java、python面試題」來自UC網盤app分享,打開手機app,額外獲得1T空間 https://dr…

“深入探索JVM內部機制:解密Java虛擬機原理“

標題:深入探索JVM內部機制:解密Java虛擬機原理 摘要:本文將深入探索Java虛擬機(JVM)的內部機制,揭示其工作原理和關鍵組成部分,包括類加載、內存管理、垃圾回收、即時編譯和運行時數據區域等。…

探索區塊鏈世界:去中心化應用(DApp)的嶄新前景

隨著科技的不斷發展,區塊鏈技術逐漸引領著數字時代的潮流。在這個充滿創新和變革的領域中,去中心化應用(DApp)成為了備受矚目的焦點。DApp 不僅改變了傳統應用程序的范式,還在金融、社交、游戲等多個領域展現出了廣闊的…

GRPC 鏈接 NODE 和 GOLANG

GRPC 鏈接 NODE 和 GOLANG GRPC 了解 什么是GRPC gRPC 采用了 Protocol Buffers 作為數據序列化和反序列化的協議,可以更快速地傳輸數據,并支持多種編程語言的跨平臺使用gRPC 提供“統一水平層”來對此類問題進行抽象化。 開發人員在本機平臺中編寫專…

打造專屬照片分享平臺:快速上手Piwigo網頁搭建

文章目錄 通過cpolar分享本地電腦上有趣的照片:部署piwigo網頁前言1.Piwigo2. 使用phpstudy網頁運行3. 創建網站4. 開始安裝Piwogo 總結 🍀小結🍀 🎉博客主頁:小智_x0___0x_ 🎉歡迎關注:&#x…

深度學習1:通過模型評價指標優化訓練

P(Positive)表示預測為正樣本,N(negative)表示預測為負樣本,T(True)表示預測正確,F(False)表示預測錯誤。 TP:正樣本預測正確的數量(正確檢測) FP:負樣本預測正確數量(誤檢測) TN…

【AI實戰】BERT 文本分類模型自動化部署之 dockerfile

【AI實戰】BERT 文本分類模型自動化部署之 dockerfile BERTBERT 文本分類模型基于中文預訓練bert的文本分類模型針對多分類模型的loss函數樣本不均衡時多標簽分類時 dockerfile編寫 dockerfilebuild鏡像運行docker測試服務 參考 本文主要介紹: 基于BERT的文本分類模…

卷積神經網絡CNN

卷積神經網絡CNN 1 應用領域1 檢測任務2 分類和檢索3 超分辨率重構4 醫學任務5 無人駕駛6 人臉識別 2 卷積的作用3 卷積特征值計算方法4 得到特征圖表示5 步長和卷積核大小對結果的影響1 步長2 卷積核 6 邊緣填充方法7 特征圖尺寸計算與參數共享8 池化層的作用9 整體網絡架構10…

【GitLab私有倉庫】如何在Linux上用Gitlab搭建自己的私有庫并配置cpolar內網穿透?

文章目錄 前言1. 下載Gitlab2. 安裝Gitlab3. 啟動Gitlab4. 安裝cpolar5. 創建隧道配置訪問地址6. 固定GitLab訪問地址6.1 保留二級子域名6.2 配置二級子域名 7. 測試訪問二級子域名 前言 GitLab 是一個用于倉庫管理系統的開源項目,使用Git作為代碼管理工具&#xf…

ngModel和formControlName處理表單控件

ngModel 和 formControlName 不能同時在同一個表單控件上使用; 二者都用于在 Angular 中處理表單控件的值,但是它們的底層實現方式不同。 ngModel 是 Angular 提供的雙向數據綁定指令,它可以將表單控件的值與組件類中的屬性進行雙向綁定。當…

軟考筆記——10.項目管理

進度管理 進度管理就是采用科學的方法,確定進度目標,編制進度計劃和資源供應計劃,進行進度控制,在與質量、成本目標協調的基礎上,實現工期目標。 具體來說,包括以下過程: (1) 活動定義&#…

HLS實現FIR低通濾波器+System Generator仿真

硬件:ZYNQ7010 軟件:MATLAB 2019b、Vivado 2017.4、HLS 2017.4、System Generator 2017.4 1、MATLAB設計低通濾波器 FPGA系統時鐘 50MHz,也是采樣頻率。用 MATLAB 生成 1MHz 和 10MHz 的正弦波疊加的信號,并量化為 14bit 整數。把…

css 用過渡實現,鼠標離開li時,背景色緩慢消息的樣式

要實現鼠標懸停時背景顏色變為黃色,鼠標離開時背景顏色慢慢消失并變回白色的效果, 可以使用CSS的過渡(transition)屬性 li {background: #fff;color: #000;transition: background 0.5s ease-out; }li:hover {background: #fbb31…

Web網頁瀏覽器遠程訪問jupyter notebook服務器【內網穿透】

文章目錄 前言1. Python環境安裝2. Jupyter 安裝3. 啟動Jupyter Notebook4. 遠程訪問4.1 安裝配置cpolar內網穿透4.2 創建隧道映射本地端口 5. 固定公網地址 前言 Jupyter Notebook,它是一個交互式的數據科學和計算環境,支持多種編程語言,如…