系列文章目录
什么是计算机网络?
什么是网络协议?
计算机网络的结构
数据交换之电路交换
数据交换之报文交换和分组交换
分组交换 vs 电路交换
计算机网络性能(1)——速率、带宽、延迟
计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率
计算机网络体系结构概念
OSI参考模型基本概念
OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍
OSI参考模型中端-端层(传输层、会话层、表示层、应用层)功能介绍
TCP/IP参考模型基本概念,包括五层参考模型
网络应用的体系结构
网络应用进程通信
网络应用对传输服务的需求
Web应用之HTTP协议(涉及HTTP连接类型和HTTP消息格式)
Cookie技术
Web缓存/代理服务器技术
传输层服务概述、传输层 vs. 网络层
传输层——多路复用和多路分用
传输层——UDP简介
传输层——可靠数据传输原理之Rdt协议
传输层——可靠数据传输之流水线机制与滑动窗口协议
传输层——TCP特点与段结构
传输层——TCP的可靠数据传输
TCP连接管理(图解三次握手和四次挥手)
传输层——拥塞控制原理与解决方法
TCP的拥塞控制机制
网络层服务与核心功能
网络层服务模型——虚电路网络
网络层服务模型——数据报网络
Internet网络的网络层——IP协议之IP数据报的结构
IP分片
IP编址与有类IP地址
IP子网划分与子网掩码
CIDR与路由聚合
DHCP协议
网络地址转换(NAT)
- 系列文章目录
- ICMP(互联网控制报文协议)
ICMP(互联网控制报文协议)
互联网控制报文协议 ICMP (Internet Control Message Protocol)支持主机或路由器完成差错(或异常)报告和网络探询。
ICMP协议通过发送特定的ICMP报文来实现这两种功能。所以有两大类ICMP报文:
-
差错报告报文(5种)
- 目的不可达报文。数据到达目的后无法成功交付给目的,比如目的网络、目的主机、目的端口等等。这时这个IP数据报会被丢弃,同时会向源主机发送目的不可达的ICMP报文
- 源抑制(Source Quench) 报文。当一个路由器发现自身的缓存已满导致后面发来的数据被丢弃,就可以向源主机发送源抑制ICMP报文,目的是让源主机降低发送IP数据报的速度。这时最初的目的。但目前的互联网中并没有按照这种方式进行拥塞控制
- 超时/超期报文。最常见的就是TTL超时。TTL为0时,该IP数据报会被丢弃
- 参数问题报文。如果发现IP数据报有一些参数有问题,就会被丢弃
- 重定向 (Redirect)报文。当路由器收到一个IP数据报,但这个数据报所要到达的目的网络不应该由这个路由器进行转发,而是另一个路由器,就发送重定向 (Redirect)报文
-
网络探询报文(2组)。这类报文通常是由主机或路由器主动发送的
- 回声(Echo)请求与应答报文(Reply)。验证能否成功到达目的。最具有代表性的工具就是ping这个工具
- 时间戳请求与应答报文
ICMP报文是通过一个类型号和编码来给出具体的不同类型的报文。比如:
有一些例外情况:
-
几种不发送 ICMP差错报告报文的特殊情况:
- 对ICMP差错报告报文不再发送 ICMP差错报告报文
- 除第1个IP数据报分片外,对所有后续分片均不发送ICMP差错报告报文
- 对所有多播IP数据报均不发送 ICMP差错报告报文
- 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的IP数据报不发送 ICMP 差错报告报文
-
几种 ICMP 报文已不再使用:
- 信息请求与应答报文
- 子网掩码请求和应答报文
- 路由器询问和通告报文
ICMP报文封装到IP数据报中进行传输。ICMP报文也是由头部和数据部分构成的。
ICMP差错报告报文数据封装:
ICMP的应用举例:**Traceroute。**用于网络跟踪。
- 源主机向目的主机发送一系列 UDP数据报。可以设置数据报的TTL。
- 第1组IP数据报TTL =1
- 第2组IP数据报TTL=2,以此类推
- 目的端口号为不可能使用的端口号
- 当第n组数据报(TTL=n)到达第 n个路由器时:
- 路由器丢弃数据报
- 向源主机发送ICMP报文 (type=11, code=0)
- ICMP报文携带路由器名称和 IP地址信息
- 当ICMP报文返回到源主机时, 记录RTT
- 停止准则:
- UDP数据报最终到达目的主机
- 目的主机返回“目的端口不可 达”ICMP报文 (type=3, code=3)
- 源主机停止