计算机网络网络层

计算机网络网络层

Copyright©stonee

趁年轻抓紧奋斗吧

约定:本文是针对于《计算机网络》第七版(谢希仁)中第四章的知识点总结,不适合单独看,结合课本或者PPT中的图片复习更佳

  • 网络层提供的是无连接,尽最大努力交付的数据报服务,面向连接由运输层提供
  • 虚电路服务和数据报服务的区别

1. IP

  • IP在ARP之上,在ICMPIGMP之下,它们都在网络层
  • 网络层由路由器分组转发,因为路由器要接入多个网络,所以路由器最少有两个IP
  • 网桥互连的局域网中只能有一个网络号
IP协议格式
  • 首部的固定部分一共20B
  • 版本(4bit) + 首部长度(4bit) + 区分服务(1B) + 总长度(2B) + 标识(2B) + 标志(3bit) + 片偏移(13bit) + 生存时间(1B) + 协议(1B) + 首部检验和(2B) + 源地址(4B) + 目的地址(4B) + 可选部分(max 40B)
  • 版本说明是IPv4还是v6
  • 首部长度1bit指的是4个字节,首部长度最小为0101,即5*4 = 20B,因为首部的固定部分是20B,最大为15 * 4 = 60B
  • 总长度 = 首部长度 + 数据长度,所以数据长度 = 2^16 - 1 - 首部长度 ( 字节)
  • 因为IP数据报的长度不能超过MTU(一太网中为1500B),所以IP规定IP数据报的长度小于576B,需要通过标识、标志位和片偏移进行分片
  • 首部检验和只检验首部,
IP地址分类
  • 是互联网的表示符,唯一的32bit

  • IP地址 ::= {<网络号>, <主机号>}

  • ABC类IP地址都是单播地址

    • A: 0/8 + 24 1~126
    • B: 10/16 + 16 128.1 ~ 191.255
    • C: 110/24 + 8 192.0.1~223.255.255
  • D: 1110/32 多播,E: 1111/32以后备用

  • 点分十进制法,每8bit为一组,一共四组

  • 同一个主机连到不同的网络上时必须要有不同的IP

  • 在同一个局域网上的主机或者路由器的IP的网络号必须是一样的

ARP
  • 解决的是同一局域网中IP和MAC映射的问题,如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络
  • ARP具有高速缓存,以此可以产生ARP欺骗的hack攻击
  • 主机通过广播发送ARP请求
路由器分组转发算法

路由表有目标主机所在网络和下一跳地址组成

  • 先将数据帧的帧头帧尾去掉,从首部提取出IP地址
  • 从IP地址中找出网络地址,若直接相连,则交付
  • 否则间接交付:
    • 若路由表中有目的地址的特定路由则转发给指明的路由
    • 否则如果路由表中有到目的网络的路由则转发
    • 否则转发给默认路由
    • 否则报告分组出错

2. 划分子网和构造超网

  • 为了缓解IP地址不够用的问题
  • 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络
  • 子网号是从主机号中划分的,同时子网号不一定占前八位,位数和位置都可以改,也可以不连续
  • 将2级IP转换为3级IP:::= {<网络号>, <子网号>, <主机号>}
子网掩码
  • 用来判断是否划分了子网,同时如果划分可以找出IP中的子网部分

  • 划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数

  • 如果不划分子网,则该网络的子网掩码就是默认子网掩码,即网络号全1,其余全0

  • 子网路由器分组转发算法

    路由表有目标主机所在网络、子网掩码和下一跳地址组成

    • 先提取IP
    • 再让路由器中各网络中的子网掩码AND,如果匹配,则交付,否则
      • 若路由表中有目的地址的特定路由则转发给指明的路由
      • 否则对路由表中的每一行,将子网掩码和 D 逐位AND。若结果与该行的目的网络地址匹配,则转发
      • 否则转发给默认路由
      • 否则报告分组出错
