TCP/IP
下列情况下不会产生ICMP错误控制报文
1
本身就是ICMP差错报文(但是,ICMP查询报文可能会产生ICMP差错报文)
2目的是广播 多播
3 链路层的广播
4
不是IP分片的第一片
5 源地址不是单个主机的数据报文 如源地址是广播 多播地址等
1 ARP应答是单播 如果ARP应答丢了
也会产生ICMP错误控制报文 谁产生 难道是交换机?
(交换机CACHE满了 把后面的全丢掉了)
至少到现在还没抓到过关于ARP应答报文的ICMP差错报告
2 上面没有指明使用何种协议
现在我http://1.1.1.1
首先SYN包的目的IP就是1.1.1.1
端口80 毫无疑问 这个IP无法达到
最终有一个属于顶层选路域的路由器将它丢掉
那为什么我收不到ICMP错误控制报文吗? 至少应该给一个报文
(类型3 代码0) 告诉偶目的不可达到
同样 telent 192.168.1.22 1234
对方也不会给我一个端口不可达到的ICMP差错报文
而是一个ack reset 为什么
DNS的TCP或是UDP都没有差错报文
我PING 1.1.1.1
抓到的是ICMP查询报文 类型8 代码0 也没有给我差错报文