IP(互联网协议(Internet Protocol))
提供主机到主机的传输服务
IP协议功能
(1)寻址和路由;(根据对方的IP地址,寻找最佳路径传输信息);
(2)传递服务:
不可靠(IP协议只是尽自己最大努力去传输数据包),可靠性由上层协议提供(TCP协议);
无连接(事先不建立会话),不维护任何关于后续数据报的信息;
(3)数据包的分片和重组。
IP使用四个关键技术提供服务:
服务类型
生存时间,选项和报头校验码。
特殊IP地址
(1) 0.0.0.0
严格说来,0.0.0.0已经不是一个真正意义上的IP地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的“不清楚”是指在本机的路由表里没有特定条目指明如何到达。对本机来说,它就是一个“收容所”,所有不认识的“三无”人员,一律送进去。如果你在网络设置中设置了缺省网关,那么Windows系统会自动产生一个目的地址为0.0.0.0的缺省路由。
(2) 广播地址(255.255.255.255)
限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。如果翻译成人类的语言,应该是这样:“这个房间里的所有人都注意了!”这个地址不能被路由器转发。
(3) 环回地址(127.0.0.1)
本机地址,主要用于测试。用汉语表示,就是“我自己”。在Windows系统中,这个地址有一个别名“Localhost”。寻址这样一个地址,是不能把它发到网络接口的。除非出错,否则在传输介质上永远不应该出现目的地址为“127.0.0.1”的数据包。
(4) 165.254.x.x
如果你的主机使用了DHCP功能自动获得一个IP地址,那么当你的DHCP服务器发生故障,或响应时间太长而超出了一个系统规定的时间,Wingdows系统会为你分配这样一个地址。
(5) 组播地址
组播地址,从224.0.0.0到239.255.255.254都是这样的地址。224.0.0.1特指所有主机, 224.0.0.2特指所有路由器。这样的地址多用于一些特定的程序以及多媒体程序。如果你的主机开启了IRDP(Internet路由发现协议,使用组播功能)功能,那么你的主机路由表中应该有这样一条路由。
(6) 私有地址
A类地址的私有地址是:10.0.0.0~10.255.255.255
B类地址的私有地址是:172.16.0.0~172.31.255.255.255
C类地址的私有地址是:192.168.0.0~192.168.255.255
这些地址不会被Internet分配,他们再Internet上也不会被路由,虽然它们不能直接和Internet网连接,但通过技术手段仍旧可以和 Internet通讯(NAT技术)。
ICMP(控制报文协议(Internet Control Message Protocol))
辅助IP工作,提供出错和控制信息
ICMP协议的功能主要有:
1、确认IP包是否成功到达目标地址-ping
2、 通知在发送过程中IP包被丢弃的原因
需要注意几点:
1、ICMP是基于IP协议工作的,但是它并不是传输层的功能,因此仍然把它归结为网络层协议
2、ICMP只能搭配IPv4使用,如果是IPv6的情况下, 需要是用ICMPv6
Icmp可以携带各种消息,用不同的type和code的组合,来表示不同的消息
1、 icmp可以是一个ping请求
2、 ping应答
3、 因为ttl过期所以包被丢弃
4、 端口不可达
5、 缺少路由,目标主机不可达
ARP(地址解析协议(Address Resolution Protocol))
提供IP和MAC地址之间的映射,即询问目标IP对应的MAC地址
ARP协议工作原理
每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
主机(网络接口)新加入网络时(也可能只是mac地址发生变化,接口重启等), 会发送免费ARP报文把自己IP地址与Mac地址的映射关系广播给其他主机。
网络上的主机接收到免费ARP报文时,会更新自己的ARP缓冲区。将新的映射关系更新到自己的ARP表中。
某个主机需要发送报文时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送 ARP 数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址等。
当本网络的所有主机收到该 ARP 数据包时:
(A)首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包。
(B)如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖。
(C) 然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。
源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。
使用 ARP 的四种典型情况 :
1、发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
2、发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
3、发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
4、发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
ARP代理(Proxy ARP)
如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程称作委托ARP或ARP代理(Proxy ARP)。这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机,而事实上目的主机是在路由器的“另一边”。路由器的功能相当于目的主机的代理,把分组从其他主机转发给它。即路由器代理ARP。
无故ARP(Gratuitous ARP)
主要有用途:
(1)检查重复地址(如果收到ARP响应表明存在重复地址)。
(2)用于通告一个新的数据链路标识。当一个设备收到一个arp请求时,发现arp缓冲区中已有发送者的IP地址,则更新此IP地址的MAC地址条目。
(3)某个子网内运行热备份路由协议(HSRP)的路由器如果从其他路由器变成了主路由器,它就会发送一个无故ARP来更新该子网上的ARP缓存
IOS系统中默认关闭,可以使用命令ip gratuitous-arps激活它。
因为它不是经过其他主机的ARP请求广播后发出的ARP广播,所以叫无故ARP,也有人叫免费ARP
RARP
具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取IP地址。但是无盘机,如X终端或无盘工作站,则需要RARP方法来获得IP地址。