当前位置: 首页 > news >正文

专业网站建设案例长沙长沙h5网站建设

专业网站建设案例,长沙长沙h5网站建设,杭州网站建设规划,开网站做网站文章目录网络层概述网络层提供的两种服务IPv4地址IPv4地址概述分类编址的IPv4地址划分子网的IPv4地址无分类编址的IPv4地址IPv4地址的应用规划IP数据报的发送和转发过程静态路由配置及其可能产生的路由环路问题路由选择路由选择协议概述路由信息协议RIP的基本工作原理开放最短路… 文章目录网络层概述网络层提供的两种服务IPv4地址IPv4地址概述分类编址的IPv4地址划分子网的IPv4地址无分类编址的IPv4地址IPv4地址的应用规划IP数据报的发送和转发过程静态路由配置及其可能产生的路由环路问题路由选择路由选择协议概述路由信息协议RIP的基本工作原理开放最短路径优先OSPF的基本工作原理边界网关协议BGP的基本工作原理IPv4数据报的首部格式网际控制报文协议ICMP虚拟专用网VPN与网络地址转换NAT网络层概述 网络层的主要任务是实现网络互连进而实现数据包在各网络之间的传输 如图所示这些异构型网络如果只是需要各自内部通信他们只要实现各自的物理层和数据链入层即可但是如果需要将这些异构型网络互连起来形成一个更大的互联网就需要使用网络层互联设备路由器。 需要说明的是为了简单起见有时我们可以不用画出这些网络而将他们看作是一条链路即可。 对于互联网而言仅实现计算机网络体系结构中的物理层和数据链路层是不能实现数据包在互联网中各网络之间传输的要实现该功能就要必须实现网络层网络层需要解决以下主要问题 向运输层提供怎么样的服务寻址问题路由选择问题 接下来我们一个个来看看。 首要问题是网络层应该向其上面的运输层提供怎样的服务是可靠传输服务还是不可靠传输服务我们在之前的文章中曾介绍过数据包在传输过程中可能会出现误码也有可能由于路由器繁忙而被路由器丢弃还有可能出现按序发送的数据包不能按序到达接收方。 如果网络层对于上述传输错误不采取任何措施则提供的是不可靠传输服务。如果网络层对于上述传输错误采取措施并使得接收方能正确接收发送方所发送的数据包则提供的是可靠传输服务。不同网络体系结构所提供的服务可能是不同的。例如因特网使用的tcpip协议体系的网际层提供的是无连接的不可靠的数据报服务而ATM帧中继和X.25的网络层提供的都是面向连接的可靠的虚电路服务。 网络层需要解决的第二个主要问题是寻址问题例如TCP/IP协议体系的网际层使用IP地址我们来举例说明 网络N1上两个路由器接口各自所分配的IP地址它们的前三个数是相同的可以看作是他们所在网络的网络编号而第4个数各不相同用于区分这两个不同的路由器接口网络N3上两个路由器接口各自所分配的IP地址它们的前两个数是相同的可以看作是他们所在网络的网络编号而后两个数不完全相同用于区分这两个不同的路由器接口网络N7上两个路由器接口各自所分配的IP地址它们的第一个数是相同的可以看作是他们所在网络的网络编号而后三个数不完全相同用于区分这两个不同的路由器接口。 网络层需要解决的第三个主要问题是路由选择问题。我们来举例说明如图所示 数据包从原站到达目的站可以走上面那条路径也可以走下面那条路径。对于本例还有其他路径可走我们就要不一一演示了。 那么路由器收到数据包后是依据什么来决定将数据包从自己的哪个接口转发出去的呢 依据的是数据包中的目的地址和路由器中的路由表 ‍ 例如这是路由器R1的路由表里面记录着路由器、R1所知道的网络以及数据包要到达这些网络应该从自己的哪个接口转发。假设R1知道数据包要到达网络N7下一跳应将其转发给路由器R4则路由表中应该有这样一条记录而数据包要到达网络N6下一跳应将其转发给路由器R2则路由表装应该有这样一条记录。 请大家想想看刚才是我们假设而已知道这些路由记录但在实践当中路由器是如何得出这样的路由记录呢有两种方法 一种是由用户或网络管理员进行人工配置这种方法只适用于规模较小且网络拓扑不改变的小型互联网。另一种是实现各种路由选择协议由路由器执行路由选择协议中所规定的路由选择算法而自动得出路由表中的路由记录。这种方法更适用于规模较大且网络拓扑经常改变的大型互联网。 因特网是目前全世界用户数量最多的互联网它使用4层协议体系的TCPIP协议站如图所示由于TCPIP协议站的网络层需要网际协议IP它是整个协议站的核心协议。因此在TCP IP协议战中网络层常称为网际层。 内容小结 网络层提供的两种服务 网络层提供的两种服务 一种是面向连接的虚电路服务另一种是无连接的数据报服务 虚电路服务 数据报服务 内容小结 IPv4地址 IPv4地址概述 IPv4地址的基本概念 在TCP/IP体系中IP地址是一个最基本的概念我们必须把它弄清楚。IPv4地址就是给因特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符。IP地址由因特网名字和数字分配机构ICANNThe Internet Corporation for Assigned Names and Numbers进行分配。 我国用户可向亚太网络信息中心Asia-Pacific Network Information CenterAPNIC申请IP地址这需要缴纳费用一般并不接受个人申请。2011年2月3日因特网号码分配管理局宣布IPv4地址已经分配完毕我国在2014~2015年也逐步停止了向新用户和应用分配IPV4、地址同时全面开展商用部署IPV6 IPV4地址的编制方法经历了如下三个历史阶段我们在后面会详细介绍: 由于32比特的IPV4地址不方便阅读记录以及输入等因此IPV4地址采用点分十进制表示方法以方便用户使用。 关于二进制的转换等计算在此不赘述 内容小结 分类编址的IPv4地址 这里我们介绍IPv4地址编制方法的第一个历史阶段也就是分类编制的IPv4地址 分类编制的IPv4地址分为ABCDE 5类 A类地址的网络号部分占8比特主机号部分占24比特网络号的最高位固定为零B类地址的网络号部分和主机号部分各占16比特网络号的最高两位固定为10C类地址的网络号部分占24个比特主机号部分占8个比特网络号的最高3位固定为110D类地址是多播地址其最高4位固定为1110E类地址是保留地址及最高4位固定为1111需要注意的是只有A类B类和C类地址可分配给网络中的主机或路由器的各接口。主机号为全0的地址是网络地址不能分配给主机或路由器的各接口主机号为全1的地址是广播地址不能分配给主机或路由器的各接口 8位网络号的最高位固定为0第7位全部取0时就是A类网络的最小网络号其十进制值为0该网络号被保留不能指派。 因此A类网络第一个可指派的网络号为最高位固定为0低7位为000 0001其十进制值为1将24位的主机号全部取0就可以得到该网络的网络地址且点分十进制为1.0.0.0 当8位网络号的第7位全部取1时就是A类网络的最大网络号其十进制值为127该网络号被用于本地软件环回测试不能指派 将127开头的IPv4地址的主机号部分的最低位取1其他位取0就可得到最小的本地软件环回测试地址且点分十进制为127.0.0.1 将127开头的IPv4地址的主机号部分的最低位取0其他位取1就可得到最大的本地软件环回测试地址且点分十进制为127.255.255.254 因此A类网络最后一个可指派的网络号为最高为固定为0低7位为1111 11010进制值为126将24位的主机号全部取0就可以得到该网络的网络地址且点分10进制为126.0.0.0。 可指派的A类网络的数量是多少我们可以写出这样的表达式由于网络号占8位并且其最高位固定为0因此网络号有2的8减一次的组合-2的原因需要去掉最小网络号0和最大网络号127他们不能指派 每个A类网络中可分配的IP地址数量是多少呢我们可以写出这样的表达式由于主机号占24位因此主机号有2~24次方个组合-2的原因是要去掉主机号为全0的网络地址 和主机号为全1的广播地址。 也就是说一个IP地址的第一个数如果是1~126就是A类地址 再来看B类地址的细节16位网络号的最高两位固定为10 低14位全部取0时就是B类网络的最小网络号且点分时进制为128.0。该网络号是B类网第一个可指派的网络号将16位的主机号全部取0就可以得到该网络的网络地址且点分十进制为128.0.0.016位网络号的最高两位固定为10低14位全部取一时就是B类网络的最大网络号且点分时进制为191.255该网络号是B类网最后一个可指派的网络号将16位的主机号全部取0就可以得到该网络的网络地址且点分时进制为191.255.0.0。可指派的B类网络的数量是多少我们可以写出这样的表达式。由于网络号占16位并且其最高两位固定为10因此网络号有2~16-2次个组合每个B类网络中可分配的IP地址数量又是多少我们可以写出这样的表达式。由于主机号占16位因此主机号有2的16 次个组合-2的原因是要去掉主机号为全0的网络地址和主机号为全一的广播地址。需要说明的是有些教材中指出128.0是保留网络号B类第一个可指派的网络号为128.1但根据2002年9月发表的RFC3330文档128.0网络号已经可以分配了有兴趣的同学可以自行查询以128.0开头的IP地址看看他们属于哪些国家。也就是说IP地址第一个开头的如果是128~191就是B类地址 再来看C类地址的细节24位网络号的最高三位固定为110 低21位全部取0时就是C类网络的最小网络号且点分时进制为192.0.0该网络号是C类网第一个可指派的网络号将8位的主机号全部取0就可以得到该网络的网络地址且点分十进制为192.0.0.024位网络号的最高三位固定为110低21位全部取1是就是C类网络的最大网络号写点分十进制为223.255.255该网络号是C类网最后一个可指派的网络号将8位的主机号全部取0就可以得到该网络的网络地址其点十时进制为223.255.255.0。可指派的C类网络的数量是多少呢我们可以写出这样的表达式由于网络号占24位并且其最高三位固定为110因此网络号有2的24减3次个组合。每个C类网络中可分配的IP地址数量是多少我们可以写出这样的表达式。由于主机号占8位因此主机号有2的8次方个组合减2的原因是要去掉主机号为全名的网络地址和主机号为全1的广播地址。需要注意的是有些教材中指出192.0.0是保留网络号C类第一个可指派的网络号为192.0.1但根据2002年9月发表的RFC3330文档192.0.0网络号已经可以分配了只不过目前还没有分配出去。也就是说IP地址第一个开头的如果是192~223就是C类地址 第一题 第二题 这里的源地址和目标地址表示的是 在路由器通信中,IP数据包中一般有2个IP地址,一个是源IP,另外一个是目标IP地址;源IP地址就是发出这个数据包的电脑的IP地址,它是数据的来源;目标IP地址就是数据最终要到达的那台电脑的IP地址; 第三题 步骤 首先应该找出图中都有哪些网络(在图中已经标出橙色区、蓝色区、粉色区、绿色区注意两台路由器通过一段链路直连他们的直连接口也属于同一个网络)之后可以根据各网络中主机和路由器接口总数量来决定给各网络分配哪个类别的网络号。橙色区网络的主机数量为65534加上一个路由器接口需要可分配的IP地址数量为65535只能给该网络分配一个A类网络号蓝色区网络的主机数量为254加上一个路由器接口需要可分配的IP地址数量为255可以给该网络分配一个A类或B类网络号。本着节约IP地址的原则给该网络分配一个B类网络号绿色区网络的主机数量为40再加上一个路由器接口需要可分配的IP地址数量为41给该网络分配一个A类B类或C类网络号都可以本着节约IP地址的原则给该网络分配一个C类网络号粉色区网络没有主机只有两个路由器接口需要可分配的IP地址数量为2给该网络分配一个A类B类或C类网络号都可以。本着节约IP地址的原则给该网络分配一个C类网络号依据所确定的网络号类别为每个网络挑选一个网络号A类网络号的取值范围是1~126可在该范围内挑选一个网络号分配给网络B类网络号的取值范围是128.0 ~191.255可在该范围内选一个网络号分配给网络C类网络号的取值范围是192.0.0 ~223.255.255可在该范围内挑选一个网络号分配给网络不同网络的网络号不能相同网络号分配完毕后就可给各网络中的各主机和路由器的各接口分配IP地址了需要注意的是所分配的IP地址应该互不相同并且其主机号部分不能出现全0因为这是网络地址也不能出现全1因为这是广播地址网络地址或广播地址都不能分配给主机或路由器的各接口因为他们无法唯一标识一台主机或路由器的某个接口 内容小结 划分子网的IPv4地址 这里我们介绍IPv4地址编制方法的第二个历史阶段也就是划分子网的IPv4地址。 我们首先来举例说明为什么会出现划分子网这样的需求如图所示某单位有一个大型的局域网需要连接到因特网如果申请一个C类网络地址其可分配的IP地址数量只有254个不够使用。因此该单位申请了一个B类网络地址其可分配的IP地址数量达到了65,534个给每台计算机和路由器的接口分配一个IP地址后还有大量的IP地址剩余。 这些剩余的IP地址只能由该单位的同一个网络使用而其他单位的网络不能使用。随着该单位计算机网络的发展和建设该单位又新增了一些计算机并且需要将原来的网络划分成三个独立的网络我们称其为子网一、子网二和子网三。假设子网一仍然使用原先申请到的B类网络地址那么就需要为子网二和子网三各自申请一个网络地址但这样会存在一些弊端申请新的网络地址需要等待很长的时间并且要花费更多的费用。 即便申请到了两个新的网络地址这也会使其他路由器的路由表新增针对这两个新的网络的路由记录。另外这样还会浪费原有网络中剩余的大量IP地址。 如果可以从IP地址的主机号部分借用一些位作为子网号来区分不同的子网就可以利用原有网络中剩余的大量IP地址而不用申请新的网络地址。 例如对于本例我们可以借用16位主机号中的8位作为子网号假设我们给子网一分配的子网号为0给子网二分配的子网号为1给子网三分配的子网号为2之后就可以给各子网中的主机和路由器接口分配IP地址了。 现在请大家思考这样一个问题如果我们未在图中标记子网号部分那么我们和计算机又是如何知道分类地址中主机号有多少位被用作了子网号 这样我们就引出了一个划分子网的工具他就是子网掩码32比特的子网掩码可以表明分类IP地址的主机号部分被借用了几位作为子网号。 如图所示这是32比特的分类IPv4地址它有网络号和主机号两部分构成。 当我们从主机号部分借用一些位作为子网号时IP地址从两级结构的分类IP地址变成了三级结构的划分子网的IP地址我们用连续的比特1来对应网络号和子网号用连续的比特0来对应主机号这样就构成了划分子网的IP地址的32比特的子网掩码 将划分子网的IP地址与相应的子网掩码进行逻辑与运算也就是逐比特相与就可得到IP地址所在子网的网络地址如图所示这样网络号和子网号被保留而主机号被清零结果为IP地址所在子网的网络地址。 接下来我们来举例说明划分子网的细节已知某个网络的地址为218.75.230.0使用子网掩码255.255.255.128对其进行子网划分给出划分细节 注意由于原来的8位主机号被借走一位作为子网号因此主机号还剩7位这就是表达式中8-1的原因可有2的7次方个组合但是我们还要去掉主机号为全0的网络地址和全1的广播地址这就是表达式中-2的原因。 我们来看看题目所给的C类网地址218.75.230.0的细节 接下来我们引入子网再来看看细节 最后我们介绍默认子网掩码的概念默认子网掩码是指在未划分子网的情况下使用的子网掩码概念较为简单 内容小结 无分类编址的IPv4地址 这里我们介绍IPv4地址编制方法的第三个历史阶段也就是无分类编制的IPv4地址 我们来看一个例子请给出CIDR地址块128.14.35.7/20的全部细节 注意 这里是最小和最大地址而不是最小和最大可分配地址。聚合C类网数量就是地址数量除以C类网的主机数量 接下来我们介绍CIDR中有关路由聚合的概念路由聚合也称为构造超网。我们来举例说明如图所示路由器R1与5个网络以及路由器R2直接相连路由器R1和R2互为相邻路由器它们周期性的通告自己所知道的路由信息给对方。请大家思考一下R1应该将怎样的路由信息通告给R2 如果R1将自己直连的这5个网络的路由记录都通告给R则R的路由表会增加5条路由记录为了减少路由记录对路由表的占用能否将这5条路由记录聚合成1条 ‍ 答案是肯定的其方法是找共同前缀也就是找出这5个目的网络地址的共同前缀这5个目的网络地址的左起前2个字节都是相同的从第三个字节开始不同因此只需将第三个字节转换成二进制形式这样就可以很容易找出这5个目的网络地址的共同前缀共22个比特我们将其记为斜线22将共同前缀保持不变而剩余的10个比特全部取0然后写成点分10进制形式放在斜线22的前面这就是聚合后的地址块也可以称为超网。 通过本地我们还可以看出网络前缀越长地址块越小路由就越具体。需要说明的是若路由器查表转发分组时发现有多条路由可选则选择网络前缀最长的那条这称为最长前缀匹配因为这样的路由更具体。 接下来我们看两个题 内容小结如下 IPv4地址的应用规划 这里我们介绍IPv4地址的应用规划也就是给定一个IPv4地址块如何将其划分成几个更小的地址块并将这些地址块分配给互联网中的不同网络进而可以给各网络中的主机和路由器接口分配IPv4地址一般有以下两种方法: 一种是采用定长的子网掩码进行划分。就是使用同一个子网掩码来划分子网 采用定长的子网掩码来划分子网每个子网所分配的IP地址数量相同容易造成IP地址浪费 另一种是采用变长的子网掩码进行划分。就是使用不同的子网掩码来划分子网 采用变长的子网掩码来划分子网每个子网所分配的IP地址数量可以不相同尽可能减少了对IP地址的浪费。 接下来我们举例说明采用定长的子网掩码划分子网的方法假设我们申请到了一个C类网络218.75.230.0要使用定长的子网掩码给图中所示的小型互联网中的各设备分配IP地址。 这是所申请到的C类网地址218.75.230.0这是它的3字节网络号这是它的1字节主机号我们需要从主机号部分借用3个比特作为子网号这样可划分出的子网数量为2的3次方个也就是8个可以满足我们对子网数量的要求而每个子网上的地址数量为2的8-3次个也就是32个可以满足我们对子网上IP地址数量的要求。这样我们就可以得出划分子网所需的子网掩码用3个10进制数255来对应网络号部分也就是用24个连续的比特1来对应网络号而最后8个比特为1110 0000其中3个连续的比特1表示从主机号部分借用三个比特作为子网号将这8比特写成10进制数为224。 接下来我们来看划分子网的细节 这是24比特网络号部分这是从主机号部分借用的3比特作为子网号部分这是剩余的5比特主机号部分这是子网1的网络地址这是它的点分十进制形式将网络号和子网号保持不变主机号从5个比特0增长到5个比特1就可得到子网一的广播地址这是它的点分十进制形式。这是比子网1的网络地址大1的地址它是子网1上个分配给主机或路由器接口的最小地址这是他的点分时进制形式这是比子网1的广播地址小1的地址它是子网1上可分配给主机或路由器接口的最大地址这是它的点分十进制形式这是比子网1的广播地址大1的地址它是子网2的网络地址这是它的点分10进制形式 将网络号和子网号保持不变主机号从5个比特0增长到5个比特1就可得到子网2的广播地址这是它的点分10进制形式这是比子网2的网络地址大1的地址它是子网2上可分配给主机或路由器接口的最小地址这是它的点分十进制形式这是比子网2的广播地址小1的地址它是子网2上可分配给主机或路由器接口的最大地址这是它的点分十进制形式这是比子网2的广播地址大1的地址它是子网3的网络地址这是它的点分十进制形式以此类推我们可以得到划分子网的全部细节 现在我们就可以从子网1~8中任选5个分配给图中的网络N1到N5。通过本地可以看出采用定长的子网掩码进行子网划分只能划分出二的N次方个子网其中N是从主机号部分借用的用来作为子网号的比特数量每个子网所分配的IP地址数量相同容易造成IP地址的浪费。 例如图中的网络5只需要4个IP地址但是我们只能给他分配32个IP地址这样就造成了IP地址的严重浪费。 接下来我们举例说明使用变长的子网掩码划分子网的方法本例与之前的例子基本一样只是划分子网的方法改为采用变长的子网掩码。 既然网络N1需要9个地址那么分配给网络N1的地址的主机号应为4个比特因为2的4次方等于16这样网络N1就可有16个地址。由于使用4个比特作为主机号因此剩余28个比特可作为网络前缀。 既然网络N2需要28个地址那么分配给网络N2的地址的主机号应该为5个比特因为2的5次方等于32这样网络N2就可有32个地址由于使用5个比特作为主机号因此剩余27个比特可作为网络前缀 以此类推我们将所得出的各网络所需地址块的大小标注在它们各自的旁边这样我们就可得到本例的应用需求 也就是从地址块218.75.230.0/24中取出5个地址块按需分配给图中所示的5个网络218.75.230.0/24地址块所包含的全部地址如下所示我们需要在该地址块中给图中所示的网络N1到N5分配子块分配的原则是每个子块的起点位置不能随意选取只能选取块大小整数倍的地址作为起点建议大家先给大的子块进行分配。 分配结果如下 通过本例可以看出采用变长的子网掩码进行子网划分可以按需划分出相应数量的子网每个子网所分配到的IP地址数量可以不相同尽可能减少了对IP地址的浪费。例如图中的网络5只需要4个IP地址我们也非常精确的给他分配了4个IP地址没有造成IP地址的浪费。 内容小结 IP数据报的发送和转发过程 IP数据报的发送和转发过程包含以下两部分 一部分是主机发送IP数据报另一部分是路由器转发IP数据报 需要说明的是为了将重点放在TCP协议站的网际层发送和转发IP数据报的过程上在接下来的举例中我们将忽略使用ARP协议来获取目的主机或路由器接口的MAC地址的过程以及以太网交换机自学习和转发帧的过程。下面我们就来举例说明IP数据报的发送和转发过程。 在下图所示的小型互联网中路由器的接口0直连了1个交换式以太网接口1也直连了一个交换式以太网 同一个网络中的主机之间可以直接通信这属于直接交付不同网络中的主机之间的通信需要通过路由器来中转这属于间接交付 那么源主机如何判断出目的主机是否与自己在同一个网络中 我们来举例说明 假设主机C要给主机F发送IP数据报主机C将自己的IP地址和子网掩码相与就可以得到主机C所在网络的网络地址。 既然主机C要给主机F发送IP数据报主机C肯定知道主机F的IP地址否则就没法发送了。主机C将主机F的IP地址与自己的子网掩码相遇就可得到目的网络地址 该地址与主机C的网络地址不相等因此主机C就知道了主机F与自己不在同一个网络他们之间的通信属于间接交付主机C需要将IP数据报传输给路由器由路由器将IP数据报转发给主机F 那么主机C又是如何知道应该把IP数据报交给哪个路由器进行转发呢 实际上用户为了让本网络中的主机能和其他网络中的主机进行通信就要必须给其指定本网络中的一个路由器由该路由器帮忙进行转发所指定的路由器也被称为默认网关。 对于本例我们可以将路由器接口0的IP地址指定给该接口所直连网络中的各个主机作为默认网关。同理可将路由器接口1的IP地址指定给该接口所直连网络中的各个主机作为默认网关这样当本网络中的主机要和其他网络中的主机进行通信时会将IP数据报传输给默认网关由默认网关帮主机将IP数据报转发出去 假设本例中的主机A要给主机D发送IP数据报这属于间接交付主机A会将该IP数据报传输给自己的默认网关也就是图中所示的路由器。 那么当路由器收到IP数据报后又是如何转发的呢 路由器首先会检查IP数据报的首部是否出错若出错则丢弃该IP数据报并通告源主机若没有出错则进行转发。然后路由器根据IP数据报首部中的目的地址在自己的路由表中查找匹配的路由条目 若找到匹配的路由条目则转发给路由条目中指示的下一跳若找不到则丢弃该IP数据报并通告源主机。 为了简单起见我们假设本地中的IP数据报首部没有出现差错路由器取出IP数据报首部各地址字段的值源地址字段的值为主机A的IP地址目的地址字段的值为主机D的IP地址接下来路由器就要对该IP数据报进行查表转发了。 当我们给路由器的接口配置IP地址和子网掩码时路由器就知道了自己的该接口与哪个网络是直连的。例如在本例中接口0所直连的网络是192.168.0.0相应的地址源码为255.255.255.128不需要下一跳路由器因为接口0与该网络是直连的接口1所直连的网络是192.168.0.128相应的地址源码为255.255.255.128不需要下一跳路由器因为接口1与该网络是直连的 需要说明的是路由表中可能还会有其他路由条目这可以是用户或网络管理员手工配置的静态路由也可以是路由器使用路由协议自动获取到的动态路由。 接下来路由器根据IP数据报的目的地址在自己的路由表中查找匹配的路由条目。逐条检查路由条目将目的地址与路由条目中的地址掩码相与得到目的网络地址看和路由表中的是否吻合。如果吻合则该条路由条目就是匹配的路由条目按照他的下一跳指示也就是从接口1转发该IP数据报这样主机D就可以收到路由器转发来的该IP数据报。 需要说明的是我们这里所介绍的路由器查表转发IP数据报的过程只是为了让同学们理解其最基本的工作原理在路由器的实际研发过程中需要设计很好的数据结构以便提高查找速度。 ‍再来看这种情况假设主机A给本网络上的各设备发送了一个广播IP数据报在数据报首部中的目的地址字段可以填写的目的地址为192.168.0.127这是本网络的广播地址也可以填写255.255.255.255这是受限的广播地址。该网络中的各设备都会收到该广播IP数据报但是路由器收到后并不会转发该数据报也就是说路由器是隔离广播域的这是很有必要的。 试想一下如果因特网中数量巨大的路由器收到广播IP数据报后都进行转发则会造成巨大的广播风暴严重浪费因特网资源。同理主机A给另一个网络发送广播IP数据报在数据报首部中的目的地址字段填写的目的地址为192.168.0.255这是网络192.168.0.128的广播地址。主机A将该广播IP数据报传输给路由器希望由路由器帮其转发但路由器判断出这是广播IP数据报不会转发。 内容小结如下 ‍ 静态路由配置及其可能产生的路由环路问题 静态路由配置是指用户或网络管理员使用路由器的相关命令给路由器人工配置路由表这种人工配置方式简单开销小但不能及时适应网络状态流量、拓扑等的变化一般只在小规模网络中 使用静态路由配置可能出现以下导致产生路由环路的错误 配置错误聚合了不存在的网络网络故障 接下来我们首先举例说明静态路由配置 我们采用如图所示的网络拓扑和相应的IP地址配置。路由器R1通过自己的接口0所配置的IP地址和地址掩码可以自动得出接口0所在的网络。由于接口0与该网络直连则下一跳不是路由器地址而是通过接口0转发IP数据报给该网络中的某个主机这属于直接交付。这条自动得出的路由条目的类型属于直连路由。同理R1还可自行得出接口1的直连网络路由条目。路由器R2同样如此 假设R1要转发1个IP数据报给该网络中的某个主机从图中可以看出R1应该将该IP数据报转发给路由器R2的接口0 但R1的路由表中并没有关于该目的网络的路由条目换句话说R1并不知道目的网络的存在。因此我们可以使用路由器的相关配置命令给R1添加1条到达该目的网络的路由条目下1跳为路由器R2的接口0的地址该路由条目是我们人工配置的静态路由 假设R2要转发1个IP数据报给该网络中的某个主机从图中可以看出R2应该将该IP数据报转发给路由器R1的接口1但R2的路由表中并没有关于该目的网络的路由条目因此我们可以给R2添加1条到达该目的网络的路由条目。下1跳为路由器R1的接口1的地址类型为静态。以上就是我们举例说明的静态路由配置。 接下来我们举例说明默认路由的概念 假设路由器R的接口2连接到了因特网假设R1要转发1个IP数据报给因特网中某个网络中的某个主机从图中可以看出R1应该将该IP数据报转发给路由器R的接口0。由于因特网中包含了众多的网络如果我们给R1添加针对这些网络的每1条路由条目则会给人工配置带来巨大的工作量并且使R1的路由表变得非常大降低了查表转发的速度。 实际上对于具有相同下一跳的不同目的网络的路由条目我们可以用一条默认路由条目来替代。默认路由条目中的目的网络地址为0.0.0.0地址掩码也为0.0.0.0其CIDR形式为0.0.0.0/0。对于本例默认路由条目中的下一跳是路由器R2的接口0的地址。 由于默认路由也是由我们人工配置的因此其类型也是静态。在配置了默认路由条目后我们甚至可以删除这条路由条目。 接下来我们举例说明特定主机路由的概念 有时候我们可以给路由器添加针对某个主机的特定主机路由条目一般用于网络管理人员对网络的管理和测试。另外在需要考虑某种安全问题时也可以采用特定主机路由 假设192.168.2.1是该网络中的某台特定主机我们可以在R1的路由表中添加1条到达该主机的特定主机路由条目。特定主机路由条目中的目的网络地址为该特定主机的IP地址地址掩码为255.255.255.255其CIDR形式为特定主机IP地址斜线32。对于本例特定主机路由条目中的下一跳是路由器R2的接口0的地址。由于特定主机路由也是由我们人工配置的因此其类型也是静态。 可以看出特定主机路由的目的网络前缀最长路由最具体默认路由的目的网络前缀最短路由最模糊当路由器查表转发IP数据报时若有多条路由条目可选则采用最长前缀匹配的原则选用目的网络前缀最长的路由条目进行转发 接下来我们举例说明静态路由配置错误可能导致的路由环路问题如图所示这是各路由器自动得出的直连网络这是我们给各路由器人工配置的静态路由。 我们来看看路由器R2中的这条人工配置的静态路由条目它表明 R2要转发IP数据报到该网络下一跳应转发给R1的接口1 假设我们将下一跳错误的配置成了该地址也就是错误的指向了R3的接口0则当R2要转发IP数据报到该网络时下一跳会错误的转发给路由器R3的接口0R3收到该IP数据报后进行查表转发找到了匹配的路由条目下一跳应该转发给该地址也就是转发给R的接口1 R2收到该IP数据报后进行查表转发找到了匹配的路由条目下一跳应该转发给该地址也就是转发给R3的接口0。很显然由于我们静态路由配置错误导致R2和R3之间产生了路由环路。 为了防止IP数据报在路由环路中永久兜圈在IP数据报首部设有生存时间、TTL字段。IP数据报进入路由器后TTL字段的值被路由器减1若TTL字段的值减1号不等于0则被路由器转发否则被丢弃。 我们再来举例说明聚合了不存在的网络可能导致的路由环路问题 如下是路由器R1的路由表 这是路由器R2的路由表: 我们给其人工配置了1条聚合路由它是由图中两个网络地址聚合而来的具体方法就是找这两个网络地址的共同前缀然后将共同前缀保持不变将剩余比特全部取0写成点分10进制形式在其后面写上斜线斜线后面写上共同前缀的数量。 假设R2要转发IP数据报到该网络进行查表转发找到了匹配的路由条目下一跳应该转发给该地址也就是转发给R1的接口1。R1收到该IP数据报后进行查表转发找到了匹配的路由条目下一跳是通过接口2直接交付。 我们再来看看这条聚合路由的细节它实际上包含了以下4个网络其中两个存在两个不存在。 当R2要转发IP数据报到这个不存在的网络时进行查表转发找到了匹配的路由条目下一跳应该转发给该地址也就是转发给R1的接口1但对于这个不存在的网络路由器R2应该不予转发却错把它转发给了路由器R1。 R1收到该IP数据报后进行查表转发只能走默认路由下一跳应该转发给该地址也就是转发给R的接口0。很显然R1和R2之间产生了路由环路。 针对这种情况我们可以在R2的路由表中添加针对所聚合的不存在的网络的黑洞路由黑洞路由的下一跳为null0这是路由器内部的虚拟接口可以把它形象的看成是1个黑洞IP数据报进入它后就有去无回了也就是路由器丢弃了该IP数据报而不是转发该IP数据报。 现在假设R2要转发IP数据报到这个不存在的网络进行查表转发找到了两条可选的路由条目根据最长前缀匹配的原则将会选择这条到达该不存在网络的黑洞路由下一跳为虚拟接口null0因此该IP数据报会进入这个黑洞 接下来我们再来举例说明网络故障可能导致的路由环路问题 假设路由器R1检测到其接口0所直连的网络出现了故障而不可达就会自动在其路由表中删除该直连网络的路由条目。 之后R2要转发IP数据报到192.168.1.0/24网络进行查表转发找到匹配的路由条目下一跳为R1的接口1。 R1收到该IP数据报后进行查表转发找不到该IP数据报的目的网络的相关路由条目只能走默认路由下一跳应该转发给该地址也就是转发给R2的接口0 这样就将该IP数据报错误的转发给了R2,很显然 R1和R之间产生了路由环路。 针对这种情况我们可以在R1的路由表中添加针对该(故障)直连网络的黑洞路由这样当R2要转发IP数据报到该网络时进行查表转发找到匹配的路由条目下一跳转发给R1的接口1R1收到该IP数据报后进行查表转发找到匹配的路由条目这是1条黑洞路由下一跳为虚拟接口null0因此该IP数据报会进入这个黑洞。 假设一段时间后之前的故障消失了则R1又自动的得出了其接口0的直连网络的路由条目并将我们之前人工配置的针对该直连网络的黑洞路由条目设置为失效状态。 假设R1再次检测到其接口0所直连的网络出现了故障而不可达则会自动在其路由表中删除该直连网络的路由条目并将我们之前人工配置的针对该直连网络的黑洞路由条目设置为生效状态。 内容小结如下 路由选择 路由选择协议概述 路由选择可分为以下两类 静态路由选择动态路由选择 因特网是全球最大的互联网络它所采用的路由选择协议具有以下三个主要特点分别是 自适应因特网采用的是动态路由选择能较好的适应网络状态的变化。分布式因特网中的各路由器通过相互间的信息交互共同完成路由信息的获取和更新分层次将整个因特网划分为许多较小的自治系统AS例如一个较大的因特网服务提供商就可划分为一个自治系统在自治系统内部和自治系统外部采用不同类别的路由选择协议分别进行路由选择。 下面我们来举例说明因特网采用的分层次路由选择协议假设这是因特网中的很小的一部分我们可以将这些网络和路由器划归到两个不同的自治系统 自治之间的路由选择简称为域间路由选择。自治系统内部的路由选择简称为域内路由选择。域间路由选择使用外部网关协议EGP类别的路由选择协议域内路由选择使用内部网关协议IGP这个类别的路由选择协议 需要说明的是外部网关协议EGP和内部网关协议IGP只是路由选择协议的分类名称而不是具体的路由选择协议。另外名称中使用的是网关这个名词是因为在因特网早期的RFC文档中没有使用路由器而使用的是网关这一名词。现在新的RFC文档中又改用路由器这一名词因此外部网关协议EGP可改称为外部路由协议ERP内部网关协议IGP可改称为内部路由协议IRP。 注意 在一个自治系统内部使用的具体的内部网关协议与因特网中其他自治系统中选用何种内部网关协议无关。 接下来我们给出常见的路由选择协议 路由选择协议是在路由器上运行的下面我们就来看看路由器的基本结构 路由器是一种具有多个输入端口和输出端口的专用计算机其任务是转发分组。 整个路由器结构可划分为两大部分 路由选择部分 路由选择部分的核心构件是路由选择处理机它的任务是根据所使用的路由选择协议周期性的与其他路由器进行路由信息的交互来更新路由表。 分组转发部分 分组转发部分由三部分构成分别是交换结构一组输入端口一组输出端口。 接下来我们来看看路由器的工作过程 信号从某个输入端口进入路由器物理层将信号转换成比特流送交数据链路层处理数据链入层从比特流中识别出帧去掉帧头和帧尾后送交网络层处理。如果送交网络层的分组是普通代转发的数据分组则根据分组首部中的目的地址进行查表转发若找不到匹配的转发条目则丢弃来分组否则按照匹配条目中所指示的端口进行转发。转发出去时网络层更新数据分组首部中某些字段的值例如将数据分组的生存时间减1然后送交数据链路层进行封装数据链路层将数据分组封装成帧送交物理层处理物理层将帧看作是比特流将其变换成相应的电信号进行发送。如果送交网络层的分组是路由器之间交换路由信息的路由报文则把这种分组送交路由选择处理机路由选择处理机根据分组的内容来更新自己的路由表。路由表一般仅包含从目的网络到下一跳的映射路由表需要对网络拓扑变化的计算最优化而转发表是从路由表得出的转发表的结构应当是查找过程最优化 需要说明的是我们在前面的静态路由配置的相关内容中并没有严格区分路由器中的路由表和转发表这样有助于简化问题的分析。因此在后续有关路由选择协议的内容中我们仍然不严格区分路由表和转发表还是以路由表来表述问题。 注意 路由选择处理机除了处理收到的路由报文外还会周期性的给其他路由器发送自己所知道的路由信息。 路由器的各端口还应具有输入缓冲区和输出缓冲区 输入缓冲区用来暂存新进入路由器但还来不及处理的分组。 输出缓冲区用来暂存已经处理完毕但还来不及发送的分组。 需要说明的是路由器的端口一般都具有输入和输出的功能。我们图中分别给出输入端口和输出端口目的在于更好的演示路由器的基本工作过程使同学们更容易理解。 内容小结 路由信息协议RIP的基本工作原理 需要说明的是有些厂商的路由器并没有严格按照RIP标准文档的规定来实现RIP例如思科路由器中的RIP将路由器到直连网络的距离定义为零但这并不影响RIP的正常运行。 RIP认为好的路由就是距离短的路由也就是所通过路由器数量最少的路由如图所示从R1到R5可以走上面这条路由也可以走下面这条路由RIP认为R1到R5的好路由是图中只经过一个路由器R4的这条路由。尽管这条路由上各段链路的带宽都非常小 再来看这个例子从R1到R6可以走上面这条路由也可以走下面这条路由而这两条路由是等价的RIP该如何选择 当到达同一目的网络有多条距离相等的路由时RIP可以进行等价负载均衡也就是将通信量均衡的分布到多条等价的路由上 RIP包含以下三个要点 第一个要点是和谁交换信息答案是仅和相邻路由器交换信息。我们来举例说明相邻路由器的概念下图中R1与R2故为相邻路由器因为它们是直连的中间没有其他路由器。同理R2与R3也互为相邻路由器但是R1与R3不是相邻路由器因为它们之间还存在其他路由器。第二个要点是交换什么信息答案是路由器自己的路由表。第三个要点是何时交换信息答案是周期性交换例如每30秒发送一次RIP更新报文 接下来我们举例说明RIP的基本工作过程 路由器刚开始工作时只知道自己到直连网络的距离是1。如图所示这是各路由器刚开始工作时各自的路由表其中包含的路由条目都是到达各自直连网络的信息其距离都是1 之后每个路由器仅和相邻路由器周期性的交换并更新路由信息。若干次交换和更新后每个路由器都知道到达本自治系统内各网络的最短距离和下一跳地址这称为收敛。 接下来我们举例说明RIP的路由条目更新规则路由器C和D互为相邻路由器它们之间周期性的交换并更新路由信息 路由器C的路由表其中到达各目的网络的下一跳都记为问号。可以理解为路由器D并不需要关心路由器C的这些内容 假设路由器C的RIP更新报文发送周期到了则路由器C将自己路由表中的相关路由信息封装到RIP更新报文中发送给路由器D。我们可以简单的理解为路由器C将自己的路由表发送给了路由器D。 路由器D收到后对其进行改造将到达各目的网络的下一跳都改为C距离都增加1这样的操作很容易理解因为路由器C告诉D它可以到达这些目的网络那么路由器D作为C的邻居路由器当然也就可以通过C来到达这些目的网络只是比C到达这些目的网络的距离大1路由器D现在可以根据改造好的路由表来更新自己先前的路由表了 更新过程 路由器D原来到达网络N2的距离是二下一跳经过路由器C的转发。 现在路由器D知道了到达网络N2仍然经过C的转发距离变为了5也就是说C与N2之间的网络拓扑发生了变化于是将自己这条路由条目中的距离更新为5。 更新路由表的理由可总结为到达目的网络相同的下一跳最新的消息应该更新。路由器D原来不知道网络N3的存在现在路由器D知道了可通过路由器C到达网络N3于是将该路由条目添加到自己的路由表中 更新路由表的理由可总结为发现了新的网络添加路由器D原来到达网络N6的距离是8下一跳经过路由器F的转发现在路由器D知道了到达网络N6如果通过C来转发则距离可缩短为5于是将自己这条路由条目中的距离修改为5下一跳修改为C 更新路由表的理由可总结为到达目的网络不同的下一跳新路由有优势应该更新路由器D原来到达网络N8的距离是4下一跳经过路由器E的转发现在路由器D知道了到达网络N8还可以通过C来转发距离也为4于是将该路由条目添加到自己的路由表中。更新路由表的理由可总结为到达目的网络不同的下一跳但距离相等进行等价负载均衡。路由器D原来到达网络N9的距离14下一跳经过路由器F的转发现在路由器D知道了到达网络N9如果通过C来转发则距离扩大为6于是不使用这条路由条目来更新自己的路由表。不更新路由表的理由可总结为到达目的网络不同的下一跳新路由劣势不应该更新。 ‍ 下面我们介绍RIP协议存在的坏消息传的慢的问题如图所示 假设R1到达其直连网络N1的链路出现了故障当R1检测出该故障后会将到达N1的路由条目中的距离修改为16表示N1不可达并等待RIP更新周期到时后发送该路由信息给R2。而此时R2的路由表中关于N1的路由条目仍然是先前通过RIP协议获取到的也就是到达N1的距离为2下一跳通过R1转发假设R2的RIP更新周期先到时也就是R2的这条路由信息先到达R1而R1的这条路由信息一段时间后才到达R2当R1收到R2的这条路由信息后就会被该谣言误导认为可以通过R2到达N1距离为3并在自己的RIP更新周期到时后将这条路由信息发送给R2当R2收到R1的这条路由信息后被该谣言误导认为可以通过R1到达N1距离为4并在自己的RIP更新周期到时后将这条路由信息发送给R1。当R1收到R的这条路由信息后被该谣言误导认为可以通过R2到达N1距离为5并在自己的RIP更新周期到时后将这条路由信息发送给R2很显然只有R1和R2的路由表中到达N1的路由条目中的距离都增加到16号R1和R2才都知道N1不可达也就是才收敛。在该过程中R1和R2之间会出现路由环路时间长达数分钟有关路由环路的问题我们之前已经介绍过了此处就不再赘述了。 造成这种反复误导的本质就是接收方将RIP报文中的下一条改成了发送方在上述例子中更新的时候都是到达目的网络有着相同下一跳采取的最新消息更新策略。 请注意使用上述措施后也不能彻底避免路由环路问题这是距离向量算法的本质所决定的。 内容小结 开放最短路径优先OSPF的基本工作原理 我们来举例说明在思科路由器中OSPF计算代价的方法是用100兆比特每秒除以链路带宽计算结果小于1的值仍记为1大于1且有小数的舍去小数。我们可以很容易的得出下图中各路由器的链路状态 OSPF相邻路由器之间通过交互问候分组来建立和维护邻居关系。 如图所示。问候分组需要封装在IP数据报中发送发往组播地址224.0.0.5IP数据报首部中的协议号字段的取值应为89来表明IP数据报的数据载荷为OSPF分组问候分组的发送周期为10秒若40秒仍未收到来自邻居路由器的问候分组则认为该邻居路由器不可达。 因此每个路由器都会建立一张邻居表其中的每一个条目对应记录其各邻居路由器的相关信息包括邻居ID接口以及死亡倒计时。 例如R2是R1的一个邻居路由器为简单起见邻居ID就记为R2(实践中应填写相应的路由器ID)该邻居路由器与自己的接口1相连将接口号记为1死亡倒计时还剩36秒若在死亡倒计时到达0之前再次收到了来自R2的问候分组则重新启动针对该邻居条目的40秒死亡倒计时否则当死亡倒计时为0则判定该邻居路由器不可达。 R4是R1的另一个邻居路由器邻居ID记为R4该邻居路由器与自己的接口0相连将接口号记为0死亡倒计时还剩余18秒 使用OSPF的每个路由器都会产生链路状态通告其中包含以下两类内容 一类是直连网络的链路状态信息另一类是邻居路由器的链路状态信息。 假设N1是路由器R4的直连网络则R4的链路状态通告应包含 与其直连网络N1的链路状态信息邻居路由器R1的链路状态信息邻居路由器R3的链路状态信息 链路状态通告被封装在链路状态更新分组中采用洪范法发送。收到链路状态更新分组的路由器将从自己其他所有接口转发该分组也就是进行洪范转发如图所示。这样自制系统中每个路由器所发送的封装有链路状态通告的链路状态更新分组会传递给系统中其他所有路由器。 使用OSPF的每个路由器都有一个链路状态数据库用于存储链路状态通告通过各路由器洪范发送封装有自己链路状态通告的链路状态更新分组各路由器的链路状态数据库最终将达到一致。 例如这是路由器R2的链路状态数据库其中记录有系统中各路由器的链路状态通告 使用OSPF的各路由器基于链路状态数据库进行最短路径优先计算就可构建出各自到达其他各路由器的最短路径也就是构建出各自的路由表。 例如有这样一个网络拓扑各链路旁的数字表示代价。通过各路由器洪范发送封装有自己链路状态通告的链路状态更新分组各路由器最终会得出相同的链路状态数据库由链路状态数据库可以得出带权有向图对该图进行基于迪杰斯特拉的最短路径优先算法就可以得出以各路由器为根的最短路径如图所示 对于这样一个比较简单的网络拓扑即使大家不懂得最短路径优先算法也可以很快找出每个路由器到达其他各路由器的最短路径。但是如果网络拓扑比较复杂该项工作对人类而言就比较复杂了因此可以按照迪杰斯特拉提出的最短路径优先算法编制程序让路由器执行该程序。 对于一般的网络工程师即便不熟悉该算法也不影响对OSPF协议的配置和使用。OSPF包含以下5种分组类型 接下来我们来举例说明OSPF协议的基本工作过程 相邻路由器之间周期性发送问候分组以便建立和维护邻居关系 建立邻居关系后给邻居路由器发送数据库描述分组也就是将自己的链路状态数据库中的所有链路状态项目的摘要信息发送给邻居路由器。 例如 R1收到R2的数据库描述分组后发现自己缺少其中的某些链路状态项目于是就给R2发送链路状态请求分组。R2收到后将R1所缺少的链路状态项目的详细信息封装在链路状态更新分组中发送给R1。R1收到后将这些所缺少的链路状态项目的详细信息添加到自己的链路状态数据库中并给R2发送链路状态确认分组。需要说明的是R2也可以像R1请求自己所缺少的链路状态项目的详细信息。最终 R1和R2的链路状态数据库将达到一致这也就是链路状态数据库达到同步。 ‍ 每30分钟或链路状态发生变化时路由器都会发送链路状态更新分组收到该分组的其他路由器将洪范转发该分组并给该路由器发回链路状态确认分组这又称为新情况下的链路状态数据库同步。 当OSPF路由器在多点接入网络中建立邻居关系时如果不采用其他机制将会产生大量的多播分组。例如这5台路由器连接在同一个多点接入网络中他们周期性的发送问候分组以建立和维护邻居关系。这些路由器中的任意两个路由器都互为邻居关系如图所示邻居关系的数量为N乘以N-1然后再除以2其中N是路由器的数量这样每个路由器要向其他N减一个路由器发送问候分组和链路状态更新分组。 ‍为了减少所发送分组的数量OSPF采用选举指定路由器DR和备用的指定路由器BDR的方法。 并且所有的非DRBDR只与DRBDR建立邻居关系。 因此之前的邻居关系数量降低为2 ×N-2 1。非DRBDR之间不能直接交换信息而必须通过DRBDR进行交换。若DR出现问题则由BDR顶替DR。实现DR和BDR的选举并不复杂无非就是各路由器之间交换一些选举参数例如路由器优先级、路由器ID接口IP地址等然后根据选举规则选出DR和BDR这与交换机生成树协议选举跟交换机类似我们就不再赘述了。 为了使OSPF协议能够用于规模很大的网络OSPF把一个自治系统在划分为若干个更小的范围称为区域 如图所示这是一个规模很大的网络我们将其划分成一个自制系统在该自治系统内所有路由器都使用OSPF协议OSPF将该自治系统再划分成4个更小的区域每个区域都有一个32比特的区域标识符可以用点分十进制表示主干区域的标识符必须为0也可表示成点分10进制形式的0.0.0.0主干区域用于联通其他区域其他区域的标识符不能为0且互不相同。 每个区域的规模不应太大一般所包含的路由器不应超过200个划分区域的好处就是把利用洪范法交换链路状态信息的范围局限于每一个区域而不是整个自治系统这样就减少了整个网络上的通信量。 如果路由器的所有接口都在同一个区域内则该路由器称为区域内路由器。 为了本区域可以和自治系统内的其他区域联通每个区域都会有一个区域边界路由器它的一个接口用于连接自身所在区域另一个接口用于连接主干区域 主干区域内的路由器称为主干路由器。我们也可以把区域边界路由器看作是主干路由器。 在主干区域内还要有一个路由器专门和本自制系统外的其他自治系统交换路由信息这样的路由器成为自治系统边界路由器。 在本例中区域边界路由器R3向主干区域发送自己所在区域一的链路状态通告向自己所在区域发送区域0,2,3的链路状态通告 区域边界路由器R4向主干区域发送自己所在区域二的链路状态通道向自己所在区域发送区域0,1,3的链路状态通告 区域边界路由器R7向主干区域发送自己所在区域三的链路状态通告向自己所在区域发送区域0,1,2的链路状态通道 采用分层次划分区域的方法虽然使交换信息的种类增多了同时也使OSPF协议更加复杂了但这样做却能使每一个区域内部交换路由信息的通信量大大减小因而使OSPF协议能够用于规模很大的自制系统中。 内容小结如下: 边界网关协议BGP的基本工作原理 因特网采用分层次的路由选择协议内部网关协议这一类别的协议用于自治系统内部的路由选择典型的协议有路由信息协议RIP 和开放最短路径优先OSPF他们都是设法使分组在一个自治系统内部尽可能有效的从源网络传输到目的网络无需考虑自治系统外部其他方面的策略。 外部网关协议这一类别的协议用于自治系统之间的路由选择。典型的协议是边界网关协议BGP。在不同自治系统内度量路由的代价可能不同因此对于自治系统之间的路由选择使用代价作为度量来寻找最佳路由是不可行的。 我们来举例说明各自治系统的连接关系如图所示 其中自治系统AS1将时延作为度量AS2将距离也就是跳数作为度量AS3将链路带宽作为度量那么AS4可以通过哪些路径到达AS5呢图中已经标明了两种路线(当然还存在其他的可能性) 那么这些路径中哪一个是最佳路由呢由于没有统一的路由度量因此寻找最佳路由是无意义的。 自治系统之间的路由选择还必须考虑相关策略。例如我国国内的站点在互相传送数据报时不应经过国外兜圈特别是不要经过某些对我国的安全有威胁的国家又例如自治系统AS4要发送数据报给AS5本来最好是依次经过S1S3但是 AS3不愿意让这些数据报经过自己自治系统内的网络因为这是那两个自治系统的事情与我这个自治系统无关。而AS2愿意让某些相邻自治系统的数据报通过自己的网络只要支付相应的服务费用即可。由此可见自治系统之间的路由选择协议应当允许使用多种路由选择策略这些策略包括政治、经济、安全等他们都是由网络管理人员对每一个路由器进行设置的但这些策略并不是自治系统之间的路由选择协议本身。 基于上述情况边界网关协议BGP只能是力求寻找一条能够到达目的网络且比较好的路由也就是不能兜圈子而并非要寻找一条最佳路由 我们来举例说明 一般来说两个BGP发言人都是通过一个共享网络连接在一起的而BGP发言人往往就是BGP边界路由器 BGP发言人交换网络可达性的信息也就是要到达某个网络所要经过的一系列自治系统。当BGP发言人互相交换了网络可达性的信息后各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各自治系统的较好的路由也就是构造出树形结构不存在环路的自治系统连通图。如图所示这是自治系统A的某个BP发言人构造出的自治系统联通图: 边界网关协议BGP适用于多级结构的因特网。这里我们给出一个BGP发言人交换路径向量的例子: 自治系统AS2的BP发言人通知主干网的BGP发言人要到达网络N1、N2、N3和N4可经过AS2。主干网在收到这个通知后就发出通知要到达网络N1、N2、N3和N4可沿路径(AS1, AS2) 这里的路径AS1、AS2称为路径向量。自治系统AS3收到这条路径向量信息后如果AS3自身也包含在其中则不能采用这条路径否则会兜圈子 接下来我们介绍BGP版本4中规定的4种报文: 内容小结如下: IPv4数据报的首部格式 这里我们介绍IPv4数据报的首部格式为了简单起见之后我们将IPv4数据报简称为IP数据报而不指出、版本号。IP数据报的首部格式及其内容是实现IP协议主要功能的基础因此我们有必要搞清楚这部分内容如图所示 这是IP数据报的首部格式它由20字节的固定部分和最大40字节的可变部分组成。所谓固定部分是指每个IP数据报首部都必须包含的部分而某些IP数据报的首部除了包含20字节的固定部分外还包含一些可选的字段来增加IP数据报的功能。IP数据报的首部常以32个比特为单位进行描述图中的每一行都由32比特也就是4个字节构成每个小格子称为字段或者域。每个字段或某些字段的组合用来表达IP协议的相关功能。 版本字段该字段占4个比特用来表示IP协议的版本通信双方使用的IP协议的版本必须一致目前广泛使用的IP协议的版本号为4即IPv4首部长度字段该字段占4个比特用来表示IP数据报首部的长度该字段的取值以四字节为单位。 最小十进制取值为5表示IP数据报首部只有20字节的固定部分最大十进制取值为15表示IP数据报首部包含20字节的固定部分和最大40节的可变部分 可选字段该字段的长度从1个字节到40个字节不等用来支持排错、测量以及安全措施。可选字段增加了IP数据报的功能但这同时也使得IP数据报的首部长度成为可变的这就增加了每一个路由器处理IP数据报的开销实际上可选字段很少被使用填充字段该字段用来确保首部长度为四字节的整数倍使用全0进行填充。我们之前刚刚介绍过首部长度字段是以四字节为单位的换句话说IP数据报的首部长度一定是四字节的整数倍。由于首部中的可选字段的长度从1个字节到40个字节不等那么当20字节的固定部分加上1~40个字节长度不等的可变部分会造成首部长度不是四字节的整数倍时就用取值为全零的填充字段填充相应的字节以确保IP数据报的首部长度是四字节的整数倍。区分服务字段该字段占8个比特用来获得更好的服务。该字段在旧标准中叫做服务类型但实际上一直没有被使用过。1998年因特网工程任务组IEFT把这个字段改名为区分服务利用该字段的不同数值可提供不同等级的服务质量。只有在使用区分服务时该字段才起作用一般情况下都不使用该字段总长度字段该字段占16比特用来表示IP数据报的总长度也就是首部和数据载荷的长度总和最大取值为十进制的65535以字节为单位需要注意的是在实际应用中很少传输这么长的IP数据报。 接下来我们来举例说明首部长度字段和总长度字段的区别与联系 标识标志片偏移这三个字段他们共同用于进行IP数据报分片网际层封装出的IP数据报它将在数据链路层封装成帧。每一种数据链路层协议都规定了帧的数据载荷的最大程度称为最大传输单元MTU。例如以太网的数据链路层规定MTU的值为1500个字节如果某个IP数据报的总长度超过MTU时将无法封装成帧需要将源IP数据报分片为更小的IP数据报再将各分片IP数据报封装成帧。 标识字段占16个比特属于同一个数据报的各分片数据报应该具有相同的标识IP软件维持一个计数器每产生一个IP数据报计数器的值就要加1并将此值赋给标识字段标志字段占3个比特各比特含义如下 DF比特表示是否允许分片置1表示不允许分片清0表示允许分片MF比特表示本分片后面是否还有分片置1表示本分片后面还有分片清0表示本分片就是最后一个分片还有一个保留位必须设置为0 片偏移字段占13个比特指出分片数据报的数据载荷部分偏移其在源数据报的位置有多远片偏移以8个字节为单位 接下来我们举例说明IP数据报如何进行分片 假设有这样一个IP数据报它由20字节的固定首部和3800字节的数据载荷两部分构成也就是说该IP数据报的总长为3820个字节。假设使用以太网传送该IP数据报以太网的最大传送单元MTU为1500个字节也就是以太网的数据载荷部分最大为1500个字节无法封装3820字节长的IP数据报因此需要把该IP数据报分片成几个更小的IP数据报每个长度不能大于1500个字节然后再将每个分片IP数据报封装成一个以太网的帧进行传输。 为了更好的描述后续的分片工作我们将源IP数据报数据载荷部分的每一个字节都编上号第一个字节编号为0最后一个字节编号为3799我们可将源IP数据报的数据载荷分成三个更小的分片第一个分片从0号字节到1399号字节共1400个字节。第二个分片从1400号字节到2799号字节共1400个字节。第三个分片从2800号字节到3799号字节共1000个字节。分片结束后给每个分片重新添加一个首部使之成为IP数据报。 请思考这样一个问题给各分片添加的首部是否完全相同 我们来一起填一下下面这张表格。源IP数据报首部中的总长度字段的十进制取值为380020标识字段的10进制取值为12345MF比特的取值为0表示后面没有分片数据报这就是最后一个分片数据报DF比特的取值为0表示该IP数据报允许被分片由于这是未分片的源IP数据报因此片偏移为0。 我们来填写分片一IP数据报首部中相关字段的值总长度字段的十进制取值为140020其中1400字节是分片的长度20字节是固定首部的长度标识字段的十进制取值与源IP数据报的相同由于该分片不是最后一个分片因此 MF比特的取值为一表示该分片后还有分片该分片IP数据报允许被再次分片因此DF比特的取值为0。该分片IP数据报数据载荷部分的第一个字节就是源IP数据报数据载荷部分的第一个字节因此片偏移字段的取值为0÷8。除以八的原因是片偏移字段以八字节为单位。 后面的以此类推 现在假定分片二的IP数据报经过某个网络时还需要再进行分片其中一个分片长度为800字节另一个分片长度为600字节分片结束后给每个分片重新添加一个首部使之成为IP数据报。 再来看生存时间字段 下来我们来举例说明生存时间字段的作用。 假设采用如下图所示的网络拓扑路由器R1R2R3各自的路由表如图所示。为了简单起见我们只给出了各路由器路由表中的由人工配置的静态路由条目例如路由器R2中的这条静态路由条目他指出了IP数据报要到达网络N2下一跳需要转发给路由器R3。 假设我们在人工配置这条静态路由条目时错将下一跳配置成了R1这会导致将去往网络N2的IP数据报错误的转发给路由器R1。我们来看看会出现什么问题。 假设某个IP数据报从网络N1发网络N2该IP数据报到达R1号R1进行查表转发发现了匹配的路由条目其下一跳指示转发给R2于是R1将该IP数据报转发给了R2R2收到该IP数据报后进行查表转发发现了匹配的路由条目其下一跳指示转发给R1于是R将该IP数据报又转发回来R1。 很显然形成了路由环路。如果没有其他措施IP数据报将在路由环路庄永久兜圈。现在相信大家能够更好的理解IP数据报首部中生存时间字段的作用了那就是确保IP数据报不会在网络中永久兜圈。IP数据报每经过一个路由器其生存时间的值被减1当减少到0时IP数据报将被路由器丢弃。 再来看协议字段 首部检验和字段 内容小结 网际控制报文协议ICMP 网际控制报文协议ICMP Internet Control Message Protocol 为了更有效的转发IP数据报和提高交付成功的机会在网际层使用了网际控制报文协议ICMP。主机或路由器使用ICMP协议来发送差错报告报文和询问报文。ICMP报文被封装在IP数据报中发送。 ICMP差错报告报文共有以下5种它们分别是 终点不可达源点抑制时间超过参数问题改变路由重定向 我们首先来看终点不可达当路由器或主机不能交付数据报时就像源点发送终点不可达报文。具体可再根据ICMP的代码字段细分为目的网络不可达目的主机不可达目的协议不可达目的端口不可达目的网络未知目的主机未知等13种错误。我们来举例说明假设主机H1给H2发送IP数据报H1会将IP数据报发送给路由器R1由R1帮其转发若R1的路由表中没有网络N3的路由记录默认路由以及主机H2的特定主机路由则R1旧不知道如何转发该数据报只能将其丢弃并向发送该数据报的源主机H1发送ICMP差错报告报文其类型为终点不可达。 再来看源点抑制当路由器或主机由于拥塞而丢弃数据报时就像源点发送源点抑制报文使源点知道应当把数据报的发送速率放慢。 例如H1给H2发送IP数据报当该数据报传输到路由器R2时由于R2拥塞也就是R2比较繁忙R2根据自己的丢包策略丢弃了该数据报并向发送该数据报的源主机H1发送 ICMP差错报告报文其类型为源点抑制 又例如H1给H2发送IP数据报当该数据报传输到H2时由于H2拥塞就丢弃了该数据报并向发送该数据报的源主机H1发送ICMP差错报告报文其类型为源点抑制 来看时间超过。当路由器收到一个目的IP地址不是自己的IP数据报时会将其生存时间TTL字段的值减一若结果不为0则将数据报转发出去若结果为0除丢弃该数据报外还要向源点发送时间超过报文。例如某个生存时间等于2的IP数据报传输到了路由器R1R1将其生存时间减一后结果是一这表明该数据报的生存时间还没有结束R1将其转发出去当该数据报传输到路由器R2后R2将其生存时间减一号结果是0这表明该数据报的生存时间结束了R2丢弃该数据报并向发送该数据报的源主机H1发送ICMP差错报告报文其类型为时间超过 另外当终点在预先规定的时间内不能收到一个数据报的全部数据报片时就把已收到的数据包片都丢弃也会向源点发送时间超过报文 来看参数问题。当路由器或目的主机收到IP数据报后根据其首部中的检验和字段发现首部在传输过程中出现了误码就丢弃该数据报并向源点发送参数问题报文。例如这是H1发送给H2的IP数据报假设该数据报在传输过程中受到了干扰其首部出现了误码当该数据报传输到路由器R1后R1检测出该数据报的首部出错于是丢弃该数据报并向发送该数据报的源主机H1发送 IC MP差错报告报文其类型为参数问题。 再来看改变路由路由器把改变路由报文发送给主机让主机知道下次应将数据报发送给另外的路由器这样可以通过更好的路由。我们来举例说明。假设我们给主机H1指定的默认网关是路由器R1则H1要发往网络N2的IP数据报都会传输给R1由其帮忙转发当R1发现H1发往N2的数据报的最佳路由不应当经过R1而是应当经过R4时就用改变路由报文把这个情况告诉主机于是H1就在自己的路由表中添加一个项目到达N2应经过路由器R4而不是默认网关R1。之后H1要发往N2的IP数据报都会传输给R4由其帮忙转发。 需要注意的是以下情况不应发送ICMP差错报告报文 对ICMP差错报告报文不再发送ICMP差错报告报文。对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文对具有多播地址的数据报都不发送ICMP差错报告报文对具有特殊地址例如127.0.0.0或0.0.0.0的数据报不发送ICMP差错报告报文。 接下来我们介绍常见的两种ICMP询问报文 接下来我们介绍利用ICMP协议的两个典型应用 一个是分组网间探测PINGPacket Internet Groper另一个是跟踪路由 首先来看分组网间探测该应用用来测试主机或路由器之间的连通性其应用层直接使用网际层的ICMP协议而不通过运输层的TCP或UDP协议。所使用的ICMP报文类行为回送请求和回答如下所示 再来看跟踪路由该应用用来测试IP数据报从源主机到达目的主机要经过哪些路由器在该应用的WINDOWS版本中具体命令为tracert。其应用层直接使用网际层的ICMP协议所使用的ICMP报文类型有回送请求和回答报文以及差错报告报文。在该应用的UNIX版本中具体命令为traceroute、其在运输层使用UDP协议在网际层使用的ICMP报文类型只有差错报告报文。 请大家思考一下 tracert命令的实现源理是什么 我们来举例说明 假设主机H1想知道到达主机H2要经过哪些路由器H1就给H2发送ICMP回送请求报文该报文被封装在IP数据报中IP数据报首部中生存时间字段TTL的值被设置为1该IP数据报到达R1后其生存时间减1结果为0。R1丢弃该数据报并向发送该数据报的源主机H1发送ICMP差错报告报文其类型为时间超过这样 H1就知道了到达H2的路径中的第一个路由器 H1继续发送下一个封装有ICMP回送请求报文的IP数据报其首部中生存时间字段TTL的值被设置为二经过R1的转发后该数据包的生存时间减少为一该IP数据报到达R2后其生存时间减1结果为0R2丢弃该数据报并向发送该数据报的源主机H1发送ICMP差错报告报文其类型为时间超过这样 H1就知道了到达H2的路径中的第二个路由器 H1继续发送下一个封装有ICMP回送请求报文的IP数据报其首部中生存时间字段TTL的值被设置为三经过R1和R2的转发后该数据报到达主机H2其生存时间减少为一H2解析该数据报发现其内部封装的是ICMP回送请求报文于是就给H1发送封装有ICMP回送请求回答报文的IP数据报这样 H1就知道已经跟踪到路径中的最后一站也就是目的主机H2 内容小结如下 虚拟专用网VPN与网络地址转换NAT 这里我们介绍虚拟专用网VPNVirtual Private Network和网络地址转换NAT的基本工作原理。 首先介绍虚拟专用网VPN的基本工作原理来看这个例子假设这是某机构部门A的局域网这是该机构部门B的局域网部门A的局域网位于北京部门B的局域网位于上海那么如何才能让这两个专用网络可以通信 一种方法是租用电信公司的通信线路这种方法简单方便但是租金很高。 另一种方法是利用公用的因特网作为本机构各专用网之间的通信载体这样形成的专用网要称为虚拟专用网。 那么虚拟专用网中的各主机应该分配怎样的IP地址由于IPv4地址的紧缺一个机构能够申请到的IPv4地址数量往往远小于本机构所拥有的主机数量。因此虚拟专用网中的各主机所分配的地址应该是无需申请就可由本机构自由分配的专用地址而不是需要申请的在因特网上使用的公有地址 我们可以在因特网数字分配机构IA NA的官方网站查看IPVC地址空间中特殊地址的分配方案这三个地址块中的地址就是无需申请的可自由分配的专用地址或称私有地址。 我们给部门A的专用网分配的私有地址的网络号为10.1.0.0给部门B的专用网分配的私有地址的网络号为10.2.0.0。两个专用网装各主机所分配的私有地址如图所示需要注意的是私有地址只能用于一个机构的内部通信而不能用于和因特网上的主机通信。换句话说私有地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是私有地址的IP数据报一律不进行转发。很显然部门A和B各自至少需要一个路由器具有合法的全球IP地址这样他们各自的专用网才能利用公有的因特网进行通信。 假设部门A中的这台主机要给部门B中的另一台主机发送数据它会将待发送数据封中成内部IP数据报发送给路由器R1其首部中源地址字段的值为部门A中该主机的IP地址目的地址字段的值为部门B中另一台主机的IP地址。R1收到该数据报后发现其目的网络必须通过因特网才能到达就将该内部IP数据报进行加密这样就确保了内部IP数据报的安全然后重新添加上数据报的首部封装成为在因特网上发送的外部数据报且首部中源地址字段的值为路由器R1的全球地址目的地址字段的值为路由器R2的全球地址。 路由器R2收到该外部IP数据报后去掉其首部将其数据部分进行解密恢复出源来的内部IP数据报这样就可以从其首部提取出源地址和目的地址根据目的地址将该内部IP数据报发送给相应的主机。很显然两个专用网内的主机间发送的数据报是通过了公用的因特网但在效果上好像是在本机构的专用网上传送一样 数据报在因特网中可能要经过多个网络和路由器但从逻辑上看R1和R2之间好像是一条直通的点对点链路因此也被称为IP隧道技术。 本地属于同一机构内不同部门的内部网络所构成的虚拟专用网这就称为内联网VPN。有时一个机构的虚拟专用网需要某些外部机构参加进来这样的虚拟专用网又称为外联网VPN。在外地工作的员工需要访问公司内部的专用网络时只要在任何地点接入到因特网运行驻留在员工PC中的VPN软件在员工的PC和公司的主机之间建立VPN隧道即可访问专用网络中的资源这种虚拟专用网又称为远程接入VPN。相信很多同学寒暑假在家中要远程访问校园网内的某些资源时就要使用过远程接入VPN这种技术。 接下来我们介绍网络地址转换NATNetwork Address Translation的基本工作源理。 虽然因特网采用了无分类编制方式来减缓IP地址空间耗尽的速度但是由于因特网用户数目的激增特别是大量小型办公室网络和家庭网络接入因特网的需求不断增加IPv4地址空间即将面临耗尽的危险仍然没有被解除。 1994年提出了一种网络地址转换的方法再次缓解了IPv4地址空间即将耗尽的问题。NAT能使大量使用内部专用地址的专用网络用户共享少量外部全球地址来访问因特网上的主机和资源。 我们来举例说明图中的专用网络使用私有网络号192.168.0.0该网络中各主机的私有地址如图所示那么使用私有地址的主机如何才能与因特网上使用全球IP地址的主机进行通信呢 这需要在专用网络连接到因特网的路由器上安装NAT软件装有NAT软件的路由器叫做NAT路由器它至少有一个有效的外部全球IP地址这样所有使用私有地址的主机在和外界通信时都要在NAT路由器上将其私有地址转换成全球IP地址。 我们来举例说明假设使用私有地址的该主机要给因特网上使用全球IP地址的另一台主机发送IP数据报该主机将数据报发送给NAT路由器数据报首部中源地址字段的值为该主机的私有地址目的地址字段的值为因特网上另一台主机的全球地址。NAT路由器从自己的全球IP地址池中为该主机分配一个临时的全球IP地址 172.38.1.5并将IP数据报的源地址修改为该地址然后将私有地址与全球地址的对应关系记录在NAT转换表中之后就可以转发该IP数据报了。请注意此时该IP数据报中的源地址和目的地址都是全球IP地址如图所示 因特网上的这台主机给源主机发回数据报数据报的源地址和目的地址都是全球IP地址如图所示。NAT路由器收到该IP数据报后在NAT转换表中进行查找发现该数据报的目的地址所对应的私有地址为192.168.0.2于是就将该数据报的目的地址修改为192.168.0.2并将其发送给相应的主机。请注意此时该IP数据包中的源地址为因特网上那台主机的全球IP地址而目的地址为专用网络中这台主机的私有地址如图所示。 当专用网中的这两台使用私有地址的主机都要给因特网上使用全球地址的另一台主机发送数据报时在NAT路由器的NAT转换表中就会产生两条记录分别记录两个私有地址与两个全球地址的对应关系。 这种基本转换方法存在这样一个问题。如果NAT路由器具有N个全球IP地址那么至多只能有N个内网主机能够同时和因特网上的主机通信。 由于绝大多数的网络应用都是使用运输层协议TCP或UDP来传送数据因此可以利用运输层的端口号和IP地址一起进行转换这样用一个全球IP地址就可以使多个拥有本地地址的主机同时和因特网上的主机进行通信这种将端口号和IP地址一起进行转换的技术叫做网络地址与端口号转换NAPT 如图所示这是本例中的NAPT路由器这是它的全球IP地址这是它的NAPT转换表中的部分内容: 实际上现在很多家用路由器都是这种NAPT路由器 请大家思考这样一个问题内网主机与外网主机间的通信是否能由外网主机首先发起 答案是否定的如果由外网主机首先发起那么当NAPT路由器收到来自外网的IP数据报后在NAPT转换表中找不到相应的记录也就无法把数据报转发给内网中的主机因此需要私有地址的主机不能直接充当因特网服务器。对于一些点对点网络应用需要外网主机主动与内网主机进行通信在通过NAT时也会遇到问题需要网络应用自己使用一些特殊的NAT穿越技术来解决问题。 另外由于NAT对外网屏蔽了内网主机的网络地址因此能为内网主机提供一定的安全防护。我们前面提到过的ICMP协议的典型应用Tracert可以看到其中有两个路由器使用了相同的IP地址这很可能是内网出外网的路由器使用了NAT并且内网中还有一个使用私有IP地址的路由器 内容小结
http://www.w-s-a.com/news/313419/

