简单解释, 当你的操作系统连接特定 HTTP 服务, 比如 http://www.gstatic.com/generate_204, 如果能够返回 204 状态码, 那就基本说明你连接上网络了. 如果被 301, 说明你已经有 IP, 但是你的网络可能是一个付费网络, 会跳转到一个页面让你付钱/登陆. 如果无法解析域名/创建 TCP 连接, 说明你的三层/四层网络存在问题, 再下去多半是网线没插之类的物理层问题.
至于 TCP/UDP(一般主要是为了 DNS) 无法创建, 有可能是因为没路由, 或者是 SYN 过去没包回来超时, 或者是 SYN 飞过去, 中间路由 ICMP 告诉你目标不可达; 如果是创建 socket 失败说明可能没三层 IP, 没 IP 可能是因为没网卡/没插网线/二层里没有 DHCP 或者没有设置 IP.
但是你看到这些没明白, 你看下面可能都不见得明白. 很多人自以为明白上面那些内容, 实际上不少观点还是错误的.
首先就是很经典的五层网络模型:
文章插图
首先从物理层开始说.
所谓物理层, 就是双绞线/光纤/无线电等传输介质. 比方说电脑上显示的「网线已经拔出」, 就说明物理层没有建立链接. 还有就是双绞线以太网的速度协商, 光模块的功率协商, 各种无线网络的时分/码分/空分/功率协商技术都是物理层的体现.
文章插图
无线网络的频率,信噪比, 带宽, 物理模式
文章插图
光模块的信息, 包含了波长, 电压, 功率, 发射/接收功率(信噪比)
文章插图
有线网络的状态
接下来就是媒体访问控制层, 也即是 mac 层, 简称二层, 代表的以太网设备有交换机/无线AP.
首先要确定, 我们的以太网是一个「分组传输」机制, 也就是数据流(stream), 会被切成分组(packet), 而每个数据分组都有可能因为各种问题, 比如你的网线质量不好, 然后产生错误被分组内的校验和检查出来, 然后被交换机丢掉; 与分组传输机制对应的就是「电路交换」, 比如工作在电路域的电话, 本质上是机器代替人工帮你完成了从你的电话到你交流的人的线.
而分组在二层上的大小, 被称为 MTU, 最大传输单元, 超过这个大小, 就会尝试调整或在三层进行拆分;所有以太网二层设备都会有一个能接受的最大 MTU, 和一个标记设备的 mac 地址. 这个地址的前 24bit 是 vendor ID, 厂商编号
这一层包含了著名的 ARP 协议(地址解析协议), 简单来说就是用于完成 IP 地址-> mac 物理地址的转换, 就好比教室里你喊一声某个同学的名字, 然后那个同学/知道那个同学的人就会回答你他所在的座位坐标. 如果多个 mac 地址对应了一个 IP 地址, 我们就说 IP 地址发生了冲突, 好比两个人坐在了一个位置上.
以及还有 IPv4 里面非常基础的 DHCP 协议, 这个协议好比一个老师, 当你没有就坐(没有分配到 IP 地址)的时候, 可以听到老师(们)宣布分配座位的广播, 然后你选择一个选择老师的分配广播, 请求这个老师为自己分配位置. 当然这个位置是有时间限制的, 到这个期限之前就要提出续约, 当然老师也可要求你改变位置. 当然你自己也可以坐在一个固定位置, 相当于手工设置 IP(但是如果和别人不在一个子网(subnet)里面, 除非有人充当 arp proxy 的角色, 不然你就无法和不在一个子网的同一个二层人进行 IP 的传输.
文章插图
DHCP 的状态机
其中大多数操作系统当检测到链接到一个二层但是没有 DHCP 的时候, 就会使用一个特殊的 link-local 机制, 为自己分配一个 169.254.0.0/16 的地址, 后面的 /16 是根据自己 mac 地址的填充. 所以当你把两台电脑直接用 RJ45 网线连接在一起的时候, 理论上常见的操作系统的 DHCP client 都会配置上这个地址, 从而允许通过 IP 连接.
而 IPv6 不主张使用 DHCP 的分配模式, 而是使用类似 link local 那样的自己设置+随机生成的模式, 让设备拿到, 这套机制叫 SLAAC, 借助的协议叫做 NDP, 其中需要二层网络里面有一个三层路由器宣告自己的 IPv6 路由, 大概就是比如说 2001:2333::2a4e/48是你的路由器, 他告诉这个网络的人他有到 2000::/3(差不多是 IPv6 的公网地址) 的路由, 那么你就可以通过他的地址前缀 2001:2333::/48 给自己取名字. 其中一个相对固定的名字是通过你的 mac 地址来确定, 而因为 SLACC 地址前缀都只要有 /64, 所以就需要一套机制完成 48bit 的 mac 地址到 64bit, 即 EUI64. 除了这个地址之外就是一些临时地址, 直接随机生成, 用于提供 IPv6 的匿名性.
推荐阅读
- 花草茶的疗效,电脑族选适合自己的花草茶
- 个人组装电脑最容易出错的地方,非常实用
- 开店要考虑哪些问题?开店选择经营项目的要点是什么??
- 七月流火中流火的意思 七月流火中的火是什么意思
- 岳飞被杀后他的妻儿如何 岳飞是如何被冤死的?
- 路由器怎么隐藏wifi,防蹭网
- 你要的负载均衡Ribbon,来了
- 光绪遗精是什么原因引起的 光绪为什么长期遗精
- 朱元璋开国后杀了多少功臣 朱元璋不杀开国功臣会怎么样
- 黑茶是阵风,黑茶为何抗癌