假设当前公司域网为192.168.xxx.xxx开头,你知道背后的原理吗?
首先这是局域网,
TCP/IP协议
概念
了解协议,TCP协议和IP协议,这两个是互联网最核心、最基础的通信协议族,是实现不同计算机网络之间互联互通的技术基础。
不能理解为是单一协议,而是由多种分层协议共同组成的协议体系,以网际协议IP作为网络层核心,提供统一的逻辑寻址与分组转发能力,并在其上通过传输层协议(TCP, UDP)为各类应用提供端到端的数据传输服务。
常见的是TCP/IP四层模型:从下至上分别为网络接口层、网际层、传输层、应用层。各层功能独立又相互协作,共同实现网络通信。
四层结构
四层结构概览:
| 应用层 | 为应用程序提供网络服务 | HTTP、DNS、SMTP等 | 数据/消息 |
| 传输层 | 端到端通信控制 | TCP、UDP | 段 |
| 网际层 | 逻辑寻址与路由选择 | IP、ARP、ICMP | 数据包 |
| 网络接口层 | 物理传输与帧处理 | 以太网、Wi-Fi | 帧 |
-
网络接口层 Network Interface Layer
模型最底层,负责在物理网络上传输数据帧,处理物理地址(例如MAC地址)和差错检测。该层涵盖了OSI模型中数据链路层与物理层的功能,涵盖以太网、Wi-Fi等具体技术。 -
网际层Internet Layer
以IP协议为核心,负责逻辑寻址(IP地址)和跨网络的数据包路由,通过ARP协议解析物理地址,ICMP协议报告错误,实现不同网络间的数据转发。 -
传输层 Transport Layer
提供端到端的通信服务。TCP协议确保可靠传输,UDP协议支持轻量级通信。通过端口号区分不同应用程序的数据流。 -
应用层 Application Layer
直接为应用程序提供网络服务,处理具体业务逻辑。例如HTTP协议用于网页访问,DNS协议解析域名,SMTP协议处理邮件传输。整合了OSI模型中应用层、表示层和会话层的功能。
所以TCP和IP是分工不同的合作关系。
可以理解为物流系统:
- IP负责寻址和发件:给每个数据包贴上源地址和目的地址,并负责把包裹扔到网络上,但不关心包裹是否丢失、顺序是否错乱。只管尽力而为的发送。
- TCP负责可靠运输和整理:基于IP提供的尽力而为服务,增加了一套确保可靠的机制,把大块数据分拆成小包,给每个小包编号,确认对方收到了,超时没收到就重发,最后再把小包按编号重新组装好。确保数据完整、有序、无差错的到达对方。
所以IP + TCP提供了将数据可靠传输的能力。
IP协议/IP地址
IP协议定义了一套规则,规定了数据如何打包如何编址如何路由。
IP地址则是这套规则里的核心要素之一,用于唯一标识网络中的每个设备(或网络接口)。
IP协议用IP地址来标识节点,但IP协议标识的东西远不止地址。
IP协议到底标识什么
IP协议,主要是IPV4和IPV6,在整个网络体系中彪是了三样关键的东西。
标识每个网络设备的位置:IP地址
- 就像门牌号,路由器根据这个号码一步一步把数据传过去。
- 标识的是设备在网络中的逻辑位置,而不是设备本身(是MAC地址)
- 全球唯一或局域网唯一。
标识数据包的“格式”和“封装方式”
IP协议规定了每个数据包必须长成什么样子。这个标准格式叫做IP数据报。它标识了:
-
头部结构:固定有源IP地址、目的IP地址、长度、校验和等字段。
-
最大包大小:IPv4是64KB。
-
分片标记:如果包太大,允许中间路由器把它拆小,到目的地再组装
标识尽力而为的传输规则
IP协议标识了自己对待数据的行为模式:
-
不可靠:它不承诺一定能送到。如果网络拥堵,它可能就直接丢掉这个包,并且不通知发送方。
-
无连接:发每个包之前,不需要和对方握手建立连接。发完就忘。
-
无状态:每个包都是独立处理的,它不知道这个包是某个大文件里的第几个包。
IP协议的报头
例如IPV4报头的完整结构
版本与首部(第一行)
- 版本(4位):区分 IPv4 / IPv6
- 首部长度 IHL(4位):单位是 32 位字(4字节),最小值为 5,即 20 字节
- 服务类型 ToS(8位):现代网络用于 QoS 优先级(DSCP/ECN)
- 总长度(16位):整个 IP 数据报的字节数,最大 65535
分片控制(第二行)
- 标识:同一个原始数据报的所有分片共用同一标识,用于重组
- 标志:DF 位禁止分片,MF 位表示"后面还有分片"
- 片偏移:当前分片在原始数据中的起始位置(以 8 字节为单位)
路由与控制(第三行)
- TTL:每经过一跳路由器减 1,归零则丢弃,防止数据报在网络中无限循环
- 协议:指示上层协议,TCP = 6,UDP = 17,ICMP = 1
- 首部校验和:只校验首部(不含数据),由于 TTL 每跳都变,所以每个路由器都要重新计算
地址(第四、五行)
- 源/目的 IP 地址各 32 位,是路由决策的核心依据
选项字段可选,用于时间戳、路由记录等特殊功能,需填充至 32 位边界对齐。
IP地址 vs MAC地址
你可能听说过MAC地址(物理地址),它们经常被混淆。这里有一个关键区别:
| 标识什么 | 设备在网络中的逻辑位置 | 设备硬件本身的唯一身份 |
| 类比 | 你的家庭住址 | 你的身份证号 |
| 谁分配的 | 网络管理员或DHCP服务器(动态,静态) | 网卡制造商烧录在硬件中 |
| 可变性 | 可以变 | 不可变 |
| 在哪层使用 | 网络层 (IP协议负责) | 数据链路层(以太网协议负责) |
| 作用范围 | 用于跨网络路由 | 用于同一条网线/同一个局域网内寻址 |
在网络查找目标主机时,由于查找的本质是排除,IP地址能够帮助我们更快排除其他主机,更快找到目标主机。
网段划分
IP地址核心设计思想之一就是分层寻址,因此必然分为两个部分:网络ID和主机ID
一个IP地址(以最常见的IPv4为例,如 192.168.1.100)在逻辑上被分为:
- 网络ID (Network ID,即网络号):你在哪个网络上?
作用:标识设备连接的物理网络(类似于小区名、街道名)。
特征:同一个物理网络内的所有设备,拥有相同的网络ID。
- 主机ID (Host ID,即主机号):你是谁?
作用:标识该网络中的具体设备(类似于楼号单元号、门牌号)。
特征:在同一网络内,这个编号是唯一的。
如何区分这两部分 : 子网掩码
子网掩码是CIDR(Classless Interdomain Routing)无类别域间路由划分方案,在这之前对于网络号和主机号的划分方案还有分类划分法。
光看192.168.1.100这个数字本身,无法看出哪部分是网络ID,哪部分是主机ID,需要配合子网掩码来界定。
子网掩码也是一个32位的数字,用连续的1表示网络ID部分,用连续的0表示主机ID部分。
例如:
- IP地址192.168.1.100
- 子网掩码255.255.255.0,转换为二进制就是11111111.11111111.11111111.00000000
计算方式:
- 网络ID = IP 地址 与 子网掩码 = 192.168.1.0
- 主机ID = IP地址的末尾部分(掩码中0对应的部分) = 100
网络ID是 192.168.1.0(标识整个局域网段)
主机ID是 100(标识这个网段里的第100号设备)
常用的子网掩码:
| /8 | 255.0.0.0 | 16,777,216 | 16,777,216 |
| /16 | 255.255.0.0 | 65,536 | 65,534 |
| /24 | 255.255.255.0 | 256 | 254 |
| /28 | 255.255.255.240 | 16 | 14 |
| /32 | 255.255.255.255 | 1 | 1 |
为什么/24只有254个可用IP,因为每个网段里,第一个地址是网络地址,例如192.168.1.0,最后一个是广播地址,例如192.168.1.255。这两个不能分配给设备使用。
如果你在公司或家里组网,只需要记住255.255.255.0这一种就行了,能满足绝大部分局域网场景。
为什么要分两部分,核心意义?
实现路由
- 如果发现网络ID不是自己所在的192.168.1.0,就知道对方不在身边,直接把数据扔给网关(路由器)处理,而不是自己去满世界广播查找
- 路由器也只管看网络ID,把数据从一个网络转发到另一个网络,极大减少了路由表的条目
划分网络层级
- 形成了互联网的层次结构:互联网 ——》一个个网络 ——》网络里的设备
- IPS运营商分配给你的是一个网络ID,你可以自己在这个网络内随意分配主机ID。
不同的子网就是把网络号相同的主机放到一起,如果在子网中新增一台主机则网络号和这个子网的网络号一致,但是主机号不能和子网中的其他主机重复。
路由器本质也是一个子网的主机,也要配置IP地址。路由器至少要连接两个子网,相当于路由器至少同时是两个子网的主机,有两个以上IP地址。路由器一般是子网的第一台设备,一般IP地址是网络号.1。路由器的功能不仅仅是IP报文的转发,还有诸如构建子网(局域网)的功能。
IP地址仍然不够用怎么办:
- 动态分配IP地址
- NAT技术
- IPv6
私有IP地址和公网IP地址
公网IP是全球唯一的,可以在全世界任何地方直接访问;私有IP是局部唯一的,只能在局域网内部使用,不能直接暴露在互联网上。
表格区分:
| 全局唯一性 | 是,全球唯一,没有第二个设备使用同一个公网IP | 否,仅在当前局域网内唯一。不同局域网可以使用完全相同的私有IP |
| 谁分配 | 由ICANN, CNNIC等国际/地区性互联网注册机构分配给运营商,运营商再租给你 | 由你自己分配,无需向任何结构申请 |
| 能够直接访问互联网 | 能, 是互联网上的门牌号,任何互联网设备都能直接发起连接 | 不能,私有IP地址无法被互联网直接路由,无法直接上网。 |
| 能否被外网直接访问 | 能 | 不能 |
| 费用 | 要花钱 | 免费 |
| 例如 | 8.8.8.8谷歌DNS, 1.1.1.1 cloudflare DNS | 192.168.1.100, |
私有IP地址范围
根据RFC1918标准,IPv4地址中专门划出了三段作为私有地址,永远不会在公网路由器上出现,任何组织或个人都可以免费、随意使用他们:
| A类 | 10.0.0.0 – 10.255.255.255 | 10.0.0.0/8 | 255.0.0.0 | 16,777,214 | 大型企业内部网络,云服务商内部网络 |
| B类 | 172.16.0.0 – 172.31.255.255 | 172.16.0.0/12 | 255.240.0.0 | 1,048,574 | 中大型企业,学校,政府网络 |
| C类 | 192.168.0.0 – 192.168.255.255 | 192.168.0.0/16 | 255.255.0.0 | 65,534 | 最熟悉的家用/小型办公,路由器默认网段 |
如何配合工作的:NAT网络地址转换技术
私有IP不能上网,那么电脑192.168.1.100是怎么访问百度的。
全靠路由器执行NAT,过程如下:
- 发出请求:电脑192.168.1.100:54321要访问百度110.242.68.66:80,数据包的源IP是私有IP,目标IP是百度公网IP。
- 路由器截获并转换:路由器收到这个包,知道私有IP不能出去,于是:把源IP替换为自己的公网IP,例如192.168.1.100替换为123.123.123.123,同时替换掉端口号,从54321替换为60000,悄悄在内存中记下一张表NAT表,内网与外网之间关系。
- 数据包发往百度:百度看到的请求来自123.123.123.123:60000
- 百度回复
- 路由器反向转换:收到回复包,查NAT表,找到对应的内网地址,把目标IP改回192.168.1.100,端口也改回54321.
- 收到回复,电脑成功显示百度首页。
数据链路层
以太网
公司连接网线
当你连接公司的网线,但是公司网线是192.168.开头的,为什么我电脑使用ipconfig查看,却是169.254.xxx
这就说明你的电脑未能从公司的网络中成功获取到正常的IP地址。表明你当前的电脑设置的是自动获取IP地址,这是windows系统内置的一种备用机制,成为自动专用IP寻址APIPA。当你设置自动寻址,但无法与公司DHCP服务器建立通信并获取IP时,系统就会自动给你分配一个169.254.x.x范围内的临时IP地址,这个地址只能用于局域网内部分设备之间的临时通信,无法连接到公司内网和互联网。
有可能是IP分配完有冲突,这个时候可以手动设置静态IP,这个时候可以询问固定IP地址、子网掩码、默认网关和DNS服务器。
然后在windows网络中进行设置。
https://blog.csdn.net/wefg1/article/details/160711147


