DNS
TCPIP世界从一开始就有一个叫做主机识别码
的东西 这种识别方式是指为每台计算机赋予唯一的主机名 在进行网络通信时可以直接使用主机名而无需使用一大串的IP 此时需要将主机名字转换为具体的IP地址 此时主机往往会用到一个叫做hosts的数据库文件
在上述背景之下 产生了一个可以有效管理主机名和IP地址之间对应关系的系统 那就是DNS系统
当然了DNS不仅仅只记录了这些信息 其他更多信息见P164
比如IP解析出主机域名的PTR信息
ARP
ARP是一种解决地址问题的协议 以目标IP地址为线索 用来定位下一个应该接收数据分包的网络设备对应的MAC地址 如果目标不在同一个链路时可以用ARP查找下跳路由器的MAC地址
在IPv6中使用ICMPv6代替ARP
机制很简答 使用一个ARP请求报和响应包进行邻居探索就可以知道一个链路的MAC地址了 获取的MAC地址会缓存一段时间 避免在链路上存在过多的ARP包
RARP
RARP是一种从MAC定位到IP的一种协议 比如没有任何输入接口或无法通过DHCP动态获取IP时的某些设备就会用到 需要架设一个RARP服务器
代理ARP
通常ARP包会被路由器隔离
但是采用代理ARP的路由器可以将ARP请求转发给相邻网段
ICMP
之前章节有说有些网络环境为了安全考虑会屏蔽ICMP包 不能过分依赖ICMP
主要功能分两类
- 同之出错原因的错误消息
- 用于诊断的查询消息
下面介绍一些主要的ICMP消息
- 目标不可达 类型3
- 实际通信中常返回错误代码1表示