1、数据报服务
网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关。网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。
由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。 如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的传输层负责(包括差错处理、流量控制等)。采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。
2、网际协议 IP
网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与 IP 协议配套使用的还有四个协议:
地址解析协议 :ARP(Address Resolution Protocol)
逆地址解析协议: RARP (Reverse Address Resolution Protocol)
网际控制报文协议: ICMP(Internet Control Message Protocol)
网际组管理协议 :IGMP(Internet Group Management Protocol)
网际层的
IP
协议及配套协议
ip地址的分类:
A
类地址:网络标识占8位,其中第一位固定为0;主机标识占24位。
B
类地址:网络标识占16位,其中前两位固定为 10;主机标识占16位。
C
类地址:网络标识占24位,其中前三位固定为110;主机标识占8位。
D
类地址:组播地址,IP地址前四位固定为1110
E
类地址:保留地址,IP地址前五位固定为11110
特殊ip地址:
127.x.x.x环回地址
应用一:
Ping 127.0.0.1 测试IP协议是否正常发送接收数据
特殊ip地址:
网络地址
所有主机标识各位全为0的ip地址。
32
.0.0.0
165.132
.0.0
211.64.101
.0
主要供路由器查找路由表用。
特殊ip地址:特定主机地址
所有网络各位全为0的ip地址。
0
.32.29.16
0.0
.26.38
0.0.0
.25
作为目的地址,表示本地网络上的特定主机,会被本地路由器过滤。
特殊ip地址:直接广播地址
所有主机标识各位全为1的IP地址
69
.255.255.255
189.63
.255.255
201.1.16
.255
作为目的地址,表示该网络内的所有主机,常用于远程广播。
特殊ip地址:
受限广播地址
所有主机标识各位全为1的IP地址
255.255.255.255
指本地网络(拥有相同网络号)的所有主机.常用于分组的本地网络广播,但是路由器不予向其他网段转发
特殊ip地址:
全0地址
所有位全为0的IP地址
0.0.0.0
全零地址用于动态配置IP的网络上。当工
作站启动时,未被分配到IP地址的主机在发送IP报文时用作源IP地址(p265)
3、ip数据报的格式
版本:4位就是指ip协议的版本。
首部长度:也占4位,可表示的最大十进制数是15,此时最大值60字节。当0101时,首部长度为20字节。
区分服务:占1个字节也就是8位,一直没用。
总长度:占2字节,16位。就是指的首部和数据之和,因此数据报的最大长度是(2的16次方)-1=65535字节。实际上使用的ip数据报长度很少有超过1500字节的。
标识:占2字节,16位,ip软件在存储器中维持一个技术器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。注意,这个标识字段并不是序号,因为ip是无连接的服务,数据报不存在按顺序接收的问题。当数据报长度超过MTU时而必须被分片时,这个值就被复制到数据报片的标识字段中,相同的标识字段的值能使分片后的各个数据报片最后正确的重装成原来的数据报。
标志:占3位,但是目前只有2位有意义,标志字段中的最低位记为MF(more fragment) MF=1标识后面还有分片。MF=0表示这是最后一片。
中间一位记为DF(don't fragment)意思是不能分片,只有当DF=0时才允许分片。
片偏移:占13位,较长的分组(即ip数据报)在分片后,某片在原分组中的相对位置,也就是说,相对于用户字段的起点,该片从何处开始,片偏移以8个字节为偏移单位,也就是说,每个分片的长度一定是8字节的整数倍。
生存时间:占8位,英文缩写(TTL time to live)现在用跳数表示,当TTL为0时被路由器丢弃。
协议:占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的ip层知道应将数据部分上交给哪个处理过程。下面列出常用协议字段值:
ICMP:1 IGMP:2 TCP:6 EGP:8 ICP:9 UDP:17 IPv6:41 OSPF:89
首部检验和:占16位,这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新检验一下首部检验和(主要是一些字段,如生存时间,标志,片漂移等都可能发生变化),不检验数据部分可以工作量。
源地址:32位。
目的地址:32位。
ip数据报的交付方式:
直接交付:当分组的源主机和目的主机是在同一个网络、或在最后一个路由器与目的主机之间时,进行直接交付。
间接交付:目的主机与源主机不在同一 个网络上,IP分组无法直接到达目的主机, 需要经过路由器转发,进行间接交付
4、路由查找过程
我们由一道例题慢慢讲解这一部分的知识:
【例
4-4
】已知互联网中路由器 R1 中的路由表。主机 H1 向 H2 发送分组。试讨论 R1 收到 H1 向 H2 发送的分组后查找路由表的过程。
主机H1 要发送的分组到H2,其目的ip地址为:128.30.33.138.但是我们现在要注意,H1 并不知道H2在哪个网络上,我们仅仅知道H2 的ip地址。因此,H1首先要检查主机128.30.33.138是否在本网络中,如果是在本网络中,那直接交付即可。如果不在本网络中,那么就把分组交给R1 ,并逐项查找路由表。
好了,第一个问题出现了,我们如何判读H2是否在本网络中呢?很简单,用本网络的子网掩码255.255.255.128与目的ip128.30.33.138做“按位与”运算,即AND运算:
求得的结果不是H1的网络地址。因此,H1必须把分组传到R1上去。然后逐项查找路由表。
好了,第二个问题来了,啥是路由表啊?怎么构造路由表?怎么查找啊?
IP路由表中每一条记录是一条路由; 一条路由记录至少包括四部分:
目的IP地址/前缀长度 下一跳地址 输出接口
路由表中的记录类型:我们根据目的地址不同进行分类:
特定主机路由:目的地址是某一特定主机的IP地址,即前缀长度为32的路由表记录
202.197.10.2/32 直接传送 a一般用于网络排错或测试。
网络前缀路由:把目的主机所在的网络地址作为路由表的目的地址的路由表记录
202.197.10.0/24 直接传送
a
可以减少路由表内容,简化查询过程
默认路由:前缀长度为0的路由表记录,可以匹配任何目的IP地址。
0.0.0.0/0 202.197.11.2 c 一般用于不符合路由表中其他目的地址的数据报所采用的路由,减少路由表的占用空间,加快处理速度
如何查找路由表?按照这样的规矩来:路由器将ip分组的目的地址取出,与
前缀长度对应的网络掩码进行按位与运算,如果得到的结果与该条路由记录的地址一致,则匹配该记录。若有多条路由表项匹配,选择匹配的前缀长度最长的表项。
下面我们接着看例题:ip分组到了R1之后进行逐项匹配,先匹配第一项,
255.255.255.128 AND
128.30.33.138 = 128.30.33.128 ------------与目的网络地址128.30.33.0
不匹配!
下面匹配第二项:
255.255.255.128
AND
128.30.33.138 = 128.30.33.128 ----------------
与目的网络地址128.30.33.128
匹配
! 这表明子网 2 就是收到的分组所要寻找的目的网络。
最长前缀匹配举例:
收到的分组的目的地址
D
= 206.0.71.128
路由表中的项目:
206.0.68.0/22
(
ISP
)
206.0.71.128/25
(四系)
•选择两个匹配的地址中更具体的一个,即选择
最长前
缀的地址。
路由器转发分组的算法
(1)
从收到的分组的首部提取目的
IP
地址
D
。
(2)
若路由表中有目的地址为
D
的特定主机路由,则将 分组传送给指明的下一跳路由器;否则,执行(3)。
(3)
对路由表中的每一行的子网掩码和
D
逐位相
“
与
”
, 若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行(4)。
(4)
若路由表中有一个默认路由,则将分组传送给路由表 中所指明的默认路由器;否则,执行(5)。
(5)
报告转发分组出错。
5、划分子网
子网掩码
作用:明确子网号与主机号的分界线;
取值:网络号与子网号位置1,主机号位置0
子网掩码的两种表示方式
:
1)点分十进制表示
255.255.255.0 255.255.255.192
2) /x 表示:在IP地址后写/x,x为子网掩码中1的位数
202.163.75.25/24 211.61.132.82/26
子网掩码的掩码运算
:
利用主机IP地址和子网掩码进行掩码运
算可获取主机所在的网络地址
掩码运算:将二进制的IP地址与子网掩码
按位进行“与”运算,所得结果就是主机所在的网络地址(包括网络地址和子网地址)。
总结
:
划分子网的快捷方式
划分子网
,
为网络选择一个合适的子网掩码
,
要
回答五个问题
:
1.
该子网掩码将会产生多少个子网
?:—————————————
2
的
x
次方
(x
代表借用主机
标识位数
)
2.
每个子网能容纳多少主机
?:————————————————
2
的
y
次方
-2
(y
代表主机位数
)
3.
子网
ID
是
?:———————————————————————
块大小
=256-
子网掩码
,
子网
ID=N*
块大小
4.
每个子网的广播地址是
?:————————————————
下个子网
ID-1
5.
每个子网的合法主机号是
?:————————————————
忽略子网内全为
0
和全为
1
的地址剩
下的就是合法主机地址
.
最后
1
个有效主机地址
=
下个子网号
-2(
即广播地址
-1)
练习:
网络地址192.168.10.0;子网掩码255.255.255.192(/26)
1.子网数=2*2=4
2.主机数=2 的6 次方-2=62
3.子网ID是? 块大小=256-192=64; 所以第一个子网为192.168.10.0, 第二个为192.168.10.64,最后一个为192.168.10.192
4.广播地址:下个子网-1.所以第一个子网的广播地址是192.168.10.63,第二个是192.168.10.127,最后一个是192.168.10.255
5.有效主机范围是:第一个子网的主机地址是192.168.10.1 到192.168.10.62;第二个是192.168.10.65 到192.168.10.126;最后一个是192.168.10.193到192.168.10.254
举例:
某公司申请了一个C类地址:202.60.31.0,该公司销售部门有主机100台,设计部门有主机50台,财务部门有主机50台,请为三个部门划分子网,给出每个子网的掩码
销售子网
:202.60.31.0 (
0
0000000)
子网掩码
:255.255.255.128(/25)
设计子网
: 202.60.31.128 (
10
000000)
财务子网
: 202.60.31.192 (
11
000000)
子网掩码
:255.255.255.192(/26)
划分子网后如何路由:
凡是从其他网络发送给本单位某个主机的 IP 数据报,划分子网后,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。
然后此路由器再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。
最后就将 IP 数据报直接交付目的主机
划分子网后,原来的网络对外仍呈现为一个完整的网络,划分子网完全是该网络内部的事务,与外部无关. 所以外部路由器关于本网络的路由不变.
不同子网各机器之间的通信必须通过路由器(或具有路由功能的三层交换机)才能实现,所以连接子网的路由器需要对不同子网进行路由.
路由聚合技术
一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为
路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。
路由聚合也称为构成超网(supernetting)。