从 01 开始 从 01 开始
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档

晓林

程序猿,自由职业者,博主,英语爱好者,健身达人
首页
  • 📚 计算机基础

    • 计算机简史
    • 数字电路
    • 计算机组成原理
    • 操作系统
    • Linux
    • 计算机网络
    • 数据库
    • 编程工具
    • 装机
  • 🎨 前端

    • Node
  • JavaSE
  • Java 高级
  • JavaEE

    • 构建、依赖管理
    • Ant
    • Maven
    • 日志框架
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • 环境管理和配置管理-科普篇
    • Servlet
  • Spring

    • Spring基础
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC

    • SpringMVC 基础
  • SpringBoot

    • SpringBoot 基础
  • Windows 使用技巧
  • 手机相关技巧
  • 最全面的输入法教程
  • 最全面的浏览器教程
  • Office
  • 图片类工具
  • 效率类工具
  • 最全面的 RSS 教程
  • 码字工具
  • 各大平台
  • 校招
  • 五险一金
  • 职场规划
  • 关于离职
  • 杂谈
  • 自媒体
  • 📖 读书

    • 读书工具
    • 走进科学
  • 🌍 英语

    • 从零开始学英语
    • 英语兔的相关视频
    • Larry 想做技术大佬的相关视频
  • 🏛️ 政治

    • 反腐
    • GFW
    • 404 内容
    • 审查与自我审查
    • 互联网
    • 战争
    • 读书笔记
  • 💰 经济

    • 关于税
    • 理财
  • 💪 健身

    • 睡眠
    • 皮肤
    • 口腔健康
    • 学会呼吸
    • 健身日志
  • 🏠 其他

    • 驾驶技能
    • 租房与买房
    • 厨艺
  • 电影

    • 电影推荐
  • 电视剧
  • 漫画

    • 漫画软件
    • 漫画推荐
  • 游戏

    • Steam
    • 三国杀
    • 求生之路
  • 小说
  • 关于本站
  • 关于博主
  • 打赏
  • 网站动态
  • 友人帐
  • 从零开始搭建博客
  • 搭建邮件服务器
  • 本站分享
  • 🌈 生活

    • 2022
    • 2023
    • 2024
    • 2025
  • 📇 文章索引

    • 文章分类
    • 文章归档
  • 计算机简史

  • 数字电路

  • 计算机组成原理

  • 操作系统

  • Linux

  • 计算机网络

    • 计算机网络微课堂

    • 计算机网络微课堂-实验手册

      • 课程概述
      • 实验 0:安装 PacketTracer
      • 实验 1:访问 WEB 服务器(加深对网络体系结构的理解)
      • 实验 2: MAC 地址,IP 地址,ARP 协议
      • 实验 3:总线型以太网的特性(广播,竞争总线,冲突)
      • 实验 4:集线器和交换机的区别
      • 实验 5:交换机的自学习算法
      • 实验 6:生成树协议 STP 的功能
      • 实验 7;虚拟局域网 VLAN
      • 实验 8:IPv4 地址
      • 实验 9:划分子网
      • 实验 10:构造超网(无分类编址)
      • 实验 11:IP 数据报的发送和转发流程
      • 实验 12:默认路由和特定主机路由
      • 实验 13:静态路由配置错误导致的路由环路问题
      • 实验 14:聚合了不存在的网络导致的路由环路问题
      • 实验 15:网络故障导致的路由环路问题
      • 实验 16:路由信息协议 RIP
      • 实验 17:开放最短路径优先 OSPF
      • 实验 18:边界网关协议 BGP
      • 实验 19:网际控制报文协议 ICMP 的应用
      • 实验 20:运输层端口
      • 实验 21:VLAN 间通信的实现方法:多臂路由
      • 实验 22:VLAN 间通信的实现方法:单臂路由
      • 实验 23:VLAN 间通信的实现方法:使用三层交换机
      • 实验 24:TCP 的运输连接管理
      • 实验 25:动态主机配置协议 DHCP 的作用
      • 《计算机网络微课堂》终:结束,也是开始
    • 从零开始学计算机网络

  • 数据库

  • 编程工具

  • 装机

  • 计算机基础
  • 计算机网络
  • 计算机网络微课堂-实验手册
