计算机网络基础第三讲:IP地址、子网掩码与TCP三次握手详解
计算机网络基础系列写到这里前两次课大家普遍还挺轻松因为一开始接触的是网络分类、拓扑结构、双绞线制作这些看得见摸得着的东西。到了“一阶段-计算机网络基础3”这个位置画风突变IP地址、子网掩码、三次握手、路由转发这些概念全是抽象的光靠记忆很难过关。这篇内容主要面向正在系统学习网络基础的人或者打算转行做网络运维、备考网络工程师认证的读者我会把第三阶段最核心的几块知识配合这些年带新人时反复踩过的坑一起拆开讲清楚。1. 这套基础课为什么要单独安排“第三讲”1.1 前两讲到底给你留下了什么很多培训课程和自学路径会把网络基础拆成一阶段、二阶段的系列课程这个顺序不是随便拍的。前两讲通常会把网络的分类、常见拓扑、传输介质、MAC地址、二层交换机这些概念过一遍。这些内容偏形象化学起来不会有太大压力但它们很重要因为后面所有抽象概念都要落在这些物理基础之上。举几个常见内容星型拓扑为什么是现在组网的主流因为它单点故障不影响全网扩展也方便直通线和交叉线的区别虽然现在多数设备支持自适应但这个概念能帮你理解物理层的协商机制MAC地址是数据链路层的标识交换机转发数据就是靠MAC地址表。没有这些底子讲IP、讲路由的时候会很难理解“二层转发”和“三层路由”的差别。1.2 第三讲必须完成的三个转变第三次课的教学重点在我看来是逼着学习者完成三个转变。第一个转变是从“看得见摸得着”转向“抽象逻辑”。前两讲你还能拿根网线比划从第三讲开始IP地址、端口、协议栈全是看不见的东西但这些恰恰是整个网络的灵魂。第二个转变是从“单台设备视角”转向“端到端链路视角”。以前关注一台交换机怎么转发现在要关注数据从源主机出发经过交换机、网关、路由器最后到达目的主机的完整路径。每一步都可能出问题排查难度陡增。第三个转变是从“记忆型学习”转向“排障型思维”。学完这一阶段哪怕只记住一条ping的排查链路你至少看到“上不了网”不会手足无措。很多新人学网络最大的问题就是知识点会背但遇到真实故障不知道从哪下手第三讲必须把这个习惯掰过来。2. 网络参考模型故障定位的第一步2.1 七层模型真正有用的地方不是背OSI七层模型物数网传会表应这个口诀估计很多人背过。我个人的观点是考试需要背但实际工作里没人会把一次通信过程逐层背诵一遍。OSI模型真正有价值的是把复杂的网络通信拆解成边界清晰的层次每层各司其职层次之间有明确接口。比如HTTP协议在应用层它根本不关心底层是以太网还是WiFi也不关心IPv4还是IPv6。因为分层上层协议可以独立演进下层替换成新硬件时上层不用改。打个生活化的比方厨房做菜如果买菜、洗菜、切菜、炒菜全是一个人干流程没法并行想优化也没法下手。网络分层就是让每一层专注自己的事效率和可维护性都上来了。这个模型还有一个实际用途故障定位。浏览器打不开网页如果提示无法解析服务器地址问题大概率在DNS或应用层配置如果能用IP地址访问但域名不行那就是DNS解析环节有故障如果IP通但端口连不上可能是传输层或防火墙策略问题。这种逐层定位思路是基础阶段最重要的思维方式。2.2 TCP/IP分层才是干活时的坐标系虽然教材从OSI讲起但实际网络用的是TCP/IP协议栈。常见说法分四层也有教材细分为五层。我建议初学者按五层来理解因为它和你后面用抓包工具看到的东西能对上。五层从下往上分别是物理层负责比特流转比如网线的电信号和光纤的光信号数据链路层负责同一条链路内的数据帧转发核心概念是MAC地址网络层负责逻辑寻址和路径选择核心是IP地址和路由协议传输层负责端到端的通信质量核心是TCP和UDP还有端口号应用层承载各种业务协议比如HTTP、DNS、DHCP、SSH。理解分层时重点关注“每层解决什么不解决什么”。路由器转发依靠网络层不关心上层是HTTP还是数据库流量交换机工作在数据链路层只认MAC地址这就解释了为什么不同网段的设备接在同一台交换机上不配置三层接口就ping不通。2.3 一次数据封装的完整旅程封装和解封装是贯穿整个网络基础的核心过程。你访问一个网页浏览器先生成HTTP请求数据这个数据在应用层是原始业务数据到了传输层加上TCP头部里面带了源端口和目的端口到了网络层加上IP头部标明源IP和目的IP到了数据链路层加上以太网帧头填上源MAC和目的MAC最后在物理层变成比特流发送出去。接收端的过程完全相反层层剥掉头部最终把原始数据交给上层应用。这个“加头”和“剥头”的流程理解得越透彻后面看协议、抓包就越轻松。我特别建议基础阶段的读者装一个Wireshark访问一遍任意网站然后随便选中一个HTTP包看协议树。你能清楚看到Ethernet帧、IP层、TCP层、HTTP数据四层结构这样封装概念就不是死记硬背而是亲眼所见。很多人学完网络都没抓过一次包这是很可惜的。抓包之前记得设置过滤条件比如 tcp.port 80否则会看到一堆ARP和MDNS背景流量容易被吓到。3. IP地址规划从算掩码到搭网段3.1 私有地址、公有地址和NAT的关系IPv4地址是32位二进制数写成点分十进制。最初按类别分A、B、C、D、E类这个分类方法到今天基本只用于考试和历史理解。现在真正用的是无类地址制度更重要的是搞清楚公网地址、私网地址、NAT三者之间的关系。地址总量约43亿个互联网设备早就远超这个数所以IPv6才要登场。但过渡期里私网地址加NAT解决了大部分问题。私网地址有三段10.0.0.0/8172.16.0.0/12192.168.0.0/16。这些地址只能在内部网络使用不能直接出现在公网上。企业内网怎么规划都行但出公网必须通过NAT转换成公网地址。我见过不少新人搞混一件事两个私网地址段想互通比如192.168.1.0/24和192.168.2.0/24如果中间没有三层路由哪怕接在同一台交换机上也不通。二层交换机只按MAC地址转发不认IP网络号跨网段必须经过网关做三层路由。3.2 子网掩码计算技巧与常见翻车点子网掩码的作用是把IP地址拆成网络号和主机号。比如192.168.1.100/24表示前24位是网络号后8位是主机号这个子网里有256个地址可用的254个。如果你把掩码改成255.255.255.128也就是/25子网就分成两个块每块128个地址可用126个。这里有个快速心算方法用256减去最后一个非零掩码值就能得到子网大小。比如掩码255.255.255.192256减192等于64这个子网的地址块就是64掩码255.255.255.224块大小就是32。算出块大小后就能快速枚举出子网范围。掩码前缀子网大小可用地址数255.255.255.0/24256254255.255.255.128/25128126255.255.255.192/266462255.255.255.224/273230255.255.255.240/281614255.255.255.248/2986255.255.255.252/3042常见翻车点有两个。一是可用地址数忘记减2网络地址和广播地址不能分配给主机。网络地址是主机位全0广播地址是主机位全1这两个地址各有特殊用途。二是把广播地址或者网络地址配成主机的IP。比如192.168.10.0/24这个网段网络号是192.168.10.0广播地址是192.168.10.255这两个都不能用在任何接口上。再说个容易犯糊涂的实际情况一台PC配置了192.168.1.101掩码是255.255.255.192那它的网关就不能配192.168.1.1因为这个地址在另一个子网块里。按块大小64来分192.168.1.101落在192.168.1.64到192.168.1.127这个块内合法网关应该是这个范围内的某个地址比如192.168.1.65。配置前先算清楚掩码能省掉很多无头绪的排障。3.3 VLSM和CIDR在项目里怎么落地VLSM就是可变长子网掩码简单说就是在同一大网段里根据各区域需求使用不同的掩码长度。公司分到192.168.0.0/24办公区需要120个地址划分一个/25财务区需要20个地址划分一个/27服务器区需要10个地址划分一个/28无线访客区需要60个地址划分一个/26。这样既不浪费又让每块区域有独立的网段边界方便做安全策略。CIDR的含义是即使申请到的地址是连续的几个C类段也可以合并成一条路由发布。比如192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24四个网段都从同一出口出去对外只要发布一条192.168.0.0/22的路由即可。这么做的意义很直接减少中间路由器的路由表条目降低网络维护成本。规划IP时还有一个非常重要原则能隔离就隔离别把所有设备塞进一个超大网段。一个大广播域里某台设备出问题流量风暴可能波及全网。把办公、监控、服务器、访客分成独立网段真出故障时排查范围立刻缩小。3.4 一个50人办公室的IP规划实例拿一个常见的50人办公场景举例。员工办公电脑和打印机需要固定网段管理层和访客WiFi需要隔离监控摄像头需要独立网段还有一台内部服务器需要单独区域。可以这样规划VLAN 10 办公网段192.168.10.0/24网关192.168.10.1VLAN 20 无线网段192.168.20.0/24网关192.168.20.1VLAN 30 监控网段192.168.30.0/24网关192.168.30.1VLAN 40 服务器网段192.168.40.0/24网关192.168.40.1VLAN 99 设备管理网段192.168.99.0/24网关192.168.99.1有人可能觉得监控才几十台设备分一个/24有点浪费。但预留扩展空间有价值而且网段大小统一的话配置和记忆成本都低。网关地址统一取.1连管理维护的心智负担也小。客户端DHCP自动分配服务器和网络设备配静态IP。这套方案的实际好处是什么办公楼里监控流量不会干扰办公网络访客网络只能上外网访问不了内网服务器就算访客WiFi被爆破核心网段仍然安全。这些收益不是靠配置命令堆出来的而是靠一开始的IP网段规划定下来的。注意家用路由器一般不需要这么复杂一个192.168.x.0/24网段加DHCP就够用了。上面的做法针对企业或培训机构环境但理解这套思路后后面再接触防火墙策略、VLAN间ACL会顺畅很多。4. TCP与UDP可靠和效率怎么取舍4.1 TCP如何用序号、确认和重传换可靠TCP的可靠不是物理线路永远不出错而是协议本身能处理丢包、重复和乱序。核心机制是序号、确认号、超时重传和滑动窗口。发送方把数据报编号后发出去接收方收到后回一个确认确认号表示“你发到哪个字节我都收到了请从这个字节之后继续发”。如果发送方在超时时间内没收到确认就会重发。接收方处理乱序数据时靠序号重新排序。滑动窗口则控制发送速度接收方通过窗口字段告诉对方“我能接收多少数据”避免把接收缓冲区打爆。这里适合打个快递包裹的比方寄件人给包裹编好号收件人每收到一件回执确认。寄件人没收到回执就重发收到多个包裹后发现编号不连续就知道中间丢了。TCP干的其实就是这件事只不过所有交互都发生在毫秒级。4.2 三次握手和四次挥手的真实细节TCP三次握手的过程教科书写得很清楚客户端发SYN抱文带初始序号x服务器回SYNACK带自己的序号y确认号是x1客户端再发ACK确认号是y1。连接建立。为什么必须是三次不是两次也不是四次三次握手完成后双方都确认了“自己能发、自己能收、对方能发、对方能收”。第一次握手服务器确认客户端能发、自己能收第二次握手客户端确认自己能收、能发同时服务器也能发第三次握手服务器确认客户端能收。双方收发能力都确认了。还有一个现实原因防止历史重复SYN被服务器误建连接。如果只有两次握手一个迟到的旧SYN到达服务器服务器直接分配资源可能白白浪费。三次握手机制下客户端发现这不是自己想要的连接可以发RST取消或者根本不响应。四次挥手比三次握手复杂一点本质原因是TCP是全双工协议两个方向的数据可以独立关闭。A先发FIN表示“我的数据发完了”B回ACK然后B继续把剩余数据发完再发FIN表示“我也发完了”A再回ACK。这个过程中A收到FIN后进入TIME_WAIT状态一般等待两个MSL保证最后一个ACK丢失时能重发。实操里会看到四次挥手可能合并成三个包比如B把ACK和FIN一起发出来。这是正常现象不是协议出错别被教科书固定顺序框住。4.3 UDP的适用场景与选型判断UDP比TCP简单得多无连接不需要握手和挥手不保证可靠不处理乱序。首部只有8字节TCP首部默认20字节起步。代价是应用层需要自己承担可靠性问题。选型判断有一条很直接业务数据不能丢比如网页、数据库、文件传输、远程登录选TCP业务可以容忍少量丢包但要求低延迟比如语音、视频、在线游戏、DNS查询选UDP。举一个经典例子DNS查询用的是UDP 53端口但DNS区域传送用的是TCP 53。为什么同一个协议两套做法因为普通域名查询就是一次请求一次响应UDP最快区域传送数据量大必须可靠不能丢记录。注意不要在UDP之上想当然地跑重要业务数据而不做任何可靠性处理。我见过有人用UDP传游戏金币数据结果网络稍有抖动金币状态就回滚玩家投诉一片。如果业务必须可靠又非要UDP就得自己在应用层实现序号、确认、重传这个开发成本通常远超用TCP省下的那点传输开销。5. 综合小实验三层交换配置与排障5.1 用什么环境和拓扑做实验学网络基础不配上手实验知识点落不了地。第三阶段可以开始接触三层交换因为这是网工日常接触最多的设备之一。实验环境首选模拟器比如常见的网络设备模拟器都能完成这个实验。拓扑只需要一台三层交换机SW1和两台PC。PC1属于VLAN10PC2属于VLAN20两台PC都通过交换机接入。如果条件允许再加一台路由器R1做上行模拟PC访问外部网络。地址规划如下PC1是192.168.10.10/24网关192.168.10.1PC2是192.168.20.10/24网关192.168.20.1。交换机上VLANIF10配192.168.10.1VLANIF20配192.168.20.1。这个拓扑麻雀虽小但已经具备VLAN隔离、三层网关、跨VLAN通信这些核心要素。5.2 三层交换配置里的核心步骤配置思路分三步。第一步创建VLAN第二步把物理端口划进对应的VLAN第三步给VLAN配置三层虚接口也就是VLANIF。以通用CLI风格的命令举例# 创建VLAN vlan batch 10 20 # 端口划分到VLAN interface GigabitEthernet0/0/1 port link-type access port default vlan 10 interface GigabitEthernet0/0/2 port link-type access port default vlan 20 # 配置VLANIF三层网关 interface Vlanif10 ip address 192.168.10.1 255.255.255.0 interface Vlanif20 ip address 192.168.20.1 255.255.255.0表面上就这几条但背后要理解端口划进VLAN10后这个端口收到的数据帧会被打上VLAN10的标签二层广播域被隔离。VLANIF10接口在交换机内部存在它承担了10网段的网关角色。PC1发给PC2的包到达VLANIF10后交换机发现自己本地有到192.168.20.0/24的路由就转到VLANIF20再从对应端口发给PC2。这就是三层交换机的路由过程。如果只有二层交换机就必须在外部路由器上启用“单臂路由”用子接口分别封装VLAN10和VLAN20的报文。理解这个区别对读配置很有帮助不然你看到设备上有VLANIF却不知道它存在意义是什么。5.3 一套固定的网络排障排查顺序实验真正有价值的地方是故意制造故障训练排障思维。把PC1改成错误的网关或者把端口错划到VLAN30然后开始“修复”。我建议新人固定一套ping排查流程。第一步ping 127.0.0.1验证本机协议栈正常第二步ping 本机自己的IP验证网卡和IP配置生效第三步ping同网段其他IP或者网关验证二层链路第四步ping 对端网段的网关验证三层路由第五步ping 对端主机验证端到端通信。按这个顺序走哪一步断了问题就集中在哪一层。比如PC1能ping通自己但ping不通网关检查网线、端口状态、VLAN划分。如果网关能通但ping不通用一个网段的PC2就是PC2的IP配置或防火墙问题。配合抓包看证据会更清楚。ping不通时如果ARP请求一直重发却没有回应说明目标主机不在线或者ARP被拦截如果ARP正常但ICMP request没有reply可能是对端防火墙丢掉了ICMP也可能是路由回程路径有问题。这些观察比单调的“看看配置”靠谱得多。心得我带新人做实验时发现大多数卡壳原因不是配置复杂而是没有按照顺序排查。先确认物理层和链路层再排查三层基本能解决九成的问题。实验做完以后把这个经验固化下来对后续学习路由协议和网络安全都是正向积累。最后再分享一点体会这三部分内容放在一阶段的基础课里承载的任务是帮人从“会用网络”跨到“懂网络”。我个人带新人的经验是第三次课能跟下来的人靠的不是背口诀而是亲自动手把实验做通再亲手排掉几个故障。抓包软件里看到一次TCP三次握手比背十遍状态转换有用IP规划出错一次再做一遍才发现网段、广播地址那些概念永远不会再忘。后面等进入路由协议、应用层服务的学习阶段你回头看这一讲的东西会发现它们无处不在。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →