1. 1. 各层数据的传输单元
  2. 2. 路由算法
  3. 3. 自治系统?路由选择协议?
  4. 4. IP数据报格式 - 规定了格式,总长度,标志和片偏移用于处理分片(分组交换),TTL指出IP的路由生存跳数
  5. 5. MTU是什么?什么时候需要使用分片?
  6. 6. CIDR是什么?CIDR地址块?超网或路由聚合是什么?
  7. 7. ARP协议?
  8. 8. icmp协议的应用?
  9. 9. RIP协议?
  10. 10. OSPF协议?
  11. 11. BGP协议?

主要任务把分组从源端传送到目的端,为分组交换网上的不同主机提供通信服务。
网络层传输单位时数据报

  1. 路由选择与分组交换(最佳路径)
  2. 异构网络互联
  3. 拥塞控制

    交换

    image.png
    n条链路即可实现网络通信

    电路交换

网络层 - 图2
e.g :电话网络
阶段:

  1. 建立连接
  2. 通信(独占资源)
  3. 释放连接

优势:

  1. 通信时延小
  2. 有序传输
  3. 没有冲突
  4. 实时性强

缺点:

  1. 建立连接时间长
  2. 线路独占,使用效率低
  3. 灵活性差
  4. 无差错控制能力

    报文交换

    报文:源应用发送的信息整体

网络层 - 图3

优点:

  1. 无需建立连接
  2. 存储转发,动态分配线路
  3. 线路可靠性较高
  4. 线路利用率较高
  5. 多目标服务

缺点:

  1. 有存储转发时延
  2. 报文大小不定,需要网络节点有较大缓冲空间

    分组交换

    分组:把大的数据块分割成小的数据块

网络层 - 图4

优点:

  1. 无需建立连接
  2. 存储转发,动态分配线路
  3. 线路可靠性较高
  4. 线路利用率较高
  5. 相对于报文交换,存储管理更容易

缺点:

  1. 有存储转发时延
  2. 需要传输额外的信息量(编组)
  3. 乱序到目的主机时,要对分组排序重组

    并行转发,时延特别小

集中传输单元辨析

  • 应用层: 报文
  • 传输层:报文段
  • 网路层:IP数据报,分组
  • 数据链路层:帧
  • 物理层:比特流

    数据报

    为网络层提供无连接服务
    **
    每个分组携带源和目的地址

路由器根据分组的目的地址转发分组:基于路由协议/算法构建转发表;检索转发表;每个分组独立选路

无连接服务:不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同

虚电路

为网络层提供连接服务,逻辑连接,所有结点都要维持这条虚电路的建立

  1. 建立连接(虚电路建立)
  2. 数据传输(全双工通信)
  3. 释放连接(虚电路释放)

连接服务:首先为分组的传输确定传输路径,然后沿该路径传输系列分组,系列分组传输路径相同,传输结束后拆除连接

路由算法与路由协议

路由算法

最佳路由:最佳只能是相对于某一种特定要求下得出的较为合理的选择而已

静态路由算法

非自适应路由算法,管理员手工配置路由信息

优点:简单可靠,在负荷稳定、拓扑变化不大的网络中运行效果很好,广泛用于高度安全性的军事网络和较小的商业网络

缺点:路由更新慢,不适用于大型网络

动态路由算法

自适应路由算法,路由器间彼此交换信息,按照路由算法优化出路由表项

优点:路由更新快,适用大型网络,即使响应链路费用或网络拓扑变化

缺点:算法复杂,增加网络负担

  • 全局性: 链路状态路由算法 OSPF , 所有路由器掌握完整的网络拓扑和链路费用信息
  • 分散性:距离向量路由算法 RIP, 路由器只掌握物理相连的网络的信息

    分层次的路由选择协议

    自治系统: 在单一技术管理下的一组路由器,自治系统的所有路由器在本自治系统内都必须联通。

路由选择协议:

  • 内部网关协议 IGP :一个AS内使用的 RIP、OSPF
  • 外部网关协议 EGP :AS之间使用 BGP,BGP-4

    IP数据报格式

    网络层 - 图5

  • 固定部分: 20B

  • 版本: IPv4/IPv6
  • 首部长度: 4B , 最小为5, 指示首部的长度
  • 服务类型: 指示期望获得那种类型的服务,比较少用
  • 总长度:首部 + 数据, 单位是 1B
  • 标识:同一数据包的分片使用同一标识
  • 标志:只有两位有意义
    • 禁止分片:DF=1,禁止分片,DF=0,允许分片
    • 更多分片:MF=1,后面还有分片,MF=0,代表最后一片
  • 片偏移:指出较长分组分片后,某片在原分组中的相对位置,以8B为单位
  • 生存时间TTL: IP分组的保质期,经过一个路由器 -1,变成0则丢弃
  • 协议:数据部分的协议

image.png

  • 首部检验和:只检验首部
  • 源地址和目的地址: 32位
  • 可选字段: 0 -40B,用来支持排错、测量以及安全等措施。
  • 填充:全0,把首部补成4B的整数倍

    IP数据报分片

    最大传输单元 MTU: 链路层数据帧可封装数据的上限。

    以太网的MTU是 1500 字节

如果数据报长度超过链路MTU,就需要使用分片

网络地址转换

私有IP地址

路由器对目的地址是私有IP地址的数据包一律不进行转发

网络地址转换NAT:在专用网连接到因特网的路由器上安装NAT软件,它至少有一个有效的外部全球IP地址

NAT转换表:WAN端LAN端

无分类编址CIDR

变长子网掩码提高网络使用率

