《計算機網絡》實驗報告三 UDP協議分析

目? 錄

1、實驗目的

2、實驗環境

3、實驗內容

3.1 DNS查詢UDP數據分析

3.2 QQ通信UDP數據分析

4、實驗結果與分析

4.1 DNS查詢UDP數據分析

4.2 QQ通信UDP數據分析

4.3 根據捕獲的數據包,分析UDP的報文結構,將UDP協議中個字段名,字段值,字段信息填入下表

4.4 通過分析實驗結果,UDP報文結構由哪幾部分組成,其功能是什么

5、實驗小結

5.1 問題與解決辦法:

5.2 心得體會:


1、實驗目的

? ? ? ? 1、了解和掌握運輸層UDP協議內容

? ? ? ? 2、理解UDP協議的工作原理

? ? ? ? 3、了解應用層和運輸層協議的關系


2、實驗環境

? ? ? ? 1、硬件要求:阿里云云主機ECS 一臺、筆記本電腦一臺

? ? ? ? 2、軟件要求:Linux/ Windows 操作系統


3、實驗內容

????????UDP(User Datagram Protocol)用戶數據報協議是一種無連接的運輸層協議,提供面向事物的簡單不可靠信息傳送服務,服務于很多應用層協議包括網絡文件系統(NFS),簡單的網絡管理協議(SNMP),域名系統(DNS)以及簡單的文件傳輸系統(TFTP)。與TCP不同UDP并不提供對IP協議的可靠機制,控制以及錯誤恢復等。由于UDP比較簡單,UDP頭包含很少的字節,比TCP負載消耗少。

3.1 DNS查詢UDP數據分析

????????使用tcpdump抓取DNS查詢網絡通信數據包,利用wireshark分析UDP數據。

????????例如:

dig www.xju.edu.cn

3.2 QQ通信UDP數據分析

????????1. 利用wireshark抓取QQ網絡通信數據包,分析UDP數據。

????????2. QQ客戶端之間消息傳送采用了UDP。國內網絡環境非常復雜而且很多用戶采用的方式是通過代理服務器共享一條線路上網方式,UDP包能夠穿透大部分的代理服務器,因此QQ選擇了UDP作為客戶之間的通信協議。因此我們打開QQ聊天窗口開啟捕獲,與好友進行對話,停止捕獲就得到了UDP數據包。


4、實驗結果與分析

4.1 DNS查詢UDP數據分析

????????1. 由于系統中沒有dig命令,因此需要使用如下語句進行下載。

yum install dnf

dnf install bind-utils

????????2. 如下圖所示則為dig命令下載成功。

????????3. 利用dig解析新疆大學網站的DNS。

dig www.xju.edu.cn

????????4. 利用tcpdump抓取DNS查閱網絡通信數據包,并以dns.cap文件保存下來。

tcpdump -i eth0 -w dns.cap

????????5. 使用Xftp7將dns.cap文件移動到桌面上。

????????6. 在Wireshark中打開桌面上的dns.cap文件進行分析。

????????7. 在過濾器中輸入以下語句過濾出DNS數據包。

dns

4.2 QQ通信UDP數據分析

????????1. 打開Wireshark,由于筆記本電腦連接的是WIFI,所以點擊WLAN進行數據包捕獲。

????????2. 正在進行數據包的抓取。

????????3. 點擊Wireshark左上方的紅色方框按鈕,停止抓包。

????????4. 使用過濾器得到QQ網絡通信數據包時在應用顯示過濾器輸入以下語句。

oicq

????????5. 點擊OICQ后數據段中的QQ為十六進制。

????????6. 使用過濾器得到UDP數據包時在應用顯示過濾器輸入以下語句。

udp

????????7. 點擊Internet Protocol Version后進行UDP相關數據的查看。

4.3 根據捕獲的數據包,分析UDP的報文結構,將UDP協議中個字段名,字段值,字段信息填入下表

????????1. 對抓取的數據包進行網站通信的UDP數據分析,填寫表格內容。

????????2. 對抓取的數據包進行QQ通信的UDP數據分析,填寫表格內容。

4.4 通過分析實驗結果,UDP報文結構由哪幾部分組成,其功能是什么

????????源端口:需要對方回信時選用,不需要時全部置0;客戶端程序請求時,由系統自動指定,端口號范圍是 0~65535,0~1023為知名端口號。

????????目的端口:服務器的端口,由編寫程序的程序員自己指定,這樣客戶端才能根據ip地址和 port 成功訪問服務器,在終點交付報文的時候需要用到。

????????UDP總長度:UDP的數據報的長度(包括首部和數據)其最小值為8(只有首部),整個UDP數據報的長度 ,包括報頭+載荷。

????????UDP校驗和:檢查數據在傳輸中是否出錯,是否出現bit反轉的問題,當進行校驗時,需要在UDP數據報之前增加臨時的偽首部。


5、實驗小結

5.1 問題與解決辦法:

????????1. 問題一:使用dig命令時出現如下提示此命令未找到:

解決方法:由于系統中沒有dig命令所導致,需要在使用此命令前通過 yum install dnf 以及 dnf install bind-utils 命令進行安裝。

????????2. 問題二:使用tcpdump進行數據包的抓取時出現如下提示此命令未找到:

解決方法:由于命令輸入錯誤導致,數據包的抓取命令為tcpdump,而不是tcpdnmp,將對應命令進行更改后錯誤消失。

????????3. 問題三:對指定網絡接口的數據包進行抓取時出現如下提示語法錯誤:

解決方法:由于命令鍵入不完整所導致,指定網絡接口所需要的參數是-i,在eth0前方添加-i后錯誤消失。

????????4. 問題四:使用tcpdump抓取所有的數據包時一直在抓取,不能夠自動停止抓包:

解決方法:使用Ctrl+c就可以終止運行的命令,進而就可以停止抓包。

5.2 心得體會:

????????1、由于UDP無需建立連接,因此UDP不會引入建立連接的時延。

????????2、UDP不維護連接狀態,也不跟蹤參數,因此某些專用應用服務器使用UDP時,一般都能支持更多的活動客戶機。

????????3、分組首部開銷更小,UDP只有8個字節的首部開銷。

????????4、應用層能夠更好地控制要發送的數據和發送時間。UDP沒有擁塞控制,因此網絡中的擁塞也不會影響主機的發送效率。某些實時應用(如直播)要求以穩定的速度發送,能容忍一些數據的丟失,但不允許有較大的時延,而UDP正好可以滿足這些應用的需求。

????????5、UDP提供盡最大努力的交付,即不保證可靠交付,但并不意味著應用對數據的要求是不可靠的,因此需要維護傳輸可靠性的工作需要用戶在應用層來完成。應用實體可以根據應用需求來靈活設計自己的可靠性機制。

????????6、UDP是面向報文的,發送方UDP對應用層交下來的報文,在添加首部后就交付給IP層,既不合并,也不拆分,而是保留這些報文的邊界;接受方UDP對IP層交上來的用戶數據報,在去除首部后就原封不動的交付給上層的應用進程,一次交付一個完整的報文,因此報文不可分割,是UDP數據處理的最小單位。

????????7、UDP常用于一次性傳輸比較小數據的網絡應用,如DNS、SNMP等,因為對于這些應用,若采用TCP,則將為創建連接、維護和拆除而帶來不小的開銷。UDP也常用于多媒體應用(如IP電話、實時視頻會議、流媒體等),顯然,可靠數據傳輸對于這些應用來說并不是最重要的,但TCP的擁塞控制會導致數據出現較大的延遲,這是它們不可容忍的。

????????8、當傳輸層從IP層收到UDP數據報時,就根據首部中的目的端口,把UDP數據報通過相應的端口,上交給應用進程。如果接收方UDP發現收到的報文中的目的端口號不正確(不存在對應端口號的應用進程0),就丟棄該報文,并由ICMP發送“端口不可達”差錯報文給對方。

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

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

相關文章

Mysql 學習總結(90)—— Mysql 8.0 25 條性能優化實戰指南

1. 內存配置優化 # my.cnf 關鍵內存參數 innodb_buffer_pool_size = 8G # 建議設置為物理內存的70-80% innodb_log_buffer_size = 64M # 日志緩沖區大小 query_cache_size = 0 # MySQL 8.0已移除,確保關閉 tmp_table_size = 256M # 臨時表大小 max_…

嵌入式通信DQ單總線協議及UART(一)

文章目錄一、DS18B20--DQ單總線1.1 單總線時序結構分析1.1.1 初始化:1.1.2 發送一位1.1.3 接收一位1.1.5 發送字節1.1.6 操作流程1.1.7 數據幀的理解1.1.8 數據幀的理解二、UART2.1 同步通信和異步通信2.2 雙工通信2.3 串行通信常用數據校驗方式2.3.1 奇偶檢驗2.3.2…

2025年SEVC SCI2區,利用增強粒子群算法(MR-MPSO)優化MapReduce效率和降低復雜性,深度解析+性能實測

目錄1.摘要2.MapReduce-Modified Particle Swarm Optimization (MR-MPSO)3.結果展示4.參考文獻5.算法輔導應用定制讀者交流1.摘要 大數據的迅猛增長帶來了嚴峻的數據管理挑戰,尤其是在數據分布不均的龐大數據庫中。由于這種不匹配,傳統軟件系統的效率大…

10-day07文本分類

文本分類使用場景文本分類任務 文本分類-機器學習貝葉斯算法應用在NLP中的應用 用貝葉斯公式處理文本分類任務 一個合理假設: 文本屬于哪個類別,與文本中包含哪些詞相關 任務: 知道文本中有哪些詞,預測文本屬于某類別的概率 貝葉斯…

Apache SeaTunnel詳解與部署(最新版本2.3.11)

目錄 一、概述 1.1、軟件介紹 1.2、解決問題? 1.3、軟件特性? 1.4、使用用戶 1.5、產品對比 二、架構 2.1、運行流程 2.2、連接器? 2.3、引擎 2.3.1、設計理念 2.3.2、集群管理? 2.3.3、核心功能? 2.3.4、引擎對比 三、軟件部署 3.1、Docker部署 3.2、發…

