计算机网络4——网络层(上)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yaocong1993/article/details/83722148

目录

一、网络层服务

        1、网络层核心功能        2、网络层服务模型(service model)

二、虚电路网络与数据报网络

        1、虚电路网络        2、数据报网络

三、IPv4协议

        1、IP数据报        2、IP分片        3、IP编址(addressing)       4、有类IP地址        5、IP子网划分与子网掩码


一、网络层服务

从发送主机向接收主机传送数据段(segment),发送主机将数据段封装到数据报(datagram)中,接收主机向传输层交付数据段(segment)。每个主机和路由器都运行网络层协议,路由器检验所有穿越它的IP数据报的头部域,决策如何处理IP数据报。

1、网络层核心功能

转发(forwarding),将分组从路由器的输入端口转移到合适的输出端口;路由(routing),通过路由算法(routing algorithms)确定分组从源到目的经过的路径。

连接建立,不是所有网络都需要,某些网络的重要功能,如ATM、帧中继、X.25。数据分组传输之前,两端主机需要首先建立虚拟/逻辑连接,网络设备(如路由器)参与连接的建立。而传输层的连接在两个应用进程之间,对中间网络设备透明。

    

2、网络层服务模型(service model)

无连接服务(connection-less service):不事先为系列分组的传输确定传输路径,每个分组独立确定传输路径,不同分组可能传输路径不同。数据报网络(datagram network)。

连接服务(connection service):首先为系列分组的传输确定从源到目的经过的路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接。虚电路网络(virtual-circuit network)。

数据报网络与虚电路网络是典型两类分组交换网络,数据报网络提供网络层无连接服务,虚电路网络提供网络层连接服务。类似于传输层的无连接服务(UDP)和面向连接服务(TCP),但是网络层服务提供主机到主机服务,网络核心实现,而不仅是端到端。

二、虚电路网络与数据报网络

1、虚电路网络

虚电路(Virtual circuits)是一条从源主机到目的主机,类似于电路的路径(逻辑连接)。是分组交换,每个分组的传输利用链路的全部带宽。源到目的路径经过的网络层设备共同完成虚电路功能。

通信过程:呼叫建立(call setup)→数据传输→拆除呼叫。虚电路经过的每个网络设备(如路由器),维护每条经过它的虚电路连接状态。链路、网络设备资源(如带宽、缓存等)可以面向VC进行预分配,预分配资源=可预期服务性能,如ATM的电路仿真(CBR)。

每条虚电路包括:从源主机到目的主机的一条路径;虚电路号(VCID),沿路每段链路一个编号;沿路每个网络层设备(如路由器),利用转发表记录经过的每条虚电路。沿某条虚电路传输的分组,携带对应虚电路的VCID,而不是目的地址。同一条VC,在每段链路上的VCID通常不同,路由器转发分组时依据转发表改写/替换虚电路号。

VC路径上每个路由器都需要维护VC连接的状态信息,VC的建立和拆除对应VC转发表的维护。

路由器R1的VC转发表

输入接口

输入VC #

输出接口

输出VC #

1

12

3

22

2

63

1

18

3

7

2

17

1

97

3

87

虚电路信令协议(signaling protocols),用于VC的建立(路径选择、一次)、维护与拆除,应用于虚电路网络,如ATM、帧中继(frame-relay)网络等,目前的Internet不采用。

2、数据报网络

网络层无连接,每个分组携带目的地址,路由器根据分组的目的地址转发分组。基于路由协议/算法构建转发表,检索转发表,每个分组独立选路。

  

最长前缀匹配优先:在检索转发表时,优先选择与分组目的地址匹配前缀最长的入口(entry)。

DA: 11001000 00010111 00010110 10100001从哪个接口转发?A:0

DA: 11001000 00010111 00011000 10101010从哪个接口转发?A:1

目的地址范围

链路接口

11001000 00010111 00010*** ********

0

11001000 00010111 00011000 ********

1

11001000 00010111 00011*** ********

2

其它

3

数据报网络or VC网络?

Internet(数据报网络)

ATM(VC网络)

计算机之间的数据交换

“弹性”服务,没有严格时间需求

电话网络演化而来,核心业务是实时对话

有保障的服务,严格的时间需求

链路类型众多,特点性能各异,统一服务困难

 

“智能”端系统(计算机)

可以自适应、性能控制、差错恢复

“哑(dumb)”端系统(非智能)

电话机、传真机

简化网络,复杂“边缘”

简化“边缘”,复杂网络

三、IPv4协议

1、IP数据报

版本号字段占4位,IP协议的版本号。如4→IPv4、6→IPv6。

首部长度字段占4位,IP分组首部长度,以4字节为单位。如5→IP首部长度为20字节。

服务类型(TOS)字段占8位,指示期望获得哪种类型的服务。1998 年这个字段改名为区分服务。只有在网络提供区分服务(DiffServ)时使用,一般情况下不使用,通常IP分组的该字段(第2字节)的值为00H。

总长度字段占16位,IP分组的总字节数(首部+数据)。最大IP分组的总长度65535B,最小的IP分组首部20B,IP分组可以封装的最大数据65535-20=65515B。

生存时间(TTL)字段占8位,IP分组在网络中可以通过的路由器数(或跳步数)。路由器转发一次分组,TTL减1;如果TTL=0,路由器丢弃该IP分组。

协议字段占8位,指示IP分组封装的是哪个协议的数据包,实现复用/分解。如6为TCP,表示封装的为TCP段;17为UDP,表示封装的是UDP数据报。

