news 2026/8/19 22:15:45

计算机网络学习笔记(六)---网络层与IP协议

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算机网络学习笔记(六)---网络层与IP协议
IP是TCP/IP协议族中的核心协议。所有TCP、 UDP、 ICMP和IGMP数据都通过IP数据报传输。 IP提供了一种尽力而为、无连接的数据报交付服务。 “尽力而为”的含义是不保证IP数据报能成功到达目的地,它不对自已尝试交付的数据报提供保证。当某些错误发生时,例如一台路由器临时用尽缓冲区, IP提供一个简单的错误处理方法:丢弃一些数据(通常是最后到达的数据报)。任何可靠性必须由上层(例如TCP)提供。IPv4和IPv6都使用这种尽力而为的基本交付模式。 “无连接”意味着IP不维护网络单元(即路由器)中数据报相关的任何链接状态信息,每个数据报独立于其他数据报来处理。这也意味着IP数据报可不按顺序交付。如果一个源主机向同一目的地发送两个连续的数据报(第一个为A,第二个为B),每个数据报可以独立路由,通过不同路径,并且B可能在A之前到达。 IP数据报也可能发生其他问题:它们可能在传输过程中被复制,可能改变内容从而导致错误。此外, IP之上的一些协议(通常是TCP)需要处理这些潜在问题,以便为应用提供无差错的交付。

使用 IP 协议,可以把异构的物理网络连接起来,使得在网络层看起来好像是一个统一的网络。与 IP 协议配套使用的还有几个协议:

  • 地址解析协议 ARP(Address Resolution Protocol)
  • 网际控制报文协议 ICMP(Internet Control Message Protocol)
  • 网际组管理协议 IGMP(Internet Group Management Protocol)

一、IP数据报结构

IPv4

IPv6

正常的IPv4头部大小为20字节,除非存在选项。 IPv6头部长度是它的两倍,但没有任何选项。它可以有扩展头部可提供类似的功能。

  • 版本: 有 4(IPv4)和 6(IPv6)两个值;
  • 首部长度(IHL): 占 4 位,因此最大值为 15。值为 1 表示的是 1 个 32 位字的长度,也就是 4 字节。因为固定部分长度为 20 字节,因此该值最小为 5。如果可选字段的长度不是 4 字节的整数倍,就用尾部的填充部分来填充。
  • 服务类型字段: 分为两部分,前6位被称为区分服务字段(DS字段),后2位是显式拥塞通知(ECN)字段或指示位。这些字段被用于数据报转发时的特殊处理。
  • 总长度: 包括首部长度和数据部分长度。
  • 生存时间:TTL,它的存在是为了防止无法交付的数据报在互联网中不断兜圈子。以路由器跳数为单位,当 TTL 为 0 时就丢弃数据报。
  • 协议:指出携带的数据应该上交给哪个协议进行处理,例如 ICMP、TCP、UDP 等。
  • 首部检验和:因为数据报每经过一个路由器,都要重新计算检验和,因此检验和不包含数据部分可以减少计算的工作量。
  • 标识: 在数据报长度过长从而发生分片的情况下,相同数据报的不同分片具有相同的标识符。
  • 片偏移: 和标识符一起,用于发生分片的情况。片偏移的单位为 8 字节。

二、IP地址

IP地址由两部分组成,网络号和主机号,其中不同分类具有不同的网络号长度,并且是固定的。

IP 地址 ::= {< 网络号 >, < 主机号 >}

通过在主机号字段中拿一部分作为子网号,把两级 IP 地址划分为三级 IP 地址。

IP 地址 ::= {< 网络号 >, < 子网号 >, < 主机号 >}

要使用子网须配置子网掩码。一个 B 类地址的默认子网掩码为 255.255.0.0,如果 B 类地址的子网占两个比特,那么子网掩码为 11111111 11111111 11000000 00000000,也就是 255.255.192.0。外部网络看不到子网的存在。

