【計算機網絡】實驗13:運輸層端口

實驗13 運輸層端口

一、實驗目的

本次實驗旨在驗證TCP和IP運輸層端口號的作用,深入理解它們在網絡通信中的重要性。通過實驗,我將探討端口號如何幫助區分不同的應用程序和服務,使得在同一臺主機上能夠同時運行多個網絡服務而不發生沖突。此外,我將學習如何使用工具和命令來監測和分析端口的狀態,了解各個端口號對應的服務類型,從而增強對網絡協議的理解和應用能力。

二、實驗環境

Cisco Packet Tracer模擬器

三、實驗過程

1.構建網絡拓撲,并在對應的主機或者服務器旁邊寫好需要配置的IP地址的注釋,網絡拓撲以及注釋如圖1所示。

在這里插入圖片描述

圖1 構建網絡拓撲并寫好注釋

? 2.首先對Web服務器進行IP配置,IP地址為192.168.0.3,地址掩碼為255.255.255.0,如圖2所示。

img

圖2 配置Web服務器IP地址

? 3.然后為DNS服務器配置IP地址并開啟DNS服務器,如圖3所示。

img

圖3 開啟DNS服務

? 4.為PC配置IP地址,如圖4所示。

img

圖4 PC的IP配置

? 5.使用ping命令測試PC和DNS服務器之間是否成功通信,如圖5所示。

img

圖5 PC-DNS通信測試

? 6.使用ping命令測試PC和Web服務器之間是否成功通信,如圖6所示。

img

圖6 PC-Web通信測試

? 7.切換到仿真模式,并且過濾協議,只保留DNS和http協議,如圖7所示。

img

圖7 只保留DNS和HTTP協議

? 8.通過PC在網頁瀏覽器中訪問Web服務器,首先去訪問DNS服務器,如圖8所示。

img

圖8 瀏覽器中輸入服務器的網址

? 9.首先查看主機上的PDU信息,如圖9所示,再點擊捕獲前進,數據報來到交換機,經過轉發到達DNS服務器,查看DNS服務器的PDU的信息,如圖10所示。DNS服務器收到一個DNS查詢,所查詢的名字進行本地解析,DNS服務器找到一個帶有該名字的域名,并將其封裝在響應報文中,并使用UDP進行封裝,使其成為UDP用戶數據報,然后后面就是經過網絡層,數據鏈路層以及物理層,最后再發送出去。

img

圖9 主機中的PDU信息

img

圖10 服務器中的PDU信息

? 10.主機PC收到DNS服務器傳回來的響應,DNS客戶端收到一個DNS響應,接收到的DNS響應包含一個對所請求域名的IP地址解析,也就是Web服務器的IP地址,即是192.168.0.3.如圖11所示。

img

圖11 PC中的PDU信息

? 11.此時主機就可以通過獲取到的IP地址就可以訪問Web服務器,使用的是HTTP協議,因為應用層協議HTTP使用的是運輸層的TCP,并且TCP是面向連接的,所以發送之前必須建立TCP連接(三報文握手)然后,主機PC再將HTTP請求傳送給Web服務器。點擊捕獲前進,查看主機上的HTTP請求PDU信息。如圖12所示。當HTTP請求到達Web服務器時,再次查看Web服務器上的PDU信息,如圖13所示。

img

圖12 主機HTTP請求的PDU信息

img

圖13 Web服務器上的PDU信息

  1. Web服務器再將響應報文傳回主機PC,HTTP客戶端收到來自服務器的HTTP響應,HTTP客戶端中的PDU信息,如圖14所示。HTTP客戶端進程從HTTP響應報文中提取出網頁內容,并在網頁瀏覽器中顯示網頁,如圖15所示。

img

圖14 主機中的PDU信息

img

圖15 網頁瀏覽器的顯示

