网络层
网络层主要讨论的是多个网络通过路由器互联成一个网络的各种问题
网络层提供的的两种服务
在早期网络层是否应该提供可靠交付形成了争论。由此提出两种服务观念
虚电路服务:应当先建立连接,提供可靠交付。
数据报服务:只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。端系统中的进程之间若需要通信可靠,则由运输层负责
随着历史的发展,证明了数据报服务选择的正确性
网络层特点:
网络层发送分组时,不建立连接
每一个分组独立发送,独立选择路由转发
分组的顺序可能出错、丢失、失序
总结:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络层不提供服务质量的承诺
网际协议IP
网际协议IP是TCP/IP体系中两个最重要的协议之一,与IP协议配套使用的还有三个协议:
1.地址解析协议ARP(Address Resolution Protocol)
2.网络控制报文协议ICMP(Internet Control Message Protocol)
3.网际组管理协议IGMP(Internet Group Managment protocol)
以前还有一个 逆地址解析协议RARP(Reverse Address Resolution Protocol)配合ARP协议使用,但已经被淘汰了,其功能被DHCP协议所包含
它们在TCP/IP体系中均在网络层,关系为:
ICMP、IGMP
IP
ARP
在网络层中,IP协议需要先使用ARP协议转换MAC地址为IP地址
然后再通过ICMP或者IGMP转发IP数据报
虚拟互联网
没有一种单一的网络能够适用所有用户的需求,因此,我们使用一些中间设备把网络互相连接起来:
1.物理层使用的中间设备——转发器(repeater)/集线器
2.数据链路层使用的中间设备——网桥或桥接器(bridge)
3.网络层使用的中间设备——路由器(router)
4.网络层以上用的中间设备——网关(gateway) 用网关连接两个不兼容的系统需要在高层进行协议转换
中间设备是 转发器或网桥 时,用于扩大网络
网络互连则是通过路由器
TCP/IP体系如何进行网络互连?
TCP/IP体系通过在网络层(即IP层)采用标准协议,使用路由器中间设备进行互连。但相连接的网络可以是异构(不同)的网络
什么是路由器?
路由器其实就是一台专用计算机,用来在互联网中进行路由选择
什么是虚拟互联网?
参加互连的计算机网络都使用相同的 网际协议IP ,因此可以把互连后的计算机网络看成一个虚拟互联网络(即逻辑互连网络)
就是互连起来的各种物理网络的异构性本来是客观存在的,我们利用IP协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络,这种使用IP协议的虚拟互连网络就是IP网
特点:当IP网上的主机进行通信时,就好像在一个单个网络上通信一样,看不见互连的各网络的具体异构细节(如具体编址方案、路由选择协议等)
分类的IP地址
IP地址及其表示方法
整个因特网就是一个单一的、抽象的网络
IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32位(4字节)的标识符
IP地址的编址方法经过三个阶段:
1.分类的IP地址。 这是最基本的编址方法,1981年通过了相应的标准协议
2.子网的划分。 这是对最进本的编址方法的改进,1985年通过了RFC 950标准
3.构成超网。 比较新的无分类编址方法,1993年提出后很快得到退广应用
分类的IP地址就是将IP地址划分为若干个固定类,每一类地址都由两个固定长度字段组成
第一个字段:网络号(net-id),标志主机(或路由器)所连接到的网络,全网唯一
第二个字段:主机号(host-id),标志该主机(或路由器),一个主机号在它前面的网络号所指明的网络内全网唯一
由此构成的IP地址在整个因特网内就是唯一的
这种IP地址可以记为:IP地址 ::={<网络号>,<主机号>} (::= 意思是定义为)
一共分为A,B,C,D,E五类地址
A,B,C类地址都是单播地址(一对一通信)网络号分别为1,2,3字节,类别位分别为0,10,11(0,128,192)是最常用的。
D类地址是用于多播(一对多通信),前4位为1110
E类地址保留为以后使用,前4位为1111
各类地址详解:
对于主机和路由器而言IP地址都是32位二进制代码
我们每8位插入一个空格(机器中是没有的),使用其等效的十进制数字表示,并且在这些数字之间加上一个点,这就是点分十进制记法
如:IP地址为128.11.3.31,是一个B类地址
在机器中连续存放为:1000000000010110000001100011111
每8位插入一个空格: 10000000 00001011 00000011 00011111
转换为十进制: 128 11 3 31
点分十进制表示:128.11.3.31
A类:
网络号字段:
网络号字段1字节,主机号字段为3字节。
网络号字段的最前面有1位 类别位,数值为0固定不变。
可分配的网络号字段为7位,为126个(即2的7次方-2)
减2的原因:1.IP地址中的全0表示 这个 。网络号字段全0的IP地址是个保留地址,意思是本网络
如:0.0.0.35表示这个网络上主机号为35的主机
2.网络号为127(即01111111)保留为本地软件 环回测试(loopback test)本主机的进程之间的通信之用
如果主机发送一个目的地址为环回地址(如127.0.0.1)的IP数据报,则本主机中的协议软件就处理数据报中的数据,不会发送到网络中
因为,网络号为127的地址根本不是一个网络地址
主机号字段:
主机号占3个字节,因此A类网络中最大的主机数是 2的24次方-2 ,即16777214.
减2的原因:1.全0的主机号字段表示该IP地址是 本主机 所 连接到的单个网络地址
如:主机IP地址为5.6.7.8 ,则该主机所在网络就是5.0.0.0
2.全1表示 所有的 即全1的主机号字段表示该网络上的所有主机
如:B类地址 128.7.255.255表示“在网络128.7.0.0”上的所有主机
IP地址控件一共有 2的32次方 (4294967296)个地址。
整个A类地址空间共有 2的31次方 个地址,是总IP地址的一半
B类:
网络号字段:
网络号字段为2字节,主机号字段为2字节。
网络号字段最前面有2位 类别位,数值为10固定不变。以128开始
可分配网络号字段为14位,可指派网络总数为 2的14次方-1(16383个),
减1的原因是128.0.0.0是不指派的,B类最小网络地址为128.1.0.0
主机号字段:
B类地址的每一个网络上的最大主机数是 2的16次方-2,除去全0和全1地址,即65534
C类:
网络号字段:
网络号字段为3字节,主机号字段为1字节。以192开始
网络号字段最前面有3位 类别位,数值为110.
可分配的网络号字段为21位,可指派网络总数为 2的21次方-1(2097151个)
192.0.0.0也不指派,最小的C类网络为192.0.1.0
主机号字段:
C类地址每一个网络上的最大主机数是 2的8次方-2,除去全0和全1地址,即254个
D类:前四位是1110
用于多播,是多播地址
多播只能用于目的地址,不能用于源地址
多播通过在多播数据报的目的地址写入多播组的标识符,然后设法让加入到这个多播组的主机IP地址与多播组的标识符关联起来
多播组的标识符就是IP地址中的D类地址,D类地址前四位是1110.
因此D类地址的范围是224.0.0.0到239.255.255.255
多播数据报和一般的IP数据报的区别是:
多播使用D类IP地址作为目的地址
并且在首部中的协议字段值是2,表明使用的是网际组管理协议IGMP
D类地址中有些特殊地址不能使用:
224.0.0.0 基地址(保留)
224.0.0.1 在本子网上的所有参加多播的主机和路由器
224.0.0.2 在本子网上的所有参加多播的路由器
224.0.0.3 未指派
224.0.0.4 DVMRP路由器
可以使用的D类地址:
224.0.1.0到238.255.255.255 全球范围都可使用的多播地址
239.0.0.0到239.255.255.255 限制在一个组织的范围
多播分为两种:
1.在本局域网上进行硬件多播
2.在因特网的范围进行多播
E类:前四位是1111
一般不使用的特殊IP地址:
网络号 主机号 源地址使用 目的地址使用 代表的意思
0 0 可以 不可 在本网络上的本主机
0 host-id 可以 不可 在本网络上的某个主机host-id
全1 全1 不可 可以 只对本网络上进行广播(各路由器均不转发)
net-id 全1 不可 可以 对net-id上的所有主机进行广播
127 任何数(非0/1) 可以 可以 用作本地软件环回测试
专用地址块:
10.0.0.0到10.255.255.255 (即:10.0.0.0/8,又称为24位块) 一个A类网络
172.16.0.0到172.31.255.255 (即:172.16.0.0/12,又称为20位块) 16个连续的B类网络
192.168.0.0到192.168.255.255 (即:192.168.0.0/16,又称为16位块) 256个连续的C类网络
IP地址的特点:
1.每一个IP地址都由网络号和主机号组成。
IP地址是分等级的地址结构:
IP地址管理机构在分配IP地址时只分配 网络号(第一级)。
剩下的主机号(第二级)由得到该网络号的单位自行分配
注意:路由器仅根据目的主机所连接的网络号来转发分组(不考虑主机号),减小了路由表所占存储空间和查找路由表的时间
2.IP地址是标志一个主机(或路由器)和一条链路的接口
当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号必须是不同的。
因此,路由器至少应当有两个不同的IP地址
3.在因特网中说的一个网络指的是具有相同网络号net-id的主机的集合
因此,用转发器或网桥连接起来的若干个局域网仍为一个网络。
具有不同网络号的局域网必须使用路由器连接起来
注意:1.在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的
2.用网桥(只在链路层工作)互连的网段仍然是一个局域网,只能有一个网络号
3.路由器总是有两个或两个以上的IP地址。即路由器的每一个接口都有一个不同的网络号的IP地址
4.当两个路由器相连时,在连线两端的接口处,可以分配也可以不分配IP地址
分配了IP地址,则该段连线就构成了一种只包含一段线路的特殊网络,但是为了节省资源这种一般不分配IP地址
不分配IP地址的这种只包含一段线路的特殊网络称为 无编号网络(unnumbered network)或无名网络(anonymous network)
IP地址与硬件地址
硬件地址:固化在网卡上的ROM中,因此硬件地址又称为物理地址。
在局域网的MAC帧中的源地址和目的地址都是硬件地址,因此又称为MAC地址
但是,X.25网中,计算机的硬件地址并不是固化在ROM中的
从层级上看,物理地址是数据链路层和物理层使用的地址;IP地址是网络层和以上各层使用的地址,是一种逻辑地址
在发送数据时,数据从高层下到底层,然后才到通信链路上传输。
IP数据报一旦交给数据链路层,就被封装成MAC帧。
MAC帧在传送时使用的源地址和目的地址都是硬件地址,这两个硬件地址都写在MAC帧的首部中。
连接在通信链路上的设备(主机或路由器)在接收到MAC帧时,其根据是MAC帧首部中的硬件地址。
在数据链路层看不见隐藏在MAC帧的数据中的IP地址。
只有剥去MAC帧的首部和尾部后把MAC层的数据上交给网络层后,网络层才能在IP数据报的首部中找到源IP地址和目的IP地址
总结:1.IP地址放在IP数据报的首部,硬件地址则放在MAC帧的首部
2.在网络层及以上使用的是IP地址
3.在数据链路层及以下使用的是硬件地址