2022-10-19

实验 20:运输层端口

# 200.实验 20:运输层端口

下面我们来进行一个仿真实验,本仿真实验的目的在于验证 TCP/IP 运输层端口号的作用。

我已经在仿真软件中构建好了这样一个网络拓扑,两台服务器和一台主机通过一台以太网交换机进行互联,属于同一个以太网,右边这台服务器用来充当 WEB 服务器,它的域名为 www.porttest.com。IP 地址为 192.168.0.3,左边这台服务器用来充当 DNS 服务器进行域名解析,IP 地址为 192.168.0.2,并且存储有右侧 WEB 服务器的域名与 IP 地址的对应关系,也就是域名 www.porttest.com 对应的 IP 地址为 192.168.0.3。

这台主机作为普通用户 PC,IP 地址为 192.168.0.1,我们可以在该主机上使用网页浏览器来访问 WEB 服务器的内容:

​​


我们首先对这台 WEB 服务器进行配置,点击该服务器在弹出窗口中选择桌面选项卡,然后选择 IP 配置,在 IP 地址输入框中输入 192.168.0.3,然后按回车键,仿真软件会根据所输入的 IP 地址给出默认的子网掩码,也就是不划分子网所使用的子网掩码,这台服务器就配置好了,不需要再进行其他配置。

​​


我们再来配置这台 DNS 服务器,点击该服务器在弹出窗口中选择桌面选项卡,然后选择 IP 配置,在 IP 地址输入框中输入 192.168.0.2。

我们还需要给该服务器添加一条域名与 IP 地址对应关系的记录,切换到服务选项卡,选择 DNS 选项默认情况下,服务器的 DNS 服务是关闭的,我们将它打开,然后在名称输入框中输入域名,www.porttest.com。

在地址输入框中输入该域名所对应的 IP 地址 192.168.0.3,点击添加按钮,这台服务器就配置好了,不需要进行其他配置。

​​

还有这台用户 PC 也需要进行配置,点击该主机在弹出窗口中选择桌面选项卡,然后选择 IP 配置,在 IP 地址输入框中输入 192.168.0.1,在 DNS 服务器输入框中输入 DNS 服务器的 IP 地址,192.168.0.2,这台主机就要配置好了,不需要进行其他配置。

​​


接下来我们检查一下用户 PC 与 DNS 服务器以及 WEB 服务器之间的连通性,注意首先确保仿真软件处于实时模式,而不是仿真模式。我们在用户 PC 的命令行使用 ping 工具来分别 ping 一下 DNS 服务器和 WEB 服务器的 IP 地址,看看是否能 ping 通。

首先 ping 一下 DNS 服务器的 IP 地址,输入 ping 192.168.0.2,收到响应,这表明用户 PC 与 DNS 服务器之间是连通的。

再来 ping 一下 WEB 服务器的 IP 地址,输入 ping 192.168.0.3,收到响应,表明用户 PC 与 WEB 服务器之间是联通的,我们已经完成了本仿真试验的所有配置工作,接下来就可以进行仿真实验了。

C:\>ping 192.168.0.2

Pinging 192.168.0.2 with 32 bytes of data:

Reply from 192.168.0.2: bytes=32 time<1ms TTL=128
Reply from 192.168.0.2: bytes=32 time<1ms TTL=128
Reply from 192.168.0.2: bytes=32 time<1ms TTL=128
Reply from 192.168.0.2: bytes=32 time=3ms TTL=128

Ping statistics for 192.168.0.2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 3ms, Average = 0ms

C:\>ping 192.168.0.3

Pinging 192.168.0.3 with 32 bytes of data:

Reply from 192.168.0.3: bytes=32 time<1ms TTL=128
Reply from 192.168.0.3: bytes=32 time<1ms TTL=128
Reply from 192.168.0.3: bytes=32 time=3ms TTL=128
Reply from 192.168.0.3: bytes=32 time=3ms TTL=128