上图是一个B类地址被“划分子网”的例子。假设Intemet中的一个站点已被分配一个B类网络号。后16位现在可以由站点的网络管理员接需分配。在这个例子, 8位被选定为子网号,剩下8位为主机号。这个特殊配置允许站点支持256个子网,每个子网最多可包含254台主机(当前每个子网的第一个和最后一个地址无效,即从整个分配范围中除去第一个和最后一个地址)。只有划分子网的网络中的主机和路由器知道子网结构。在需要进行子网寻址之前, Intemet其他部分仍将它作为站点相关的地址来看待。下显示了如何工作。

三、地址解析协议 ARP

网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。在通信过程中IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变。ARP 实现由 IP 地址得到 MAC 地址。

每个主机都有一个 ARP 高速缓存,里面有本局域网上的各主机和路由器的 IP 地址到 MAC 地址的映射表。如果主机 A 知道主机 B 的 IP 地址,但是 ARP 高速缓存中没有该 IP 地址到 MAC 地址的映射,此时主机 A 通过广播的方式发送 ARP 请求分组,主机 B 收到该请求后会发送 ARP 响应分组给主机 A 告知其 MAC 地址,随后主机 A 向其高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。

四、网际控制报文协议 ICMP

IP协议本身没有为终端系统提供直接的方法来发现那些发往目的地址失败的IP数据包或获取诊断信息(例如,哪些路由器在沿途中被使用了或使用一种方法来估计往返时间)。为了解决这些不足,将一个特殊的Intemet控制报文协议与IP结合使用,以便提供与IP协议层配置和IP数据包处置相关的诊断和控制信息。 ICMP确切地说既不是一个网络层协议,也不是一个传输层协议,而是位于两者之间。

ICMP负责传递可能需要注意的差错和控制报文。 ICMP报文通常是由IP层本身、上层的传输协议(例如TCP或者UDP),或用户应用触发执行的。它表明了某些类别的故障和配置信息。ICMP 是为了更有效地转发 IP 数据报和提高交付成功的机会,封装在 IP 数据报中。

ICMP报文

CMP报文可分为两大类:有关IP数据报传递的ICMP报文(称为差错报文(errormessage)),以及有关

信息采集和配置的ICMP报文(称为查询(query)或者信息类报文(informational message) )。

相关应用

1. Ping

Ping 是 ICMP 的一个重要应用,主要用来测试两台主机之间的连通性。

Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 根据时间和成功响应的次数估算出数据包往返时间以及丢包率。

2. Traceroute

Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。

Traceroute 发送的 IP 数据报封装的是无法交付的 UDP 用户数据报,并由目的主机发送终点不可达差错报告报文。

  • 源主机向目的主机发送一连串的 IP 数据报。第一个数据报 P1 的生存时间 TTL 设置为 1,当 P1 到达路径上的第一个路由器 R1 时,R1 收下它并把 TTL 减 1,此时 TTL 等于 0,R1 就把 P1 丢弃,并向源主机发送一个 ICMP 时间超过差错报告报文;
  • 源主机接着发送第二个数据报 P2,并把 TTL 设置为 2。P2 先到达 R1,R1 收下后把 TTL 减 1 再转发给 R2,R2 收下后也把 TTL 减 1,由于此时 TTL 等于 0,R2 就丢弃 P2,并向源主机发送一个 ICMP 时间超过差错报文。
  • 不断执行这样的步骤,直到最后一个数据报刚刚到达目的主机,主机不转发数据报,也不把 TTL 值减 1。但是因为数据报封装的是无法交付的 UDP,因此目的主机要向源主机发送 ICMP 终点不可达差错报告报文。
  • 之后源主机知道了到达目的主机所经过的路由器 IP 地址以及到达每个路由器的往返时间。

像目前比较火热的开发岗位实属网络安全,毕竟国家网络安全法也出台了,网络安全等级保护2.0等合规要求也出来了。

网络安全对于大部分政企单位来说,已经从[可选项]变成了[必选项]。在以前,很多政企单位在进行 IT 部门及岗位划分时,只有研发和运维部门,安全人员直接归属到基础运维部;而现在,越来越多单位为了满足国家安全法律法规的要求,必须成立独立的网络安全部门,拉拢各方安全人才、组建 SRC(安全响应中心),为自己的产品、应用、数据保卫护航。

