1 仅凭IP无法完成通信
首先,在应用层我们经常直接输入的是应用层提供的地址,而不会使用IP地址
其次,数据链路层也不使用IP地址,以太网只使用MAC地址
2 DNS
DNS就是将应用层的那一字符串转化为具体的IP地址
-
IP地址不方便记忆
主机识别码,为每一台计算机赋以唯一的主机名。进行网络通信的时候可以直接使用主机名称而不需要输入IP地址。因此主机里一般会有一个叫hosts的数据库文件将主机名和相应的IP地址对应记录。 -
DNS的产生
一开始由互联网信息中心维护一份hosts文件。每有一台新的计算机接入就会对文件进行变更。
但是随着数量的不断增加,该方法可行性下降。
于是出现了有效管理主机名和ip地址之间对应关系的系统:DNS
当用户输入主机名,DNS就会自动检索注册了主机名和IP地址的数据库。 -
域名的构成
域名是为了识别主机名称好组织机构名称的具有分层结构的名称。
使用域名的时候,可以在主机名后追加组织机构的域名:pepper.kusa.ac.jp
域名服务器是管理域名的主机和相应的软件。
其可以管理所在分区的域的相关信息,其管理的分层叫ZONE。
每一层都设有一个域名服务器
根部所设置的DNS叫做根域名服务器。根域名服务器中注册了那些管理的域名服务器 的IP地址。
为了防止宕机,一般会有多个域名服务器。
每个根域名服务器都需要注册根根域名服务器的IP地址,因为根据IP地址进行检索的时候,需要从根根域名服务器开始按顺序进行。
进行DNS查询的主机和软件就叫DNS解析器 -
DNS查询
解析器为了调查IP地址,会向域名服务器进行查询处理。如果根域名服务器在数据库里查询找不到,就会向根根域名服务器查询,最后返回。解析器和根域名服务器都会把最新的信息保存在缓存里。这样可以减少每次查询的性能消耗。 -
DNS如同互联网中的分布式数据库
DNS管理的信息不只是主机名和IP地址的映射关系,还有很多信息。
主机名和IP地址对应的信息叫A记录。
相反,根据IP检索主机名的叫PTR记录。上层和下层服务器IP地址的映射叫做NS记录。
MX记录记录了邮件地址和邮件接受服务器的主机名。
3 ARP
-
ARP概要
以目标IP地址为线索来定位下一个应该接受数据分包的网络设备对应的MAC地址。
只适用于IPV4。IPV6中使用icmpv6 -
工作机制
利用ARP请求和ARP响应两种类型的包来确定MAC地址
主机A为了获得主机B的MAC地址,先广播发一个ARP请求包,然后同一链路的所有主机或路由器就会接受,如果请求IP和自己的一致,就将自己的MAC地址塞入ARP响应包返回给A。
因为每发一个IP就要进行一次ARP请求,因此为了不造成不必要的网络流量,通常会把MAC地址缓存一段时间。接收端也会缓存发送端的MAC。 -
RARP
reverse的ARP
就是从MAC地址定位IP地址的一种协议
个人电脑很方便获取IP地址,但是对于嵌入式 设备,其没有任何输入接口或通过DHCP动态获取IP地址
这时候利RARP,设备接入后就会发送询问:我的IP地址是什么 -
代理ARP
一般ARP包会被路由器隔断,但是采用ARP的路由器可以把ARP请求转发给领邻近的网段。
4 ICMP
-
辅助IP的ICMP
遇到网络异常的时候需要知道问题
ICMP就是提供这类功能的一种协议
ICMP的主要功能包括确认IP包是否成功送达目的地,通知在发送过程中IP包被废弃的具体原因。
ICMP的这种通知消息会使用IP进行发送。
ICMP的消息大致可以分为两类:一类是通知出错原因的错误信息,另一类是用于诊断的查询消息。 -
主要的ICMP消息
- ICMP目标不可达消息
- ICMP重定向消息
如果路由器发现发送端主机使用了次优的路径发送数据,那么它会返回ICMP的重定向的消息给这个主机。
该主机会把最优的加入路由控制表中。 - ICMP超时消息
IP包中有一个字段叫做TTL(Time to Live)
其值每经过一次路由器就会减1,直到减到0时该IP包就会被丢弃,然后就会发送一个ICMP消息给发送端主机 - ICMP回送消息
用于进行通信的主机或路由器之间判断所发的数据包是否已经成功到达对端的一种消息。接受对端主机发送的回送消息。网络上常用的ping(判断对端主机是否可达的一种命令)命令就是利用该消息实现的。
- 其他ICMP消息
- ICMP原点抑制消息
- ICMP路由器探索消息
- ICMP地址掩码消息
- ICMPv6
IPV4 中即使没有ICMP也可以通信。但是ipv6中ICMP作用被扩大,如果没有ICMPv6, ipv6 就没法通信。
IPV6中IP地址定位MAC从ARP转为ICMP的邻居探索消息。这种消息融合了IPV4的ARP、ICMP重定向以及ICMP路由器选择消息等功能于一体
ICMPv6中把ICMP大致分为两种,一种是错误消息,一种是信息消息
ICMPv6 的邻居探索消息用于查询IPV6的地址和MAC地址的对应关系,并由邻居宣告消息得知MAC地址。
5. DHCP
-
DHCP实现即插即用
如果为每一台主机逐一设置IP地址会非常繁琐,因此为了实现自动设置IP地址、统一管理IP地址分配,就产生了DHCP协议。有了DHCP,计算机只要连接到网络,就可以进行TCP/IP通信 -
DHCP工作机制
先架设一台DHCP服务器,然后把DHCP要分配的IP地址设置到服务器上。此外,还将相应的子网掩码、路由控制信息以及DNS服务器地址设置到服务器上。
为了检查所分配的IP地址以及已经分配的IP地址是否可用,
DHCP服务器会在分配IP地址前发送ICMP回送请求包,确认没有回应
DHCP客户端会针对DHCP获取的IP地址发送ARP请求包,确认没有返回应答 -
DHCP中继代理
大型组织中一般有多个网段,要维护多个DHCP服务器很麻烦
所以需要DHCP的统一管理
只需要在每个网段设置一个DHCP中继代理就行,从而可以在DHCP服务器为每个网段注册的IP地址分配范围
6. NAT
- 定义
用于在本地网络中使用私有地址,在连接互联网的时候转而使用全局IP地址的技术
这样可以实现一个全局IP地址与多个主机通信 - NAT的工作机制
就是内次的客户端发送的包经过NAT路由器的时候,NAT路由器把源地址转化为全IP地址再发送给接收端的服务器。
仅仅转换IP地址可能造成IP还是不够用,所以采用包括端口号一起转换的方式(NAPT)就可以解决这个问题 - NAT-PT
NAT-PT是将IPv6首部转化为IPv4首部的技术 - NAT的潜在问题
- 无法从NAT外部向内部服务器建立连接
- 转换表的生成与转换操作都会有开销
- 通信过程中一旦NAT遇到异常需要重启,所有的TCP连接都会被重置
- 即使有两台NAT做备份,TCP连接还是会断开
- 解决问题
- 改用ipv6
- 使用NAT穿越
7. IP隧道
一个网络环境中,如果两个ipv6网络中间夹了一个ipv4网络,那么这两个ipv6之间就没法通信。
利用IP隧道就可以了。即把ipv6的包统合为一个数据包然后加上ipv4的首部。这样数据包就有两个ip首部了。
另外,很多路由器都没有多播包的路由控制信息。多播消息也就不能穿越路由器发送消息。
这种环境中,使用IP隧道,以单播的方式发送包就可以向距离比较远的链路发送多播消息。
8. 其他IP相关技术
- IP多播相关技术
- IP任播
- 通信质量控制
- 显式拥塞通知
- Mobile IP
网友评论