一、网络层提供的两种服务
1、面向连接:在通信的双方之间先建立一条虚电路实现可靠的传输。
2、无连接:不需要建立连接,每个分组都有终点的完整地址,可能发生丢失、错序等问题。
注意:目前因特网提供的是无连接的服务。
二、网际协议IP
网际协议IP是TCP/IP体系中两个最主要的协议之一。与IP协议配套的还有4个协议:
1、地址解析协议ARP
2、逆地址解析协议
3、网际控制报文协议ICMP
4、网际组管理协议IGMP
IP协议会用到ARP和PARP,而ICMP和IGMP会用到IP协议。
三、IP地址的分类
每一类IP地址由“网络号、主机号”组成。网络号标志主机或路由器连接到哪个网络,一个网络号在整个因特网范围内是唯一的。主机号标志该主机或路由器,一个主机号在当前网络范围是内唯一的。
注意:A、B、C类地址是单播地址(一对一通信),D类地址用于多播通信,E类地址保留为以后用。
A类地址:以0开头, 第一个字节范围:0~127(1.0.0.0 - 126.255.255.255);
B类地址:以10开头,第一个字节范围:128~191(128.0.0.0 - 191.255.255.255);
C类地址:以110开头,第一个字节范围:192~223(192.0.0.0 - 223.255.255.255);
其他IP地址为Internet上保留地址用于内部。
IP地址的特点:
1、每一个IP地址都是由网络号和主机号组成。IP地址管理机构只分配网络号,主机号由该网络号的拥有单位自行分配。路由器根据网络号进行分组转发,大幅度减小路由表所占存储空间和查找时间。
2、当一个主机同时连接到两个网络时,该主机拥有两个网络号不同的IP地址。该主机称为多归属主机,例如路由器。
四、IP地址与MAC地址
MAC地址是数据链路层和物理层使用的地址,IP地址是网络层和以上各层使用的逻辑地址。
IP地址放在IP数据报的首部,而硬件地址放在MAC帧的首部。
五、地址解析协议ARP 与 逆地址解析协议RARP
ARP:将IP地址映射到MAC地址
RARP:将MAC地址映射到IP地址(现在包含在DHCP协议中)
地址解析协议ARP :在每个主机设有一个ARP高速缓存,里面包含本局域网中每个主机和路由器的IP地址到MAC地址的映射表,并经常动态更新(ARP中每一个映射地址都有生存时间)。
当ARP高速缓存中没有目标主机的IP地址或源主机的ARP高速缓存为空时,源主机自动运行ARP:
1、源主机在本局域网上广播发送一个ARP请求分组,包含源主机的IP、MAC地址以及目标主机的IP地址。
2、目标主机收到这个分组,向源主机发送自己的IP、MAC地址,并将源主机的IP、MAC地址记录在自己的ARP高速缓存中。其余主机忽略这个请求分组。
3、源主机收到目标主机发送的分组,将目标主机的IP、MAC地址写入自己的ARP高速缓存。
六、IP数据报格式
IP数据报的首部的固定部分是20字节,是所有IP数据报必须具有的。可变部分包含一些可选字段。
1、IP数据报首部的固定部分
(1)版本:占4位,指IP协议的版本,IPv4或IPv6
(2)首部长度:占4位,可表示的最大十进制数字是15。这个字段所表示的数字单位是32位,即4字节。当首部长度表示为0001时,并不是说首部长度是1,而是说首部长度是1个4字节。因此真正的首部的长度应该是0~15(4字节),即0~60字节。在TCP/IP的标准中,各种数据格式常以32位(4字节)为单位进行描述。在首部,某些格式是必须的,所以,规定首部的固定部分是20个字节。特别的:首部长度为“0101”是最常用的,此时只有固定部分,没有任何选项(可变部分)。当首部长度不是4字节的整数倍时,用全0补充成4字节整数倍。
(3)区分服务:占8位,只有在使用区分服务时,这个字段才起作用,一般不使用。
(4)总长度::占16位,首都及数据之和的长度,单位为字节,最大长度为
216−1=65535
字节。IP数据报的总长度不得小于576字节,不得大于数据链路层的最大传送单元MTU。
(5)标识:占16位。在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段。由于IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的 MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。相同的标识字段值使分片后的各数据报片最后能正确地重装成为原来的数据报。
(6)标志:占3 位,但目前只有2位有意义。标志字段中的最低位记为 MF。MF=1表示后面还有分片的数据报。MF=0表示这已是最后一个数据报。标志字段中间的一位记为 DF,意思是“不能分片”。只有当 DF=0时才允许分片。
(7)片偏移:占 13位。较长的分组在分片后,某片在原分组中的相对位置。片偏移以 8个字节为偏移单位。这就是说,每个分片的长度一定是 8字节 (64位)的整数倍。通过片偏移来按照正确的顺序重组数据报。
(8)生存时间::占 8位,生存时间字段TTL 表明数据报在网络中的寿命,单位是跳数。
(9)协议::占 8 位,表示数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。
(10)首部检验和:占 16位。这个字段只检验数据报的首部,不包括数据部分。
(11)源地址:占 32位。
(12)目的地址:占 32位。
七、路由表及分组转发流程
在路由表中,每一条路由中最主要的两个信息是 <目的网络地址,下一跳地址>。根据目的网络地址来确定下一跳路由器,只有到达最后一个路由器时,才向目的主机进行直接交付。
注意:这里不讨论加入子网掩码后的路由表,划分子网的部分在下一章。
分组转发流程
1、从IP数据报首部提取目的主机的IP地址D,得到目的网络地址N。
2、若N与此路由器直接相连,则进行直接交付,把数据报直接交付给目的主机。具体过程为:将目的主机地址D转换为MAC地址,将IP数据报封装为MAC帧,再发送此帧。
3、若N与此路由器不直接相连,则进行间接交付,若路由表中有目的地址为D的特定主机路由,则将数据报传送给路由表中所指明的下一跳路由。否则,执行4。
4、若路由表中有到达网络N的路由,则将数据报传送给路由表中所指明的下一跳路由。否则,执行5。
5、若路由表中有一个默认路由,则把数据传送给路由表中的默认路由器。否则,执行6。
6、报告转发分组出错。