Ping statistics for 192.168.0.3:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 3ms, Average = 1ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

首先从实时模式切换到仿真模式,只需监听 DNS HTTP 这两个协议的相关事件,在 IPV4 选项卡中选择 DNS,切换到杂项选项卡,选择 HTTP。

接下来我们在用户 PC 中使用网页浏览器来访问 WEB 服务器的内容,并对整个访问过程进行单步仿真。点击用户 PC 在弹出窗口中关闭之前打开的命令行窗口,选择网页浏览器,这样我们就要启动了一个网页浏览器,它比我们平时使用的浏览器要简陋很多,但这并不影响我们对本仿真实验效果的观察,选择这里的置顶,在网页浏览器的地址栏中输入 WEB 服务器的域名,www.porttest.com,然后按回车键或单击前往按钮

此时用户 PC 中的 DNS 客户端进程会发送一个数据包,点击该数据包,在弹出窗口中可以看到该数据包层层封装的细节,应用层使用 DNS 协议构建了一个 DNS 查询请求报文,该报文在运输层使用 UDP 协议进行封装,成为 UDP 用户数据报、UDP 用户数据报首部中的目的端口字段的值设置为 53,这是 DNS 服务器端进程所使用的熟知端口号,源端口字段的值设置为 1025,这是一个非熟知端口号,系统使用该端口号来标识,发送该 DNS 查询请求报文的 DNS 客户端进程。

UDP 用户数据报在网际层被封装成 IP 数据报,IP 数据报在数据链路层被封装成以太网的帧,最后物理层将构成帧的比特流转变成电器号进行发送:

​​

点击捕获前进按钮,可以观察到数据包传送到了以太网交换机,再次点击捕获前进按钮,可以观察到数据包被以太网交换机转发给了 DNS 的服务器。

点击数据包来查看 DNS 服务器的处理细节,DNS 服务器对收到的数据包层层解封,在运输层提取出 UDP,用户数据报首部中目的端口字段的值为 53,这是 DNS 服务器端进程所使用的熟知端口号。因此运输层将 UDP 用户数据报的数据载荷部分,也就是 DNS 查询请求报文,交付给应用层的 DNS 服务器端进程进行处理,DNS 服务器端进程对所查询的域名进行本地解析,查找到该域名所对应的 IP 地址,将其封装在 DNS 响应报文中。

该报文在运输层使用 UDP 协议进行封装,成为 UDP 用户数据报、UDP 用户数据报首部中的目的端口字段的值设置为 1025,这是之前用户 PC 中发送 DNS 查询请求报文的 DNS 客户端进程,所使用的端口号,源端口字段的值设置为 53,这是 DNS 服务器端进程所使用的熟知端口。UDP 用户数据报在网际层被封装成 IP 数据报,IP 数据报在数据链路层被封装成以太网的帧,最后物理层将构成帧的比特流转,变成电信号进行发送:

​​


点击捕获前进按钮,可以观察到数据包传送到了以太网交换机,再次点击捕获前期按钮,可以观察到数据包被以太网交换机转发给了用户 PC,点击数据包来查看用户 PC 的处理细节,用户 PC 对收到的数据包层层解封,在运输层提取出 UDP 用户数据报首部中目的端口字段的值为 1025,这是 DNS 客户端进程所使用的端口号。因此运输层将 UDP,用户数据报的数据载荷部分也就是 DNS 响应报文交付给应用层的 DNS 客户端进程进行处理。

DNS 的客户端进程从 DNS 响应报文中提取出域名,www.porttest.com

所对应的 IP 地址,也就是 WEB 服务器的 IP 地址 192.168.0.2,现在用户 PC 中的网页浏览器进程就可以通过所获取到的 IP 地址来访问 WEB 服务器了,这需要使用应用层的 HTTP 协议,应用层 HTTP 协议在运输层使用 TCP 协议,而 TCP 是面向连接的,使用 TCP 必须首先建立 TCP 连接,这需要通过三报文握手来完成有关 TCP 使用三报文握手的具体细节,我们将在后续的理论课和仿真课中进行介绍。

