网络层服务

从源主机向接收主机发送数据段,发送主机需要将数据段封装到数据报(datagram),接收主机需要向传输层交付数据段。网络层协议不是端到端,在每一个主机、路由器设备都需要网络层协议,完成网络层功能。中间的路由器需要提取网络层数据报,决策如何转发。

网络层的核心功能——转发和路由。

转发(forwarding):将分组从路由器的输出端口转移到合适的输出端口。每个路由器需要维护转发表,决定如何转发。

路由(routing):确定分组从源到目的地经过的路径。由路由算法确定。

连接建立:某些网络需要。数据分组传输之前在两端主机建立虚拟/逻辑连接,路径上的每一个设备都参与连接的建立(与传输层协议不同)。

传输层连接与网络层连接的不同:网络层连接为两个主机之间(路径上的每个路由器等设备都需要参与),传输层连接为两个应用进程之间的连接,对中间网络设备透明。

网络层服务模型:best effort(Internet),CBR,VBR,ABR,UBR,对带宽、丢失、顺序、时序、拥塞控制等提供的保障不同

无连接服务:不事先为系列分组确定传输路径,每个分组独立确定传输路径,同一个源发出的分组可能有不同的传输路径,如数据报网络(datagram)

连接服务:事先为系列分组确定源到目的的路径,后续分组都按该路径传输,系列分组的传输路径相同,传输顺序可以得到保障,传输结束后拆除连接,如虚电路网络(virtual-circuit)

虚电路网络

虚电路:一条从源主机到目的主机类似于电路的路径(逻辑连接),使用分组交换,每个分组利用链路的全部带宽

通信过程:呼叫建立-数据传输-拆除呼叫

每个分组携带虚电路标识(VCID),而不是目的主机地址

虚电路经过的每个网络层设备都需要维护虚电路的连接状态

可以保障某些性能,如带宽分配

每条虚电路包括:

  • 从源主机到目的主机的一条路径
  • 虚电路号(VCID),链路带宽越大,允许的虚电路遇到,虚电路号可以越大,因此难以保障全局统一,所以使用局部管理。同一条虚电路,在每段链路上的VCID通常不同
  • 沿路的每个网络层设备,需要利用转发表记录经过的每条虚电路,同时进行VCID的替换

虚电路信令协议(signaling protocol)

  • 用于VC的建立、维护、拆除、路径选择
  • 应用于虚电路网络
  • Internet不采用

数据报网络

网络层无连接,每个分组需要携带目的地址,路由器根据目的地址转发分组(转发表),每个分组独立选择路径

转发表并不是针对某一个具体的目的地址,而是针对一系列的地址范围,将地址聚合

地址与路由表中多个范围匹配时,选择前缀更长(地址更具体)的

数据报网络一般用于弹性服务,对时间没有严格的要求,可能经过不同的链路,难以统一服务,端系统为计算机,可以自适应、性能控制、差错恢复,简化网络,复杂边缘

VC网络从电话网络演化而来,核心业务是实时对话,有严格的时间、可靠性要求,端系统非智能,简化边缘,复杂网络

IPv4协议

Internet网络层

路由协议:RIP、OSPF、BGP

路由表

IP协议:寻址规约、数据报格式、分组处理规约

ICMP协议:差错报告、路由器信令

IP数据报

IP数据报:首部+数据(TCP、UDP段)

版本号:IP协议的版本号,4bit

首部长度:4bit,以4字节为单位

服务类型(TOS):8bit,指示期望获得的服务,后来改名为区分服务,只有在网络提供区分服务时才有用,一般情况下不使用

总长度:16bit,以字节为单位,包括头部和数据

标识、标志位、片偏移:与分片有关

生存时间(TTL):8bit,标识IP分组在网络中可以通过的路由器数,路由器每转发一次分组,TTL减一,如果TTL等于0,路由器会丢弃分组

协议:8bit,指示IP分组封装的是哪个协议的数据包,实现复用/分解

首部校验和:16bit,差错检测,计算时该字段全置0

源IP地址:32bit

目的IP地址:32bit

选项字段,填充(符合32位对齐)

IP数据报分片

最大传输单元(MTU):链路层数据帧可封装数据的上限,不同链路的MTU不同

大IP分组向较小的MTU链路转发时,可以分片(如果允许),目的主机进行重组(只分不装)

标识字段:16bit,IP协议利用一个计数器,每产生IP分组计数器加1

标志位:3bit,未定义比特,DF(don’t fragment),MF(more fragment)

片偏移:13bit,相对偏移量,8字节为单位

假设原IP分组总长度为L,MTU为M,DF=0,L>M

分片时每个分片的标识取原IP分组的标识,除最后一个分片,一般其他分片均取MTU允许的最大分片

IP编址

源地址

目的地址

接口:主机/路由器与物理链路的连接,实现网络层功能,路由器通常有多个网络接口,主机通常有一个或两个接口(以太网、WiFi),IPv4协议使用32bit对接口编号

IP地址的高位比特称为网络号(NetID),低位比特称为主机号(HostID),具有相同网络号的一组接口称为IP子网,描述一个区域的网络,一般不跨越路由器设备,可以彼此物理联通

有类IP地址

  • A类地址:最高位为0,前8位为网络号,0.0.0.0-127.255.255.255
  • B类地址:最高位为1,次高位为0,前16位为网络号,128.0.0.0-191.255.255.255
  • C类地址:第三位为0,前24位为网络号,192.0.0.0-223.255.255.255
  • D类地址,第四位为0,不区分网络号和主机号
  • E类地址,剩余,不区分

特殊地址:

  • 0.0.0.0:在本网范围内表示本机,只能用于源地址

  • 网络号全0,主机号特定值:表示本网范围内某个特定主机,只能用于目的地址

  • 255.255.255.255:本网广播地址(路由器不转发),作为目的地址

  • 网络号为特定值,主机号全0:网络地址,表示一个网络

  • 网络号为特定值,主机号全1:直接广播地址,对特定网络的所有主机广播,只能作为目的地址

  • 网络号为127,主机号不是全0也不是全1:用于本地软件的环回测试

私有地址:

  • A类网络,网络号为10
  • B类网络,172.16-172.31
  • C类网络,192.168.0-192.168.255

在所有私有网络内都可以使用

IP子网划分

有类IP地址的划分存在不灵活的情况,需要对大的网络进行进一步的划分

将之前的IP地址中的主机号划分为子网号和主机号,不同子网通过路由器连接

子网掩码

IP地址与子网掩码按位与,得到子网地址