首部校验和字段占16位,实现对IP分组首部的差错检测。计算校验和时,该字段置全0;采用反码算数运算求和,和的反码作为首部校验和字段;逐跳计算、逐跳校验,因为TTL等会变化。

源IP地址、目的IP地址字段各占32位,分别标识发送分组的源主机/路由器(网络接口)和接收分组的目的主机/路由器(网络接口)的IP地址。

选项字段长度(1~40B)可变,携带安全、源选路径、时间戳和路由记录等内容,实际上很少被使用。

填充字段长度(0~3B)可变,目的是补齐整个首部,符合32位对齐,保证首部长度是4字节的倍数。

2、IP分片

(1)IP分片与重组

网络链路存在最大传输单元(MTU),即链路层数据帧可封装数据的上限,不同链路的MTU不同。

大IP分组向较小MTU链路转发时,可以被“分片”(fragmented),1个IP分组分为多片IP分组;IP分片到达目的主机后进行“重组”(reassembled)。IP首部的相关字段用于标识分片以及确定分片的相对顺序,总长度、标识、标志位和片偏移。

    

(2)IP分组格式

标识字段占16位,标识一个IP分组。IP协议利用一个计数器,每产生IP分组计数器加1,作为该IP分组的标识。

标志位字段占3位,DF(Don't Fragment),MF(More Fragment)。DF=1禁止分片;DF=0允许分片。MF=1,非最后一片,MF=0,最后一片(或未分片)。

片偏移字段占13位,一个IP分组分片封装原IP分组数据的相对偏移量。片偏移字段以8字节为单位,除了最后一片,前面的所有分片封装的数据字节数是8的倍数。

(3)IP分片过程

假设原IP分组总长度为L,待转发链路的MTU为M。若L>M,且DF=0,则可以/需要分片。分片时每个分片的标识复制原IP分组的标识。

通常分片时,除最后一个分片,其它分片均分为MTU允许的最大分片。一个最大分片可封装的数据应该是8的倍数,因此,一个最大分片可封装的数据为:(向下取整)

需要的总片数为:(向上取整)

每片的片偏移字段取值为:

每片的总长度字段为:

每片的MF标志位为:

3、IP编址(addressing)

IP分组包含源地址(SA)和目的地址(DA)。

接口(interface),主机/路由器与物理链路的连接,实现网络层功能。路由器通常有多个接口,主机通常只有一个或两个接口(e.g.有线的以太网接口,无线的802.11接口)。

IP地址,32比特(IPv4),通常采用点分十进制,编号标识主机、路由器的接口。IP地址与每个实现网络层功能的接口关联。

IP地址的高位比特称为网络号(NetID),低位比特称为主机号(HostID)。IP子网(Subnets)指IP地址具有相同网络号的设备接口,不跨越路由器(第三及以上层网络设备)可以彼此物理联通的接口。

4、有类IP地址

特殊IP地址,不能用于标识具体的IP接口。

NetID

HostID

作为IP分组源地址

作为IP分组目的地址

用途

全0

全0

可以

不可以

在本网范围内表示本机,在路由表中用于表示默认路由(相当于表示整个Internet网络)

全0

特定值

不可以

可以

表示本网内某个特定主机

全1

全1

不可以

可以

本网广播地址(路由器不转发)

特定值

全0

不可以

不可以

网络地址,表示一个网络

特定值

全1

不可以

可以

直接广播地址,对特定网络上的所有主机进行广播

127

非全0或非全1的任何数

可以

可以

用于本地软件环回测试,称为环回地址

私有(Private)IP地址,只用于内部网络。

Class

NetIDs

Blocks

A

10

1

B

172.16to172.31

16

C

192.168.0to192.168.255

256

5、IP子网划分与子网掩码

子网划分(Subnetting)用于区分一个IP子网更小范围网络(子网)。将IP地址划分为网络号(NetID)、子网号(SubID、原主机号部分比特)和主机号(HostID)。子网划分后利用路由器等设备互连,将子网的信息反映到转发表中。

“子网地址+子网掩码”,准确确定子网大小。子网掩码形如IP地址,32位,点分十进制形式。取值NetID、SubID位全取1,HostID位全取0。例:A网的默认子网掩码为255.0.0.0;B网的默认子网掩码为255.255.0.0;C网的默认子网掩码为255.255.255.0;借用3比特划分子网的B网的子网掩码为:255.255.224.0。例:将子网201.2.3.0划分为等长的4个子网。

将IP分组的目的IP地址与子网掩码按位与运算,提取子网地址。例:目的IP地址172.32.1.112,子网掩码255.255.254.0。

172.32.1.112 = 10101100 00100000 00000001 01110000

255.255.254.0=11111111 11111111 11111110 00000000

                         10101100 00100000 00000000 00000000

                              172            32              0              0

子网地址:172.32.0.0(子网掩码:255.255.254.0)

地址范围:172.32.0.0~172.32.1.255

可分配地址范围:172.32.0.1~172.32.1.254

广播地址:172.32.1.255

一个C类网络划分子网举例。子网划分会造成一定的IP地址的浪费,但使网络性能改进。

子网

SubID

(二进制)

HostID取值范围

(二进制)

第4八位组取值范围

(十进制)

1#

000

00000 thru 11111

.0 thru .31

2#

001

00000 thru 11111

.32 thru .63

3#

010

00000 thru 11111

.64 thru .95

4#

011

00000 thru 11111

.96 thru .127

5#

100

00000 thru 11111

.128 thru .159

6#

101

00000 thru 11111

.160 thru .191

7#

110

00000 thru 11111

.192 thru .223

8#

111

00000 thru 11111

.224 thru .255

猜你喜欢

转载自blog.csdn.net/yaocong1993/article/details/83722148