​​


点击捕获前进按钮,用户 PC 会发送一个数据包,点击该数据包,在弹出窗口中可以看到该数据包层层封装的细节。应用层使用 HTTP 协议构建了一个 HTTP 请求报文,该报文在运输层使用 TCP 协议进行封装,成为 TCP 报文段,TCP 报文段首部装目的端口字段的值设置为 80,这是 WEB 服务器中的 HTTP 服务器端进程所使用的熟知端口号,源端口字段的值设置为 1025,这是一个非熟知端口号,系统使用该端口号来标识,发送该 HTTP 请求报文的 HTTP 客户端进程。

TCP 报文段在网际层被封装成 IP 数据报,IP 数据报在数据链路层被封装成以太网帧,最后物理层将构成帧的比特流转变成电信号进行发送。由于必须首先完成 TCP 连接建立的过程,因此该数据包必须等到建立过程结束后才能发送。 点击捕获前进按钮,TCP 连接建立过程结束。

再次点击捕获前进按钮,用户 PC 发送该数据包,可以观察到数据包传送到了以太网交换机,

再次点击捕获前期按钮,可以观察到数据包被以太网交换机转发给了 WEB 服务器,点击数据包来查看 WEB 服务器的处理细节,WEB 服务器对收到的数据包层层解封,在运输层提取出 TCP 报文段首部中的目的端口字段的值为 80,这是 WEB 服务器中 HTTP 服务器端进程所使用的熟知端口号,因此运输层将 TCP 报文段的数据载荷部分,也就是 HTTP 请求报文交付给应用层的 HTTP 服务器端进程进行处理。

HTTP 服务器端进程对所请求的内容进行查找,找到后将其封装在 HTTP 响应报文中,该报文在运输层使用 TCP 协议进行封装,成为 TCP 报文段,TCP 报文段首部中的目的端口字段的值设置为 1025,这是之前用户 PC 中发送 HTTP 请求报文的 HTTP 客户端进程所使用的端口号,源端口字段的值设置为 80,这是 WEB 服务器中 HTTP 服务器端进程所使用的熟知端口号。

TCP 报文段在网际层被封装成 IP 数据报,IP 数据报在数据链路层被封装成以太网帧,最后物理层将构成帧的比特流转,变成电信号进行发送。

​​


点击捕获前进按钮,可以观察到数据包传送到了以太网交换机,再次点击捕获前进按钮,可以观察到数据包被以太网交换机转发给了用户 PC,点击数据包来查看用户 PC 的处理细节,用户 PC 对收到的数据包层层解封,在运输层提取出 TCP 报文段首部中目的端口字段的值为 1025,这是 HTTP 客户端进程所使用的端口号,因此运输层将 TCP 报文段的数据载荷部分,也就是 HTTP 响应报文交付给应用层的 HTTP 客户端进程进行处理。

HTTP 客户端进程从 HTTP 响应报文中提取出网页内容,网页浏览器对其进行解析,并显示本次仿真实验就进行到这里。

​​

​​

​​

通过本实验,希望您对 TCPIP 运输层的端口有了更进一步的理解。TCPIP 的运输层是用端口号来区分与网络通信相关的不同应用进程,也就是说运输层根据运输层协议数据单元首部中的目的端口的值,将运输层协议数据单元交付给相应的应用进程

上次更新: 2025/6/3 09:31:54
实验 19:网际控制报文协议 ICMP 的应用
实验 21:VLAN 间通信的实现方法:多臂路由

← 实验 19:网际控制报文协议 ICMP 的应用 实验 21:VLAN 间通信的实现方法:多臂路由→

最近更新
01
语雀文档一键下载至本地教程
07-04
02
要成功,就不要低估环境对你的影响
07-03
03
血泪教训:电子设备要定期开机
07-02
更多文章>
Theme by Vdoing | Copyright © 2022-2025 | 粤 ICP 备 2022067627 号 -1 | 粤公网安备 44011302003646 号 | 点击查看十年之约
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式