热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【计算机网络】手机连接电脑热点实现上网以及捕包

手机连接电脑热点实现上网以及捕包本文原创,请勿转载移动热点功能介绍关于共享WLAN的实现打开移动热点观察网络适配器情况移动热点的初始数据包介绍分析DHCP、SSDP、


手机连接电脑热点实现上网以及捕包

  • 本文原创,请勿转载
  • 移动热点功能介绍
  • 关于共享WLAN的实现
    • 打开移动热点
    • 观察网络适配器情况
    • 移动热点的初始数据包介绍分析DHCP、SSDP、LLMNR、MDNS
    • 为源网络发射端配置共享,映射给移动热点
    • 手机连接移动热点
    • 补充
    • 错误分析
    • 协议介绍的参考资料:


本文原创,请勿转载


移动热点功能介绍

我们都知道电脑有个移动热点功能。但它有什么作用呢?根据Microsoft介绍:
通过使用 WLAN 与其他设备共享 Internet 连接,将 Windows 10 电脑转变为移动热点。你可以共享 WLAN以太网手机网络数据连接。如果你的电脑具有手机网络数据连接并且共享该连接,它将使用流量套餐数据。

选择“开始”按钮 ,然后依次选择“设置” >“网络和 Internet”>“移动热点”。对于“从以下位置共享我的 Internet 连接”,选择要共享的 Internet 连接。选择“编辑”> 输入新的网络名称和密码 >“保存”。打开“与其他设备共享我的 Internet 连接”。若要在其他设备上进行连接,请转到该设备的 WLAN 设置,查找并选择网络名称,输入密码,然后进行连接。

如下图所示:
在这里插入图片描述


关于共享WLAN的实现


打开移动热点

打开共享之后,共享途径就被锁定了,如图灰色状态。
在这里插入图片描述之后我们可以看到,它最多允许八个设备连接此移动热点。
在这里插入图片描述
点击图示网络和Internet设置之后,我们点击网络和Internet设置,点击更改适配器选项,更进一步地观察网络状态信息。
在这里插入图片描述


观察网络适配器情况

此时我们看到多出来一个本地连接*2,这就是移动热点(可能名称会因不同主机而异,注意自己电脑上的名称)。
在这里插入图片描述


移动热点的初始数据包介绍分析DHCP、SSDP、LLMNR、MDNS

为了更好观察其数据包状态,我这里使用wireshark捕捉了一下数据包。
在这里插入图片描述可以看到,这里它发送多种数据包。
其中一种是0.0.0.0到255.255.255.255的DHCP数据包。中间进行的过程:


  • DHCP客户端通过广播方式发送DHCP DISCOVER请求报文来寻找网络中的DHCP服务器,其中源IP地址为0.0.0.0,目的IP地址为255.255.255.255,因为此时没有IP地址,所以源IP全为0,但是该报文中有用户的MAC地址。
    网络中的DHCP服务器收到DHCP DISCOVER请求报文后,会从自己的地址池中选择一个合适的IP地址,把IP地址,子网掩码,网关,DNS,租约相关的内容还有客户端的MAC地址封装在DHCP OFFER报文中,通过广播方式发送给客户端,网络内的所有客户端根据封装在DHCP OFFER报文中的MAC地址来决定是否接收此报文。
  • 客户端在收到DHCP OFFER报文后,会再通过广播方式发送一个DHCP REQUEST报文,该报文的源地址还是全为0,目的地址全为1,但是在requested address字段包含了OFFER应答报文中分配的IP地址,DHCP服务器地址和DHCP服务器名。
  • DHCP服务器在收到客户端的REQUEST报文后,确认将此IP地址分配给客户端,会以广播方式返回一个DHCP ACK确认报文,确认不能把此IP地址分配给客户端则返回一个DHCP NAK确认报文。在DHCP ACK报文中,源地址为DHCP服务器地址,目的地址仍是全为1的广播地址,在ACK报文中包含了分配给客户端的IP地址,子网掩码,默认网关,DNS,租约期,续约时间等信息,因为DHCP ACK的目的地址仍是一个广播地址,所以ACK报文内还包括客户端的MAC地址,网络内的客户端根据封装在DHCP OFFER报文中的MAC地址来决定是否接收此报文。
    客户端在收到服务器的ACK确认报文后,会以广播方式发送免费的ARP报文,该报文中源IP和目的IP都是本机的IP地址,源MAC是本机的MAC,目的MAC是广播MAC,探测网络内是否有主机使用服务器分给自己的IP地址,如果在规定时间内没有收到回应,则正是使用该地址,否则,客户端会继续发送DHCP DECLINE报文给DHCP服务器,重新申请IP地址

第二种是SSDP报文:


  • SSDP 简单服务发现协议,是应用层协议,是构成UPnP(通用即插即用)技术的核心协议之一。它为网络客户端(network client)提供了一种发现网络服务(network services)的机制,采用基于通知和发现路由的多播方式实现。
  • SSDP多播地址:239.255.255.250:1900(IPv4),FF0x::C(IPv6)
  • 两种类型的SSDP请求消息会通过SSDP多播地址发送

  1. 发现请求(Discovery request 或查询请求)。SSDP客户端向此地址发送HTTP UDP 发现请求,查询某种类型的服务。SSDP服务在此地址上监听服务发现请求。当服务监听到的HTTP UDP 发现请求和它自己提供的服务匹配时,它以单播方式发送HTTP UDP 响应。

  2. 存在通知(notification)。SSDP服务向此多播地址发送HTTP UDP 通知消息来宣布自己的存在。

