第四章 网络层
本章重要内容:
(1)虚拟互联网络和两种服务,两个层面的概念
(2)IP地址与MAC地址之间的关系。
(3)传统分类的IP地址和无分类域间路由选择CIDR
(4)路由选择协议的工作原理
网络层的几个重要概念
网络层要设计的尽量简单,向上层只提供简单灵活的,无连接的,尽量大努力的交付的数据报服务。
1,两个服务:虚电路服务,数据报服务
2,网络层的两个层面
第一类:是转发源主机和目的主机之间所传送的数据,像接力赛跑那样从一个服务器转发到下一个服务器,最后吧分组传送到目的的主机
第二类:则是传送路由信息,是根据路由选择协议所使用的路由算法,彼此不断地交换路由信息分组,目的是为了在路由器中创建路由表,并由此导出为转发分组而用的转发表。
3,一个路由器不可能独自创建出路由表。路由器必须和相邻的路由器经常交换路由信息,然后才能创建出本路由器的路由表。
4,远程控制器(在物理上可以由不同地点的多个服务器组成)
远程控制器掌控着各主机和整个网络的状态,能够为每一个分组计算出最佳路由,然后转发分组,路由器中生成其正确的转发表。路由器的工作很简单,即收到分组,查找路由,转发分组
网际协议IP(Internet Protocol)
是TCP/IP协议中两个最主要的协议之一,也是最重要的互联网标准协议之一。与协议IP配套使用的还有三个协议
地址解析协议ARP(Address Resolution Protocol)
网际控制协议ICMP(Internet Control Messeage Protocol)
网际管理协议IGMP(Internet Group Management Protocol)
1,虚拟互联网络
没有一种单一的网络能够适应用户的需求,从一般的概念上讲,将网络互相连起来要使用一些中间设备。有以下四种不同的中间设备:
(1)物理层使用的中间设备叫做转发器(repeater)
(2)数据链路层使用的中间设备叫网桥或桥接器(bridge),以及交换机(switch)
(3)网络层使用的中间设备叫做路由器(router)
(4)在网络层以上使用的中间设备1叫做网关(gateway)。用网关连接两个不兼容的系统需要在高层进行协议的转换
2,直接交付和间接交付
分组从源节点A发送到目的节点B、若中间必须经过一个或几个路由器(这表示A和B不再同一个网络上),则是间接交付。但若不需要经过路由器(这表示A和B在同一网络上),则是直接交付
3,互联网可以由多种异构网络互联而成,分组在传送途中的每一次转发都都称为一跳(hop)
IP地址
1,ip地址及其表示方法
整个互联网就是一个单一的,抽象的网络。ip地址就是给连接到互联网上的每一台主机或路由器的每一个接口,分配一个在全世界范围内是唯一的32位的标识符。
对比MAC地址是48位 6字节
2,IP地址都是32位的二进制编码。为了提高可读性,我们常常把32位的ip地址种的每8位插入一个空格(但机器中并没有这样的空格),为了便于人们书写和记忆,常用其等效的十进制数字表示,并且在每段数字之间加上一个小数点。这就叫做点分十进制记法(dotted decimal notation)
3,一个IP地址在整个互联网范围内是唯一的
IP地址::={<网络号>,<主机号>}
::=表示定义为
4,IP地址指明了连接到某个网络上的一个主机(或路由器)。IP地址中博阿寒网络号就表明,不联网的主机就没有IP地址。
分类的IP地址
①n是固定的几个数之一A类(n=8),B类(n=16)和C类(n=24)地址都是单播地址(一对一通信),是最常用的。D类是多播地址(一对多通信)而E类是保留地址
②根据网络号分辨地址的种类
看0出现的位置,0出现在第一位则是A类地址,第二位则是B类,第三位则是C类,第四位是D类,前四位全是1的是E类
③各类地址所占的比例如图所示
A类占50%,B类25%,C类12.5%,D类和E类各占12.5%
④A类地址中全是0的主机号表示该IP地址是本主机所连接到的单个网络地址。全1表示所有的因此全1的主机号字段表示该网络上的所有主机。因此A类地网络中的最大主机数是2^21-2=16777214
⑤B类地址的网络号字段由2个字节。因此B类地址可指派地网络数位2 ^14,即16384.B类地址地每一个网络上地最大主机数是2 ^16-2,即65534
⑥C类地址由三个字节地网络号字段,C类可指派地网络总数是2 ^21 ,即2097152.每一个C类地址最大主机数是2 ^8-2即254
⑦A类地址1-126,B类地址128.0-191.255,C类地址192.0.0-253.255.255,D类地址255.255.255.255
无分类编码CIDR
这种编址方法地全名是无分类域间路由选择CIDR(Classless Inter-Domain Touting)CIDR使用”斜线记法“,或称为CIDR记法,即在IP地址后面加上斜线“/”,斜线后面是网络前缀所占的位数。
1,网络前缀(略等于网络号加子网号)
CIDR地记法IP地址::={<网络前缀><主机号>}
网络前缀的位数可任意指派
例如,CIDR表示的一个IP地址128.14.35.7/20,二进制IP地址的前20位是网络前缀(相当于原来的网络号),剩下后面12位是主机号。
2,地址块
CIDR把网络前缀都相同的所有连续IP地址组成一个CIDR地址块。一个CIDR地址包含的IP地址数目,取决于网络前缀的位数。
也可以用二进制代码简要地表示此地址块:10000000 00001110 0010。这里的星号,代表了主机号字段的所有的0.星号前的二进制代码的个数,就是网络前缀的位数。**
3,地址掩码
地址掩码常称为掩码,由一串1和接着一连串0组成,而1地个数就是网络前缀地长度。地址掩码又称为子网掩码。在CIDR记法中,斜线后面地数字就是地址掩码中1的个数
例/20地址块的地址掩码就是11111111111111111111000000000000(20个1后面跟12个0)
这个掩码记法表示就是255.255.240.0/20
早期地址掩码是固定的
A类网络,地址掩码为255.0.0.0或255.0.0.0/8
B类网络,地址掩码为255.255.0或255.255.0.0/16
C类网络,地址掩码为255.255.255.0或255.255.255.0/24
4,把二进制IP和地址掩码进行按位AND运算,即可得出网络地址。AND运算就是逻辑乘法运算,其规则是1AND1=1,1AND0=0,0AND0=0;
从点分1十进制的IP地址并不容易看出网络地址。
网络地址和地址掩码进行按位AND运算可以得出二进制IP地址
5,CIDR地址中还有三个特殊的地址块
(1)前缀n=32,即32为IP地址都是前缀,没有主机号。这其实就是一个IP地址,这个特殊地址用于主路由
(2)前缀n=31,这个地址块中只有里两个IP地址,其主机号1分别是0和1.这个地址块用于点对点链路
(3)前缀n=0同时IP地址也全是0,即0.0.0.0.0/0.这用于默认路由。
6,构造超网
每一个CIDR地址块中的地址数一定是2所谓整数次幂。除最后几行外CIDR地址块都包含了多个C类地址(是一个C类地址的2^n倍,n是整数),因此在文献中称CIDR编制为构造超网
7,路由聚合
一个大的CIDR地址块中往往包含很多小的地址块,所以在路由装发表中就利用较大的一个CIDR地址块来代替许多小的地址块
网络前缀越短的地址块包含的地址数就越多
8,IP地址的特点
(1)每一个IP地址都有网络前缀呵主机号两部分组成
IP地址分等级的两个好处①IP地址字管理机构在分配IP地址时只分配网络前缀,而剩下的主机号则又得到该网络的单位自行分配,方便了IP地址的管理
②路由器根据目的主机所连接的网络前缀(即地址块)来转发分组(而不考虑目的主机号),这样可以使转发表中的项目数大幅度减少,从而减少转发表所占内存的存储空间,缩短查找转发表的时间。
(2)实际上IP地址使标志一台主机或路由器和一条链路的接口。
(3)按照互联网的观点,一个网络(或子网)使指3具有相同网络前缀的主机的集合,因此用转发器1或交换机连接起来的若干局域网仍为一个网络。
(4)在IP地址中,所有分配到网络前缀的网络都是平等的。
统一局域网的网络前缀必须是相同的,即必须具有同样的网络号
路由器总是具有两个或两个以上的IP地址。即路由器1每个接口的IP地址的网络前缀都不同
IP地址与MAC地址
MAC地址是数据链路层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址为逻辑地址是因为IP地址是用软件实现的)
1,在发送数据时,数据从高层下到低层,然后才到通信链路上传输。使用IP地址的IP数据报一旦交给数据链路层,就被封装成MAC帧。MAC帧在传送时使用的源地址和目的地址都是MAC地址,这两个MAC地址都写在MAC帧的首部中
2,主机或路由器在收到MAC帧时根据MAC帧首部中的MAC地址决定是将其收下或丢弃。只有在剥去MAC帧在传送的首部和尾部后把MAC层的数据上交给网络层后,网络层才能在IP数据报的首部找到源IP地址和目的IP地址
①在IP层抽象的互联网上只能看到IP数据报
②虽然在IP数据报首部有源站IP地址,但路由器只根据目的站的IP地址进行转发
③在局域网的链路层之,只能看见MAC帧
地址解析协议ARP
地址解析协议解决的问题是,已经知道了一个机器的IP地址,需要找出其相应的MAC地址
逆地址解析协议RARP,它的作用是使只知道自己MAC地址的主机能够通过协议RARP找出其IP地址
1,地址解析协议解决这个问题的方法
在主句ARP高速缓存中存放一个从ip地址到MAC地址的映射表,并且这个映射表还经常动态更新(新增或超时删除)
2,每一台主句都设有一个ARP高速缓存(ARP cache),里面存有本局域网上的各主机和路由器的IP地址到MAC地址的映射表
3,当主机A要向本局域网上的某台主机发送IP数据报时,就先在其ARP高速缓存中查看有无有无主句B的IP地址。如有,就在ARP高速缓存中查出相对应的MAC地址,再把这个MAC帧地址写入MAC帧,然后通过局域网把该MAC帧发往此MAC地址
4,从IP地址到MAC地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的
ARP的四种典型情况
①发送方是主机如(H1),要把IP数据报发送到另一个网网络上的另一台主机(如H2)这时H1发送ARP请求分组(在网络上广播),找到目的主机H2的MAC地址
②发送方是主机(如H1),要把IP数据报发送到另一个网络上的一台主机(如H3或H4)这时H1发送ARP请求分组,在N1上广播,找到N1上的一个路由器1R1的Mac地址,剩下的工作有路由器R1来完成。
③发送方是路由器(如R1),要把IP数据报转发到与R1连接在同一个网络N2上的主机(如H3)这时发送ARP请求分组,找到目的主机H3上的1一台主机如H4
④发送方是路由器,要把IP数据报转发到网络N3上的一台主机。H4与R1不是连接在同一个网络上的。这时R1发送ARP请求分组,找到连接在N2上的一个路由器R2的MAC地址。剩下的工作由R2完成
IP数据报的格式
一个IP数据报由首部和数据两部分组成。首部的前一部分长度是固定的,共20字节,是所有IP数据报必须具有的。在首部固定部分后面的是一些可选字段,其长度是可变的
1,ip数据报首部的固定部分中的各字段
①版本,占4位,指协议IP的版本
②首部长度:占4位可表示的最大十进制数是15,首部长度所表示数的单位是32位字长,因为IP首部的固定部分是20字节,因此首部长度字段的最小值是5.
③区分服务,占8位,用来获得更好的服务
④总长度,总长度是指首部和数据之和的长度,单位为字节。总长度字段为16位2,因此数据报的最大长度为2^16-1=65535.
在IP层下面的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,这称为最大传送单元MTU(Maximumum Transfer Unit)
⑤表示(identification)占16位
⑥标志(flag)占3位,但目前只有前两位有意义
(1)标志字段中的最低为记为MF(More Fragment)。MF=1即表示后面还有分片的数据报。MF=0表示这已是若干1数据报片中的最后一个。
(2)标志字段中间的一位记为DF(Don他Fragment),意思是不能分片。只有当DF=0时才允许分片
⑦片偏移,占13位,片偏移以8个字节为偏移单位。除最后一个数据报片外,其它每个分批嗯的长度一定是8字节的整数倍。
⑧生存时间,占8位表明数据报在网络中的寿命
⑨协议,占8位,协议字段指出此数据报携带的数据使用何种协议,以便使目的主机的IP层知道应该怎么知道将数据部分上交给那个协议进行处理。
⑩首部检验和,占16位,这个字段只检验数据报的首部,但不包括数据部分
(11)源地址,占32位,发送IP数据报的主机的IP地址
(12)目的地址,占32位,接收IP数据报的主机的IP地址
2,IP数据报首部的可变部分
IP数据报首部的可变部分就是一个选项字段。
IP层转发分组的过程
1,基于终点的转发
分组在互联网傻干传送和转发是基于分组首部中的目的地址的,因此这种转发方式称为基于终点的转发。
2,最长前缀匹配原则
在采用CIDR编制时,如果一个分组在转发表中可以找到多个匹配的前缀,那么就应该选择前缀最长的一个作为匹配前缀(longest prefix match)。其网络前缀越长,其地址块就越小,因而路由就越具体(more specific)。
3,主机路由(host route)又叫做特定主机路由,这时对特定目的主机的IP地址专门指明的一个路由。采用特定路由可使网络管理人员更方便地控制网络和测试网络
4,默认路由(default route),这就是不管分组地最终目的地网络在哪里,都由指定地路由器R来处理。这在网络只有很少地对外链接时非常有用。
5,分组转发算法(假定转发表按照前缀地长短排列,把前缀长的放在前面):
(1)从收到分组地首部提取目的主机地IP地址D(即目的地址)
(2)若查找到有特定的主机路由(即目的地址为D),就按照这条路由的下一跳转发分组;否则从转发表中下一行(也就是前缀最长的一行)开始检查,执行(3)
(3)把这一行的子网掩码与目的地址D按位运算
(4)若转发表中有一个默认路由,则按照指明的接口,把分组传送到指明的默认路由器;否则报转发分组出错。
使用二叉线索来查找转发表
使用CIDR后,由于不知道目的网络的前缀,使转发表的查找过程变得更加复杂了。当转发表项目数很大时,怎样设法缩短转发表查找时间就成为了一个问题。
1,为了进行更加有效的查找,通常是把无分类编址的转发表存放在一种层次的数据结构种,然后自上而下地按层次进行查找。这就是最常用地二叉线索,它是一种特殊结构地树。
2,为了简化二叉线索地结构,可以先找出对应于每一个IP地址地唯一前缀(unique prefix)。所谓地唯一前缀就是在表中所有地IP地址中,该前缀是唯一地。这样就可以用这些唯一前缀来构造二叉线索。在进行查找时,说只要能够和唯一前缀相匹配地就行了。
3,二叉线索地根节点自顶向下地深度最多有32层,每一层对应于IP地址中地一位。一个IP地址存入二叉线索地规则很简单:先检测IP地址左边地第一位如为0,则第一层地节点就在根节点地左下方;如为1则在右下方。然后再检查第二位,以此类推,直到唯一前缀地最后一位。
网际控制报文协议ICMP
为了更有效地转发IP数据报和提高交付成功地机会,再网络层使用了网际控制报文协议ICMP(Internet Control Message Protocol)
ICMP是IP层地协议,ICMP报文作为IP层数据报地数据,加上数据报地首部,组成IP数据报发送出去。
1,ICMP报文地种类有两种ICMP差错报告报文和ICMP询问报文
2,ICMP报文地前四个字节是统一地格式,共有三个字段:类型,代码和检验和。接着四个字节地内容与ICMP地类型有关。最后面是数据字段,其长度取决于ICMP地类型
3,ICMP标准在不断更新
ICMP报文地代码字段用于进一步区分某种类型中地几中不同情况
(1)终点不可达 当路由或主机不能交付数据报时就向源点发送终点不可达报文
(2)时间超过 当路由器收到生存时间为0地数据报时,除丢弃该数据报外,还要向源点发送时间超过报文。当终点在预先规定地时间内不能收到一个数据报地全部数据报片时,就把已收到地数据报片都丢弃,并向原地发送时间超过报文。
(3)参数问题 当路由器或目的主机收到地数据报的首部中有的字段的值不正确时,就丢弃该数据报,并向源点发送参数问题报文
(4)改变路由(重定向) 路由器把改变路由报文发送给主机1,让主机知道下次应该将数据报发送给另外的路由器(也就是说,找到了更好的路由)
4,差错报告报文中的数据字段的内容
(1)回送请求或回送回答
ICMP回送请求报文是由主机或路由器向一个特定的目的主机发送的询问。收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态
(2)时间戳请求或时间戳回答
3,ICMP应用举例
IPV6
IPV4在2011年就已经耗尽,为了解决地址耗尽的问题,采用了具有更大地址空间的新版本的IPV6
IPV6的基本首部
IPV6仍支持无连接的传送,但将协议数据单元PDU称为分组(PACKET),而不是IPV4的数据报(datagram)
1,IPV6所引进的主要变化有:
(1)更大的地址空间。IPV6把地址从IPV4的32位增大到128位,使地址空间扩大了2^96倍
(2)扩展的地址层次结构,可以划分为更多的层次
(3)灵活的首部格式。IPV6定义了许多可选的扩展首部
(4)改进的选项。IPV6允许数据报包含有选项的控制信息,因而可以包含一些新的选项
(5)允许协议继续扩充。因为技术总是在不断地发展的,而新的应用也还会出现
(6)支持即插即用(即自动配置)。因此IPV6不需要使用DHCP
(7)支持资源的预分配。IPV6支持实时视像等要求保证一定的带宽和时延的应用。
(8)IPV6首部改为8字节对齐(即首部长度必须使8字节的整数倍)
2,IPV6数据报由两大部分组成,即基本首部(base header)和后面的有效载荷(pauload)。有效载荷也称为净负荷。有效载荷允许有零个或多个扩展首部(extension header),在后面是数据部分
3,与IPV4相比,IPV6对首部中的某些字段进行了如下更改:
①取消了首部长度字段
②取消了服务类型字段
③取消了总长度,改用有效载荷长度字段
(1)取消了标识,标志和片偏移字段
(2)把TTL字段改称为跳数限制字段
(3)取消了协议字段,改用了下一个部首字段
(4)取消了检验和字段,这样就加快了路由器处理数据报的速度
(5)取消了选项字段
4,IPV6首部中各字段的作用
(1)版本(version)占4位,指明了协议的版本
(2)通信量类(traffic class) 占8位为了区分不同的IPV6数据报的类型或优先级
(3)流标号(flow label)占20位,“流”就是互联网络上从特定源点到特定终点(单播或多播)的一系列数据报(如实时音频或视频传输),而在这个流所经过的路劲上的路由器都保证指明的服务质量。
(4)有效载荷长度(payload length)占16位
(5)下一个部首(next header)占8位,相当于IPV4的协议字段或可选字段
(6)跳数限制(hop limit)占8位。源点在每个数据报发出时即设定某个跳数限制(最大位255跳)每个路由器在转发数据报时,要先把跳数限制字段中的值减1 .当跳数位0时,就要把这个数据报丢弃。
(7)源地址,占128位
(8)目的地址 占128位
IPV6地址
1,三种基本地址类型
(1)单播(unicast) 单播就是传统的点对点通信
(2)多播(multicast)多播是一点对多点通信
(3)任播(anycast) 任播的终点是一组计算机,但数据报只交付其中的一个,通过是按照路由算法得出的距离最近的一个
IPV6把实现IPV6的主机和路由器均称为节点。
一个节点可能有多个与链路相连的接口。
一个具有多个接口的节点可以有多个单播地址。
而其中任何一个地址都可当作到达该节点的目的地址。
在IPV6中,每个地址占128位,地址空间大于3.4c×10^38.
2,为了使地址简洁一些,IPV6使用冒号十六进制记法(colon hexadecimal notation)
IPV4的点分十进制,CIDR使用斜线记法
冒号十六进制记法可以允许零压缩,即一连串的零可以用一对冒号代替(规定在任一地址中只能使用一次零压缩)
3,特殊地址
①为指明地址,16字节全是0地址,可缩写为两个冒号::,不能作为目的地址,只能将某台主机当作源地址使用
②环回地址,::1,作用与ipv4环回地址一样
③多播地址,11111111
④本地站点单播地址(cite-local unicast adress),1111111011
⑤全球单播地址
4,从IPV4向IPV6的过渡,只能采用逐步演进发那个发,同时,还必须使新安装的IPV6系统能够向后兼容
5,解决IPV4向IPV6过渡问题的方法
①双协议栈(dual stack)是指在完全过度到IPV6之前,使一部分主机或路由器同时装有,IPV4和IPV6这两种协议栈
②隧道技术(tunneling):把IPV6数据报封装成IPV4数据进行传输,当数据报离开IPV4网络的隧道,再把数据部分交给主机的IPV6协议栈。
互联网的路由选择协议
1,理想的路由算法1
(1)算法必须使正确的和完整的
(2)算法在计算上应简单
(3)算法应能适应通信量和网络拓扑的变化
(4)算法应具有稳定性
(5)算法应是公平的
(6)算法应是最佳的:所谓最佳只能是相对于某一种特定要求下得出的较为合理的选择而已
2, 静态路由选择策略与动态路由选择策略。静态路由选择也叫做非自适应路由选择,其特点是简单和开销小,但不能及时适应网络状态的变化。动态路由选择也叫做自适应路由选择,其特点是能较好地适应网络状态地变化,但实现起来较为复杂,开销也比较大
3,分层次地路由选择协议
互联网采用地路由选择协议主要是自适应地(即动态的),分布式路由选择协议。
自治系统之间的路由选择也叫组偶域间路由选择(interdomain routing),而在自治系统内部的路由选择叫做域间路由选择
但每个自治系统都有一个或多个路由器,除运行本系统的内部路由选择协议外,还要运行自治系统间的路由选择协议
4,使用分层次的路由选择方法,可将互联网的路由选择协议划分为:
内部网关协议IGP:具体的协议有很多种,如RIP和OSPF等
外部网关协议EGP:目前使用的协议是BGP-4
内部网关协议RIP
1,协议RIP的工作原理
RIP(routing information Protocol)是内部网关协议IGP中最先得到广泛使用的协议,译名::路由信息协议。RIP是一种分布式的基于距离向量的路由选择协议
最大的优点是简单,每一个路由器都要维护从它自己到其它每一个目的网络的距离记录(因此这时一组距离,即距离向量)
距离等于16时即相当于不可达 RIP只适用于小型互联网
2,协议的特点
(1)仅和相邻路由器交换信息
(2)交换的信息是当前本路由器所知道的全部信息,即自己现在的路由表
(3)按固定的时间间隔交换路由信息,例如按30秒,然后路由器根据自己收到的路由加信息更新路由表,当网络拓扑发生变化时,路由器也及时向相邻路由器通告拓扑发生变化后的路信息
(4)路由器在刚刚开始工作时,它的路由表是空的,然后路由器就得出到直接相连的几个网络的距离(这些距离定义为1),接着,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
经过若干次的更新后,所有的路由器最终都会知道本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
路由表中最重要的信息就是:到某个网络的距离(即最短距离),以及应经过的下一跳地址。路由表更新的原则是找出到每个目的网络的最短距离。
3,好消息传播的快,坏消息传播的慢
当网络故障时,要经过比较长的时间才能将此信息传送到所有路由器
解释:当R1收到r2的更新报文后,误认为可以经过r2到达网NET1,于是把收到的路由信息“Net,2,R1”修改为"Net1,3,R2",表明,我到网Net1的距离是3,下一跳经过R2,并把更新后的信息发给R2。这样一直更新下去,直到R1到R2的距离都增大到16时,R1和R2才知道原来网Net1不可达
4,RIP的优缺点
①实现简单,开销小
缺点:他能使用的最大距离为15
路由器之间交换的路由信息时路由器中的完整路由表因此随着网络规模的扩大,开销也就增加
5,(1) 修改 RIP 报文中的所有项目(即路由):把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。
(2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
若路由表中没有目的网络N,则把该项目添加到路由表中。否则
若路由表中网络 N 的下一跳路由器为 X,则用收到的项目替换原路由表中的项目。否则
若收到项目中的距离小于路由表中的距离,则用收到项目更新原路由表中的项目。否则
什么也不做。
(3) 若 3 分钟还未收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为 16(表示不可达)。
(4) 返回
内部网关协议OSPF(Open Shortest Path First)(开放最短路劲优先)
1,特点
使用链路状态协议 (link state peotocol),而不是像RIP哪一个你的距离向量协议
(1)向本自治系统中所有路由器发送信息,使用的时洪泛法(flooding),这就是路由器通过所有输出端口向所有相邻的路由器发送信息。而每一个相邻路由器又再将此消息发送往其所有的相邻路由器(但不再发送给刚刚发来信息的路由器)
(2)发送的信息就是与本路由器相邻的所有连路由器的链路状态,但这只是路由器所知道的部分信息,所谓的链路状态就是说明本路由器都和那些路由器相邻,以及该链路的度量(metric)(费用,距离,时延,带宽等)。
(3)当链路状态发生变化或每隔一段时间(如30分钟),路由器向所有路由器用洪泛法发送链路状态信息
2,由于路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库(link-state database),这个数据库实际上是全网的拓扑结构图。这个拓扑结构图再权威感你范围内是一致的(这称为链路状态数据库的同步)。因此内一个路由器都知道权威感你共有多少个路由器,以及哪些路由器是相连的,其代价是多少
3,为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域(area)
4,划分区域的好处
①把利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统,这就减少了整个网络上的通信量。
②在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其它区域的网络拓扑情况
③采用划分层次划分区域的方法虽然使交换信息的种类增多了,同时也使OSPF协议更加复杂了,但这样做却能使每一个区内部交换路由1信息的通信量大大减少,因而使OSPF协议能够用于规模很大的自治系统中
5,具有的特点
①对于不同类型的业务可计算出不同的路由
②多路径间的负载均衡(load balancing)
③所有在OSPF路由器之间交换的分组都具有鉴别功能,因而保证了仅在可信赖的路由器之间交换链路状态信息
④OSPF支持可变长度的子网划分和无分类编制CIDR
⑤32为的序号,序号越大状态就越新,全部序号空间在600年内不会产生重复号
6,OSPF的物种分组类型
(1)问候(hello)分组,用来发现和维持邻站的可达性。
(2)数据库描述(Database Description)分组,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
(3)链路状态请求(Link State Update)分组
(4)链路状态更新(Link State Update)分组
(5)链路状态确认(link State Acknowledgment)分组
OSPF不用UDP而是直接用IP数据报传送(其IP数据报首部的协议字段值为89)
7,每两个相邻路由器 每隔10秒钟要交换一次问候分组
其它四种分组都是用来进行链路状态数据库的同步。所谓同步就是指不同路由器的链路状态数据库的内容是一样的。两个同步的路由器叫做“完全相邻的”(fully adjacent)
②只要一个路由器的链路状态发生变化,该路由器就要使用链路状态更新分组,用洪泛法向全网更新链路状态。OSPF使用的是可靠的洪泛法。
8,为了确保链路状态数据库与全网的状态保持一致,OSPF还规定每个一段时间,如30分钟,要刷新一次数据库中的链路状态
②链路状态只设计与相邻路由器的连通状态,因而整个互联网的规模并无直接关系。
当互联网规模很大时OSPF协议要比距离向协议RIP好得多。
OSPF没有坏消息传播得慢的问题。
外部网关协议BGP
外部网关协议(或边界网关协议)BGP,在不同自治系统AS之间的路由选择
1,协议BGP的主要特点
①互联网的规模太大,使得自治系统AS之间路由选择非常困难
②自治系统AS之间的路由选择必须考虑有关策略
③边界网关协议BGP只能是力求选择出一条能够到达目的网络前缀且比较好的路由(不能兜圈子),而并非要计算出一条最佳路由。这时所说的BGP路由,是指经过哪些自治系统AS可以到达目的网络前缀。当然,这选择出的比较好的路由,也有时不严格地称为最佳路由。BGP采用了路径向量(path vector)路由选择协议,它与距离向量协议(如RIP)和链路状态协议(如OSPF)都有很大区别
2,BGP路由
在一个自治系统AS中有两种不同功能地路由器,即边界路由器(或边界网关)和内部路由器。一个AS至少要有一个边界路由器和相邻AS地边界路由器直接相连。
3,三种不同地自治系统AS
在网络中自治系统AS地数量非常之多,其连接图也是相当复杂地。但归纳起来,可以把AS划分位三大类,即末梢AS(stub AS),穿越AS(transit AS)和对等AS(peering AS)
第五章 运输层
1,运输协议数据单元
两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU (Transport Protocol Data Unit)。
TCP 传送的数据单位协议是 TCP 报文段 (segment)。
UDP 传送的数据单位协议是 UDP 报文或用户数据报。
2,复用:应用进程都可以通过运输层再传送到 IP 层(网络层)。
分用:运输层从 IP 层收到发送给应用进程的数据后,必须分别交付给指明的各应用进程。
3,Tcp/Ip运输层端口的标志
端口用一个 16 位端口号进行标志,允许有 65,535 个不同的端口号。
端口号只具有本地意义,只是为了标志本计算机应用层中的各进程。
在互联网中,不同计算机的相同端口号没有联系。
由此可见,两个计算机中的进程要互相通信,不仅必须知道对方的端口号,而且还要知道对方的 IP 地址。
4,UDP 只在 IP 的数据报服务之上增加了一些功能:
复用和分用
差错检测
UDP的主要特点
无连接。发送数据之前不需要建立连接。
使用尽最大努力交付。即不保证可靠交付。
面向报文。UDP 一次传送和交付一个完整的报文。
没有拥塞控制。网络出现的拥塞不会使源主机的发送速率降低。很适合多媒体通信的要求。
支持一对一、一对多、多对一、多对多等交互通信。
首部开销小,只有 8 个字节。
UDP 通信的特点:简单方便,但不可靠。
2,(1) 源端口:源端口号。在需要对方回信时选用。不需要时可用全 0。
(2) 目的端口:目的端口号。终点交付报文时必须使用。
(3) 长度:UDP 用户数据报的长度,其最小值是 8(仅有首部)。
(4) 检验和:检测 UDP 用户数据报在传输中是否有错。有错就丢弃。
3,用户数据报 UDP 有两个字段:数据字段和首部字段。首部字段有 8 个字节,由 4 个字段组成,每个字段都是 2 个字节。
TCP最主要的特点
TCP 是面向连接的运输层协议。
每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。
TCP 提供可靠交付的服务。
TCP 提供全双工通信。
面向字节流
TCP 中的“流”(stream) 指的是流入或流出进程的字节序列。
面向字节流:虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流。
2,序号:占 4 字节。TCP 连接中传送的数据流中的每一个字节都有一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。
3,确认号:占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号
记住:若确认号 = N,则表明:到序号 N – 1 为止的所有数据都已正确收到
利用滑动窗口来实现流量控制
流量控制 (flow control) :让发送方的发送速率不要太快,使接收方来得及接收。
利用滑动窗口机制可以很方便地在 TCP 连接上实现对发送方的流量控制。
1,拥塞控制的一般原理
在某段时间,若对网络中某资源的需求超过了该资源所能提供的可用部分,网络的性能就要明显变坏,整个网络的吞吐量将随输入负荷的增大而下降。这种现象称为拥塞 (congestion)。
最坏结果:系统崩溃。
拥塞控制和流量控制的对比
1,防止过多的数据注入到网络中,避免网络中的路由器或链路过载。解决的是网络资源不足的问题。
通过拥塞窗口来实现。
是一个全局性的过程。
2,抑制发送端发送数据的速率,以使接收端来得及接收。解决的是发送方和接收方速率不匹配的问题。
是通过滑动窗口来实现的。
是个端到端的问题。
TCP的拥塞控制方法
TCP 采用基于滑动窗口的方法进行拥塞控制,属于闭环控制方法。
TCP 发送方维持一个拥塞窗口 cwnd (Congestion Window)
拥塞窗口的大小取决于网络的拥塞程度,并且是动态变化的。
发送端利用拥塞窗口根据网络的拥塞情况调整发送的数据量。
发送窗口大小不仅取决于接收方窗口,还取决于网络的拥塞状况。
真正的发送窗口值:真正的发送窗口值 = Min (接收方通知的窗口值,拥塞窗口值)
2,因传输出差错而丢弃分组的概率很小(远小于1 %)。
因此,发送方在超时重传计时器启动时,就判断网络出现了拥塞。
3,四种拥塞控制算法( RFC 5681) :
慢开始 (slow-start)
拥塞避免 (congestion avoidance)
快重传 (fast retransmit)
快恢复 (fast recovery)
慢开始
目的:探测网络的负载能力或拥塞程度。
算法:由小到大逐渐增大注入到网络中的数据字节,即:由小到大逐渐增大拥塞窗口数值。
2 个控制变量:①拥塞窗口 cwnd
初始值:2 种设置方法。
1 至 2 个最大报文段 MSS (旧标准)
2 至 4 个最大报文段 MSS(RFC 5681)
②慢开始门限 ssthresh
防止拥塞窗口增长过大引起网络拥塞。
2,防止拥塞窗口 cwnd 增长过大引起网络拥塞。
用法:
当 cwnd < ssthresh 时,使用慢开始算法。
当 cwnd > ssthresh 时,停止使用慢开始算法,改用拥塞避免算法。
当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。防止拥塞窗口 cwnd 增长过大引起网络拥塞。
用法:
当 cwnd < ssthresh 时,使用慢开始算法。
当 cwnd > ssthresh 时,停止使用慢开始算法,改用拥塞避免算法。
当 cwnd = ssthresh 时,既可使用慢开始算法,也可使用拥塞避免算法。
拥塞避免
目的:让拥塞窗口 cwnd 缓慢地增大,避免出现拥塞。
拥塞窗口 cwnd 增大:每经过一个往返时间 RTT(不管在此期间收到了多少确认),发送方的拥塞窗口 cwnd = cwnd + 1。
具有加法增大 AI (Additive Increase) 特点:使拥塞窗口 cwnd 按线性规律缓慢增长。
注意:
拥塞避免并非完全避免拥塞,而是让拥塞窗口增长得缓慢些,使网络不容易出现拥塞。
当网络出现拥塞时
无论在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(重传定时器超时):
ssthresh = max (cwnd/2,2)
cwnd = 1
执行慢开始算法
目的:迅速减少主机发送到网络中的分组数,使得发生拥塞的路由器有足够时间把队列中积压的分组处理完毕。
步骤
①当 TCP 连接进行初始化时,将拥塞窗口置为 1(窗口单位不使用字节而使用报文段)将慢开始门限的初始值设置为 16 个报文段,即 ssthresh = 16
②开始执行慢开始算法时,拥塞窗口 cwnd=1,发送第一个报文段。
③发送方每收到一个对新报文段的确认 ACK,就把拥塞窗口值加 1,因此拥塞窗口 cwnd 随着往返时延 RTT 按指数规律增长。
④当拥塞窗口 cwnd 增长到慢开始门限值 ssthresh 时,改为执行拥塞避免算法,拥塞窗口按线性规律增长
⑤当拥塞窗口 cwnd = 24 时,网络出现了超时,发送方判断为网络拥塞。调整门限值 ssthresh = cwnd / 2 = 12,同时设置拥塞窗口 cwnd = 1,进入慢开始阶段。
⑥按照慢开始算法,发送方每收到一个对新报文段的确认 ACK,就把拥塞窗口值加 1。当拥塞窗口 cwnd = ssthresh = 12 时,改为执行拥塞避免算法,拥塞窗口按线性规律增大。
⑦当拥塞窗口 cwnd = 16 时,发送方连续收到 3 个对同一个报文段的重复确认(记为 3-ACK)。发送方改为执行快重传和快恢复算法
快恢复算法
当发送端收到连续三个重复的确认时,不执行慢开始算法,而是执行快恢复算法 FR (Fast Recovery) 算法:
慢开始门限 ssthresh = 当前拥塞窗口 cwnd / 2 ;
乘法减小 MD (Multiplicative Decrease) 拥塞窗口。
新拥塞窗口 cwnd = 慢开始门限 ssthresh ;
执行拥塞避免算法,使拥塞窗口缓慢地线性增大(加法增大 AI)
TCP的连接释放
TCP 是面向连接的协议。
TCP 连接有三个阶段:
连接建立
数据传送
连接释放
TCP 的连接管理就是使 TCP 连接的建立和释放都能正常地进行。
1,TCP 连接释放过程比较复杂。
数据传输结束后,通信的双方都可释放连接。
TCP 连接释放过程是四报文握手。
2,第一,保证发送的最后一个 ACK 报文段能够到达 B。
第二,防止“已失效的连接请求报文段”出现在本连接中
第六章 应用层
1,域名系统
域名系统 DNS (Domain Name System) :
互联网使用的命名系统。
用来把人们使用的机器名字(域名)转换为 IP 地址。
为互联网的各种网络应用提供了核心服务。
域名树的树叶就是计算机的名字,它不能再继续往下划分子域了
2,递归查询和迭代查询的比较
①通常,主机向本地域名服务器查询时使用。
若不知道,就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
②本地域名服务器向根域名服务器查询时使用。
要么给出所要查询的 IP 地址,要么告诉下一个要查询的域名服务器的 IP 地址。
本地域名服务器继续后续查询
2,FTP概述
文件传送协议 FTP (File Transfer Protocol) 是互联网上使用得最广泛的文件传送协议。
提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限。
屏蔽了各计算机系统的细节,因而适合于在异构网络中任意计算机之间传送文件。
是文件共享协议的一个大类。
万维网的概述
万维网 WWW (World Wide Web) 并非某种特殊的计算机网络。
万维网是一个大规模的、联机式的信息储藏所。
万维网用链接的方法能非常方便地从互联网上的一个站点访问另一个站点,从而主动地按需获取丰富的信息。
这种访问方式称为“链接”。
2,万维网的工作方式
以客户服务器方式工作。
客户程序:浏览器。
服务器程序:在万维网文档所驻留的主机上运行。这个计算机也称为万维网服务器。
客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。
在一个客户程序主窗口上显示出的万维网文档称为页面 (page)。
3,万维网必须解决的问题
(1) 怎样标志分布在整个互联网上的万维网文档?
使用统一资源定位符 URL (Uniform Resource Locator) 。
使每一个文档在整个互联网的范围内具有唯一的标识符 URL。
(2) 用什么协议来实现万维网上的各种链接?
使用超文本传送协议 HTTP (HyperText Transfer Protocol)。
HTTP 是一个应用层协议,使用 TCP 连接进行可靠的传送。
(3) 怎样使不同作者创作的不同风格的万维网文档都能在互联网上的各种主机上显示出来,同时使用户清楚地知道在什么地方存在着链接?
使用超文本标记语言 HTML (HyperText Markup Language) 。
(4) 怎样使用户能够很方便地找到所需的信息?
使用各种的搜索工具(即搜索引擎)。文章来源:https://www.toymoban.com/news/detail-491620.html
统一资源定位符(URL)
是对互联网上资源的位置和访问方法的一种简洁表示。
给资源的位置提供一种抽象的识别方法,并用这种方法给资源定位。
实际上就是在互联网上的资源的地址。
显然,互联网上的所有资源,都有一个唯一确定的URL。
资源:指在互联网上可以被访问的任何对象,包括文件目录、文件、文档、图像、声音等,以及与互联网相连的任何形式的数据。
URL 相当于一个文件名在网络范围的扩展。因此,URL 是与互联网相连的机器上的任何可访问对象的一个指针。
1,由以冒号(:)隔开的两大部分组成,对字符大写或小写没有要求。
一般形式:
<协议>://<主机>:<端口>/<路径>
ftp —— 文件传送协议 FTP
http —— 超文本传送协议 HTTP
News —— USENET 新闻
例如:http://www.tsinghua.edu.cn/publish/newthu/newthu_cnt/faculties/index.html文章来源地址https://www.toymoban.com/news/detail-491620.html
到了这里,关于计算机网络学习笔记 (下)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!