从01开始 从01开始
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)

peterjxl

人生如逆旅,我亦是行人
首页
  • 计算机科学导论
  • 数字电路
  • 计算机组成原理

    • 计算机组成原理-北大网课
  • 操作系统
  • Linux
  • Docker
  • 计算机网络
  • 计算机常识
  • Git
  • JavaSE
  • Java高级
  • JavaEE

    • Ant
    • Maven
    • Log4j
    • Junit
    • JDBC
    • XML-JSON
  • JavaWeb

    • 服务器软件
    • Servlet
  • Spring
  • 主流框架

    • Redis
    • Mybatis
    • Lucene
    • Elasticsearch
    • RabbitMQ
    • MyCat
    • Lombok
  • SpringMVC
  • SpringBoot
  • 学习网课的心得
  • 输入法
  • 节假日TodoList
  • 其他
  • 关于本站
  • 网站日记
  • 友人帐
  • 如何搭建一个博客
GitHub (opens new window)
  • 计算机历史

  • 数字电路

  • 计算机组成原理

  • 汇编语言

  • C语言

  • 数据结构

  • 操作系统

  • Linux

  • 计算机网络

    • 计算机网络微课堂-B站教书匠

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

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

  • 数据库

  • 计算机小知识

  • 编译原理

  • 名人堂

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

实验20 运输层端口

# 实验20 运输层端口

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

我已经在仿真软件中构建好了这样一个网络拓扑,两台服务器和一台主机通过一台以太网交换机进行互联,属于同一个以太网,右边这台服务器用来充当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的运输层是用端口号来区分与网络通信相关的不同应用进程,也就是说运输层根据运输层协议数据单元首部中的目的端口的值,将运输层协议数据单元交付给相应的应用进程

在GitHub上编辑此页 (opens new window)
上次更新: 2023/4/27 14:12:44
实验19 网际控制报文协议ICMP的应用
实验21,22,23 VLAN

← 实验19 网际控制报文协议ICMP的应用 实验21,22,23 VLAN→

Theme by Vdoing | Copyright © 2022-2023 粤ICP备2022067627号-1 粤公网安备 44011302003646号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式