网络层
- 功能:将异构的网络通过路由器互联,在网络层面好像一个统一的网络。
- 数据报服务:互联网则是网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。(不建立连接、不提供质量保障),好处为造价降低、方式灵活、能适应多种应用。
虚电路:网络保证可靠通信,传输前先建立连接分配资源
- 硬件设备:路由器
- 功能:路由选择(路由选择协议)与分组转发(根据转发表,将用户IP数据报从合适端口转发,转发表由路由表获得)
- 协议传输单元:IP数据报
- IP网际协议:使用IP协议可以使性能各异的网络在网络层上看起来好像是一个统一的网络。
- IP地址:每一台主机的每一个接口分配的一个唯一标识符(V4 32位,V6 128位)网络号+主机号构成。
- 地址分类
特殊地址:
- 0,0,0,0:本网络
- 127,X,X,X:回环测试地址
- 主机号全为0(eg: 14,0,0,0,):本主机所在网络的地址
- 主机号全为1(eg:14,255,255,255,255):该网络上所有主机
- 128,0,0,0:不指派
- 192,0,0,0:不指派
MAC地址和ip地址:
| IP地址 | MAC地址 |
---|
使用层 | 网络层及以上 | 数据链路层 | 位置 | IP数据报头部 | 帧头部 |
不同网络之间ip网络号不同,不同接口之间MAC地址不同 数据分组中:MAC地址在数据分组转发中不断变化,IP地址始终不变 路由器有多个IP地址的同时,有多个MAC地址。
- IPv4
数据报格式
- 首部固定长度20字节,可变部分40字节
- 首部长度4字节,每+1表示首部长度+4字节,最大15(最小5),所以首部最大60字节
- 标识、标志、分片偏移(8字节为单位,不够需要补充)都用于数据分片
- 首部检验和:只检验首部,不含数据部分
- IPv6
数据报首部格式
- 地址空间更大(128位)
- 8字节对齐
- 灵活的首部格式(实际上首部改为了定长40字节,扩展部分放在有效载荷中,添加了有效载荷长度字段)
- 允许协议继续扩充、支持资源的预分配(流标号)、自动配置(不需要DHCP)
- 扩展首部中,除了逐跳选项外,路由器不处理,由主机处理。
- IPV4 向IPV6过渡
- 双协议栈(一部分主机or路由有两个协议栈,可以和4与6通信,但首部转换中会有一定损失)
- 隧道技术:v6进入v4时,将v6数据报封装为V4的数据报,作为V4的数据部分(V4首部协议字段设置为41)
- 相关协议:
-
ARP(地址解析协议):实现通过知道机器的ip地址,找出其对应的MAC地址。在ARP cache中放入IP地址到MAC地址的映射表。解决同一个局域网主机或路由器的ip和mac映射问题。 -
ICMP(网际控制报文协议):允许主机或路由器报告差错情况和提供有关异常情况的报告。报文封装在IP数据报中作为数据部分。 * icmp差错报文:终点不可达(向源点发送)、时间超过(向源点,重点也可能向源点)、参数问题、改变路由(让主机知道下次发给另外路由器)、源点抑制(让源点将数据发送放慢) * icmp询问报文:回送请求和回答(询问状态)、时间戳请求和回答(询问时间) 应用举例:PING测试主机间的连通性、traceroute(跟踪一个分组源点到终点,利用时间超过报文)
-
子网划分:子网号字段,物理网络划分为若干个子网,从主机号借若干位为子网号字段。 子网掩码: 子网掩码与ip地址相与得到子网网络地址。好处是无论有无划分子网,网络号都可以通过这种方法得出,处理分组可以采用相同的算法。 子网号不能够全为0全为1(目前可以了,但是慎用),主机号不能全为0全为1,所以划分子网后会少很多主机号 -
CIDR与路由聚合
CIDR:无分类域间路由选择,消除传统ip分类以及划分子网,网络前缀相同的连续ip组合成CIDR地址块,可以通过里面的网络知道该网络最大的ip地址以及最小ip地址。 利用CIDR地址块查找目的网络,将地址的聚合称为路由聚合(构造超网),可以包含好多个传统分类的网络,更有效进行地址分配。
-
路由选择协议(重要!!)
- 理想算法要求:算法完整正确、算法在计算上简单、自适应性、稳定性、公平、最佳
- 层次路由:
RIP(路由信息协议):基于距离向量的路由选择协议,节点发送其拥有的所有路由信息,发送给其邻接点,定期交换。问题是好消息传得快,坏消息传的慢,需要较长时间才能发现网络的故障。实现简单、开销较少。
OSPF(开放最短路径优先):基于链路状态的路由算法,所有结点主动测试邻接节点的状态(开销等),定期将自己的链路状态传给所有其他结点。也就是传输的是邻接状态的内容,发送对象是自治系统中所有的结点。能够较快更新,收敛快。使用Dijkstra最短路径算法构造网络拓扑图。链路状态变化的时候路由表进行更新。
BGP(边界网关协议):是不同自治系统的路由器之间交换路由信息的协议,是一种外部网关协议。 只能力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非寻找一条最佳路由。路径向量路由选择协议,基于TCP。BGP发言人之间相互交换路由信息,BGP发言人寻找可实现的并比较好的路由。
- 网络层转发分组的流程:
有了划分子网的话,路由表必须包括:目的网络地址、子网掩码、下一跳地址。
- 获得目的地址D后,先判断是否直接交付(D与路由器直接相连的网络的子网掩码进行与操作,然后比较网络号是否一致)
- 判断路由表中有没有针对D的特定路由,有则交付
- 将D与路由器路由表中所有网络的子网掩码 进行与操作,比较网络号是否一致,如果一致则交付
- 传给默认路由
- 报告转发分组出错。
总结:先判断直接交付情况,然后特定路由情况查询,然后遍历路由表,然后默认路由,以上均不能转发,则报告转发分组出错。
运输层
|