网络层

导学

网络层决定数据在网络中的传输路径,数据路由(决定数据在网络的路径)


A怎么把数据传输给B?

重要硬件:路由器

ip协议详解

虚拟互联网络

◆ 实际的计算机网络是错综复杂的
◆ 物理设备通过使用IP协议,屏蔽了物理网络之间的差异
◆ 当网络中的主机使用IP协议连接时,则无需关注网络细节


◆ IP协议使得复杂的实际网络变为一个虚拟互连的网络
◆ IP协议使得网络层可以屏蔽底层细节而专注网络层的数据转发
◆ IP协议解决了在虚拟网络中数据报传输路径的问题

IP协议

MAC地址
每一个网络设备的身份证,对于数据链路层而言,是唯一不可改变的。
IP地址
IP地址是对于网络层而言,是可变的

IP数据报

IP协议头

版本:占4位,指的是IP协议的版本,通信双方的版本必须一致,当前主流版本是4,即IPv4,也有IPv6
首部位长度:占4位,最大数值为15,表示的是IP首部长度,单位是“32位字”(4个字节),也即是IP首部最大长度为60字节、
总长度:占16位,最大数值为65535,表示的是IP数据报总长度(IP首部+IP数据)--MTU
标识:
标志:
片偏移:
TTL:占8位,表明IP数据报文在网络中的寿命,每经过一个设备,TTL减1,当TTL=0时,网络设备必须丢弃该报文
协议:占8位,表明IP数据所携带的具体数据是什么协议的(如:TCP、UDP等)

首部校验和:占16位,校验IP首部是否有出错
源IP地址:
目的IP地址:

ip协议的转发流程

ip协议工作的过程

逐跳(hop-by-hop)

路由表简介

计算机或者路由器都拥有路由表
mac地址表,是在数据链路层,其工作流程如下:

◆ 数据帧到达路由器,路由器取出前6字节
◆ A通过网卡发出数据帧
◆ 路由器匹配MAC地址表,找到对应的网络接口
◆ 路由器往该网络接口发送数据帧

IP协议的转发流程

结合数据链路层、网络层理解


◆ 数据帧每一跳的MAC地址都在变化
◆ IP数据报每一跳的IP地址始终不变

arp协议与rarp协议

路由器不知道C的MAC地址?

ARP协议

ARP(Address Resolution Protocol)地址解析协议
将ip地址转换为mac地址

ARP缓存表

  • ARP缓存表缓存有IP地址和MAC地址的映射关系

    红框处,其实是先查询了ARP缓存表,知道了mac地址,再告知
  • ARP缓存表没有缓存IP地址和MAC地址的映射关系

◆ ARP缓存表是ARP协议和RARP协议运行的关键
◆ ARP缓存表缓存了IP地址到硬件地址之间的映射关系
◆ ARP缓存表中的记录并不是永久有效的,有一定的期限

ARP协议在帧数据中,报文格式

RARP协议

RARP(Reverse Address Resolution Protocol)逆地址解析协议,很少使用了

报文格式

◆ (R)ARP协议是TCP/IP协议栈里面基础的协议
◆ ARP和RARP的操作对程序员是透明的
◆ 理解(R)ARP协议有助于理解网络分层的细节

ip地址的子网划分

