【计算机网络】实验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.mzph.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中…