4.1 网络层概述
互联
网络互连的动力:更大范围的资源共享
网络互连:HOST-LAN,LAN-LAN/WAN
互连在一起的网络要进行通信,会遇到许多问题需要解决,如:
- 不同的寻址方案
- 不同的最大分组长度
- 不同的网络接入机制
- 不同的超时控制
- 不同的差错恢复方法
- 不同的状态报告方法
- 不同的路由选择技术
- 不同的用户接入控制
- 不同的服务(面向连接服务和无连接服务)
- 不同的管理与控制方式
异构网络
- 在体系结构和通信协议方面具有差异的计算机网络。
- 在寻址方法、分组长度、路由选择、差错恢复等方面不同,无法直接通信。
互联互通需采用网络层中继系统对不同协议的语法、语义和时序进行转换。
互联方法
- 两两互联的方式:共需N(N-1)个网络层中继系统。
- 与中立中继系统互联的方式:将自己协议映射到IP协议。
网络互相连接起来要使用一些中间设备
中间设备又称为中间系统或中继(relay)系统
- 物理层中继系统:转发器和集线器(repeater)。
- 数据链路层中继系统:网桥(bridge)。
- 网络层中继系统:路由器(router)。
- 网络层以上的中继系统:网关(gateway)。
从体系层次观点考察网络互连
物理层:在电缆段之间复制比特信号(无地址)
数据链路层:在网段之间转发数据帧(根据物理地址)
网络层:在网络之间转发分组(根据逻辑地址)
- 当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。
- 网关由于比较复杂,目前使用得较少。
- 互联网都是指用路由器进行互连的网络。
- 由于历史原因,许多有关TCP/IP的文献将网络层使用得路由器称为网关。
问题:分组在各种各样的网络之间如何传输?
因特网采用了一种与机器无关、操作系统无关、语言无关,中立的中继系统(IP系统)方式来解决异构网络互联问题
- 所谓虚拟互联网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用IP协议就可以使这些性能各异的网络在网络层看起来好像是一个统一的网络。
- 使用IP协议的虚拟互连网络可简称为IP网。
网络层提供了端系统到端系统的通信服务
- 底层的直接连接的网络可为异构,网络层提供互联互通 互联网可以由多种异构网络互连而成
- 多跳传送分组,需要网间路由器进行分组转发和路由选择
分组的直接交付和间接交付
直接交付:将分组直接交付给目的主机而不需要通过路由器。
间接交付:源与目的不在一个直接连接的网络中,分组通过路由器转发。
- 如果我们只从网络层考虑问题,那么IP数据报就可以想象是在网络层中传送。
4.2 网络层服务模型
- 在计算机网络领域,网络层应该向运输层提供怎样的服务("面向连接"还是"无连接")曾引起了长期的争论。
- 争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?
网络层提供的两种服务
无连接的网络服务:数据报(datagram)服务
面向连接的网络服务(虚电路(virtual-circuit,VC)服务
网络随时接受主机发送的分组(即数据报)网络为每个分组独立的选择路由。
数据报服务
- 在网络层无呼叫建立
- 路由器:没有端到端连接的状态 无网络级"连接"的概念
- 分组使用目的主机地址转发 相同源和目的对,可能采用不同的路径
主机H1先向主机H5发出一个特定格式的控制信息分组,要求进行通信,同时寻找一条合适路由。若主机H5同意通信就发回响应,然后双方就建立了虚电路。
虚电路服务
一条VC由下列组成:
- 从源到目的地的路径
- VC号是标识沿路径每条链路的号码
- 沿路径中路由器转发表的项
属于VC的分组携带一个VC号
每条链路的VC号必须改变
- 新的VC号来自转发表
虚电路服务
- 用于建立、维护和拆除VC
- 用于ATM、帧中继
虚电路是逻辑连接
- 虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。
- 请注意,电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。
数据报服务和虚电路服务优缺点的归纳
因特网采用的设计思路
- 网络在发送分组时不需要先建立连接。每一个分组(即IP数据报)独立发送,与其前后的分组无关(不进行编号)。简单灵活、尽最大努力交付(best effort delivery)!
- 网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。可靠性由网络的主机中的运输层负责。
- 采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。
- 因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。
4.3 IP协议
网际协议IP及其配套协议
IP数据报的格式
一个IP数据报由首部和数据两部分组成。
首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。
在首部的固定部分的后面是一些可选字段,其长度是可变的。
可变部分:从1个字节到40个字节不等,取决于所选择的项目
版本:占4bit,指IP协议的版本,目前的IP协议版本号为4(即IPv4)
首部长度:占4bit,可表示的最大数值 是15个单位(一个单位为4字节) 因此IP的首部长度的最大值是60字节
区分服务:占8位,用来获得更好的服务,在就标准中叫做服务类型,但实际上一直未被使用过。1998年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段
总长度:占16bit,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为65535字节。
标识(identification):占16bit,它是一个计数器,用来产生数据报的标识。
标志(flag):占3位,目前只有前两位有意义。标志字段的最低位是MF(More Fragment)。MF=1表示后面"还有分片"。MF=0表示最后一个分片。标志字段中间的一位是DF(Don't Fragment)。只有当DF=0时才允许分片。
片偏移:12bit,较长的分组在分片后某片在原分组中的相对位置。片偏移以8个字节为偏移单位。
分组分片
回顾最大传输单元(MTU)的定义
- 物理网络对帧的数据部分的最大字节数限制
- 由硬件决定
数据封装提出的问题
1.IP分组的大小由软件定义
2.选择合适的分组长度适应不同的MTU
- 选择网络中最小的MTU:在MTU较大的网络传输会造成硬件能力浪费
- 选择网络中最大的MTU:在MTU较小的网络不能实现数据报到帧的封装
3.如何选择分组长度?如何实现数据封装?
适应不同MTU的解决方案
分组长度的定义原则
- 与硬件无关
- 以"方便"为原则(取本地网络的MTU)
定义分片机制
- 在IP数据包长度大于网络MTU的情况下,将其分成若干较小的部分传输,每部分称为片。
在何处实行分片
分片方法
生存时间:8bit,记为TTL(Time To Live) 表示数据报在网络中至多可经过多少个路由器。
协议:8bit,指出此数据报携带的数据使用何种协议以便目的主机的IP层将数据部分上交给哪个处理过程
受不检验和:16bit字段只检验数据报的首部不包括数据部分。这里不采用CRC检验码而采用简单的计算方法。
源地址和目标地址都各占4字节
可选字段
- IP首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。
- 选项字段的长度可变,从1个字节到40个字节不等,取决于所选择的项目。
- 增加首部的可变部分是为了增加IP数据报的功能,但这同时也使得IP数据报的首部长度称为可变的。这就增加了每一个路由器处理数据报的开销。
- 实际上这些选项很少被使用。
什么是IP地址
- 我们把整个因特网看成为一个单一的、抽象的网络。IP地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围唯一的32bit的标识符。
- 最初,因特网赋号管理局(Internet Assigned Number Authrity,IANA)控制着所有分配的编号,并制定政策。
- 后来,由因特网名字与号码指派公司(Internet Corporation for Assigned Names and Numbers,ICANN)行使IANA的职能。
- 大多数单位从不会直接与ICANN联系,而是单位->本地ISP->更高一级的ISP->ICANN授权的地址注册机构
- APNIC,负责亚洲和太平洋地区(Asia/Pacific Region)。
- ARIN,负责北美区域(North America Region)。
- RIPE NCC,负责欧洲、中东、中亚等区域(Europen,the Middle East,and Central Asia)。
- LACNIC,负责拉美和加勒比海区域(Latin America and some Caribbean IsIands)。
- AFRINIC,负责非洲区域(Africa Region)。
- 我国向亚太网络信息中心APNIC(Asia Pacific Network Information Center)申请IP地址。
IP地址的编址方法
- 分类编址:只是最基本的编址方法,在1981年就通过了相应的标准协议。
- 子网编址:这是对最基本的编址方法的改进,其标准[RFC 950]在1985年通过。
- CIDR:这是比较新的无分类编址方法。1993年提出后很快就得到推广应用。
IP地址的两种表示方法
一个对比
IP的地址结构
分类的IP地址
- 每一类地址都有两个固定长度的字段组成,其中一个字段是网络号net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号host-id,它标志该主机(或路由器)。
- 两级的IP地址可以记为:IP地址::={<网络号>,<主机号>} ::=代表"定义为"
A类 大型网络
B类 中型网络
C类 小型网络
D类 多播
E类 试验目的
路由器转发分组的步骤
- 先按所要找的IP地址中的网络号net-id把目的网络找到。
- 当分组到达目的网络后,再利用主机号host-id将数据报直接交付给目的主机。
- 按照整数字节划分net-id字段和host-id字段,就可以使路由器在收到一个分组时能够更快地将地址中的网络号提取出来。
IP地址的分类/A类
- 前1字节标识网络地址,后3字节标识主机地址。
- 每个网络最多可容纳(2^24-2)台主机。
- 从高位起,前1位为"0",第1字节用十进制表示的取值范围为"1-126"
- 具有A类地址特征的网络总数为(2^7-2)个
IP地址的分类/B类
- 前2个字节标识网络地址,后2字节标识主机地址
- 每个网络最多容纳(2^16-2)台主机
- 从高位起,前2位为"10",第1字节用十进制表示的取值范围为"128-191"
- 具有B类地址特征的网络总数为2^14-1个
IP地址的分类/C类
- 前3个字节标识网络地址,后1字节标识主机地址
- 每个网络最多容纳(2^8-2)台主机
- 从高位起,前3位为"110",第1字节用十进制表示的取值范围为"192-223"
- 具有B类地址特征的网络总数为2^21-1个
IP地址的分类比较
IP地址
从Internet的观点来看,具有相同net-id的主机属于同一个网络,同一个网络中不同的主机具有不同的host-id。
不同的网络通过路由器进行相连!
特殊IP地址
1)回环测试地址
主机将IP数据报回传自身的地址-IP地址第一个字节为127 例:回送地址为127.0.0.1
可用的环回测试地址范围为:127.0.0.1-127.255.255.254
2)广播地址
1.直接广播地址
主机地址部分为全"1",用于向某个网络的所有主机广播。例:主机212.111.44.136 所在网络的广播地址为212.111.44.255
2.有限广播地址(255.255.255.255)
在未知本网络地址情况下用于本网广播
3)网络地址
主机地址部分全部定义为"0",用于区分网络
例:主机211.111.44.136,所在网络的地址为212.111.44.0
专用IP地址
- 10.0.0.0-10.255.255.255(1个A类网络)
- 172.16.0.0-172.31.255.255(16个连续的B类网络)
- 192.168.0.0-192.168.255.255(256个连续的C类网络)
具有以上IP地址的数据包会被路由器过滤,不会在Internet上传输。
自动专用IP地址
主机如果设置为自动获取IP地址,当网络中没有架设DHCP服务器时,或者DHCP服务器出了问题的时候,操作系统会自动赋予本机一个类似169.254.x.x的IP地址。
IANA把B类地址快169.254.0.0-169.254.255.255定义为自动专用IP地址(Automatic Private IP Addressing,APIPA),这些地址将不能在Internet上使用。
APIPA使得在ad-hoc(不等)无线网络这样的局域网上的计算机可以互相通信而不需要配置DHCP服务器或静止IP地址。
如果在提供有DHCP服务器的网路上计算机的IP地址是APIPA地址,就意味着该计算机无法联系上DHCP服务器。该计算机可能没有正确接入网络或者DHCP服务器掉线。
注意APIPA地址永远不会有默认网关,以为APIPA设计为只在单一子网上工作。
使用APIPA IP地址的计算机会定期尝试与DHCP服务器联系,以免DHCP服务器在客户端计算机启动后才联机上线。
子网编址
划分子网
从两级IP地址到三级IP地址
- 在ARPANET的早期,IP地址的设计确实不够合理。
- IP地址空间的利用率有时很低。
- 给每一个物理网络分配一个网络号,浪费了地址空间
- 两级的IP地址不够灵活。
- 从1985年起在IP地址中又增加了一个"子网号字段",使两级的IP地址变成为三级的IP地址。
- 这种做法叫做划分子网(subnetting)。划分子网已成为因特网的正式标准协议。
什么是子网
将网络进一步划分为相对独立的组成部分,每个部分称为这一网络(或更高一级子网)的子网。
划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。