构造超网
  • 通过CIDR消除了A,B,C类地址以及划分子网的概念
  • 路由聚合也称为构造超网
    • 几个地址块具有相同的前缀
    • 聚合后的地址块包含聚合前几个地址块的所有IP地址
  • IP ::= {<网络前缀>, <主机号>}
  • 斜线记法
  • CIDR中的地址掩码
  • 不能说任意两个相邻的CIDR地址块可以聚合成一个CIDR地址块
  • 超网路由表由目标主机网络前缀下一跳地址组成
  • 在查找路由表时可能会得到不止一个匹配结果,应当从匹配结果中选择具有最长网络前缀的路由
  • 使用二叉线索查找路由表

3.ICMP

  • 为了更有效转发IP数据包和提高成功交付的机会
  • ICMP首部在IP报的数据部分,但是ICMP协议是IP层的协议
ICMP报文格式

类型(1B) + 代码(1B) + 检验和(2B) + 4(B) + 数据部分

差错报文
  • 终点不可达 、时间超过 、参数问题 、改变路由(重定向)
  • 不发送ICMP报文的几种情况
    • 特殊地址
    • 多播地址数据报
    • 分片后的数据报
    • ICMP差错报文
询问报文
  • 回送请求和回答报文
  • 时间戳请求和回答报文

4. 路由选择协议

  • 静态路由选择策略,即非自适应路由选择,简单和开销较小,但不能及时适应网络状态的变化。
  • 动态路由选择策略,即自适应路由选择,能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大
  • 互联网采用分层次的路由选择协议
  • 自制系统AS对其他 AS 表现出的是一个单一的和一致的路由选择策略
IGP
  • AS内部使用的内部网关协议

  • **RIP **是一种分布式的、基于距离向量的路由选择协议

    • 选择最短路由
    • 不能使用多条路由
    • 按固定时间间隔和相邻路由交换当前知道的所有信息
    • 使用与小型互联网,距离等16即相等于不可达
    • RIP使用UDP进行传输
    • 首部(4B) + 路由(4B) : 路由部分最多25个路由信息,所以RIP最多4+20*25=504字节
    • RIP2具有简单的鉴别功能,此时路由部分最多24个路由信息
    • 好消息传播得快,坏消息传播得慢
    • 当网络出现故障时,要经过比较长的时间 (例如数分钟) 才能将此信息传送到所有的路由器
  • OSPF开放最短路由优先,克服RIP缺点发明出来的

    OSPF RIP
    使用洪泛法向局域网中所有路由器发送副本信息 RIP只发送周围几个
    发送与本路由器相邻的所有路由器的链路状态 只发送到所有网络的距离和下一跳路由
    只有当链路状态变化时才发送信息 定期交换
    通过IP发送 通过UDP发送
    • 如果网络中有多条代价相同的路径,可以把通信量进行分配,叫做负载均衡
    • OSPF可以针对同类型业务计算出不同路由
    • OSPF支持可变长子网和CIDR
    • OSPF具有鉴别功能
    • 五种类型:问候组、数据库状态描述组、链路状态请求组、更新组、确认组
    • 当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多
    • OSPF没有“坏消息传播得慢”的问题
EGP
  • 不同AS使用的协议
  • BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由
    • 每个AS都要选出至少一个BGP发言人
    • BGP发言人先建立TCP连接,利用该链接再建立会话
    • 彼此交换路由信息的BGP发言人称为临站或者对等站
    • BGP支持CIDR
    • BGP刚运行时,需要和临站交换整个路由表,但是以后只需要交换变化的路由表
    • 四种报文:打开、更新、保活、通知
路由器组成
  • 主要功能是分组转发路由选择
  • 计算机网络网络层_第1张图片
  • 路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因
  • 通过存储器、总线、纵横交换结构