四、實驗小結

  1. 端口號用于區分不同的應用進程:在TCP/IP協議棧中,運輸層通過端口號來區分不同的應用進程或服務。端口號是一個16位的數字,范圍從0到65535,每個端口號對應特定的應用服務。例如,HTTP協議通常使用端口80,HTTPS使用端口443,而DNS則使用端口53。通過端口號,計算機能夠明確將數據傳遞給哪個正在運行的應用程序。每個應用程序通過綁定一個特定的端口號來等待來自其他計算機的數據。

  2. 端口號與傳輸層協議數據單元(PDU)頭部的映射:在TCP/IP協議棧中,數據傳輸過程中使用運輸層的協議數據單元(PDU),如TCP段或UDP數據報。這些PDU的頭部包含源端口號和目的端口號字段,用于指明數據包的發送和接收應用進程。源端口號標識發送端的應用程序,而目的端口號則標識接收端的應用程序。

  3. 端口號的作用在于確保數據的準確傳輸:端口號不僅幫助區分不同的應用進程,還能確保在同一設備上運行的多個應用之間的通信不會發生沖突。每當計算機接收到一個數據包時,操作系統會根據目的端口號將數據交付給相應的應用進程。例如,Web瀏覽器會監聽端口80或443,并接收發送到這些端口的數據包。如果沒有端口號,操作系統將無法確定應將數據發送到哪個進程,從而可能導致通信失敗。

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

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

相關文章

【Redis】Redis基礎——Redis的安裝及啟動

一、初識Redis 1. 認識NoSQL 數據結構:對于SQL來說,表是有結構的,如字段約束、字段存儲大小等。 關聯性:SQL 的關聯性體現在兩張表之間可以通過外鍵,將兩張表的數據關聯查詢出完整的數據。 查詢方式: 2.…

vuex 是什么?怎么使用?哪種功能場景使用它?

Vuex是Vue.js的狀態管理庫。它可以用來管理應用程序中的共享狀態,并提供了一種集中式的方式來管理狀態的變化。 使用Vuex,首先需要安裝它: npm install vuex --save然后,在Vue應用程序的入口文件中,導入Vuex并在Vue實…

ElK 8 收集 MySQL 慢查詢日志并通過 ElastAlert2 告警至飛書

文章目錄 1. 說明2. 啟個 mysql3. 設置慢查詢4. filebeat 設置5. 觸發慢查詢6. MySQL 告警至飛書 1. 說明 elk 版本:8.15.0 2. 啟個 mysql docker-compose.yml 中 mysql: mysql:# restart: alwaysimage: mysql:8.0.27# ports:# - "3306:3306&q…

PyTorch基本使用-張量的索引操作

