|
发布本连载之三“完全理解ICMP”,还请大家多多支持和指教。本连载前两部“(一) 网络脚本语言基础”, “(二) 学习TCP, IP, Ethernet 协作的原理”已经发布,可在本人以前的帖子里看到。下面是本部连载的目录。
目录
1. 基础篇(向IP数据包的送信方传递控制信息的信鸽) 3
1.1. 作为IP不可缺的功能来制作的 3
1.2. 使IP网络平稳运行的工具 4
1.3. 用途是差错通知和信息查询 4
1.4. 作为IP的上层协议在工作 4
1.5. 用15种类的类型来大致分类功能 5
2. 实现篇(熟知的ping也是实现例子之一,理解RFC里没有的动作) 7
2.1. 根据用法实现各种各样的功能 7
2.2. Windows的ICMP处理(收到错误通知后自动改变设定) 7
2.2.1. 特意设成分片禁止后送出去 7
2.2.2. 向送信方传送路由器的改变 8
2.2.3. 要求送信方调整速度 8
2.3. ping命令 用回送请求与回答来确认对方的通信情况 9
2.3.1. 向目标服务器发送回送请求 9
2.3.2. 鹦鹉学舌一样返回回送回答 9
2.3.3. 不能确定连通的原因有三个 10
2.3.4. 也能利用在负荷分散上 11
2.4. traceroute命令(通过超时错误来调查到目标的路径) 11
2.4.1. 故意使生存时间过期 11
2.4.2. 用超时报文来通知送信方 12
2.4.3. 只有目标服务器的反应不同 13
2.4.4. 操作系统不同则实现方法略微不同 13
2.5. 端口扫描(发送UDP数据包来检查未使用端口) 13
2.5.1. 用UDP数据包使错误发生 13
2.5.2. 知道的仅仅是关着 14
3. 运用篇(方便性和安全性,现实上的利用是两者的平衡) 15
3.1. 为什么停止方便的ICMP? 15
3.2. 发送大量的ICMP数据包 15
3.3. 几百倍的ICMP回送回答报文的到达 16
3.4. 恶意使用的模式是无限的 17
3.5. 阻止ICMP后将陷入困境 17
3.6. 不能调整数据包长度 17
3.7. 不知道原理就不可能理解 18
3.8. 即使阻止了客户端也没问题 18
4. 资料篇(只有这些?全部ICMP报文一览) 19
4.1. 光终点不可达就有15种 20
4.2. 默认网关也能寻找 20
5. 网络脚本语言的实践 21
5.1. 用ICMP来实现Ping 21
5.1.1. 相关协议格式 21
5.1.2. 通信顺序图 22
5.1.3. 脚本语言实现 22
5.2. 用ICMP来实现Traceroute 25
5.2.1. 相关协议格式 25
5.2.2. 通信顺序图 26
5.2.3. 脚本语言实现 26
5.3. 用UDP来实现UDP的端口扫描 28
5.3.1. UDP协议格式 29
5.3.2. 通信顺序图 29
5.3.3. 脚本语言实现 30
5.4. 用TCP来实现TCP的端口扫描 32
5.4.1. 相关协议格式 32
5.4.2. 通信顺序图 32
5.4.3. 脚本语言实现 32 |
|