根据国家发布的《网络安全人才实战能力白皮书》数据显示,目前中国网络安全人才供应严重匮乏,每年高校安全专业培养人才仅有3万余人,而网络安全岗位缺口在2027年将达327万,缺口高达95%。

了解网络安全,首先要搞清楚下面这些前提

  • 网络安全到底包含哪些技术?是否需要会编程?
  • 网络安全行业有哪些职业方向?“我”该如何选择?
  • 网络安全的职业发展和成长路线是什么?

如果你是准备学习网络安全(黑客)或者正在学习,下面这些你应该能用得上:

①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

一、网络安全(黑客)学习路线

网络安全(黑客)学习路线,形成网络安全领域所有的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、网络安全教程视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

三、网络安全CTF实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这里带来的是CTF&SRC资料&HW资料,毕竟实战是检验真理的唯一标准嘛~

四、网络安全面试题

最后,我们所有的作为都是为就业服务的,所以关键的临门一脚就是咱们的面试题内容,所以面试题板块是咱们不可或缺的部分,这里我给大家准备的就是我在面试期间准备的资料。

网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。

机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!

这份完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/19 22:14:25

AI家庭机器人技术解析:从ROS架构到嵌入式开发实践

当“AI家庭机器人”和“外骨骼”这两个听起来充满未来感的概念&#xff0c;从科技新闻走进线下实体店&#xff0c;并且由海尔这样的国民级家电品牌来落地时&#xff0c;它传递的信号远比一次简单的产品发布要强烈得多。这不仅仅是海尔开了一家新店&#xff0c;而是标志着AI与机…

作者头像 李华
网站建设 2026/8/19 22:13:57

从零构建智能体:基于Coze平台的可视化AI助手开发实战

如果你最近在关注AI应用开发&#xff0c;特别是想快速构建一个能理解你意图、执行复杂任务、还能持续学习的智能助手&#xff0c;那么“智能体”&#xff08;Agent&#xff09;这个概念一定绕不开。但当你真正动手时&#xff0c;可能会发现&#xff1a;市面上的Agent框架要么过…

作者头像 李华
网站建设 2026/8/19 22:13:20

C语言基础知识-学习笔记

1.IDE开发工具&#xff1a;1.1.常用开发工具很多&#xff0c;本次学习用的是Visual Studio&#xff0c;官网直接下载&#xff0c;免费使用&#xff0c;下载安装方便。2.C语言概述2.1.概述&#xff1a;通俗来说就是一种机器语言&#xff0c;人与机器交互的工具。C语言通过编译&a…

作者头像 李华
网站建设 2026/8/19 22:13:09

基于大模型与持续学习的人形机器人叠衣系统实战解析

最近在准备一个机器人相关的项目&#xff0c;看到第二届世界人形机器人运动会&#xff08;WHRC&#xff09;即将开赛的消息&#xff0c;其中“家政服务”赛项要求机器人在30分钟内完成收纳叠衣&#xff0c;这个挑战让我对背后的技术产生了浓厚兴趣。这不仅仅是机械臂的重复运动…

作者头像 李华
网站建设 2026/8/19 22:06:51

光度立体成像全栈拆解 | 多视角光影法向量求解+梯度积分重建,助力漫反射工件微划痕凹坑褶皱高速高精度2.5D缺陷检测

目录 一、前言 二、光度立体成像核心原理与完整算法流水线 2.1 朗伯漫反射物理基础模型 2.2 完整算法流水线(工业量产标准) 2.3 技术核心优势与适用边界 三、工业量产级硬件模块化架构 四、主流工业视觉检测技术全方位横向对比 五、三大工业量产落地实战应用案例 5.…

作者头像 李华
网站建设 2026/8/19 22:06:35

深挖C语言:深入理解指针(2)

目录 1.const修饰指针 2.野指针 2.1 野指针的成因&#xff1a; 2.2 规避野指针 3.assert断言 4.指针的使用和传值调用 4.1 库函数strlen的实现 4.2 传值调用和传址调用 1.const修饰指针 作用&#xff1a;使操作对象不能被随意修改。 操作对象&#xff1a;普通变量&…

作者头像 李华