俺来强答一番。
物理层接上网线和路由器的交换口连接,网卡会根据静态或者动态 IP 分配获得地址。无线的类似, 只是免了插线。如果是 DHCP 的工作方式, 网卡请求以后收到本地地址就会显示某个图标。
一般是搞个类似心跳信号的检测过程。当电脑从某个端口例如 eth0 或者 wlan0 向某个约定的广域网 IP 发包并且收到该 IP 的正确回应就会认为自己联上网了。当然, 背后还有 TCP/IP 协议这些东西。 大家已经基本不玩 IPX/SPX 或者 NETBUI 所以不提也罢。
电脑会有个路由表, 知道默认的网关是在哪里。
简单举例。
例如
=========================================================================== Interface List 7...ec f4 bb 22 33 66 ......Intel(R) Ethernet Connection I217-LM 21...b8 ee 65 11 22 33 ......Dell Wireless 1550 802.11ac 19...ba ee 65 11 22 33 ......Microsoft Wi-Fi Direct Virtual Adapter 12...ba ee 65 11 22 36 ..... Microsoft Wi-Fi Direct Virtual Adapter #2 1...........................Software Loopback Interface 1 27...00 15 5d 3a 4e 8b ......Hyper-V Virtual Ethernet Adapter =========================================================================== IPv4 Route Table =========================================================================== Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 172.16.31.254 172.16.31.110 25 127.0.0.0 255.0.0.0 On-link 127.0.0.1 331 127.0.0.1 255.255.255.255 On-link 127.0.0.1 331 127.255.255.255 255.255.255.255 On-link 127.0.0.1 331 172.16.31.0 255.255.255.0 On-link 172.16.31.110 281 172.16.31.110 255.255.255.255 On-link 172.16.31.110 281 172.16.31.255 255.255.255.255 On-link 172.16.31.110 281 192.168.226.144 255.255.255.240 On-link 192.168.226.145 5256 192.168.226.145 255.255.255.255 On-link 192.168.226.145 5256 192.168.226.159 255.255.255.255 On-link 192.168.226.145 5256 224.0.0.0 240.0.0.0 On-link 127.0.0.1 331 224.0.0.0 240.0.0.0 On-link 172.16.31.110 281 224.0.0.0 240.0.0.0 On-link 192.168.226.145 5256 255.255.255.255 255.255.255.255 On-link 127.0.0.1 331 255.255.255.255 255.255.255.255 On-link 172.16.31.110 281 255.255.255.255 255.255.255.255 On-link 192.168.226.145 5256 =========================================================================== Persistent Routes: None
0.0.0.0 0.0.0.0 172.16.31.254 172.16.31.110 25
这条就是网关(172.16.31.254 )的路由, 让电脑(172.16.31.110)知道想上网就把包扔给 172.16.31.254 这个地址。
其他的事情就等 TCP/IP 协议来解决。
tracert 208.67.222.222 Tracing route to resolver1.opendns.com [208.67.222.222] over a maximum of 30 hops: 1 2 ms <1 ms <1 ms 310cisco [172.16.31.254] 2 3 ms 1 ms 2 ms 10.110.1.254 3 110 ms 14 ms 12 ms 73.28.62.1 4 81 ms 66 ms 16 ms rc1st-ba197-1.vc.xhawcable.net [24.33.102.29] 5 11 ms 144 ms 64 ms as36692.vanix.ca [206.41.104.40] 6 10 ms 12 ms 9 ms resolver1.opendns.com [208.67.222.222] Trace complete.
假设 IP 包要扔给 208.67.222.222, 这个包会顺着路径类似快递一样,一跳一跳转发到下一跳,直到 208.67.222.22。
Pinging 208.67.222.222 with 32 bytes of data: Reply from 208.67.222.222: bytes=32 time=20ms TTL=59 Reply from 208.67.222.222: bytes=32 time=21ms TTL=59 Reply from 208.67.222.222: bytes=32 time=9ms TTL=59 Reply from 208.67.222.222: bytes=32 time=9ms TTL=59 Ping statistics for 208.67.222.222: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 9ms, Maximum = 21ms, Average = 14ms
返回的路径未必一样, 电脑(172.16.31.110)只要及时收到 208.67.222.22 的回应(过程中也可能包含ICMP请求, GRE请求,, DNS 请求, HTTPS 请求或者其他莫名其妙的信号,总之在相应的层面握上手以后)就会认为联网的路通了。 具体的过程您可以用嗅探器重建的, 例如 Sniffer Pro 或者 Wireshark.
上世纪没有那么先进或者在命令行下上网,
大家是通过 Telnet 一个熟悉的广域网地址来确定电脑已经联上网的。
telnet 不通的话就查灯,网线,ping 网关,ping DHCP SERVER, ping DNS, ping 8.8.8.8 等,检查 etc/hosts 关闭防火墙等。
答完才发觉自己在瞎扯, 也许年代太久远
telnet ptt.cc
如果好奇可以找网上的 CCNA 培训教程, 或者华为/中兴/港湾等公司的培训资料, 会解释得很详细。 从物理层解释到应用层。
也有自学类参考书
########################################################################
关于这个话痨的答主以及它的很散的散文:
。。
Windows这部分功能叫NCSI(網路連接狀態指示器),方式大概是访问http://www.msftconnecttest.com/connecttest.txt 这个地址,返回Microsoft Connect Test这个字串就证明网络正常。
这里有详细的说明
>
Windows 10 和更新版本:
www.msftconnecttest.com
FQDN 的位址。http://www.msftconnecttest.com/connecttest.txt
請求。Microsoft Connect Test
。dns.msftncsi.com
FQDN 的位址。安卓系统也是一样的,只是安卓是靠204这个状态码而不是特定的字符串,并且对于安卓系统这个地址是可以改的,设置项是captive_portal_http_url
,需要进shell用settings
命令去修改。常常有人从国外带回来机器,或者自己刷了第三方ROM发现一直提示没有网络但是还能正常联网,就是因为这个地址安卓默认用的是用谷歌的服务(或者一些比较老的cm ROM,默认设置的提供204响应的服务器已经关了)
adb shell settings put global captive_portal_http_url https://www.google.cn/generate_204 adb shell settings put global captive_portal_https_url https://www.google.cn/generate_204
详细信息可以参考这篇文章
酷安上也有一个APP可以修改这个地址,需要ROOT
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有