无分类域间路由选择CIDR:

  1. 消除了传统的A类,B类和C类地址以及划分子网的概念 CIDR计法:IP地址后加上/,然后写上网络前缀的位数 128.14.32.0/20
  2. 融合了子网地址与子网掩码,方便子网划分

    CIDR地址块:CIDR把网络前缀都相同的连续IP地址组成一个CIDR地址块

构成超网

将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。

方法:把网络前缀缩短

最长前缀匹配

使用CIDR时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。

ARP协议

ARP高速缓存:IP地址与MAC地址的映射(局域网络内)

没有目的MAC地址,则用【FF-FF-FF-FF-FF-FF】分装并广播ARP请求分组

同一网络内:

  1. 广播ARP请求分组(询问目的MAC地址) 【IP1】【IP3】【MAC1】【FF-FF-FF-FF-FF-FF】
  2. 单播ARP响应分组(回复)【IP3】【MAC3】

不同网络内:

  1. 发送到路由器,目标ip选择路由器 【IP1】【IP6】【MAC1】【FF-FF-FF-FF-FF-FF】
  2. 路由器单播响应ARP分组 ,返回路由器MAC地址【IP6】【MAC6】
  3. 无数路由器解封装和加封装
  4. 最终到达目标网络,由路由器广播ARP请求分组
  5. 目标回复 单播ARP响应分组

特点:

  • 由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址
  • ARP完成主机或路由器IP地址到MAC地址的映射(下一跳走哪)

    DHCP协议

    动态主机配置协议DHCP是应用层协议,使用C/S模式,客户端和服务端通过广播方式进行交互,基于UDP

允许地址重用,支持移动用户加入网络,支持在用地址续租
**

  1. 主机广播DHCP发现报文
  2. DHCP服务器广播DHCP提供报文
  3. 主机广播DHCP请求报文
  4. DHCP服务器广播DHCP确认报文

    使用广播可以告诉其他DHCP服务器,无需再分配地址了

ICMP协议

ICMP协议支持主机或路由器

  • 差错(或异常报告)
  • 网络探寻

网络层 - 图7

ICMP差错报告报文

  1. 终点不可达 无法交付
  2. 源点抑制:路由器或主机由于拥塞而丢弃数据报 拥塞丢数据
  3. 时间超过: TTL=0
  4. 参数问题:首部字段出问题
  5. 改变路由(重定向): 值得更好的路由

    不应该发送ICMP差错报文的情况

  6. 对ICMP差错报告报文不再发送ICMP差错报告报文

  7. 对第一个分片的数据报片的所有后续报片不再发送ICMP差错报告报文
  8. 对具有组播不再发送ICMP差错报告报文
  9. 对具有特殊地址不再发送ICMP差错报告报文

    ICMP询问报文

  10. 回送请求和回答报文

  11. 时间戳请求和回答报文

应用

  • ping 使用了ICMP回送请求和回答报文
  • traceroute 使用了ICMP时间超过差错报文

    RIP协议

    使用udp

AS内使用,是一种分布式的基于距离向量的路由选择协议,要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录。

距离:跳数,即从源端口到目的端口所经过的路由器个数。RIP允许一条路由最多只能包含15个路由器,因为16表示网络不可达,因此RIP只适用于小互联网

  1. 仅与相邻路由器交换信息
  2. 路由器交换的信息是自己的路由表
  3. 每30s交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没收到邻居路由器的通告,则判定邻居没了,并更新自己的路由表

    OSPF协议

    直接采用IP(不使用传输层协议)

    AS内使用,开放
    最短路径优先**协议,因为Dijkstra提出的最短路径算法SPF。

  4. 使用洪泛法向自治系统内所有路由器发送信息,每一个相邻路由器会把信息发到它的相邻路由器 【广播】

  5. 发送的信息就是相邻的所有路由器的链路状态(代价-费用、距离、时延、带宽等等)
  6. 只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息

    BGP协议

    使用TCP

AS之间使用,与其他AS的邻站BGP发言人交换信息(路径向量),交换网络可达性的信息,发生变化时才修改信息

尽可能找到较好路由即可

一个BGP发言人与其他AS中的发言人要交换路由信息,就要先建立TCP连接,即通过TCP传送,然后在此连接上交换BGP报文以建立BGP会话,利用BGP会话交换路由信息(应用层协议)

BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀下一条路由器,以及到达该目的网络所要经过的各个自治系统序列。

BGP-4

  1. OPEN报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方
  2. UPDATE报文:通过新路径或撤销原路径
  3. KEEPALIVE报文:在无UPDATE时,周期性正式邻站的连通信,也作为OPEN的确认
  4. NOTIFICATION报文:报告先前报文的差错;也被用于关闭连接

    IP组播(多播)

    当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的结点后才开始复制和分发,是一种点对多点的传输方式。

    组播路由器: 运行组播协议的路由器

IP组播地址

IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)
组播地址范围为 224.0.0.0.0~239.255.255.255(D类地址),一个D类地址标识一个组播组。只能用作分组的目的地址。源地址总是单播地址

  1. 组播数据报也是尽最大努力交付,不提供可靠交付,应用于UDP
  2. 对组播数据报不产生ICMP差错报文
  3. 并非所有D类地址都可以作为组播地址

    硬件组播

    同单播地址一样,组播IP地址也需要相应的组播MAC地址在本地网络中实际传送帧。组播MAC地址以十六进制值01-00-5E打头,余下的5个16进制位是根据IP组播组地址的最后23位住哪换得到的

    IP地址和MAC地址有映射关系

移动IP

移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变

IP隧道技术

  • Linux原生支持5种隧道:
    • ipip 在IPv4的基础上再封装一个IPv4报文
    • gre 通用路由封装,定义了再任意一种网络层协议封装其他任意一种网络协议的机制
    • sit
    • ipatap
    • vti