1、网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接,每一个分组(IP数据报)独立发送,与其前后的分组无关(不进行编号)。所传送的分组可能出错、丢失、重复和失序,也不保证分组交付的时限。
2、TCP/IP体系中的网络层常常称为网际层或IP层。与IP协议配套的还有:
地址解析协议ARP。逆地址解析协议PARP。网际控制报文协议ICMP。网际组管理协议IGMP。
3、没有一种单一的网络能够使用所有用户的需求。虚拟互联网络需要中间设备:
物理层使用的中间设备叫做转发器。数据链路层的叫网桥或桥接器。网络层的叫路由器。在网络层以上使用的叫网关,用网关连接两个不兼容的系统需要在高层进行协议的转换。
4、分组交换的存储转发:
源主机H1把一个IP数据报发送给目的主机H2。H1先查找自己的路由表,看目的主机是否就在本网络上。若是就不经过任何路由器直接交付。若不是,必须把IP数据报发送给某个路由器R1,让R1再间接交付。
5、IP地址:
给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位标识符。
分类的IP地址:将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成,第一个字段是网络号,它标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是惟一的。第二个字段是主机号,它标志该主机(或路由器)。一个主机号在它前面的网络号所指明的网络范围内必须是惟一的。
IP地址 ::= {<网络号>,<主机号>} ::=表示“定义为”
对主机或路由器来说,IP地址都是32位的二进制代码。
点分十进制记法:把32位的IP地址中的每8位用其等效的十进制数字表示。
6、A类地址:
网络号字段占一个字节,只有7位可供使用(该字段的第一位已经固定为0),可指派的网络号是126个(2*7-2)。减2是因为:IP地址中全0表示保留地址即本网络,网络号为127(即01111111)保留作为本地软件环回测试本主机的进程之间的通信之用。
主机号占3字节,每一个A类网络中的最大主机数是2*24-2,即16777214。减2原因是全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地址,全1表示该网络上的所有主机。
整个A类地址空间共有2*31个地址。
B类地址:
网络号字段有2个字节,前两位(1 0)已经固定,只有14位可分配。128.0.0.0是不指派的。可指派网络数为2*14-1即16383。B类地址的每一个网络上的最大主机数是2*16-2即65534。减2是因为扣除全0和全1的主机号。整个B类地址空间有2*30个。
C类地址:
网络号字段为3个字节,最前面3位(1 1 0),有21位可分配。192.0.0.0是不指派的,可指派总数2*21-1即2097151。每一个C类地址的最大主机数是2*8-2即254。整个C类地址空间有2*29个地址。
7、IP地址的特点:
1)每一个IP地址都由网络号和主机号组成,是一种分等级的地址结构,只分配网络号(第一级),剩下的主机号(第二级)有得到该网络号的单位自行分配。路由器仅根据目的主机所连接的网络号来转发分组,这样减小了路由表所占的存储空间以及查找路由表的时间。
2)实际上IP地址是标志一个主机(或路由器)和一条链路的接口。当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的IP地址,其网络号必须是不同的。这种主机称为多归属主机。
3)具有不同网络号的局域网必须使用路由器进行互联。
4)在IP地址中,所有分配到网络号的网络都是平等的。
注意:在同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的。用网桥互联的网段仍然是一个局域网,只能有一个网络号。路由器总是具有两个或两个以上的IP地址,即路由器的每一个接口都有一个不同网络号的IP地址。当两个路由器直接相连时,在连线两端的接口处,可以分配也可以不分配IP地址。
8、IP地址与硬件地址:
物理地址是数据链路层和物理层使用的地址,IP地址是网络层和以上各层使用的地址,是一种逻辑地址,是用软件实现的。
在发送数据时,数据从高层下到低层,然后才到通信链路上传输。使用IP地址的IP数据报一旦交给了数据链路层,就被封装成MAC帧了。MAC帧在传送时使用的源地址和目的地址都是硬件地址,这两个硬件地址都被写在MAC帧的首部中。在数据链路层看不见隐藏在MAC帧的数据中的IP地址。
总结:IP地址放在IP数据报的首部,硬件地址放在MAC帧的首部。
强调:在IP层抽象的互联网上只能看到IP数据报。路由器只根据目的站的IP地址的网络号进行路由选择。在局域网的链路层,只能看见MAC帧。IP数据报被封装在MAC帧中。
9、地址解析协议ARP:
每一个主机都设有一个ARP高速缓存,里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些都是该主机目前知道的一些地址。ARP把保存在高速缓存中的每一个映射地址项目都设置生存时间,凡超过生存时间的项目就从高速缓存中删除。
当主机A向本局域网上的某个主机B发送IP数据报时,先在其ARP高速缓存中查看有无主机B的IP地址。如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址。
ARP是解决同一个局域网上的主机或路由器的IP地址和硬件地址的映射问题。从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。
使用ARP的四种典型情况:
1)发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用ARP找到目的主机的硬件地址。
2)...主机,....另一个网络上的一个主机。....ARP找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
3)....路由器,...本网络上的一个主机。.....ARP找到目的主机的硬件地址。
4)....路由器,....另一个网络上的一个主机。....ARP找到本网络上的一个路由器的硬件地址,.....。
10、IP数据报的格式:
首部+数据,首部的前一部分是固定长度共20字节,是所有IP数据报必须具有的。其后是一些可选字段,其长度是可变的。首部的固定部分中的各字段:
1)版本:占4位,指IP协议的版本。通信双方使用的版本必须一致。
2)首部长度:占4位,可表示的最大十进制数是15。这个字段所表示数的单位是32位字(1个32位字长是4字节)。因此数据部分永远在4字节的整数倍时开始。
3)区分服务:占8位,用来获取更好的服务。
4)总长度:指首部和数据之和的长度,单位为字节。总长度字段为16位,数据报的最大长度是2*16-1=65535字节。
5)标识:占16位,IP软件在存储器中维护一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。但其不是序号,因为IP是无连接服务,数据报不存在按序接收问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装为原来的数据报。
6)标志:占3位,最低位记为MF。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报中的最后一个。中间的一位记为DF,意思是“不能分片”。只有当DF=0时才允许分片。
7)片偏移:占13位。其指出:较长的分组在分片后,某片在原分组中的相对位置。片偏移以8个字节为偏移单位,即每个分片的长度一定是8字节(64位)的整数倍。
8)生存时间TTL:占8位,数据报在网络中的寿命,由发出数据报的源点设置这个字段。每经过一个路由器时,就把TTL减去数据报在路由器所消耗的一段时间,当TTL值减为0时就丢弃这个数据报。若把TTL的初始值设置为1,就表示这个数据报只能在本局域网中传送。
9)协议:占8位,使目的主机的IP层知道将数据部分上交给哪个处理过程。
10)首部检验和:占16位,这个字段只检验数据报的首部,但不包括数据部分。因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存时间、标志、片偏移等都可能发生变化)。
11)源地址:占32位。
12)目的地址:占32位。
注意:在IP层下面的每一种数据链路层都有其自己的帧格式,其中包括帧格式中的数据字段的最大长度,称为最大传送单元MTU。
11、IP数据报首部的可变部分:
就是一个选项字段,用来支持排错、测量以及安全等措施。此字段长度可变,从1到40字节不等。
12、IP层转发分组的流程:
在路由表中,每一条路由的主要信息是(目的网络地址,下一跳地址),结果是:
1)IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次间接交付)。
2)只有到达最后一个路由器时,才试图向目的主机进行直接交付。
特定主机路由:即对特定的目的主机指明一个路由。
默认路由:减少路由表所占用的空间和搜索路由表所用的时间。
注意:在IP数据报的首部中没有地方可以用来指明“下一跳路由器的IP地址”。
当路由器收到一个待转发的数据报,在从路由表得出下一跳路由器的IP地址后,不是把这个地址填入IP数据报,而是送交下层的网络接口软件。网络接口软件负责把下一跳路由器的IP地址转换成硬件地址(使用ARP),并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一跳路由器。
13、划分子网:
使两级IP地址变为三级IP地址。属于一个单位内部的事情,这个单位对外仍表现为一个网络。
IP地址 ::= {<网络号>, <子网号>, <主机号>}
划分子网只是把IP地址的主机号host-id这部分进行再划分,而不改变IP地址原来的网络号net-id。从IP数据报的首部并不知道源主机或目的主机所连接的网络是否进行了子网的划分。
14、子网掩码:
推荐在子网掩码中选用连续的1,以免出现可能发生的差错。使用子网掩码的好处是:不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的”与“运算(AND),就立即得出网络地址来。
所有的网络都必须使用子网掩码,路由表中也必须有。默认子网掩码中1的位置和IP地址中的网络号字段net-id相对应。路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。在采用固定长度子网时,所划分的所有子网的子网掩码都是相同的。
A类地址的默认子网掩码是255.0.0.0或0xFF000000。
B...255.255.0.0或0xFFFF0000。
C...255.255.255.0或0xFFFFFF00。
划分子网后,路由表必须包括:目的网络地址,子网掩码和下一跳地址。
15、无分类编址CIDR(构造超网)
IP地址 ::={<网络前缀>, <主机号>}
使用二叉线索查找路由表:
IP地址中从左到右的比特值决定了从根节点逐层向下延伸的路径,二叉线索中的各个路径代表路由表中存放的各个地址。在进行查找时,只要能够和唯一前缀相匹配就行了。
要将二叉线索用于路由表中,还必须使二叉线索中的每一个叶结点包含所对应的网络前缀和子网掩码。当搜索到一个叶结点时,就必须将寻找匹配的目的地址和该叶结点的子网掩码进行逐位”与“运算,看结果是否与对应的网络前缀相匹配。若匹配,就按下一跳的接口转发该分组,否则,就丢弃该分组。
16、网际控制报文协议ICMP:
是IP层的协议,不是高层协议。ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。
ICMP报文的前4个字节是统一的格式,共有3个字段:类型、代码和检验和。最后面是数据字段。
ICMP报文分类:
1)ICMP差错报告报文:有五种:终点不可达,源点抑制,时间超过,参数问题,重定向。
2)ICMP询问报文:有两种:回送请求和回答,时间戳请求和回答。
17、ICMP的一个重要应用就是分组网间探测Ping,用来测试两个主机之间的连通性。Ping使用了ICMP回送请求与回送回答报文。Ping是应用层直接使用网络层ICMP的一个例子,它没有通过运输层的TCP或UDP。
Unix中traceroute用来跟踪一个分组从源点到终点的路径。Windows下是命令tracert。
18、因特网把路由选择协议划分为两大类:
内部网关协议IGP和外部网关协议EGP。即域间路由选择和域内路由选择。
路由信息协议RIP:
是一种分布式的基于距离向量的路由选择协议,要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。RIP允许一条路径最多只能包含15个路由器。
距离(跳数):从一路由器到直接连接的网络的距离定义为1。"加1"是因为到达目的网络后就进行直接交付。
RIP协议特点:(好消息传播的快,坏消息传播的慢)
1)仅和相邻路由器交换信息。
2)路由器交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
3)按固定的时间间隔交换路由信息。
注意:RIP不能在两个网络之间同时使用多条路由。RIP选择一条具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
19、距离向量算法:
路由表中最主要的信息是:到某个网络的距离(即最短距离),以及应经过的下一跳地址。路由表更新的原则是找出到每个目的网络的最短距离。
RIP协议的报文格式:首部+路由部分。
RIP协议使用运输层的用户数据报UDP进行传送(使用UDP的端口520)。
首部占4个字节,命令字段指出报文的意义。如1表示请求路由信息,2表示对请求路由信息的响应或未被请求而发出的路由更新报文。首部后面的”必为0“是为了4字节字的对齐。
路由部分由若干个路由信息组成。每个路由信息需要20字节。地址族标识符字段用来标志所使用的地址协议。再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。
一个RIP报文最多可包括25个路由,因而RIP报文的最大长度是4+20*25=504字节。如超过,必须再用一个RIP报文来传送。
20、内部网关协议OSPF:
OSPF只是一个协议的名字,并不表示其他的路由选择协议不是“最短路径优先”。
OSPF的特征是使用分布式的链路状态协议,与RIP的区别有:
1)向本自治系统中所有路由器发送信息。
2)发送的信息就是与本路由器相邻的所有路由器的链路状态。
3)只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送此信息。
OSPF不用UDP而是直接用IP数据报传送(其IP数据报首部的协议字段值为89)。OSPF构成的数据报很短可减少路由信息的通信量。数据报很短的好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。
OSPF分组使用24字节的固定长度首部,各字段意义有:
版本。类型。分组长度。路由器标识符。区域标识符。检验和。鉴别类型。鉴别。
OSPF的五种分组类型:
问候分组。数据库描述分组。链路状态请求分组。链路状态确认分组。
21、边界网关协议BGP:采用了路径向量路由选择协议。有4种报文:
打开报文。更新报文。保活报文。通知报文。