分类的IP地址

  • 特殊的主机号

  • 特殊的网络号

  • 本地回环地址(Loopback Address)
    127.0.0.1,通常被称为本地回环地址(Loopback Address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。在Windows操作系统中也有相似的定义,所以通常在安装网卡前就可以ping通这个本地回环地址。一般都会用来检查本地网络协议、基本数据接口等是否正常的。

划分子网

某公司拥有100名员工,每人配备一个计算机,请问该公司应该申请哪种网络段?

某公司拥有256名员工,每人配备一个计算机,请问该公司应该申请哪种网络段?

造成了很大的地址空间浪费

子网号这么多,有没有办法快速判断某个IP的网络号?--子网掩码

无分类编址CIDR

现在使用的IP地址分类的方法

◆ CIDR中没有A、B、C类网络号、和子网划分的概念

◆ CIDR将网络前缀相同的IP地址称为一个“CIDR地址块”

斜线记法

子网
超网

IP分类是为了尽量避免IP地址浪费

网络地址转换NAT技术

◆ IPv4最多只有40+亿个IP地址
◆ 早期IP地址的不合理规划导致IP号浪费

IP地址不够用了,引出NAT技术。
◆ 网络地址转换NAT(Network Address Translation)
◆ NAT技术用于多个主机通过一个公有IP访问互联网的私有网络中

  • 内网地址
    ◆ 内部机构使用
    ◆ 避免与外网地址重复
    ◆ 内网地址分为三类
    ◆ 两个不同外网的内网地址可以相同。

  • 外网地址
    ◆ 全球范围使用
    ◆ 全球公网唯一

内网多个设备使用同一个外网IP请求外网的服务,外部怎么知道具体是哪个设备在请求的?
使用端口进行区别。

在本地路由器进行端口转换。

◆ 网络地址转换NAT(Network Address Translation)
◆ NAT技术用于多个主机通过一个公有IP访问互联网的私有网络中
◆ NAT减缓了IP地址的消耗,但是增加了网络通信的复杂度

ICMP协议详解

辅助IP协议进行传输
◆ 网际控制报文协议(Internet Control Message Protocol)
◆ ICMP协议可以报告错误信息或者异常情况

差错报告报文

询问报文

icmp协议的应用

Ping应用

当你家里的电脑上不了网的时候,怎么排查?
◆ Ping回环地址127.0.0.1
◆ Ping网关地址
◆ Ping远端地址

利用icmp询问报文

Traceroute应用

Traceroute可以探测IP数据报在网络中走过的路径,利用ICMP终点不可达差错报文

网络层的路由概述

路由是什么?

路由表
◆ 路由表是怎么来的呢?
◆ 下一跳地址是唯一的吗?
◆ 下一跳地址是怎么来的?
◆ 下一跳地址是最佳的吗?
◆ 路由器怎么多,他们是怎么协同工作的?

-- 需要一个好的算法去解决这些事情

抽象问题进行解决

◆ 算法是正确的、完整的
◆ 算法在计算上应该尽可能的简单
◆ 算法可以适应网络中的变化
◆ 算法是稳定的和公平的

但是
◆ 互联网的规模是非常大的
◆ 互联网环境是非常复杂的
-- 所以对互联网进行划分,引出“自治系统(AS)”

◆ 一个自治系统(AS)是处于一个管理机构下的网络设备群
◆ AS内部网络自行管理,AS对外提供一个或者多个出(入)口

由此,可以分类
◆ 自治系统内部路由的协议称为:内部网关协议(RIP、OSPF)
◆ 自治系统外部路由的协议称为:外部网关协议(BGP)

内部网关路由协议之RIP协议

距离矢量(DV)算法

RIP协议的过程

◆ RIP(Routing Information Protocol)协议
◆ RIP协议是使用DV算法的一种路由协议

  • RIP协议的过程
    ◆ RIP协议把网络的跳数(hop)作为DV算法的距离
    ◆ RIP协议每隔30s交换一次路由信息
    ◆ RIP协议认为跳数>15的路由则为不可达路由
    具体不展开了

  • RIP协议的过程的缺点
    ◆ 随便相信“隔壁老王”
    ◆ “自己不思考” “视野不够”
    导致故障信息传递慢

  • RIP协议小结
    ◆ RIP协议:实现简单,开销很小
    ◆ RIP协议:限制了网络的规模
    ◆ RIP协议:“坏消息传的慢”,更新收敛时间过长

Dijkstra(迪杰斯特拉)算法

◆ Dijkstra算法是著名的图算法
◆ Dijkstra算法解决有权图从一个节点到其他节点的最短路径问题
◆ “以起始点为中心,向外层层扩展”
具体不展开,知道OSPF协议应用这个算法

内部网关路由协议之OSPF协议

链路状态(LS)协议

特点
◆ 向所有的路由器发送消息
一传十、十传百

◆ 消息描述该路由器与相邻路由器的链路状态

◆ 只有链路状态发生变化时,才发送更新信息

与rip协议特征对比学习

OSPF协议的过程

◆ OSPF(Open Shortest Path First:开放最短路径优先)
◆ OSPF协议的核心是Dijkstra算法

  • OSPF协议的过程
    ◆ 向所有的路由器发送消息

    ◆ 消息描述该路由器与相邻路由器的链路状态

    ◆ 只有链路状态发生变化时,才发送更新信息

  • 五种消息类型
    ◆ 问候消息(Hello)
    ◆ 链路状态数据库描述信息
    ◆ 链路状态请求信息
    ◆ 链路状态更新信息
    ◆ 链路状态确认信息

外部网关路由协议之BGP协议

◆ BGP(Border Gateway Protocol: 边际网关协议)
◆ BGP协议是运行在AS之间的一种协议

为什么在AS之间要使用BGP协议?
◆ 互联网的规模很大
存储的路由数据很大,计算路径很慢
◆ AS内部使用不同的路由协议
不同协议不能直接通信,使用BGP协议进行协调
◆ AS之间需要考虑除网络特性以外的一些因素(政治、安全…)

◆ BGP协议能够找到一条到达目的比较好的路由,而不是最好的路由

  • 为什么需要配置BGP发言人(speaker)
    ◆ BGP并不关心内部网络拓扑
    ◆ AS之间通过BGP发言人交流信息
    ◆ BGP Speaker可以人为配置策略
    人为干预网络

小结:
◆ BGP协议能够找到一条到达目的比较好的路由
◆ AS之间通过BGP发言人来进行路由信息的交换

posted @ 2020-11-01 18:51  捷后愚生  阅读(240)  评论(0编辑  收藏  举报