• 【计算机网络】NAT协议


    实验目的

    应用所学知识,理解 NAT 协议的运作。

    实验步骤与结果

    1.任务一:

    (1)客户端的 IP 地址是多少?

    可见,客户端IP地址为192.168.1.100。

    (2)客户端实际上与几个不同的 Google 服务器通信,以实现“安全浏览”(请参阅任务三)。提供主要 Google 网页的服务器地址是 64.233.169.104,为了仅仅显示客户端的请求和服务器的响应,请在 Wireshark 过滤器输入以下过滤条件“http && ip.addr == 64.233.169.104 ”(不包括引号)。请截图当前显示的内容。

    (3)请选择在 7.109267 s 时间的客户端发送到 Google 服务器(其 IP 地址为 IP 地址 64.233.169.104)的 HTTP GET。承载此 HTTP GET 的 IP 数据报上的源 IP 地址和目标 IP 地址以及 TCP 源端口和目标端口是什么?

    可见,源 IP 地址为192.168.1.100,目标IP地址为64.233.169.104,TCP 源端口为4335,目标端口为80。

    (4)对于前一问发送的 HTTP GET 消息,在什么时间客户端从 Google 服务器收到对应的状态码 200、状态 OK 的 HTTP 响应消息?携带状态码 200、状态 OK 的 HTTP 响应消息的 IP 数据报上的源和目标 IP 地址以及 TCP 源和目标端口是什么?

    可见在7.158797s客户端从 Google 服务器收到对应的状态码 200、状态 OK 的 HTTP 响应消息。

    查看其IP数据报:

    可见,源 IP 地址为64.233.169.104,目标IP地址为192.168.1.100,TCP 源端口为80,目标端口为4335。

    (5)回想一下,在将 GET 请求发送到 HTTP 服务器之前,TCP 必须首先使用三次 SYN/ACK 消息建立连接。在什么时间客户端发送了含有 TCP SYN 的报文建立连接消息,以后续用于发送在7.109267 s 的 GET 请求?TCP SYN 报文的源 IP 地址和目标 IP 地址以及源端口和目标端口是什么?在什么时间客户端收到了对应的 SYN-ACK 报文?此 SYN-ACK 报文的源和目标 IP 地址以及源端口和目标端口是什么?(注意你需要清除在第 2 题中的过滤器表达式并且输入“tcp”(不含引号)表达式,仅仅显示 TCP 报文消息。)

    可见,在7.109267 s 的 GET 请求之前,客户端在7.075657s左右发送了含有 TCP SYN 的报文建立连接消息,在7.108986s左右收到了对应的 SYN-ACK 报文。

    查看SYN报文的IP数据报:

    可见,源 IP 地址为192.168.1.100,目标IP地址为64.233.169.104,TCP 源端口为4335,目标端口为80。

    查看ACK报文的IP数据报:

    可见,源 IP 地址为64.233.169.104,目标IP地址为192.168.1.100,TCP 源端口为80,目标端口为4335。

    2.任务二:

    (1)在 NAT_ISP_side 跟踪文件中,找到跟刚才客户端 7.109267s 同样目的地发送的 HTTP GET 消息(这个时间是在 NAT_home_side 跟踪文件中记录的时间)。该消息何时出现在 NAT_ISP_side 跟踪文件中?承载此 HTTP GET 消息的 IP 数据报的源和目标 IP 地址以及 TCP 源和目标端口是什么?

    使用http过滤跟踪文件中的数据包,并找到跟刚才客户端 7.109267s 同样目的地发送的 HTTP GET 消息:

    可见该消息在6.069168s出现在NAT_ISP_side 跟踪文件中。查看其IP数据报:

    可见,源 IP 地址为71.192.34.104,目标IP地址为64.233.169.104,TCP 源端口为4335,目标端口为80。

    (2)与任务一的第 3 问中找到的 HTTP GET 消息相比,此 HTTP GET 消息中的某些字段发生了变化。试分析 IP 层中的所有字段,找到发生改变的字段,说明这些字段的值由原来的什么数值改变成了现在的什么数值,并解释改变的原因。

    可以发现,源IP地址相较于任务一的第 3 问中找到的 HTTP GET 消息相比发生了改变。

    对比IP层所有字段:

    发现校验和Checksum 由0xaef3变为了0x386d,因为源ip地址字段发生了变化,校验和Checksum自然也随之发生改变。

    (3)在 NAT_ISP_side 跟踪文件中,从 Google 服务器收到的第一条 HTTP 200 OK 消息在什么时间?携带此 HTTP 200 OK 消息的 IP 数据报上的源 IP 和目标 IP 地址以及 TCP 源和目标端口是什么?与你在任务一的第 4 问对于回答的 NAT_home_side 的结果相比,哪些字段相同,哪些字段不同?

    可见,在6.117570s从 Google 服务器收到的第一条 HTTP 200 OK 消息。

    查看其IP数据报:

    可见,源 IP 地址为64.233.169.104,目标IP地址为71.192.34.104,TCP 源端口为80,目标端口为4335。

    易知,目标IP地址发生了变化。

    (4)在 NAT_ISP_side 跟踪文件中,跟任务一的第 5 问相同的客户端到服务器 TCP SYN 报文段和服务器到客户端 TCP SYN-ACK 报文段是在什么时间出现的?这两个报文段的源 IP 和目标 IP 以及源端口和目标端口是什么?与你在任务一的第 5 问的回答相比,哪些字段相同,哪些字段与不同?

    跟任务一的第 5 问相同的客户端到服务器 TCP SYN 报文段和服务器到客户端 TCP SYN-ACK 报文段分别在6.035475 s 和 6.067775 s出现。

    TCP SYN 报文段源 IP 地址为71.192.34.104,目标IP地址为64.233.169.104,TCP 源端口为4335,目标端口为80。

    SYN-ACK 报文段源 IP 地址为64.233.169.104,目标IP地址为71.192.34.104,TCP 源端口为80,目标端口为4335。

    (5)使用对于之前问题的回答,做出类似图 1 的 NAT 转换表(NAT translation table)。

    内网地址及端口

    外网地址及端口

    192.168.1.100, 4335

    71.192.34.104, 4335

    3.任务三:

    除了上面提到的 HTTP GET 消息和 HTTP 200 OK 消息以外,还与其他 Google 服务器有额外的连接,例如,在 NAT_home_side 跟踪文件中,分析时间为 1.572315s 的客户端到服务器 GET 消息,以及时间为 7.573305s 的 GET 消息。仔细研究这两个 HTTP 消息的使用,写出说明分别解释这两个消息的作用。

    找到时间为 1.572315s 的客户端到服务器 GET 消息:

    以及时间为 7.573305s 的 GET 消息:

    作用为检测网络连接是否可用并保证网络通信安全。

  • 相关阅读:
    Windows:Arduino IDE 开发环境配置【保姆级】
    供应链平台 采购信息监控更新提醒
    Prometheus监控Kafka(三种方法JMX/Kafka_exporter/KMINION监控Kafka)
    企业移动设备管理(MDM)概述
    厉害,腾讯技术专家手撸Redis技术笔记,下载量已突破30W
    「影视解说」三联屏封面超详细制作方法,全网最简单三连视频封面
    [C]二叉树的实现——喵喵成长记
    linux阻塞IO与非阻塞IO在应用层和驱动层的实现(一)
    Vue2和Vue3的emit、props、watch等知识点对比
    车联网解决方案-最新全套文件
  • 原文地址:https://blog.csdn.net/Mitchell_Donovan/article/details/126312046