概述
网络层完成的服务是主机到主机之间的通信,网络层协议在每台主机、路由器中
网络层关键的功能如下:
- 转发:将分组从路由器的输入移动到适当的路由器输出(本地动作)
- 选路:决定分组从源到目的地所采用的路由(全局动作
网络服务模型
问题:对从发送方到接收方传输数据报,其服务模型 是什么?
对于单个数据报,就保证时延和确保交付就行;对于数据报流,确保按序、最小带宽、对分组间间隔变化的限制、安全
虚电路和数据报网络
网络层提供两种服务,面向连接和无连接
- 面向连接:虚电路(Virtual Circuit)
源节点和目的节点在进行数据传输之前必须建立连接 ,即建立一条虚电路,以保证双方通信所需的一切网络资源
每条链路的VC号均不同,且属于该VC的分组携带VC号
虚电路用到的协议:信令协议,用于ATM等,没有用于当今的互联网
运输层的连接建立与网络层连接建立的区别在于,网络层决定发送方和接收方之间的路径。
路径中每台路由器参与虚电路的建立。
无连接:数据报(datagram)
无需先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号),每个报文携带目的节点完整的地址信息,路由器接收到数据报时都能根据数据报中目的节点地址来决定如何到达目的节点
在数据报传输的时候,用到了转发表:每台路由器有一个将目的地址映射到链路接口的转发表,要根据最长前缀匹配来找到链路传输的接口
路由器的构成
组成有,基本结构如下图:
- 输入/输出端口
- 交换结构
- 选路处理器
功能有:
- 运行路由算法以得到转发表
- 根据转发表对IP分组进行转发
- 提供多种网络类型接口,完成不同网络的互联
下面是具体的结构:
输入端口处理
输出端口处理
交换结构,具体的有三种方式
内存交换
将分组拷贝到系统的内存,输入端与输出端的功能类似于I/O操作,速率受内存带宽限制
总线交换
数据报从输入端口到输出端口内存经一个共享的总线(以广播形式),总线速度快于内存读取速度,任何时刻,总线仅能连通1个输入和1个输出,数据转发速率受总线带宽限制
互联网络交换
由2N条总线组成的互联网络,连接N个输入端口和N个输出端口,同时满足多个输入和输出连通
IP: 网际协议
互联网的IP服务被定义成不可靠的、尽力而为、无连接分组交付系统
有各种协议,选路协议,ip协议,ICMP协议等等
数据报格式
版本:占 4 bit,指IP协议的版本,目前的 IP 协议版本号为 4 (即 IPv4)
首部长度:占 4 bit,可表示的最大数值是 15 个单位(一个单位为 4 字节),因此 IP 的首部长度的最大值是60字节
服务类型:占 8 bit,用来获得更好的服务,这个字段以前一直没有被人们使用
总长度:占 16 bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节,总长度一般不超过MTU(以太网1500字节)
标识、标志、片偏移:用于IP分片功能
生存时间:Time-To-Live,8bit,确保数据报不会永远在网络中循环。每当数据报经过一台路由器,该字段减1。当TTL字段为0,丢弃该数据报
协议:8bit,字段指出此数据报携带的数据使用何种协议,以便目的主机的 IP 层将数据部分上交给哪个处理过程。协议号是将网络层和运输层绑定的粘合剂
首部检验:16bit,只检验数据报的首部,不包括数据部分
源地址和目的地址:均4bit
ipv4的数据报大小超过1500后,基本上会分片,然后接收方再重新组装
IPv4编址
ip地址:对主机、路由器接口的32-bit 标识符 ,接口是在主机/路由器和物理链路之间的连接
子网:在主机/路由器和物理链路之间的连接,子网内的主机具有相同的网络前缀,主机号连续且不同,它们相互通信只需要交换机就行,不需要路由器
下面通过ABC类地址来分析
类别 | 网络数 | 主机数 |
A | 27 | 224-2 |
B | 214 | 216-2 |
C | 221 | 28-2 |
主机号全0代表网络本身;主机号全1代表本子网的广播地址,所以减去2
私有地址
在互联网中不使用,仅在局域网中使用的IP地址
假如说,对于一个具有3000人的企业,分配一个B类子网(65536个IP)太多,分配一个C类子网(256个IP)太少,因此因此现在采用无类域间路由
CIDR(无类域间路由)-不分类编址
(子网地址,主机地址)格式: a.b.c.d/x
一个子网对应一段连续的IP地址空间,通过前缀表示
看下面的例子,瞬间明白