相关文章:

  • 华宁网站建设设计公司 网站
  • 简历网站免费怎么查在哪个网站做的备案
  • 响应式网站 价格网站用哪些系统做的比较好用
  • 高端网站案例360做的网站
  • 瑞安地区建设网站公众号开发者工具是干嘛的
  • 请解释网站开发的主要流程.wordpress主体上传
  • 网站方案组成要素饰品公司网站建设方案
  • 网站改版被降权赣州景文网络科技有限公司
  • 吉林省网站建设推广图片模版
  • 如何做网站热力图佛山 网站关键词优化
  • 个人网站建设论文中期报告申报网站建设理由 模板
  • 岫岩做网站软件开发和app开发的区别
  • 邯郸质量一站式服务平台上线如何做国外销售网站
  • 内蒙古工程建设协会网站sem优化策略
  • Linux网站建设总结建设电子商务平台
  • 公司网站背景图片课程网站如何建设
  • 用js做简单的网站页面互联网技术对人力资源管理的影响有哪些
  • 银川做网站贵德县wap网站建设公司
  • 深圳网站建设zvge山西省煤炭基本建设局网站
  • 佛山网页网站设计线上怎么做推广和宣传
  • 多个域名绑定同一个网站案例
  • 建设网站都需要准备什么代理加盟微信网站建设
  • 网站备案没有了wordpress 添加按钮
  • 湖南建设银行宣传部网站福田蒙派克空调滤芯安装位置图
  • wap网站搜索wordpress工作室模板
  • 青岛金融网站建设如何提交网站地图
  • 制作简单门户网站步骤网站建设论文的摘要
  • 可以直接进入网站的正能量照片学做静态网站
  • 织梦做社交网站合适吗网站的市场如何制作
  • 阳曲网站建设价格多少四川佳和建设工程网站