Wireshark 显示 HTTP 请求的 SSDP 协议,而不是 TCP 协议

网络工程 线鲨
2021-07-25 09:21:19

我一直在通过 CBTNuggets.com 在线课程学习 ICND1,我最近开始制作一个视频,其中讲师正在指导如何使用 Wireshark 跟踪通信。

当我nslookup访问任何网站时,他首先使用 DNS 来展示用户数据报协议在 Wireshark 中的显示方式

然后他启动了 Wire Shark Capture 并访问了 CBTNuggets.com 网站,突然他的 Wireshark 窗口开始显示 TCP、HTTP 等协议。

但是当我尝试相同的过程并在我的 Wireshark 捕获打开时访问 google.com 或任何其他网站时,我只能看到我的 WiresharkSSDP窗口中的协议。

我知道 UDP 和 TCP 之间的区别,并且 TCP 是一种可靠的通信,而 HTTP 是基于 TCP 的协议。

但是为什么当我访问任何网站时,我的 Wireshark 没有显示任何 TCP 协议?

PS:我使用的是无线网络设备

在此处输入图片说明

3个回答

清除表达式 ip.addr==192.168.0.1 过滤器。这可能是过滤掉您想看到的内容。您可以从 WireShark 的第一列中看出,查看编号从 DNS No.94 跳转到 SSDP No.680 --- 所以大约有 500 个条目您没有看到。您还可以关闭 Windows 中的 ssdp 发现服务以消除 ssdp 混乱。

SSDP 是简单服务发现协议正如那篇维基百科文章所说,它是“一种基于HTTPU的基于文本的协议”,并且“使用用户数据报协议 (UDP) 作为底层传输协议”。

所以,是的,它是一个基于 HTTP 的协议,而且,是的,它运行在 UDP 而不是 TCP 之上。

但这不是用于正常网站访问的内容。 流量将由 Wireshark 显示为“HTTP”,而不是“SSDP”,如果不是“安全 HTTP”(“https”)流量则将通过 TCP 运行如果它是“安全 HTTP”,它将显示为“SSL”(安全套接字层,尽管该协议的当前版本称为传输层安全性或 TLS),并且不会显示为 HTTP,除非Wireshark 可以对其进行解密.

并且您的显示过滤器“ip.addr == 192.168.0.1”将仅在它是往返于 192.168.0.1 的 HTTP 流量时才会显示该流量;如果这不是您运行 Wireshark 的机器的地址,也不是您浏览的站点的地址,则您的机器和该站点之间的流量将不会将 192.168.0.1 作为 IP 地址(不是即使流量通过192.168.0.1路由,因此不会被该过滤器匹配。

要回答您的问题,为什么您的 Wireshark 在您访问任何网站时不显示任何 TCP 协议是因为您启用了过滤器“ip.addr==192.168.0.1”。您的wireshark捕获与您与“ip.addr==192.168.0.1”的交易有关,我认为这是您的网关。

您的初始捕获清楚地表明您的设备正在寻找 DNS 服务器,因为它需要转换为“twitter.com”的 IP 地址。

一旦您的机器找不到 DNS 服务器,它就会继续搜索提供 DNS 服务的设备,从而触发 SSDP。SSDP 是由上面的 user2373 专业定义的。

因此,您看不到任何 TCP 或 HTTP 数据包的原因是因为您的过滤器捕获了您正在寻找 DNS 服务的机器。

希望这可以帮助。