5. IPv6

  • 从IPv4过渡为IPv6
  • IPv6具有:更大的地址空间、扩展的地址层次结构、灵活的首部格式、改进的选项、支持自动配置(不需要DHCP)、由4字节对齐改为8字节对齐
  • 格式
    • IPv6每个地址占128bit,每16位用**:**区分
    • 版本(4bit) + 通信量类(1B) + 流标号(20bit) + 有效载荷长度(2B) + 下一个首部(1B) + 跳数限制(1B) + 源地址(16B) + 目的地址(16B) + 有效载荷(扩展首部/数据)(64kB)
    • 流标号用于实时视频传输等
    • 有效载荷长度指除了基本首部之外的长度
    • 在任一地址中只能使用一次零压缩
    • 点分十进制
  • IPv6把IPv4首部的选项功能放到扩展首部中,扩展首部留给主机来处理,提高了路由器处理效率
  • IPv6支持单播、多播、任播
IPv4到IPv6的过渡
  • 双协议栈

  • 隧道技术:把IPv6数据报封装成IPv4数据部分

  • IPV4的ICMP、IGMP和ARP到IPV6时合成了ICMPv6

    • 面向报文的协议

6. IP多播

  • 多播地址只能用于目的地址,不能用于源地址
  • 多播也叫组播,是由一个源点发送到多个终点
  • 根据规定MAC地址为01-00-5E-00-00-00 ~ 01-00-5E-7F-FF-FF 为多播地址,只有23位可以用,只能和D类的后23位匹配,D类有28位可供分配,这就导致了D类的前五位并没有用
  • 多播和单播的区别就是它使用D类IP地址作为目的地址,并且使用IGMP
  • IGMP:让本地局域网中的多播路由器知道该局域网中是否有主机参加或退出某个多播组
    • 加入多播组,发送IGMP报文,声明自己加入该组
    • 多播路由器收到报文后,将改组成员关系转发给其他多播路由器
    • 本地多播路由器要周期性探寻本地局域网上的主机,只要有一个主机响应,就认为该组是活跃的
    • 在 IGMP 的询问报文,主机在 0 到 N (默认10s)之间随机选择发送响应所需经过的时延。对应于最小时延的响应最先发送。只要有本组的其他主机先发送了响应,自己就可以不再发送响应了
  • 多播路由选择协议: 将多播数据以最小代价传给组成员
    • 找出以源主机为根节点的多播转发树
    • 洪泛与剪除:适用于较小多播组
    • 隧道技术:适用于地理位置分散
    • 基于核心的发现技术:多播组的大小在较大范围内变化
  • 多播路由选择协议: 将多播数据以最小代价传给组成员

7. VPN & NAT

  • 解决本地地址和全球地址的二义性:
    • RFC1918指明了专用地址,互联网中的路由器对专用地址不转发
    • 三个专用地址快:10.0.0.0/8 172.16.0.0/12 192.168.0.0/16
  • 专用IP地址也叫做可重用地址
  • 以公用网作为各专用网的载体,这样的专用网是VPN
  • 一般VPN都需要加密,用隧道技术实现VPN
  • NAT使得在专用网上使用专用地址的主机互联网上的主机通信(并不需要加密)
    • 有专门的NAT路由器来负责进入和离开专用网时的IP转换

8. 多协议标记交换MPLS

  • 因为路由表示按照最长匹配原则进行,当路由表很大时,可以采用硬件来转发标记的分组
  • 通过专用的 标记交换路由器进行转发
  • 对打上标记的IP数据通过硬件转发,提高效率,使路由表查表时不再上升到第三层查找,直接在第二层通过标记交换路由器进行转发
    • 多协议表现在上次可以采用IP,IPX,下层可以采用PPP,以太网,ATM等
    • 对每个分组按照FEC为MPLS中的LSR打上LSP路径
    • FEC可用于负载均衡
  • MPLS在IP数据报之下,即MPLS封装了IP数据报
  • 标记值(20bit) + 试验(3bit) + S(1bit) + TTL(1B)

问题

  • 路由器中也至少有两个MAC吗
  • 为什么多播是D类
    • 因为规定

你可能感兴趣的:(计算机网络,网络层,计算机网络,谢希仁)