版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十九章TCP/IP栈的核心协议TCP/IP栈的核心协议本章内容TCP、UDP传输层协议,支持计算机上应用层的数据传递。路由协议。ICMP协议。TCP和UDP协议TCP,RFC793。UDP,RFC768。支持应用层协议间的的数据传输。使用端口号(port)和套接字(socket)描述连接。支持多路复用。自在终端上运行。多路复用数据传输是在进程之间完成的。计算机上有很多进程,因此也就有很多数据流。多路复用和解多路复用解决在一个物理线路上传输多个流的问题。Fig.19.1.Multiplexinganddemultiplexingatthetransportlayer端口TCP和UDP采用端口(PORT)的概念描述多路复用。每个要传输数据的进程都和一个或多个端口相关。数据流从进程进入端口,被封装在TCP或UDP协议中传输。协议中携带有源端口和目的端口的信息。到达目的地后提交到目的端口,交给相关的进程。端口就是传输层的地址(本地地址)。“IP地址+端口号”就是全局的传输层地址。端口(续)端口的分配采用集中式和本地式相结合和的方式。标准的公共服务(telnet、FTP、http、DNS等)的地址是固定分配的,别的应用不能使用。自定义的服务(没有标准化的服务),可以自己指定服务端口。因为没有标准化,因此可能会与其他的服务冲突,需要系统管理员协调解决。客户端进程使用不固定的动态分配的端口。TCP和UDP的地址空间是彼此独立的。端口取值范围一样。0~1023是指定端口,1024~65535是动态分配的端口。UDP协议无连接数据包协议。不是可靠的传输协议。UDP协议只提供了一个多路复用功能。每个UDP报文独立传输和提交。UDP报文最大长度65535,一般都没这么大。解多路复用时要使用源IP地址(TCP/IP协议分层是不彻底的)。Fig.19.2.FormingtheUDPdatagramFig.19.3.UDPdemultiplexingbasedonsocketsTCP协议接口的数据格式是“无结构数据流”,即没有边界信息。TCP报头格式Fig.19.4.FormingTCPsegmentsfromanunstructuredstreamofbytesTCP的报头紧急数据指示和指针。传送带外数据。有两种解释,BSD和RFC793。指针指向第一个非紧急数据。可靠地逻辑链接TCP必须保证数据可靠、有序地到达。TCP利用不可靠的IP传输。Fig.19.5.TCPconnectioncreatesareliablecommunicationschannel
betweenendnodesTCP连接连接建立是协商的参数:数据段的最大长度MSS(MaxSizeofSeg)。传输窗口的大小。起始序号。源端口号和目的端口号的确定:目的端口号是指定的,通常是服务的端口号。源端口号是动态分配的。TCP的连接用四元组表示。Fig.19.6.OnesocketcanparticipateinseveralconnectionsFig.19.7.TCPconnection-baseddemultiplexing序列号和确认TCP的序号是按字节编排的。TCP报头中的发送序号是第一个数据字节的编号是。TCP报头中的确认序号是下一个要接收的字节的序号。序号和流控没有关系。实现机制和链路层不一样,缓冲区是动态分配的。Fig.19.8.NumberingbyteswithinaTCPsegmentFig.19.9.
SequenceNumberandAcknowledgmentNumberTCP连接上的发送和接收全双工协议两套收、发缓冲区,独立工作。Fig.19.10.SystemofTCPconnectionbuffers接收端窗口通过接收端窗口进行流控。窗口表示的是当前接收端可用的缓冲区。接收端缓冲区是动态分配的。确认数据释放的缓冲区被系统收走了,本连接不能使用。可以透支缓冲区。通过调节窗口可以避免网络拥塞(慢启动等)。Fig.19.11.ImplementationoftheslidingwindowalgorithminTCP累积确认确认序号N表示,N(不含)以前的数据已经全部正确收到。可以减化确认的机制,通常做法。如果前面还有数据还不完整不能确认。Fig.19.12.Cumulativeprincipleofacknowledgment确认超时TCP的窗口大,采用选择重发出错的报文。只能通过超时机制发现报文出错。确定超时时间是一个复杂的问题。采用自适应超时时间。超时时间有多重算法。在PPT“TCP超时重传机制”中有介绍。路由协议路由协议的收敛时间。自治系统(autonomoussystem),缩小网络的规模,将路由分层。内部网关协议(IGP),自治系统运行的路由协议。RIP、OSPF、IS-IS(中间系统到中间系统,intermediatesystemtointermediatesystem)。外部网关协议(EGP),自治系统间运行的路由协议。不需要路由表的路由泛洪路由。基于事件的路由。(建立连接之前进行路由探测)。源选径路由。静态路由和自适应路由静态路由。自适应路由:分布式路由算法。集中式路由算法。IP网络使用的是静态路由算法和分布式自适应路由算法。路由算法的要求:必须是高效的(如果不是最好的)。必须简单。必须是收敛的。两种路由算法距离向量算法。简单,数据交换量大,只适用于小型网络。链路状态算法。在精确的网络拓扑上计算路由。使用多个路由协议可以同时使用多个路由协议。不同协议产生的路由要分优先级。通常的顺序是静态、链路状态协议和距离向量协议,依次降低。路由可以用重分布(redistribute)的方法加入到其他的路由协议中。Fig.19.13.Operationofseveralroutingprotocolswithinthesamenetwork自治系统自治系统一组统一管理的子网。通常每个ISP管理一到多个自治系统。自治系统有编号,共16位,与IP地址无关。因特网是有多个自治系统构成的。划分自制系统的目的是实现路由的分级管理。自治系统由外部网关相连,外部网关只能运行一种标准的外部网关协议,目前就是BGPv4。Fig.19.14.AutonomoussystemsoftheInternetRIP路由信息协议基于DVA(距离向量)算法,计算简单。有两个版本,RIPv1和RIPv2。V2支持掩码。有一个数值度量路由,可以是跳数或带宽等值的加权平均,最大值为16(无限大、不通了)。网络的直径不能超过16。Fig.19.15.NetworkbuiltonRIPgatewaysRIP的工作过程用直连路由创建最小表。网络号下一跳端口距离112131网络号下一跳端口距离01112131R1的最小路由表R1的最小路由表RIP的工作过程(续)周期性地向邻居(直连的)发送路由表(30秒)。网络号距离111R1传送的消息RIP的工作过程(续)接收消息并处理路由。比较新收到的路由是否为:新网络路由(原来没有的)。已有的网络(原来已有),并来自同一路由器。如果是加入路由表。新加入的路由度量值加1,计入路由表。下一跳改成该路由器的直连端口。序号网络号下一跳端口距离来源1111221133114012225013226132370122281223R1新的路由表前三行是R1原有的。第4、5行来自R2。第6行来自R3.第7、8行的距离太远,丢弃。RIP的工作过程(续)路由消息的处理每个网段只保留一条最优的路由。周期地交换路由。在若干周期后就会建立正确稳定的路由。RIP的问题好消息传的快,坏消息传的慢。RIP传递网络的变化路有过期使用TTL老化的,RIP的TTL是180秒,6倍的更新周期(30秒)。如果一个路由器失效,180秒后直连的路由器上就相关路由失效,并向外扩散。360秒后丢弃这些路由,停止扩散这些路由的消息。DVA的慢收敛问题RIP的慢收敛问题序号网络号下一跳端口距离来源1232序号网络号下一跳端口距离来源101121序号网络号下一跳端口距离来源11161R1的路由已失效R1的路由被R2覆盖了R2先发出了更新消息RIP的慢收敛问题(续)报文循环(R1-R2),直到TTL为0。(次要问题)180~360,由于没有收到路有更新,R2上距离为2的路由到期,于是使用R1提供的距离为3的路由,R2路由表里的路由距离为4.序号网络号下一跳端口距离来源101141序号网络号下一跳端口距离来源1132R1的路由R2路由到期了,用R1新的路有更新RIP的慢收敛问题(续)以后每180秒换一下,路由的距离增加1。直到路由的距离到达16,路由失效。整个过程持续36分钟。产生慢收敛的概率大约不超过50%。RIP的慢收敛问题(续)可以用水平分割解决慢收敛的问题。禁止路由器将路由信息反向扩散,例如,这条路有是从R1来的,R2不能向R1广播这条路由。水平分割可以解决直连路由器的问题,但不能解决路由循环上例中路由信息可以通过路径R4-R3-R1传到R2,R2仍然会向R1通报路由,只不过距离变成了4。RIP的慢收敛问题(续)有两个办法解决慢收敛的问题:出发更新和路由压缩。出发更新,发生网络状态变化是立即更新。问题是增加了网络的负担,也不能完全避免慢收敛。路由压缩,发生路由失效后在一段时间内不接受对该路由的更新。OSPF开放最短路径优先基于LSA(链路状态)算法,计算相对DVA要复杂一些,但是可以有效地克服DVA的缺点,能够用于大型网络。OSPF的工作分为大两步:通过hello路由公告建立链路状态数据库。利用链路状态数据库,用dijkstra迭代算法计算路由。OSPF的特点适应范围广:支持各种规模的网络,最多可支持几百台路由器。快速收敛:在网络的拓扑结构发生变化后立即发送更新报文,使这一变化在自治系统中同步。无自环:由于OSPF根据收集到的链路状态用最短路径树算法计算路由,从算法本身保证了不会生成自环路由。区域划分:允许自治系统的网络被划分成区域来管理。路由器链路状态数据库的减小降低了内存的消耗和CPU的负担;区域间传送路由信息的减少降低了网络带宽的占用。OSPF的特点(续)等价路由:支持到同一目的地址的多条等价路由。路由分级:使用4类不同的路由,按优先顺序来说分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。支持验证:支持基于接口的报文验证,以保证报文交互和路由计算的安全性。组播发送:在某些类型的链路上以组播地址发送协议报文,减少对其他设备的干扰。OSPF协议路由的计算过程每台OSPF路由器根据自己周围的网络拓扑结构生成LSA(LinkStateAdvertisement,链路状态通告),并通过更新报文将LSA发送给网络中的其它OSPF路由器。每台OSPF路由器都会收集其它路由器通告的LSA,所有的LSA放在一起便组成了LSDB(LinkStateDatabase,链路状态数据库)。LSA是对路由器周围网络拓扑结构的描述,LSDB则是对整个自治系统的网络拓扑结构的描述。OSPF路由器将LSDB转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。各个路由器得到的有向图是完全相同的。每台路由器根据有向图,使用SPF算法计算出一棵以自己为根的最短路径树,这棵树给出了到自治系统中各节点的路由。路由器ID一台路由器如果要运行OSPF协议,则必须存在RID(RouterID,路由器ID)。RID是一个32比特无符号整数,可以在一个自治系统中唯一的标识一台路由器。RID可以手工配置,也可以自动生成;如果没有通过命令指定RID,将按照如下顺序自动生成一个RID:如果当前设备配置了Loopback接口,将选取所有Loopback接口上数值最大的IP地址作为RID;如果当前设备没有配置Loopback接口,将选取它所有已经配置IP地址且链路有效的接口上数值最大的IP地址作为RID。OSPF五种类型的协议报文Hello报文:周期性发送,用来发现和维持OSPF邻居关系。内容包括一些定时器的数值、DR(DesignatedRouter,指定路由器)、BDR(BackupDesignatedRouter,备份指定路由器)以及自己已知的邻居。DD(DatabaseDescription,数据库描述)报文:描述了本地LSDB中每一条LSA的摘要信息,用于两台路由器进行数据库同步。OSPF五种类型的协议报文LSR(LinkStateRequest,链路状态请求)报文:两台路由器互相交换DD报文之后,得知对端的路由器有哪些LSA是本地的LSDB所缺少的,这时需要发送LSR报文向对方请求所需的LSA。内容包括所需要的LSA的摘要。LSU(LinkStateUpdate,链路状态更新)报文:向对方发送其所需要的LSA。LSAck(LinkStateAcknowledgment,链路状态确认)报文:用来对收到的LSA进行确认。内容是需要确认的LSA的Header(一个报文可对多个LSA进行确认)。OSPF区域划分路由器数量的增多会导致LSDB非常庞大,占用大量的存储空间,并使得运行SPF算法的复杂度增加,导致CPU负担很重。在网络规模增大之后,拓扑结构发生变化的概率也增大,网络会经常处于“振荡”之中,造成网络中会有大量的OSPF协议报文在传递,降低了网络的带宽利用率。更为严重的是,每一次变化都会导致网络中所有的路由器重新进行路由计算。OSPF区域划分(续)OSPF协议通过将自治系统划分成不同的区域(Area)来解决上述问题。区域是从逻辑上将路由器划分为不同的组,每个组用区域号(AreaID)来标识。区域的边界是路由器,而不是链路。一个网段(链路)只能属于一个区域,或者说每个运行OSPF的接口必须指明属于哪一个区域。划分区域后,可以在区域边界路由器上进行路由聚合,以减少通告到其他区域的LSA数量,还可以将网络拓扑变化带来的影响最小化。OSPF路由器的类型OSPF路由器根据在AS中的不同位置,可以分为以下四类:区域内路由器(InternalRouter),该类路由器的所有接口都属于同一个OSPF区域。区域边界路由器ABR(AreaBorderRouter),该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域(骨干区域的介绍请参见下一小节)。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。OSPF路由器的类型(续)骨干路由器(BackboneRouter),该类路由器至少有一个接口属于骨干区域。因此,所有的ABR和位于Area0的内部路由器都是骨干路由器。自治系统边界路由器ASBR,与其他AS交换路由信息的路由器称为ASBR。ASBR并不一定位于AS的边界,它有可能是区域内路由器,也有可能是ABR。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。路由聚合路由聚合是指ABR或ASBR将具有相同前缀的路由信息聚合,只发布一条路由到其它区域。AS被划分成不同的区域后,区域间可以通过路由聚合来减少路由信息,减小路由表的规模,提高路由器的运算速度。Area1内有三条区域内路由/24,/24,/24,如果此时在RouterA上配置了路由聚合,将三条路由聚合成一条/16,则RouterA就只生成一条聚合后的LSA,并发布给Area0中的其他路由器。OSPF的4种网络类型Broadcast:当链路层协议是Ethernet、FDDI时,OSPF缺省认为网络类型是Broadcast。在该类型的网络中,通常以组播形式(和)发送协议报文。NBMA(Non-BroadcastMulti-Access,非广播多路访问):当链路层协议是帧中继、ATM或X.25时,OSPF缺省认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文。OSPF的4种网络类型P2MP(Point-to-MultiPoint,点到多点):没有一种链路层协议会被缺省的认为是P2MP类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将NBMA改为点到多点的网络。在该类型的网络中,以组播形式()发送协议报文。P2P(Point-to-Point,点到点):当链路层协议是PPP、HDLC时,OSPF缺省认为网络类型是P2P。在该类型的网络中,以组播形式()发送协议报文。DR/BDR在广播网和NBMA网络中,任意两台路由器之间都要交换路由信息。如果网络中有n台路由器,则需要建立n(n-1)/2个邻接关系。这使得任何一台路由器的路由变化都会导致多次传递,浪费了带宽资源。为解决这一问题,OSPF协议定义了指定路由器DR(DesignatedRouter),所有路由器都只将信息发送给DR,由DR将网络链路状态发送出去。用实线代表以太网物理连接,虚线代表建立的邻接关系。可以看到,采用DR/BDR机制后,5台路由器之间只需要建立7个邻接关系就可以了。DR/BDR(续)如果DR由于某种故障而失效,则网络中的路由器必须重新选举DR,再与新的DR同步。这需要较长的时间。为了能够缩短这个过程,OSPF提出了BDR(BackupDesignatedRouter,备份指定路由器)的概念。BDR实际上是对DR的一个备份,在选举DR的同时也选举出BDR,BDR也和本网段内的所有路由器建立邻接关系并交换路由信息。当然这时还需要再重新选举出一个新的BDR,虽然一样需要较长的时间,但并不会影响路由的计算。DR/BDR(续)DR和BDR之外的路由器(称为DROther)之间将不再建立邻接关系,也不再交换任何路由信息。这样就减少了广播网和NBMA网络上各路由器之间邻接关系的数量。BGP边界网关协议BGP最新的版本是BGP第4版本(BGP4),它是在RFC4271中定义的;一个路由器只能属于一个AS。AS的范围从1-65535(64512-65535是私有AS号),RFC1930提供了AS号使用指南。
BGP的主旨是提供一种域间路由选择系统,确保自主系统只能够无环地交换路由选择信息,BGP路由器交换有关前往目标网络的路径信息。
BGP是一种基于策略的路由选择协议,BGP在确定最佳路径时考虑的不是速度,而是让AS能够根据多种BGP属性来控制数据流的传输。BGP的特性BGP将传输控制协议(TCP)用作其传输协议。是可靠传输,运行在TCP的179端口上(目的端口)。由于传输是可靠的,所以BGP0使用增量更新。在可靠的链路上不需要使用定期更新,所以BGP使用触发更新。BGP使用keepalive周期性地发送存活消息(60s)(维持邻居关系)。丰富的属性值,可以组建可扩展的巨大的网络。BGP的三张表邻居关系表,所有BGP邻居。转发数据库,记录每个邻居的网络,包含多条路径去往同一目的地,通过不同属性判断最好路径,数据库包括BGP属性。路由表,最佳路径放入路由表中,EBGP路由(从外部AS获悉的BGP路由)的管理距离为20,IBGP路由(从AS系统获悉的路由)管理距离为200。Router#sh
ip
bgp
summary
BGP
router
identifier
,
local
AS
number
100
BGP
table
version
is
8,
main
routing
table
version
8
5
network
entries
using
585
bytes
of
memory
6
path
entries
using
312
bytes
of
memory
4/3
BGP
path/bestpath
attribute
entries
using
496
bytes
of
memory
1
BGP
AS-PATH
entries
using
24
bytes
of
memory
0
BGP
route-map
cache
entries
using
0
bytes
of
memory
0
BGP
filter-list
cache
entries
using
0
bytes
of
memory
BGP
using
1417
total
bytes
of
memory
BGP
activity
5/0
prefixes,
6/0
paths,
scan
interval
60
secs
Neighbor
V
ASMsgRcvdMsgSentTblVerInQOutQUp/Downtate/PfxRcd4100141880000:09:3224200121680000:07:031BGP的邻居关系表BGP的转发表Router#shipbgpBGPtableversionis8,localrouterIDisStat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《新能源汽车电池及管理系统检修》课件-动力电池发展趋势
- 肿瘤科护理人员的专业素养
- 2026年从虚拟到现实:元宇宙构建技术基石
- 2026年肾俞穴补肾强腰与泌尿保健
- 2026年计算机软件著作权登记与保护培训
- 2026年政府机构视觉形象系统设计规范与趋势
- 2026年幼师公开课准备与磨课技巧
- 2026年理科教研组集体备课总结
- 2026年红色旅游产学研基地建设可行性
- 2026年医疗器械药物涂层技术进展
- 中考英语作文专题训练-电子邮件50题(含范文)
- 河南《12系列建筑标准设计图集》目录
- 现场总线CAN试题
- (2023修订版)中国电信应急通信岗位认证考试题库大全-单选题部分
- GB/T 1406.1-2008灯头的型式和尺寸第1部分:螺口式灯头
- GB 17840-1999防弹玻璃
- 高分子化工概述
- 光谱电化学课件
- 燃料供应预警及应急预案(终版)
- 满堂支架拆除技术交底
- DF4内燃机车电路图
评论
0/150
提交评论