TCP/IP 协议栈的网络层位于网络接口层和传输层之间,主要协议
复制代码
1、ARP:地址解析,将网络层地址解析为物理层地址
2、RARP:反向解析,将物理层地址解析为网络层地址
3、ICMP:互联网控制消息协议,定义了网络层控制和传递消息的功能,提供网络诊断功能
4、IP:负责网络层寻址、路由选择、分段及包重组
5、IGMP 互联网组管理协议
IP 协议功能
复制代码
1.由RFC 791 定义的IP ,
2.IP 是尽力传输的网络协议,其提供的数据传送服务是不可靠的,无连接的,面向可靠连接的服务由上层传输层的TCP完成
3.工作原理
a.将传输层的数据段封装成IP数据包,发送给网络接口层
b.将网络接口层的数据帧解封装,根据里面的IP协议号发送给TCP 协议号17 或 UDP 协议号6
4.主要作用
a.表示节点和链路,每个链路分配一个全局唯一的网络号(network-number),为节点分配一个全局唯一的 32 位IP地址
b.寻址和转发
c.适应各种数据链路:可以根据链路的MTU(MAXimum Transfer Unit,最大传输单元),对IP包进行分片和重组,可以建立IP地址到数据链路层地址的映射以通过实际的数据链路传递消息
IP 网络结构
复制代码
a.由众多的路由器和网段(Network segment)构成
b.路由器功能
i.每一个接口都是一个链路,将孤立的网络连接起来,实现网络通信
ii.链路层协议适配
iii.运行网关到网关协议(gateway to gateway Protocol,GGP),包括RIP OSPF BGP 等路由协议
iv.IP 网络的包转发是逐跳(hop-by-hop)的
IP封装
复制代码
a.版本version:IP 协议的版本号
b.头长度(IHL Internet header length)IP 头部包长度 ,占 4 位
c.服务类型(type of service ,TOS)标志IP 包期望获得的服务登记,常用语QOS(Quality of service 服务质量)中
d.总长度(total length):整个IP 包的长度,包括数据部分
e.标识(identification)唯一地表示主机发送的每一个IP 包,通常每发送一个包其值就会加1
f.生存时间(time to live,TTL):设置了数据包可以经过路由器数目,一旦经过一个路由器TTL值减1,当该字段值为0 是,数据包将丢弃
g.协议(Protocol):标识数据包内传送的数据所属的上层协议 ,TCP 17 UDP 6
h.头校验和(header checksum)IP 头部的校验和,用于检查包头的完整性
i.源地址(source address )和目的地址(destination address)标识数据包的源节点和目的节点IP地址
IP 地址和地址映射
复制代码
IP 地址格式
1.地址长度是二进制32位,
2.点分十进制4个整数
3.采用二级结构,网络号(Network-number)和主机号(host-number)
IP地址分类
复制代码
1.A类
a.网络号取值范围:1-126
b.地址范围:1.0.0.0 - 126.255.255.255
c.每个A类网络有 2²⁴个地址
2.B类
a.网络号取值范围:128 - 191
b.地址范围:128.0.0.0 - 191.255.255.255
c.每个B类网络有2¹⁶个地址
3.C类
a.网络号取值范围:192 - 223
b.地址范围:192.0.0.0 - 223.255.255.255
c.每个C类网络有2⁸=256个地址
4.D类(组播地址)
a.网络号取值范围:224 - 239
b.地址范围:224.0.0.0 - 239.255.255.255
5.E类(保留研究用)
a.网络号取值范围:240 - 255
b.地址范围: 240.0.0.0 - 255.255.255.255
6.特殊的IP地址
a.主机号全为0,成为网络地址,标识一个网段
b.主机号全为1 ,称为网段广播地址,标识一个网络内的所有主机
c.网络号为127,用于环路测试目的,127.0.0.1 表示本机
d.网络号和主机号全为0 ,代表所有的网络,常用于指定默认路由
e.网络号和主机号全为1,是全网广播地址,代表所有的主机,用于向网络中的所有主机发送数据包
f.因此每个网段都会有一个网络地址,和一个网段广播地址,所以实际可用的IP地址需要减去 2 个
ARP 地址解析协议
i.将mac地址 和 IP 地址建立映射关系,建立映射过程叫做地址解析(resolution)
ii.地址解析过程
复制代码
1.hostA 首先查看ARP表中,是否有映射关系
a.有,直接发送
b.没有,进入第二步
2.host A 发送源IP地址是本机,源Mac地址是本机,目的IP地址Host B的,MAC地址是全0的MAC地址
3.ARP报文以广播方式发送,
4.网络中的所有主机都会接收到,检查自己的ARP表,HOSTb能够匹配目的地址后,将HostA的映射关系,保存到ARP表中,并将数据包发送给HostA,源IP地址是本机,MAC地址是本机,目的IP 地址和MAC地址是Host A,其他主机发现请求的不是自己,于是都不回应
5.HostA 收到ARP 响应报文后,将HostB的MAc地址加入到自己的ARP表中。同时将IP数据包以此MAC地址为目的地址封装成帧发送给HostB
iii.动态ARP 和静态 ARP
复制代码
1.动态ARP表项由ARP协议动态解析获得,如果超过老化时间(aging time)未被使用,则会自动删除
2.静态ARP 表项由管理员手工配置,不会被老化,静态ARP表项的优先级高于动态,可以覆盖动态ARP
3.免费ARP(gratuitous ARP),免费ARP协议包中携带的发送者IP地址和目标IP地址都是本机地址,发送者MAC地址是本机MAC地址,目标MAC地址是广播地址,对外发送免费ARP协议包可以实现以下功能
a.检测IP地址是否冲突
b.设备改变了硬件,通知其他设备更新ARP表
代理ARP
复制代码
i.路由器上开启代理arp功能
ii.通信原理
1.HostA 发送ARP 请求,广播方式,目的IP 地址,和未知MAC地址,
2.路由器代理ARP 收到HostA的请求后,也发送HostA的ARP请求
3.HostC 收到路由器的ARP请求后,回应路由器。包含本机的IP地址和MAC地址
4.路由器收到HostC的回应消息后,转发给HostA ,但是目的地址则是直连HostA网段接口的MAC地址
5.HostA收到路由器的ARP消息,建立映射关系,HostC的IP地址,对应路由器直连接口的MAC地址
RARP 反向地址解析
复制代码
i.只知道自己的mac地址 ,向RARP server 请求相应的IP地址
ii.以广播方式发送请求,RARP server 以单播方式回应请求
iii.RARP server上维持着本网段的"物理地址-IP 地址"映射表
IP 包转发
复制代码
i.主机单播 IP 包发送,判断目的IP地址的网络地址
1.在同一网段内,主机解析目的主机IP 地址,对应的硬件地址,将IP 包以此硬件地址为目的地址封装成帧,由直连网段的接口发送给目的主机。
2.不在同一网段内,主机解析默认网关的IP地址对应的硬件地址,将IP 包以此硬件地址为目的地址封装成帧,由直连连接此网段的接口发送给默认网关
ii.路由器单播IP 包转发
1.收到数据包后,先检测目的地址,
a.目的地址为本机,则接收此包,并解封装,所得数据提交给上层协议处理
b.目的地址为某个接口直连的网段,则解析目的IP地址对应的硬件地址,将此硬件地址为目的地址封装成帧,由直接连接此网段的接口发送给目的主机
c.目的地址与路由器处于不同网段,则路由器查询路由表,查出下一跳的IP地址,解析出下一跳的硬件地址,将此硬件地址封装成帧,由直连网段的接口,发送给下一跳路由器
iii.主机接收IP包,首先检查目的地址,符合以下情况,则接收,否则丢弃
1.目的IP地址等于自身IP地址
2.目的IP地址等于广播地址
3.目的IP地址是一个组播地址,本机正好属于此组播组
广播风暴
复制代码
路由器默认不会转发广播
ICMP
复制代码
i.RFC 792 定义的,基于IP 运行
ii.定义了错误报告和其他回送给源点的关于IP数据包处理情况的消息
iii.可用于IP数据包传递过程中发生的错误、失败等信息,提供网络诊断
iv.消息类型分为ICMP 差错信息 和 ICMP 查询信息
1.目的不可达(destination unreachable):目的地址不存在或已关机,
2.回波请求(echo request)是用来测试目的站是否可达
3.回波相应(echo reply)对回波请求做出响应时发送
4.参数问题(Parameter Problem)IP包的头中产生错误或非法值,路由器发现问题后向源发送此消息
5.重定向(redirect):路由器发现这个数据包有其他路由器可以更快的转发,于是路由器给源主机发送此消息
6.源抑制(source quench):当速率较高的主机给速率较低的主机,发送数据的时候,速率较低的主机处理不了数据的是,给源主机发送此消息
7.超时 time exceeded :ip包中的TTL值为0 或 分片重组定时器到期时,将从网络中删除,删除分组的路由器,接着向源主机发送此消息
8.时间戳请求和时间戳应答(timestamp request and timestamp reply):时间戳分组使主机能估计它到另一个主机一次往返通信所需的时间。