在这里插入图片描述后面发现的报文也看到了另外两种协议:


  • LLMNR—Link-Local Multicast Name Resolution(也称为多播 DNS 或 mDNS),在DNS 服务器不可用时,DNS 客户端计算机可以使用 本地链路多播名称解析 (LLMNR—Link-Local Multicast Name Resolution)(也称为多播 DNS 或 mDNS)来解析本地网段上的名称。例如,如果路由器出现故障,从网络上的所有 DNS 服务器切断了子网,则支持 LLMNR 的子网上的客户端可以继续在对等基础上解析名称,直到网络连接还原为止。
  • MDNS 即多播DNS(Multicast DNS),MDNS主要实现了在没有传统DNS服务器的情况下使局域网内的主机实现相互发现和通信,使用的端口为5353,遵从dns协议,使用现有的DNS信息结构、名语法和资源记录类型。并且没有指定新的操作代码或响应代码。在局域网中,设备和设备之前相互通信需要知道对方的ip地址的,大多数情况,设备的ip不是静态ip地址,而是通过dhcp 协议动态分配的ip 地址,如何设备发现呢,就是要mdns大显身手,例如:现在物联网设备和app之间的通信,要么app通过广播,要么通过组播,发一些特定信息,感兴趣设备应答,实现局域网设备的发现,当然mdns 比这强大的多。

为源网络发射端配置共享,映射给移动热点

因此目前这个本地连接*2是不可用的,那么我么如何为其配置呢?
打开目前连接的WLAN,打开属性,共享中我们看到一个家庭网络(包含一个家庭系统的网络,比如以太网,WLAN…)连接的选项,其含义是,为我们启动的移动热点配置一个连接对象,从这个WLAN网络共享Internet给我们的本地连接 * 2(也即我们的移动热点,前文所提到的WLAN以太网手机网络数据连接)。并勾选允许其他网络用户通过此计算机的Internet连接来连接。如图所示:

在这里插入图片描述

此时我们回看本地连接*2的IPV4的状态,发现它已经获得了Internet服务。

在这里插入图片描述
已经连接到了Internet。并且它喜欢较好用默认的IP,也就是192.168.137.1,不要设置成自动获取,因为你这等于是主机,要有IP让人家获取。而“192.168.137.1”比较稳定,手机动态获取比较容易。
在这里插入图片描述


手机连接移动热点

此时手机输入之前设置的移动热点密码,动态获取IP,连接到此移动热点。那么就可以上网了,如图为上网后移动热点的收发包情况。
在这里插入图片描述在这里插入图片描述此时这些IP数据包都是与我们手机端的操作相绑定的。图示为小米(xiaomi)。
在这里插入图片描述


补充

当然也可以设置成静态IP,但是需要和发射端的IP(源WLAN或以太网)在一个IP段上。并配置好子网掩码,默认网关和本地DNS服务器(除了IP外的数值都要保证与源发射端的一致)手机也是一样的设置方法,应该为静态获取该本地连接 * 2的IP。


错误分析

设置的共享源错误,应该是连接的网络(WLAN或者以太网)开启共享功能,共享给移动热点映射出来的本地连接 * 2,让这个本地连接 * 2作为数据的中转站。而不是让映射出来的移动热点(本地连接 * 2)设置共享功能


协议介绍的参考资料:

域名解析-DNS与MDNS-LLMNR–强大的石头
SSDP 简单服务发现协议–我辛飞翔


推荐阅读
  • 解决浏览器打开网页后提示“dns_probe_possible 怎么解决”的方法
    在使用浏览器进行网上冲浪的时候遇到故障是一件很常见的事情,很多用户都遇到过系统提示:dns_probe_possible。从提示中可以看出和DNS是有一定的关系的,经过小编测试之后 ... [详细]
  •   1、确认自己的线路是否连接正确腾达a9设置。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 开发笔记:计网局域网:NAT 是如何工作的?
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了计网-局域网:NAT是如何工作的?相关的知识,希望对你有一定的参考价值。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文介绍了如何使用双路由器有线搭建一个小型的局域网网络,解决家庭或公司多个网络设备无法同时上网的问题。详细讲解了两种简单快速的组网方式,并提供了具体的设置步骤和注意事项。 ... [详细]
  • 本文详细介绍了cisco路由器IOS损坏时的恢复方法,包括进入ROMMON模式、设置IP地址、子网掩码、默认网关以及使用TFTP服务器传输IOS文件的步骤。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  • 服务器系统更新要多久,系统时间更新服务器是多少,
    系统时间更新服务器是多少,时间器(timeserver)是NTP的一种服务通过它可以使中的机器维持时间同步。目前系统更新Internet时一般都是从以下5个时间服务器 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
author-avatar
lk神密勇士
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有