矩阵 I : 矩阵基础

    学习机器学习, 基础的线性代数知识是必备的基础功, 对于线性代数的探索, 矩阵是线性代数的主要研究对象. 今天我们就开始学习一下矩阵的基础知识. 这是本人关于线性代数矩阵的第一篇分享.

章节目录

  1. 矩阵及其基本运算
    1.1 矩阵定义
    1.2 矩阵基本运算(+,-,*)
    1.3 转置矩阵
    1.4 方阵的行列式
    1.5 伴随矩阵
    1.6 逆矩阵
  2. 矩阵的初等变换
    2.1 矩阵的秩
    2.2 矩阵的初等变换
    2.3 求解线性方程组
    2.4 初等矩阵

本文是一篇包含大量枯燥数学知识的文章, 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!

本文也同时发布于我的个人博客, 欢迎访问.

矩阵及其基本运算

本章我们将主要介绍矩阵的概念以及其基本运算.

什么是矩阵:

由 m*n 个数 aij(i=1,2,...,m;j=1,2,...,n)aij(i=1,2,...,m;j=1,2,...,n) 排成的 m 行 n 列的数表

a11a21am1a12a22am2a1na2namn[a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮am1am2⋯amn]

称为矩阵, aijaij 称为这个矩阵的第 i 行第 j 列的元素. 当 m=n时, 矩阵称为方阵.

通常用大写字母 A,B...A,B... 表示矩阵. 矩阵有时也简记为

A=(aij)mnA=(aij)A=(aij)m∗n或者A=(aij)

当无需指明元素时, m*n 矩阵 AA 也记为 AmnAm∗n.

元素都是零的 m*n 矩阵称为零矩阵, 记作 OmnOm∗n. 在不会产生混淆的情况下简记为 OO.

n 阶方阵

En=100010001En=[10⋯001⋯0⋮⋮⋱⋮00⋯1]

称为 n 阶的单位矩阵. 在不会产生混淆的情况下简记为 EE.

n 阶方阵

Λ=λ1000λ2000λnΛ=[λ10⋯00λ2⋯0⋮⋮⋱⋮00⋯λn]

称为对角矩阵. 简记为 Λ=diagλ1,λ2,...,λnΛ=diagλ1,λ2,...,λn.

系数矩阵增广矩阵:

假设有线性方程组:

