网络层提供的两种服务
因特网的设计思路:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络层不提供服务质量的承诺。
这种设计思路可以使网络中的路由器可以做的比较简单,而且价格低廉。如果主机中的进程之间的通信需要是可靠的,就由网络的主机中的运输层负责(包括差错处理、流量控制等)。
采用这种设计的好处是:网络的造价降低,运行方式灵活,能适应各种应用。
数据报
数据报是通过网络传输的数据的基本单元,包含一个报头和数据本身。
- 报头:描述数据的目的地以及和其他数据之间的关系
- 数据
数据报是完备的、独立的数据实体,该实体携带要从源计算机传递到目的计算机的信息,该信息不依赖于以前在源计算机和目的计算机以及传输网络间的交换。
在IP网络中传输的数据单位称为IP数据包。
IP数据包的报头至少为20个字节,其中包括版本号,报头长度,服务类型,数据报总长度,标识,标志,片偏移,生存时间,协议和头部校验和,源,目的IP地址,先项。
网际协议IP
与IP配套使用的协议还有四个
- 地址解析协议ARP
- 逆地址解析协议RARP
- 网际控制报文协议ICMP
- 网际组管理协议IGMP
在IP网络层,其有如下关系:
上图中有两点需要注意:
- ICMP和IGMP画在了IP的上部,是因为它们需要使用IP协议
- ARP和RARP画在了IP下边,因为IP经常要使用这两个协议
TCP/IP体系中的网络层通常称为网际层,或IP层。
将网络互联起来需要一些设备:
- 物理层使用的中间设备是转发器(repeater)
- 数据链路层使用的中间设备叫做网桥或者桥接器(bridge)
- 网络层使用的中间设备叫做路由器(router)
- 网络层以上使用的中间设备叫做网关(gateway)
分类的IP地址
IP地址及其表示方法
整个的因特网就是一个单一的、抽象的网络。
IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位的标识符。
IPv4的地址长度为32位,用点分十进制表示。
通常的格式为X.X.X.X,其中每个X为8位,每个X的值为0~255.
分类的IP地址:将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成:
- 第一个字段是网络号,标志主机所连接到的网络。一个网络号再整个因特网范围内必须是唯一的。
- 第二个字段是主机号,标志该主机。一个主机号在网络号所指明的范围内必须是唯一的。
由此可见,一个IP地址在整个因特网范围内是唯一的。
这种两级IP地址可以记为:
IP地址::={<网络号>,<主机号>}
其中的::=
表示“定义为”。
其中:
- A、B和C类地址的网络号字段分别为1、2和3个字节长
- 三类的主机号又分别为3、2和1个字节长。
- D类地址(前4位是1110)用于多播。
- E类地址保留为今后使用
A类地址的网络号第一位为0,其余7位可以分配。
因此A类地址共有128块,每一块net ID不同。
第一块覆盖的地址范围为:0.0.0.0~0.255.255.255(net ID=0)
第二块覆盖的地址范围为:1.0.0.0~1.255.255.255(net ID=1)
最后一块覆盖的地址范围为:127.0.0.0~127.255.255.255(net ID=127)
由于网络号为全0的地址和首位为0,其余全为1的A类地址留作特殊用途,其余126块可以分配。
所有A类IP地址的网络只有126个。
使用A类IP的网络称为A类网络。
IP地址的一些重要特点:
- 每一个IP地址都由网络号和主机号两部分组成
- IP地址管理分配IP时只分配网络号,剩下的主机号则由得到该网络的号的单位执行分配。
- 路由器仅根据目的主机所连接的网络号来转发分组
- IP地址是标志一个主机和一条链路的接口
- 一个网络是指具有相同网络号net-ID的主机的集合
- IP地址中,所有分配到网络号的网络都是平等的
对于互联网中的IP地址,有以下需要注意的:
- 在同一个局域网上的主机或路由器的IP地址中的网络号必须是相同的
- 用网桥互联的网段仍然是一个局域网
- 路由器总是具有两个或两个以上的IP地址
- 当两个路由器直接相连时,在连线两端的接口处,可以分配也可以不分配IP地址。现在为了节省IP资源,常常不分配IP地址。
IP地址与硬件地址
物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址。
发送数据时,数据从高层往下层传输,当传送到数据链路层时,数据链路层会将IP数据报封装成MAC帧。MAC帧在传送时使用的源地址和目的地址都是硬件地址,这两个硬件地址都写在MAC帧的首部中。
IP地址放在IP数据报的首部,硬件地址则放在MAC帧的首部。
在网络层和网络层以上使用的是IP地址,而数据链路层及以下使用的是硬件地址。
有如下模型,三个局域网使用两个路由器R1和R2连接起来。主机H1要和主机H2通信。这两个主机的IP地址分别是IP1和IP2,而他们的硬件地址分别是HA1和HA2.
通信的路径是:H1->经过R1转发->在经过R2转发->H2.
路由器R1因同时连接到两个局域网上,有两个硬件地址,即HA3和HA4。
同理,路由器有两个硬件地址HA5和HA6.
需要强调的是:
- IP层抽象的互联网上只能看到IP数据报
- 局域网的链路层,只能看到MAC帧。IP数据报被封装在MAC帧中。
- 尽管互联在一起的网络的硬件地址体系不同,但IP层抽象的互联网却屏蔽了下层这些很复杂的细节。只要我们在网络层上讨论问题,就能使用统一的、抽象的IP地址研究主机和主机或路由器之间的通信
地址解析协议ARP和逆地址解析协议RARP
ARP可以通过IP地址找出相应的物理地址。
RARP相反。
地址解析协议ARP的工作流程:
1.ARP进程在本局域网上广播发送一个ARP请求分组;
2.在本局域网上所有主机上运行的ARP进程都能收到此ARP请求分组;
3.主机B在ARP分组中见到自己的IP地址,就向A发送ARP响应分组,并写入自己的硬件地址;
4.主机A收到B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。
RARP协议:逆地址协议,允许局域网的物理机器从网关服务器的ARP表或者缓存上请求其IP地址。
IP数据报的格式
IP数据报能够说明IP协议都能具有什么样的功能。
TCP/IP标准中,数据格式常常以32位为单位来描述,如下图所示是IP数据报的完整格式。
IP数据报包括首部和数据部分
其中,首部包含固定部分和可变部分。
固定部分占用20个字节。