在操作張量時,經常要去獲取某些元素進行處理或者修改操作,在這里需要了解torch中的索引操作。 準備數據: data torch.randint(0,10,[4,5]) print(data--->,data)輸出結果: data---> tensor([[3, 9, 4, 0, 5],[7, 5, 9, …

【服務器監控】grafana+Prometheus+node exporter詳細部署文檔

我們在進行測試時,不可能一直手動看著服務器的性能消耗,這時候就需要有個工具替我們監控服務器的性能消耗。這里記錄下grafanaPrometheusnodeExporter的組合用于監控服務器。 簡單介紹: grafana:看板工具,所有采集的…

第十七章 使用 MariaDB 數據庫管理系統

1. 數據庫管理系統 數據庫是指按照某些特定結構來存儲數據資料的數據倉庫。在當今這個大數據技術迅速崛起的年代,互聯網上每天都會生成海量的數據信息,數據庫技術也從最初只能存儲簡單的表格數據的單一集中存儲模式,發展到了現如今存儲海量…

Jenkins授權策略的配置

簡介:在Jenkins中,通過系統管理下的“Manage and Assign Roles”以及“Manage Roles”來配置角色,是實現權限管理的關鍵步驟。以下是關于這兩個功能配置角色時的意義及注意事項的詳細解釋: 一、配置角色的意義 實現權限控制: 通過創建和分配角色,可以精確地控制不同用戶…

centos 7.9 安裝jdk1.8 mysql redis等

環境: centos 7.9 1、安裝OpenJDK 1.8 步驟 1: 更新系統 首先,確保你的系統是最新的,執行以下命令來更新所有軟件包: sudo yum update -y步驟 2: 安裝 OpenJDK 1.8 CentOS 7 默認的包管理器是 yum,你可以通過以下命…

計算機鍵盤的演變 | 鍵盤鍵名稱及其功能 | 鍵盤指法

注:本篇為 “鍵盤的演變及其功能” 相關幾篇文章合輯。 英文部分機翻未校。 The Evolution of Keyboards: From Typewriters to Tech Marvels 鍵盤的演變:從打字機到技術奇跡 Introduction 介紹 The keyboard has journeyed from a humble mechanical…

Methods and Initializers

1 Method Declarations 這回不從comipler開始,從runtime開始。 GC也需要follow 接下來難點在于如何填充這些表 2 Compiling method declarations 難點: 一個類可以聲明任意數量的方法。運行時需要查找并綁定所有這些方法。如果將這些方法都打包到一條…

飛飛5.4游戲源碼(客戶端+服務端+工具完整源代碼+5.3fix+5.4patch+數據庫可編譯進游戲)

飛飛5.4游戲源碼(客戶端服務端工具完整源代碼5.3fix5.4patch數據庫可編譯進游戲) 下載地址: 通過網盤分享的文件:【源碼】飛飛5.4游戲源碼(客戶端服務端工具完整源代碼5.3fix5.4patch數據庫可編譯進游戲) 鏈…

開源C代碼之路:一、Gitee

開源c代碼之路:一,Gitee 前言1、開源項目2、從哪里找?3、舉個例子4、總結: 本系列回顧清單開源代碼示例 前言 從開源開發的角度,由淺入深,一步步初探C語言編程的入門之路。 本篇講解:Gitee 1…

基于協同過濾算法的寵物用品商城的設計與實現(計算機畢業設計)Java Spring 衍生為任何商城系統 畢業論文

系統合集跳轉 源碼獲取鏈接 一、系統環境 運行環境: 最好是java jdk 1.8,我們在這個平臺上運行的。其他版本理論上也可以。 IDE環境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat環境: Tomcat 7.x,8.x,9.x版本均可 操作系統…

算法-字符串-165.比較版本號

一、題目 二、思路解析 1.思路: 比較的是兩個版本號它們以“.”作為分割的部分的有效值(即數值)是否一致 2.常用方法: 1.s.split("\\規則"),將字符串按參數規則進行分割并存儲在字符串數組中 String[] str …

MySQL(四)--索引

MySQL的服務器,本質是在內存中的,那么所有對數據的CURD操作,全都是在對內存進行操作。 而,提高數據的CURD操作的效率,有兩種方式:1、組織數據的格式(數據結構);2、算法。 而,數據結構,就是索引,即組織數據的格式。 1、沒有索引的問題 索引:提高數據庫的性能,索…

C# (WinForms) 使用 iTextSharp 庫將圖片轉換為 PDF

iTextSharp簡介 iTextSharp 是一個開源的 .NET 庫,主要用于創建和操作 PDF 文檔。它是 iText 的 .NET 版本,iText 是一個廣泛使用的 Java 庫。iTextSharp 繼承了 iText 的核心功能并進行了適應 .NET 平臺的調整。 iTextSharp 的主要功能包括&#xff1a…

ubuntu防火墻設置(四)——iptables語法與防火墻基礎配置

前面介紹的ufw和firewall-config均為iptables的前端, 分別適合個人用戶和服務器網絡管理 下面介紹底層——ipables iptables是一個強大的工具,用于配置Linux系統的防火墻。以下是一些基本的使用方法和示例,幫助您入門: 基本語法 …

【中間件開發】Redis基礎命令詳解及概念介紹

文章目錄 前言一、Redis相關命令詳解及原理1.1 string、set、zset、list、hash1.1.1 string1.1.2 list1.1.3 hash1.1.4 set1.1.5 zset 1.2 分布式鎖的實現1.3 lua腳本解決ACID原子性1.4 Redis事務的ACID性質分析 二、Redis協議與異步方式2.1 Redis協議解析2.1.1 redis pipeline…

力扣每日一題 - 999. 可以被一步捕獲的棋子數

題目 還需要你前往力扣官網查看詳細的題目要求 地址 1.給定一個 8 x 8 的棋盤,只有一個 白色的車,用字符 R 表示。棋盤上還可能存在白色的象 B 以及黑色的卒 p。空方塊用字符 . 表示。2.車可以按水平或豎直方向(上,下,…

[UVM]在UVM環境中加入C++內存模塊

摘要:要在UVM環境中實現一個內存模塊并存入數據,您可以遵循以下步驟。這里會涉及C的內存建模和UVM的SystemVerilog部分的接口。在高層次上,我們將描述如何在C中實現內存模型并通過UVM的DPI接口訪問它。 一、C內存模型 首先,在C中…