pytorch | minist手寫數據集

一、神經網絡神經網絡(Neural Network)是一種受生物神經系統(尤其是大腦神經元連接方式)啟發的機器學習模型,是深度學習的核心基礎。它通過模擬大量 “人工神經元” 的互聯結構,學習數據中的復雜模式和規律…

[C/C++安全編程]_[中級]_[如何避免出現野指針]

場景 在Rust里不會出現野指針的情況,那么在C里能避免嗎? 說明 野指針是指指向無效內存地址的指針,訪問它會導致未定義行為,可能引發程序崩潰、數據損壞或安全漏洞。它是 C/C 等手動內存管理語言中的常見錯誤,而 Rust…

機器學習基礎:從數據到智能的入門指南

一、何謂機器學習? 在我們的日常生活中,機器學習的身影無處不在。當你打開購物軟件,它總能精準推薦你可能喜歡的商品;當你解鎖手機,人臉識別瞬間完成;當你使用語音助手,它能準確理解你的指令。這些背后&a…

steam游戲搬磚項目超完整版實操分享

大家好,我是阿陽,今天再次最詳細的給大家綜合全面的分析講解下steam搬磚,可以點擊后面跳轉往期文章了再次解下阿陽網客:關于steam游戲搬磚項目,我想說!最早是21年5月份公開朋友圈,初次接觸是在2…

vue2 面試題及詳細答案150道(21 - 40)

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs&…

原生前端JavaScript/CSS與現代框架(Vue、React)的聯系與區別(詳細版)

原生前端JavaScript/CSS與現代框架(Vue、React)的聯系與區別,以及運行環境和條件 目錄 引言原生前端技術概述 JavaScript基礎CSS基礎 現代框架概述 Vue.jsReact 聯系與相似性主要區別對比運行環境和條件選擇建議總結 引言 在現代Web開發中&…

基于機器視覺的邁克耳孫干涉環自動計數系統設計與實現

基于機器視覺的邁克耳孫干涉環自動計數系統設計與實現 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站。 摘要 本文設計并實現了一種基于機器視覺的邁克耳孫干涉環自動計數系統。該系統…

設計模式筆記(1)簡單工廠模式

最近在看程杰的《大話設計模式》,在這里做一點筆記。 書中主要有兩個角色: 小菜:初學者,學生; 大鳥:小菜表哥,大佬。 也按圖中的對話形式 01 簡單工廠模式 要求:使用c、Java、C#或VB…

Vue3 學習教程,從入門到精通,Vue 3 聲明式渲染語法指南(10)

Vue 3 聲明式渲染語法指南 本文將詳細介紹 Vue 3 中的聲明式渲染語法,涵蓋所有核心概念,并通過一個完整的案例代碼進行演示。案例代碼中包含詳細注釋,幫助初學者更好地理解每個部分的功能和用法。 目錄 簡介聲明式渲染基礎 文本插值屬性綁…

React hooks——useReducer

一、簡介useReducer 是 React 提供的一個高級 Hook,用于管理復雜的狀態邏輯。它類似于 Redux 中的 reducer 模式,適合處理包含多個子值、依賴前一個狀態或邏輯復雜的狀態更新場景。與 useState 相比,useReducer 提供更結構化的狀態管理方式。…

SEO中關于關鍵詞分類與布局的方法有那些

前邊我們說到關鍵詞挖掘肯定很重要,但如何把挖掘出來的關鍵詞用好更為重要,下邊我們就來說說很多seo剛入行的朋友比較頭疼的關鍵詞分類問題,為了更直觀的感受搭配了表格,希望可以給大家一些幫助!SEO優化之關鍵詞分類?挖掘出的關鍵…

考研最高效的準備工作是什么

從性價比的角度來說,考研最高效的準備工作是什么呢? 其實就是“卷成績”。 卷學校中各門課程的成績,卷考研必考的數學、英語、政治和專業課的成績。 因為現階段的考研,最看重的仍然是你的成績,特別是初試成績。 有了…

【Linux】基于Ollama和Streamlit快速部署聊天大模型

1.環境準備 1.1 安裝Streamlit 在安裝Streamlit之前,請確保您的系統中已經正確安裝了Python和pip。您可以在終端或命令行中運行以下命令來驗證它們是否已安裝 python --version pip --version一旦您已經準備好環境,現在可以使用pip來安裝Streamlit了。…

Jetpack - ViewModel、LiveData、DataBinding(數據綁定、雙向數據綁定)

一、ViewModel 1、基本介紹 ViewModel 屬于 Android Jetpack 架構組件的一部分,ViewModel 被設計用來存儲和管理與 UI 相關的數據,這些數據在配置更改(例如,屏幕旋轉)時能夠幸存下來,ViewModel 的生命周期與…

Go并發聊天室:從零構建實戰

大家好,今天我將分享一個使用Go語言從零開始構建的控制臺并發聊天室項目。這個項目雖然簡單,但它麻雀雖小五臟俱全,非常適合用來學習和實踐Go語言強大的并發特性,尤其是 goroutine 和 channel 的使用。 一、項目亮點與功能特性 …