热门标签 | 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 简单服务发现协议–我辛飞翔


推荐阅读
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  •   1、确认自己的线路是否连接正确腾达a9设置。 ... [详细]
  • POCOCLibraies属于功能广泛、轻量级别的开源框架库,它拥有媲美Boost库的功能以及较小的体积广泛应用在物联网平台、工业自动化等领域。POCOCLibrai ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了VoLTE端到端业务详解|VoLTE用户注册流程相关的知识,希望对你有一定的参考价值。书籍来源:艾怀丽 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • SQL Server 2008 到底需要使用哪些端口?
    SQLServer2008到底需要使用哪些端口?-下面就来介绍下SQLServer2008中使用的端口有哪些:  首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果 ... [详细]
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社区 版权所有