当前位置: 首页 > news >正文

【计算机网络】实验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,并接收发送到这些端口的数据包。如果没有端口号,操作系统将无法确定应将数据发送到哪个进程,从而可能导致通信失败。

相关文章:

【计算机网络】实验13:运输层端口

实验13 运输层端口 一、实验目的 本次实验旨在验证TCP和IP运输层端口号的作用,深入理解它们在网络通信中的重要性。通过实验,我将探讨端口号如何帮助区分不同的应用程序和服务,使得在同一台主机上能够同时运行多个网络服务而不发生冲突。此…...

STL之适配器(adapters)_下

STL之适配器adapters container adapersstackqueue iterator adaptgersinsert iteratorsreverse iteratorsstream iterators function adapters对返回值进行逻辑判断:not1,not2对参数进行绑定:bind1st, bind2nd用于函数合成:compose1,compose2用于函数指针 ptr_func…...

基于51单片机64位病床呼叫系统设计( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机病床呼叫系统设计( proteus仿真程序设计报告原理图讲解视频) 仿真图proteus7.8及以上 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:S0095 1. 主要功能: 基于51单片机的病床呼叫系统proteus仿…...

安装 Zookeeper 和 Kafka

注意:需要java环境 [roothcss-ecs-2a6a ~]# java -version java version "17.0.12" 2024-07-16 LTS Java(TM) SE Runtime Environment (build 17.0.128-LTS-286) Java HotSpot(TM) 64-Bit Server VM (build 17.0.128-LTS-286, mixed mode, sharing) [roo…...

操作系统输入输出系统知识点

I/O系统的功能、模型和接口 I/O系统的基本功能 隐藏物理设备的细节与设备的无关性提高处理机和I/O设备的利用率对1/0 设备进行控制确保对设备的正确共享 独占设备,进程应互斥地访问这些设备共享设备,在一段时间内允许多个进程同时访问的设备 错误处理 I…...

C语言控制语句与案例

控制语句与案例 1. 选择结构 1.1 if 语句 if 语句用于根据条件执行不同的代码块。最基本的语法形式如下: // 单分支 if (条件) {// 条件为真时执行的代码 }// 双分支 if (条件) {// 条件为真时执行的代码 } else {// 条件为假时执行的代码 }// 多分支 if (条件1…...

JVM的内存布局

Java虚拟机(JVM)的内存布局可以分为几个主要部分,每个部分都有特定的用途。以下是JVM内存布局的基本组成: 方法区(Method Area): 方法区是所有线程共享的内存区域,用于存储已被虚拟机…...

aws codepipeline + github + sonarqube + jenkins实践CI/CD

https://blog.csdn.net/u011564831/article/details/144007981文章浏览阅读1.2k次,点赞31次,收藏21次。本文使用 Jenkins 结合 CodeBuild, CodeDeploy 实现 Serverless 的 CI/CD 工作流,用于自动化发布已经部署 lambda 函数。在 AWS 海外区&a…...

mistralai 部署笔记

目录 mistralai 部署笔记 mistralai 部署笔记 #! /usr/bin/env python3 import os import sys import torch os.chdir(os.path.dirname(os.path.abspath(__file__)))current_dir = os.path.dirname(os.path.abspath(__file__))paths = [os.path.abspath(__file__).split(scri…...

Java——异常机制(上)

1 异常机制本质 (异常在Java里面是对象) (抛出异常:执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE) 工作中,程序遇到的情况不可能完美。比如…...

坐标系,向量_batch及向量点乘部分知识

坐标系 Unity所采用的是左手坐标系。 对于Vector3.forward ,其坐标值为(0,0,1),为定值 而transform.forward 该值不固定,本地坐标正方向所在世界坐标系中的方向 向量 向量是终点位置减去起始点位置得…...

【计算机网络】期末速成(2)

部分内容来源于网络,侵删~ 第五章 传输层 概述 传输层提供进程和进程之间的逻辑通信,靠**套接字Socket(主机IP地址,端口号)**找到应用进程。 传输层会对收到的报文进行差错检测。 比特流(物理层)-> 数据帧(数据链路层) -> 分组 / I…...

【设计模式】结构型设计模式总结之代理模式、装饰模式、外观模式、享元模式

文章目录 代理模式示例结构分类动态代理 装饰模式示例结构使用场景与代理模式区别Context 外观模式结构示例使用场景Context 享元模式结构示例使用场景Message 代理模式 代理模式(Proxy Pattern) 是一种结构型设计模式,它提供了一个代理对象…...

11进阶篇:专业课论文阅读方向指南(2025版)

文章目录 第一个检索式:图情档核心期刊(北大 + CSSCI)发文情况研究方法类关键词研究主题类关键词论文阅读建议第二个检索式:川大公共管理学院在核心期刊(北大 + CSSCI)的发文情况研究方法类关键词研究主题类关键词特点关键词与2024年972(现815)两道题目的映射情况815信…...

watch里可以写异步吗

在Vue的 watch 中可以写异步,但通常不推荐。 原因 - 可维护性差: watch 的主要用途是响应式地监听数据变化。如果在里面写复杂的异步操作,会让代码逻辑变得难以理解和维护。例如,同时监听多个数据变化并触发不同异步操作时&am…...

基于 Spring Boot + Vue 的宠物领养系统设计与实现

引言 近年来,随着人们生活水平的提高,宠物逐渐成为许多家庭的重要成员。然而,宠物的流浪和弃养问题日益严重,这促使社会对宠物领养的需求不断增长。为解决宠物领养中信息不对称、领养流程复杂等问题,设计并实现一个基…...

leetcode399:除法求值

给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。 另有一些以数组 queries 表示的问题,其中 queries[j]…...

【10】MySQL中的加密功能:如何使用MD5加密算法进行数据加密

文章目录 1. MySQL加密功能概述2. MD5加密算法3. 在MySQL中使用MD5加密4. 使用更安全的加密方法总结 在现代的数据库应用中,数据的安全性和隐私性变得尤为重要。无论是存储用户的个人信息,还是保护敏感的业务数据,确保这些数据不会被未授权访…...

CSS的2D和3D动画效果

CSS的2D和3D动画效果:网页动态设计的魔法 在现代网页设计中,动画已经成为提升用户体验的重要元素。通过引入动态效果,我们不仅可以使交互更加流畅和直观,还能吸引用户的注意力,增强品牌认知度。CSS提供了强大的工具&a…...

30天学会Go--第9天 GO语言 Mysql 学习与实践

30天学会Go–第9天 GO语言 MySQL学习与实践 文章目录 30天学会Go--第9天 GO语言 MySQL学习与实践前言一、MySQL 基础知识1.1 MySQL 的核心特征1.2 MySQL 的常见使用情景 二、安装 MySQL2.1 Windows 安装2.2 macOS 安装2.3 Linux 安装 三、MySQL 常用命令3.1 数据库操作3.2 表操…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

Element Plus 表单(el-form)中关于正整数输入的校验规则

目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入&#xff08;联动&#xff09;2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

PHP 8.5 即将发布:管道操作符、强力调试

前不久&#xff0c;PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5&#xff01;作为 PHP 语言的又一次重要迭代&#xff0c;PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是&#xff0c;借助强大的本地开发环境 ServBay&am…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...

十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建

【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...

【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统

Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...