a11x1+a12x2+...+a1nxn=b1a21x1+a22x2+...+a2nxn=b2...an1x1+an2x2+...+annxn=bn{a11x1+a12x2+...+a1nxn=b1a21x1+a22x2+...+a2nxn=b2...an1x1+an2x2+...+annxn=bn

其中线性方程组系数组成的矩阵

a11a21am1a12a22am2a1na2namn[a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮am1am2⋯amn]

称为线性方程组的系数矩阵, 而

a11a21am1a12a22am2a1na2namnb1b2bm[a11a12⋯a1nb1a21a22⋯a2nb2⋮⋮⋱⋮⋮am1am2⋯amnbm]

称为线性方程组的增广矩阵, 通常用 A^A^ 表示.

如果两个矩阵的行数相同, 列数也相同, 就称他们是同型矩阵.

矩阵基本运算

  • 同型矩阵 A=(aij)mn,B=(bij)mnA=(aij)m∗n,B=(bij)m∗n加法定义为:

A+B=(aij+bij)mnA+B=(aij+bij)m∗n
  • 数 k 与矩阵 A=(aij)mnA=(aij)m∗n数乘定义为:

  • kA=Ak=(kaij)mnk∗A=A∗k=(k∗aij)m∗n
  • 矩阵 A=(aij)mnA=(aij)m∗n 对应的负矩阵定义为:

  • A=(1)A=(aij)mn−A=(−1)A=(−aij)m∗n
  • 同型矩阵 A=(aij)mn,B=(bij)mnA=(aij)m∗n,B=(bij)m∗n减法定义为:

  • AB=(aijbij)mnA−B=(aij−bij)m∗n

    矩阵乘法:

    假定有 A=(aij)A=(aij) 是一个 m*s 矩阵, B=(bij)B=(bij) 是一个 s*n 矩阵, 那么矩阵 AA 与矩阵 BB乘积是一个 m*n 的矩阵 C=(cij)C=(cij), 其中:

    cij=k=1saikbkj,i=1,2,...,m;j=1,2,....,n;cij=∑k=1saikbkj,i=1,2,...,m;j=1,2,....,n;

    并把此乘积记作 C=ABC=AB.

    只有当 AA 的列数等于 BB 的行数时, 乘积才有意义.乘积为 m*n 的矩阵. 乘积 ABAB 的第 i 行第 j 列元素时矩阵 AA 的第 i 行各元素分别与矩阵 BB 的第 j 列 各对应元素的乘积之和.

    矩阵乘法的一些性质:
    (1) (AB)C=A(BC)(AB)C=A(BC)
    (2) A(B+C)=AB+ACA(B+C)=AB+AC
    (3) k(AB)=(kA)B=A(kB)k(AB)=(kA)B=A(kB)
    (4) EmAmn=AmnEn=AmnEmAm∗n=Am∗nEn=Am∗n

    转置矩阵:

    关于矩阵的转置定义与行列式转置相似, 这里我们不赘述, 我们主要了解一下矩阵转置的一些性质:
    (1) (AT)T=A(AT)T=A
    (2) (A+B)T=AT+BT(A+B)T=AT+BT
    (3) (kA)T=kAT(kA)T=kAT
    (4) (AB)T=BTAT(AB)T=BTAT

    性质(4)理解: 将 AABB 相等, 等于将 AA 的每行元素与 BB 的每列元素相乘所得的矩阵, 然后将矩阵逆时针旋转九十度. 也就是将 AA 的每一列与 BB 的每一行元素相乘. 而 AA 是 m*s 矩阵, BB 是 s*n 矩阵, 为了让他们可以相乘, 为了 AA 的列与 BB 的行可以相乘, 我们需要交换他们的相乘位置, 再次之前将他们进行转置. 证明也非常简单, 只需要按照矩阵乘法定义列出公式, 结论就很明显了.

    方阵的行列式:

    由方阵 AA 的元素按原始位置排列所构成的行列式, 称为方阵的行列式. 记作 detAdetA. (det 是 Determinant 的缩写).

    det 这个运算满足以下运算性质:
    (1) detAT=detAdetAT=detA
    (2) det(lA)=lndetAdet(lA)=lndetA
    (3) det(AB)=detAdetBdet(AB)=detAdetB
    这三条性质非常重要.

    伴随矩阵

    A=(aij)mnA=(aij)m∗n, 行列式 detAdetA 的各元素的代数余子式所构成的如下方阵

    A11A21Am1A12A22Am2A1nA2nAmn[A11A12⋯A1nA21A22⋯A2n⋮⋮⋱⋮Am1Am2⋯Amn]

    称为方阵 AA 的伴随矩阵.

    AA=AA=(detA)EAA∗=A∗A=(detA)E

    证明:

    AA=A11A21Am1A12A22Am2A1nA2nAmna11a21am1a12a22am2a1na2namn=detA000detA000detA=(detA)EA∗A=[A11A12⋯A1nA21A22⋯A2n⋮⋮⋱⋮Am1Am2⋯Amn][a11a12⋯a1na21a22⋯a2n⋮⋮⋱⋮am1am2⋯amn]=[detA0⋯00detA⋯0⋮⋮⋱⋮00⋯detA]=(detA)E

    证明过程使用到行列式按行展开的定理: n 阶行列式 D 等于它的任一行(列)各元素与其对应的代数余子式乘积之和.

    逆矩阵
    对于 n 阶方阵 AA, 如果存在 n 阶方阵 BB, 使

    AB=BA=EAB=BA=E

    则称方阵 AA可逆的. 并把 BB 称为 AA 的逆矩阵.

    n 阶方阵 AA 可逆的充分必要条件是 detA0detA≠0, 且

    A=1detAAA−=1detAA∗

    其中 AA∗AA 的伴随矩阵.

    证明:

    必要性:

    AA 可逆, 则有 AA− 使得

    AA=EAA−=E

    两边同时取行列式, 得到:

    detAdetA=detE=1detAdetA−=detE=1

    因此 A0A≠0.
    充分性:
    detA0detA≠0 时, 由上述伴随矩阵的性质可知:

    A(1detAA)=(detAA)A=EA(1detAA∗)=(detAA∗)A=E

    从而矩阵 AA 可逆, 且 A=1detAAA−=1detAA∗

    detA0detA≠0 时, AA 称为奇异矩阵, 否则称为非奇异矩阵

    方阵的逆矩阵的运算律:
    (1) 若 AA 可逆, 则 AA− 也可逆. 且 (A)=A(A−)−=A
    (2) 若 AA 可逆, 数 k0k≠0, 则 kAkA 也可逆, 且 (kA)=1kA(kA)−=1kA−
    (3) 若 A,BA,B 为同阶矩阵且均可逆, 则 ABAB 也可逆, 且 (AB)=BA(AB)−=B−A−
    (4) 若 AA 可逆, 则 ATAT 也可逆, 且 (AT)=((A)T)(AT)−=((A−)T)
    (5) 若 AA 可逆, 则 detA=(detA)detA−=(detA)−

    矩阵的初等变换

    矩阵的秩(rank)

    在 m*n 矩阵 AA 中, 任取 k 行与 k 列(kmin(m,n)k≤min(m,n)), 位于这些行列交叉处的 k2k2 个元素, 按原来的次序所组成的 k 阶行列式称为 AA 的一个 k 阶子式.

    若 m*n 矩阵 AA 中有一个 r 阶子式不为零, 而所有的 k+1 阶子式(如果存在)都为零, 则称 r 为 AA 的秩, 记为 rankAA. 规定零矩阵的秩为0.

    由行列式按行(列)展开定理可知, 当 AA 中所有 r+1 阶子式全为零时, 所有高于 r+1 阶的子式也为零. 因此 rankAA 就是 AA 中不为零的子式的最高阶数.

    AA 是 m*n 矩阵, 若 rankAA=m, 则称 AA行满秩矩阵, 若 rankAA=n, 则称 AA列满秩矩阵, 若 n 阶方阵 AA的秩为 n, 则称 AA满秩矩阵.

    由秩的定义可知: 方阵 AA 满秩的充分必要条件是 detA0detA≠0, 即 AA 非奇异, 而 detA0detA≠0 的充分必要条件是 AA 可逆, 因此对方阵而言, “满秩”, “非奇异”和”可逆”这三个概念是等价的.

    矩阵的初等变换

    对矩阵进行的如下三种变换:
    (1) 对调两行(列)
    (2) 以数 k0k≠0, 乘某一行(列)的所有元素
    (3) 把某一行(列)的所有元素的 k 倍加到另一行(列)的对应元素上
    称为矩阵的初等行(列)变换. 初等行变换和初等列变换统称为矩阵的初等变换.

    为方便起见, 对调矩阵的 i,j 两行(列), 记作 rirj(cicj)ri↔rj(ci↔cj); 矩阵的第 i 行(列)乘 k, 记作 rik(cik)ri∗k(ci∗k); 把矩阵第 j 行(列)的 k 倍加到第 i 行(列)上, 记作 ri+krj(ci+kcj)ri+krj(ci+kcj).
    可以求得: 变换 rirjri↔rj 的逆变换就是本身; 变换 rikri∗k 的逆变换为 ri1kri∗1k; 变换 ri+krjri+krj 的逆变换为 ri+(k)rjri+(−k)rj. 对于列变换也由类似的结论.

    如果矩阵 AA 经过有限次初等矩阵变换变成矩阵 BB, 则称矩阵 AABB 等价, 记为 ABA≅B 或者 ABA→B

    如果 ABA≅B, 则 rankAA=rankBB.
    证明:

    显然前两种变换都不会改变矩阵的秩, 因此我们只需证明第三种变换不会改变矩阵的秩即可.
    设 rankAA=r, 且 AA 的某个 r 阶子式 Dr0Dr≠0. 当 Ari+krjBA→ri+krjB 时, 分三种情况讨论:

    DrDr 不含 AA 的第 i 行, 则 BB 中与 DrDr 对应的 r 阶子式 D^r=Dr0D^r=Dr≠0, 故 rankBrB≥r;
    DrDr 同时含 AA 的第 i 行和第 j 行, 由行列式性质知, BB 中与 DrDr 对应的 r 阶子式 D^r=Dr0D^r=Dr≠0, 也有 rankBrB≥r;
    DrDrAA 的第 i 行但不含第 j 行, 则 BB 中与 DrDr 对应的 r 阶子式 D^r=Dr+kD~rD^r=Dr+kD~r, 其中 D~rD~rAA 的第 i 行的某个 r 阶子式相等或者差一个符号,如果 D~r0D~r≠0, 根据情况 ① 知 rankBrB≥r, 如果 D~r=0D~r=0, 则 D~r=Dr0D~r=Dr≠0, 也有 rankBrB≥r. 这表明 Ari+krjBA→ri+krjB 时, rankBB≥ rankAA. 又由 Bri+(k)rjAB→ri+(−k)rjA 知, rankAA≥ rankBB. 因此 rankBB= rankAA. 因此, 定理得证.

    显然, 用初等变换将矩阵 AA 变成矩阵 BB 时, BB 越简单, 它的秩就越容易计算.

    秩为 r 的 m*n 矩阵 AA 可通过初等变换变换成如下的最简形式:

    [EOOO]mn[EOOO]m∗n

    称之为 AA等价标准型.

    推论1: 设 AA 是 n 阶满秩矩阵, 则 AEnA≅En

    推论2: 两个 m*n 矩阵等价的充分必要条件是他们具有相同的秩.

    求解线性方程组

    A=(aij)mnA=(aij)m∗n 是线性方程组的系数矩阵, 而 A^A^ 是增广矩阵, 则线性方程组有解的充分必要条件是 rankA^A^=rankAA. 当方程组有解时, 若 rankAA=n, 则他有唯一解; 若 rankA<nA<n, 则它有无穷多解.

    齐次线性方程组有非零解的充分必要条件是 rankA<nA<n.
    推论: 齐次线性方程组有非零解的充分必要条件是 detA=0detA=0.

    初等矩阵

    由单位矩阵经过一次初等变换的得到的矩阵称为初等矩阵.

    AA 是 m*n 矩阵, 对 AA 施行一次初等行变换, 其结果等于在 AA 的左边乘以相应的 m 阶初等矩阵; 对 AA 施行一次初等列变换, 其结果等于在 AA 的右边乘以相应的 n 阶初等矩阵;

    这样, 就在矩阵的初等变换与矩阵乘法之间建立起了联系, 即对 AA 施行一次初等变换就相当于给 AA 左乘或右乘一个初等矩阵.

    n 阶方阵可逆的充分必要条件是该方阵能表示成有限个初等矩阵的乘积.
    证明:

    必要性:

    因为 AA 可逆, 从而 AA 是满秩矩阵, 由 AA 是 n 阶满秩矩阵, 则 AEnA≅En 可知 AEnA≅En, 故存在 n 阶初等矩阵 P1,P2,...,PsP1,P2,...,PsQ1,Q2,...,QtQ1,Q2,...,Qt, 使

    Ps...P2P1AQ1Q2...Qt=EPs...P2P1AQ1Q2...Qt=E

    于是

    A=P1P2...PsQt...Q2Q1A=P1−P2−...Ps−Qt−...Q2−Q1−

    PiPi−QiQi− 都是初等矩阵.

    充分性:
    A=P1P2...PsA=P1P2...Ps, 其中 PiPi 是初等矩阵, 则

    detA=detP1detP2...detPs0detA=detP1detP2...detPs≠0

    AA 可逆.

    A,BA,B 均是 m*n 矩阵, 则 AABB 等价的充分必要条件是存在 m 阶可逆矩阵 PP 和 n 阶矩阵 QQ, 使得 PAQ=BPAQ=B.
    证明:

    必要性:

    ABA≅B, 则存在 m 阶初等矩阵 P1,P2,...,PsP1,P2,...,Ps 和 n 阶初等矩阵 Q1,Q2,...,QtQ1,Q2,...,Qt, 使得

    mathsfPs...P2P1AQ1Q2...Qt=BmathsfPs...P2P1AQ1Q2...Qt=B

    P=P1,P2,...,Ps,Q=Q1,Q2,...,QtP=P1,P2,...,Ps,Q=Q1,Q2,...,Qt, 即得 PAQ=BPAQ=B

    充分性:
    PAQ=BPAQ=B, 由上一条定理可知, 存在 m 阶初等矩阵 P1,P2,...,PsP1,P2,...,Ps 和 n 阶初等矩阵 Q1,Q2,...,QtQ1,Q2,...,Qt, 使得 P=P1,P2,...,Ps,Q=Q1,Q2,...,QtP=P1,P2,...,Ps,Q=Q1,Q2,...,Qt, 于是定理得证.

    到此为止, 我对于矩阵的学习分享就结束了. 读完之后, 有任何看法见解, 欢迎与我分享. 谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/499702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

矩阵 II : 线性组的线性相关性

学习机器学习, 基础的线性代数知识是必备的基础功, 对于线性代数的探索, 向量组也是线性代数的重要基础. 今天我们就开始学习一下线性代数中重要的向量组知识. 这是本人关于线性组的线性相关性的学习分享. 章节目录 相关性基本概念 1.1 相性相关和线性无关 1.2 相性相关性的…

汇编语言笔记(一):基础

章节目录 简单程序 使用段简单字符串处理程序使用 bx, si, di, bp 寄存器寻址寻址方法指明数据长度div指令 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 本文中所有程序均在DOSBox下使用MASM, LINK编译运…

汇编学习笔记(二):转移指令

章节目录 转移指令原理 jmp 指令 jcxz 指令 loop 指令 ret 和 retf 指令 call 指令 callret 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 本文中所有程序均在DOSBox下使用MASM, LINK编译运行 转移指令…

汇编语言笔记(三): 标志寄存器

章节目录 简介 ZF 标志寄存器PF 标志寄存器SF 标志寄存器CF 标志寄存器OF 标志寄存器几条相关指令DF 标志寄存器PUSHF and POPF 标志寄存器 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 简介 8086 CPU…

汇编语言笔记(四):内中断

汇编语言笔记:内中断 章节目录 概念 中断过程示例: 0 号中断处理 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 概念 中断信息: 任何一个通用 CPU 都具备一种能力, 可以在执行完当前正在执行的指令之…

sync.Map 源码学习

golang 线程安全的 Map 作者水平有限,而并发博大精深. 如文章中有任何错误, 希望读者不吝指出.谢谢! 章节目录 Map 基本类型定义StoreLoadDeleteRange Map 基本类型定义## Map 这里我们先看一下 Map 都涉及到那些类型. type Map struct {// 互斥锁. 用于互斥的读写 dirty.…

ASN.1 学习

ASN.1 章节目录 简介常用数据类型 2.1 常见的简单类型 2.2 结构类型Basic Encoding RulesDistinguished Encoding Rules编码示例 5.1 BIT STRING 5.2 IA5String 5.3 INTEGER 5.4 NULL 5.5 OCTET STRING 5.6 UTCTime 5.6 OBJECT IDENTIFIER编码 Name (X.501 type) 参考 http://…

证书体系: PFX 文件格式解析

原文同时发布于本人个人博客&#xff1a; https://kutank.com/blog/cert-pfx/ 章节目录 PFX 简介PFX 格式解析 2.1 最外层结构 2.2 AuthenticatedSafe 结构 参考 https://tools.ietf.org/html/rfc7292. PFX 简介## 以下引用自维基百科 在密码学中&#xff0c;PKCS #12 定义了…

C10K 非阻塞 Web 服务器

本文由作为 Going Concurrency in Go 的作者 Nathan Kozyra 撰写, 解决了互联网上最著名,最受尊敬的挑战之一, 并试图通过核心 Go 包来解决它. 原文地址: https://hub.packtpub.com/c10k-non-blocking-web-server-go/ 我们已经构建了一些可用的应用程序,并且可以在日常使用的真…

MD5 算法描述及实现

MD5 算法的原理及实现 章节目录 简介算法描述 实现 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 简介## Wiki对其的描述: MD5消息摘要算法&#xff08;英语&#xff1a;MD5 Message-Digest Algorithm&…

SHA 算法描述与实现

SHA 算法的原理及实现 章节目录 简介算法描述 2.1 数据准备 2.1.1 数据填充 2.1.2 数据分块 2.1.3 设置初始 Hash 值 2.2 Hash 计算 2.2.1 SHA-1 2.2.2 SHA-256 2.2.3 SHA-512实现 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者…

SHA算法描述及实现

SHA 算法的原理及实现 章节目录 简介算法描述 2.1 数据准备 2.1.1 <数据填充 2.1.2 数据分块 2.1.3 设置初始 Hash 值 2.2 Hash 计算 2.2.1 SHA-1 2.2.2 SHA-256 2.2.3 SHA-512实现<b>作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, …

CNG 关于 Key 相关的操作

章节目录 简介创建 Key查看系统中的 Key从 Windows Store 导出 key导入 Key 到 Windows Store<b>作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!</b> 简介 CNG 全称 Cryptography API: Next G…

Golang 词法分析器浅析

浅析 Go 语言的词法分析器 章节目录 简介TokenScanner例子 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 简介## 在本文我们将简单的走读 Go 语言的词法分析器实现(go/scanner/scanner.go). 本文基于 G…

如何读懂 C 语言复杂的声明

如何读懂 C 语言复杂的声明 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 参考<<C专家编程>> 废话 虽说 C 语言相比于其他更高级的语言来讲&#xff0c;有着非常精简的语法结构&#xff0c;对…

C 语言笔记: 链表节点实现技巧--struct的妙用

链表节点实现技巧–struct的妙用 作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢! 废话 C 语言虽然只提供了非常简单的语法&#xff0c;但是丝毫不影响 C 语言程序员使用 C 来实现很多让人叹为观止的高级功能…

协议簇: Media Access Control(MAC) Frame 解析

Media Access Control(MAC) Frame 解析 前言 千里之行&#xff0c;始于足下。 因为个人从事网络协议开发&#xff0c;一直想深入的学习一下协议族&#xff0c;从这篇开始&#xff0c;我将开始记录分享我学习到的网络协议相关的知识 简介 引用百度百科的描述&#xff1a; 数…

协议簇:Ethernet Address Resolution Protocol (ARP) 解析

简介 前面的文章中&#xff0c;我们介绍了 MAC Frame 的帧格式。我们知道&#xff0c;在每个 Ethernet Frame 中都分别包含一个 48 bit 的源物理地址和目的物理地址. 对于源地址很容易理解&#xff0c;该地址可以直接从硬件上读取. 但是对于一个网络节点&#xff0c;他怎么知道…

协议簇:IPv4 解析

简介 IP 是一种无连接的协议. 操作在使用分组交换的链路层&#xff08;如以太网&#xff09;上。此协议会尽最大努力交付数据包。 尽最大努力意味着&#xff1a; IP 协议不保证数据的可靠传输, 没有流量控制机制, 不保证传输序列(意味着 IP 数据包会在传输过程中乱序), 没有…

协议簇:ICMP 解析

简介 ICMP 是 Internet Control Message Protocol 的简写. 它主要用来调试网络通信环境中存在的问题. 比如&#xff0c;当 IP 数据包总是无法正常的发送到目的地址, 当网关没有足够的 buffer 来转发对应的数据包 等问题. 值得一提的是&#xff0c;它属于网络层&#xff0c;不属…