| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 计算机网络第四章:网络层 -> 正文阅读 |
|
[网络协议]计算机网络第四章:网络层 |
§4.1.1网络层功能概述一、网络层1.一些概念:??① 网络层主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。 ??② 网络层的传输单位是数据报。 ??③ 数据报与分组的关系:数据报是比较长的,而分组就相当于是把数据报进行切分而形成的。 2.主要功能:??① 找路与分组转发:通过路由算法找到最佳路径,并把分组通过最佳路径转发出去。 ??② 异构网互联:不同的网络叫做异构网,网络层可以通过路由器把这些网络连接起来,构成一个更大的网络。 ??③ 拥塞控制:若所有结点都来不及接受分组,而要丢弃大量分组的话,网络就处于拥塞状态。因此要采取一定措施,缓解这种拥塞。拥塞控制有静态的开环控制和动态的闭环控制两种方法。 §4.1.2 电路交换、报文交换和分组交换一、数据交换1.概念:??数据通过网络核心路由器从源主机到目的主机依托的就是数据交换技术。 ??比如说网络中有六台主机,总不能像下面这样连通信道吧。 ??🤯这造价也太高了。 ??于是便有人想出了这样的点子: ??用一个庞大的交换网络代替单一的一个交换设备。 2.分类:
二、电路交换:1.电路交换最常见的例子 — 电话网络:2.电路交换的阶段:
呼叫/电路建立
建立连接
通信
释放连接拆除电路
3.电路交换的优点:
4.电路交换的缺点:
5.电路交换的特点:??收发双方在信道中独占资源,正因如此才没有冲突。 三、报文交换1.报文的概念:??报文指源应用发送的信息整体。例如一张图片、一段视频、一份word等。报文会被传输层分割成报文段,当然如果报文比较短就不会分割了。然后给报文加上ip地址、物理地址,并在物理层上进行数据传输。 ??电路交换的特点是它在交换设备中传播时,已经固定好了,必须从A到B再到C,报文交换比较灵活,可以从A到B,然后在B点看情况究竟去C还是D。 2.报文交换的优点:
3.报文交换的缺点:
四、分组交换1.分组交换是什么???把分组分成小的数据块,在进行存储转发,就是分组。 2.分组交换的优点:
3.分组交换的缺点:
4.报文交换与分组交换相比??报文交换中一个文件只能存在于一个交换设备中,而分组交换一个文件可以每个部分都在不同的交换设备中。 ??报文交换就好比一个质点过桥,所有数据都集中在这个质点上。而分组交换就相当于一个大巴过桥,数据被拆分均摊在大巴的每一个座位上。报文交换的时延就是质点到达目的地的时延,而分组交换的时延则是从大巴头头进桥算起,尾巴出桥结束。那有的人就说了,你这不对呀,这样一来分组交换岂不是更慢?其实不是,报文交换数据集中到一个质点上,太重了,速度是10m / s。而分组交换把报文分成分组,数据均摊给这几伙人,没一段的速度都是1000m / s。 5.计算题中的一些要点:
五、三种数据交换方式比较总结
§4.1.3 数据报与虚电路交换方式一、两者概念??首先,他们俩是分组交换方式的子类。 ??数据报交换方式为网络层提供无连接服务。无连接服务是指不事先为分组的传输确定传输路径,每个分组独立确定传输路径,不同分组传输路径可能不同。 ??虚电路交换方试为网络层提供连接服务。连接服务是指首先为分组的传输确定传输路径(建立连接),然后沿该路径(连接)传输系列分组,系列分组传输路径相同,传输结束后拆除连接。其实虚电路交换方式就是把分组交换方式和电路交换方式进行了融合。 二、几种传输单元名词辨析
三、数据报交换方式 — 因特网所使用
四、虚电路交换方式1.概念:??虚电路将数据报方式和电路交换方式结合,以发挥两者优点。 ??虚电路:一条源主机到目的主机类似于电路的路径(逻辑连接),路径上所有结点都要维持这条虚电路的建立,都维持一张虚电路表,每一项记录了一个打开的虚电路的信息。 2.通信过程:
??虚电路号有什么用呢?分组发送到路由器里面,路由器会通过虚电路号判断接下来应该发送给哪个路由器。 ??如果类比图论的话,虚电路号就是每个号码都对应一条路径,而数据报服务的目的地址则是知道起始位置和终止位置,路由器提供路径算法。 五、两者区别
§4.2 路由算法与路由协议概述一、路由算法??路由器里面有个东西他叫路由表,它里面放着这些东西:目的网络IP、子网掩码、下一跳IP地址、接口。那么这些东西是怎么得到的?就是通过路由算法得到的。 ??最佳路由:“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。(有点类似于图论中最短路径的概念) 二、路由算法的分类
??中国有句老话说得好:“杀鸡焉用砍牛刀”,杀鸡就用菜刀就好了,用砍牛刀还把人累的,没菜刀快。动态路由规划就相当于砍牛刀。j ??另外,对于动态路由算法还能进行进一步细分。
三、分层次的路由选择协议1.为什么会有分层次的路由选择协议:??① 因特网的规模很大。 ??② 许多单位不想让外界知道自己的路由选择协议,但还想连入因特网。 5.如何实现分层次的路由选择协议:??自治系统AS:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。 ??一个AS内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。 ??自制系统AS实现了透明性,把路由协议分成了AS内使用的内部网关协议IGP(常用协议为RIP OSPF)和AS之间使用的外部网关协议EGP(常用协议为BGP)。(很久以前路由器就叫网关) §4.3.1 IP数据报格式一、TCP / IP协议栈二、IP数据报格式??首部还可以细分为固定部分和可变部分。任何一个数据报,其固定部分大小都相同,20字节,且一定要有。而可变部分可有可无,大小不受限,大部分情况下没有。 ??上图中的数据部分其实就是传输层的报文段,所以这里不细说,放到传输部分讲。 ??① 版本:IPv4或IPv6。 ??② 首部长度:只有四个字节,所以只能表示0~15。单位是4Byte,例如首部长度为8,真正的长度是8 * 4Byte = 32Byte,首部长度为5,为5 * 4 = 20Byte,首部长度默认为20Byte,所以这个值肯定是5 —— 0101 ??③ 区分服务:指示期望获得哪种类型的服务。只有在使用区分服务的时候,这个字段才有用,否则就没用。 ??④ 总长度:表示首部 + 数据的数据长度,单位是1Byte,因为字段长度为16位,所以他可以表示的数据长度是0~216-1即0~65525Byte。实际情况下不会达到最大值,因为数据太长会进行切片。 ??⑤ 标识、标志、片偏移:这些到下一节IP数据报的切片再讲。 ??⑥ 生存时间(TTL):IP分组的质期。经过一个路由-1,变成0则丢弃。 ??⑦ 协议:数据部分使用的协议。 ??⑨ 可选字段:0~40Byte用来支持排错、测量以及安全等措施。 ??⑩ 填充:全0,用来把首部补充成4Byte的整数。 §4.3.2 IP数据报分片一、最大传输单元MTU1.概念:??最大传输单元MTU是指链路层数据帧可封装数据的上限。以太网的MTU是1500字节。 2.何谓分片???当所传输的数据报长度超过了最大传输单元MTU,就要进行分片。如果不分片,分组则无法传递,就会返回一个SMP差错报文。 3.标识、标志、片偏移:??我们来回收一下这里的伏笔。 ??① 标识:统一数据报的分片使用同一标识。 ??② 标志:共三位,只有两位有意义。中间位DF(Don’t Fragment)DF=1禁止分片,DF=0允许分片。第三位MF(More Fragment)MF=1后面还有分片,MF=0代表该分片是最后一片或没有分片。只有DF为0,MF才有意义。 ??③ 片偏移:指出较长分组分片后,某片在原分组中的相对位置。以8B位单位。我们可以通过这个得到一个结论:除了最后一个分片,每个分片长度一定是8B的整数倍。 ??例如一个首部20Byte数据部分3800Byte,MTU=1400Byte的数据报,就可以分成三个分片,分别是首部20Byte数据部分1400Byte、首部20Byte数据部分1400Byte、首部20Byte数据部分1000Byte。三者的片偏移量分别是$\frac{0Byte}{8Byte}=0$ 1400 B y t e 8 B y t e = 175 \frac{1400Byte}{8Byte}=175 8Byte1400Byte?=175 2800 B y t e 8 B y t e = 350 \frac{2800Byte}{8Byte}=350 8Byte2800Byte?=350,如下表所示
§4.3.3 IPv4地址一、IP编址的历史阶段??最早使用的是分类的IP地址,后来才有子网划分。现在使用的是构成超网(无分类编制方式)。我们要依次讲解这三个东西。 二、互联网中的IP地址??如图所示,同一局域网内的ip地址除了最后一位主机号外的前三个字节都是一样的。例如上图右下角拿个局域网里面都是222.1.3.x,我们把这一片局域网就叫222.1.3.0 ??PS:绿色的网不叫原谅网,叫无编号网,是一种特殊的局域网。 三、分类的IP地址
??PS:其中D类仅用于一对多通信。E类几乎不使用。 四、特殊的IP地址??PS:对于A类,第一个字节叫网络号,对B,前两个叫网络号,对C,前三,剩下的字节叫主机号。 ??情况一:他不知道自己的网络号,也不知道自己的主机号,直接发送数据。 ??情况二:同一个局域网内,网络号相同,所以目的地址网络号为零就是说目的地址网络号和源地址是一样的。 ??情况三:也就是255.255.255.255。目的地址如果填成这样的,那就是说目的主机就是该局域网内的所有主机。路由器不转发是因为这是在一个广播域内,不需要跨网。 ??情况四:网络ID ??情况五:类似于情况三,只是他可以在其他的网络中也进行一个广播。 ??情况六:换回地址、用来测试。例如:127.0.0.1。这种地址还没发出去就走回来了,只是用来测试的。类似于你用Socket编程做了一个客户端服务器然后自己和自己聊天,这种情况下数据还没发出主机之外就被本主机接收了。 ??PS:若主机号为255,则一定是广播地址。 五、私有IP地址
§4.3.4 网络地址转换NAT一、私有IP地址??我们先回顾一下上节课讲得私有IP地址。 ??但是你想一下,你做完C语言课设的时候不还是照样能玩4399,跟女朋友聊QQ,既然不经过路由器,那这是怎么做到的?这就利用到了网络地址转换NAT。 二、网络地址转换NAT??网络地址转换NAT (Network Address Translation):在专用网连接到因特网的路由器上安装NAT软件,安装了NAT软件的路由器叫NAT路由器,它至少有一个有效的外部全球IP地址。 ??那NAT是如何实现的呢?NAT路由器内部有一个NAT转换表。长这样: §4.3.5 子网划分和子网掩码一、子网划分1.IP地址分类的缺点:??① IP地址空间的利用率有时很低。 ??② 两级IP地址不够灵活。 2.何为子网划分???我们前面讲的都是二级IP地址,分个网络号和主机号。 ??而所谓的三级IP地址分为网络号、子网号、主机号。就是把二级IP的主机号分成了子网号和主机号。 ??某单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。 ??其中子网号能不能全1/0要看情况,主机号绝对不能全1/0。 ??有别的电脑要要发数据给145.13.21.10,那他肯定先是发给145.13.0.0的路由器,接下来呢?如何传给对应的主机?这就要用到子网掩码了。 二、子网掩码
??用子网掩码与IP地址诸位相与,就能得到子网网络地址。 例题:已知IP地址是141.14.72.24,子网掩码是255.255.192.0,求网络地址。 ??IP地址按二进制展开是10001101.00001110.01001000.00011000,子网掩码按二进制展开是11111111.11111111.11000000.00000000,二者按位与可得10001101.00001110.01000000.00000000即141.14.64.0 考研真题:某主机的IP地址为180.80.77.55,子网掩码为255.255.252.0。若该主机向其所在子网发送广播分组,则目的地址可以是() . ??A.180.80.76.0 ??B.180.80.76.255 ??C.180.80.77.255 ??D.180.80.79.255 ??IP地址二进制形式:10110100.01010000.01001101.00110111子网掩码二进制形式11111111.11111111.11111100.00000000。按位与得到网络号为10110100.01010000.01001100.00000000,即180.80.76.0,因为这是B类IP地址,网络号为前两个字节,所以其子网号第三个字节前六位,主机号是后十个位,为得到广播IP,令主机号全1,得到10110100.01010000.01001111.11111111,也就是180.80.79.255。选D。 三、使用子网时分组的转发1.路由表中的内容:??① 目的网络地址。 ??② 目的网络子网掩码。 ??③ 下一跳的地址。 2.路由器转发分组的算法的步骤:??PS:这里我看的那个课上实在讲的然,我这里也写的有点然。😦 😐 😮 😛 😄 ??① 提取目的IP地址。 ??② 判断是否直接交付(直接交付就是说直接把数据交付给该路由器所辖网络内的主机,间接交付就是该路由器所辖网络内并没有目的主机,所以需要让数据继续在路由器中传播直至可以直接交付) ??③ 判断是否为特定主机路由(路由表中有一个数据是特定主机及其特定路由方式,如果发现目的地址与路由表中的某个特定地址相同,就按照路由表中对应的特定的路由方式进行路由,而非默认的方式。) ??④ 检测库由表中有无路径 ??⑤ 默认路由(如果前面的方法都没有路由成功路由,那就进行默认路由) ??⑥ 丢弃,报告转发分组出错。 §4.3.6 无分类编址CIDR一、无分类编址CIDR1.变长子网掩码:??一般情况下子网掩码都是定长的,但有的情况下使用的是变长子网掩码,比如说在西安邮电大学里,通院和计院人比较多,使用较短的一个子网掩码,而人外院现代邮政院人比较,就使用比较长的。 2.无分类域间路由选择CIDR:??首先第一点:CIDR消除了传统的A类、B类、C类和划分子网的概念。 ??CIDR记法:IP地址后加上“/”,然后写上网络前缀(可以任意长度)的位数。例如:128.14.32.0/20 ??其次第二点:CIDR融合了子网地址与子网掩码,方便子网划分。 ??CIDR把网络前缀都相同的IP地址组成一个“CIDR地址块”。 ??例如128.14.35.7/20是某CIDR地址块中的一个地址。 ??其二进制表示为:10000000 00001110 00100011 00000111 ??最小地址表示为:10000000 00001110 00100000 00000000 ??最大地址表示为:10000000 00001110 00101111 11111111 ??地址块ID即是最小地址表示,即128.14.32.0/20,对所有网络前缀为20的地址块统称为“/20地址块”。 ??地址掩码(子网掩码)为:11111111 11111111 11110000 00000000 二、构成超网??将多个子网聚合成一个较大的子网,叫做构成超网,或路由聚合。(划分子网是把一个大饼子分成好多个小饼子,构成超网是把好多个小饼子拼成一个大饼子。)而其所使用的方法就是将网络前缀缩短。 三、最长前缀匹配??使用CIDR时,查找路由表可能得到几个匹配结果,应选择具有最长网络前缀的路由。前缀越长,地址块越小,路由越具体。 例题:路由器RO的路由表见下表:若进入路由器R0的分组的目的地址为132.19.237.5,请问该分组应该被转发到哪一个下一跳路由器() 。 ??A. R1 B. R2 ??C. R3D. R4 例题:某网络的IP地址空间为192.168.5.0/24,采用定长子网划分,子网掩码为255.255.255.248,则该网络中的最大子网个数、每个子网内的最大可分配地址个数分别是() A. 32,8 B. 32,6 C. 8,32 D. 8,30 ??首先子网掩码二进制形式为11111111.11111111.11111111.11111000,也就是主机号为后三位,子网号未知,由题中给的某网络的IP地址空间为192.168.5.0/24我们可知网络前缀为24位,而子网掩码中前29位是全1,那么第25~29这五位就是子网号了。那么最大子网数就是25=32,最大可分配地址个数为23-2=6。所以选B。注意了,不能说是主机号有三位23=8,所以答案是A,人家问的是可分配地址,全零全一不可分配。 ??如果你是做题家,那其实三种编码方式没必要搞得清清楚楚的,能做题就行了。 §4.3.7 ARP协议一、发送数据的过程1.同一局域网内,主机1发送数据给主机3:
??ARP高速缓存(ARP cache),由最近的ARP项组成的内在中的一个临时表。是IP地址与mac地址的映射。 ??ARP协议的过程就是首先要广播一个ARP分组请求。也就是IP1对应的一号主机要发送一个数据帧。这个数据帧的内容是主机1的IP地址,主机3的IP地址,主机1的MAC地址和本网广播地址(全1IP即255.255.255.255) ??当主机3收到了来到主机1的广播ARP请求分组,主机3就会给主机1发送一个单播ARP响应分组。响应分组只包括两个部分,主机3的IP地址和他的MAC地址。 2.不同局域网内,主机1发送数据给主机5:
??那怎么办呢,主机1先用子网掩码和主机5IP地址相与运算,发现自己与主机5在同一局域网内就进行上面那个“1.同一局域网内,主机1发送数据给主机3”中的步骤,否则查询默认网关IP地址(默认网关说的就是这个管辖这个局域网的路由器,也就是这个主机与外界沟通的路由器)。 ??这种情况和上面那种情况一样,也要发送广播ARP请求分组和接收单播ARP响应分组。我们设默认网关,也就是从左往右数第一个路由器的IP地址是IP6。 ??进一步转发。 5.ARP协议总结:??由于在实际网络的链路上传送数据帧时,最终必须使用MAC地址。 ??而ARP协议是用来完成主机或路由器lP地址到MAC地址的映射。也就是解决下一跳走哪的问题。 ??ARP协议使用过程:检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存(10-20min更新一次)。 ??ARP协议的四种典型使用情况是:① 主机A发给本网络上的主机B:用ARP找到主机B的硬件地址。② 主机A发给另一网络上的主机B;用ARP找到本网络上一个路由器(网关)的硬件地址。③ 路由器发给本网络的主机A:用ARP找到主机A的硬件地址。④ 路由器发给另一网络的主机B:用ARP找到本网络上的一个路由器的硬件地址。 ??另外还要注意一点,ARP协议是自动进行的,主机的用户对于地址解析的过程是完全不知道的。 例题:主机发送IP数据报给主机B,经过了5个路由器,请问此过程总共使用了几次ARP协议? 如图:
ARP一次
ARP两次
ARP三次
ARP四次
ARP五次
ARP六次
发送端
路由器一号
路由器二号
路由器三号
路由器四号
路由器五号
接收端
??答案是六次。 ??ARP协议是处于网络层和链路层之间的一个协议,因为它结合了IP地址与MAC地址。但它更偏向于网络层,所以还是被划分到了网络层里面。为了对这个说法有更深的理解,我们搬出来TCP/IP协议栈的那张图。 §4.3.8 DHCP协议二、主机如何获得IP地址1.静态配置:??比方说在机房里,每个电脑的IP地址都是固定的,这种方式需要分配的有IP地址、子网掩码、默认网关。 2.动态分配:
??几台DHCP服务器和链路层设备交换机。 ??你拿上手机走到不同的教学楼就是不同的网段,就得动态地分配IP地址,而完成动态分配IP地址工作的就是这个DHCP服务器了。我走到逸夫楼,逸夫楼的DHCP服务器给我分配一个IP地址,然后我又到A栋,A栋的DHCP服务器又给我分配了一个新的DHCP服务器。 二、DHCP协议1.何为DHCP协议:??动态主机配置协议DHCP是应用层协议,使用客户端/服务器方式,客户端和服务端通过广播方式进行交互,基于UDP。 ??DHCP提供即插即用联网的机制,主机可以从服务器动态获取IP地址、子网掩码、默认网关、DNS服务器名称与IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租。 2.DHCP协议的工作流程:??① 主机广播DHCP发现报文。试图找到网络中的服务器,服务器获得一个IP地址。 ??② DHCP服务器广播DHCP提供报文。服务器拟分配给主机一个IP地址及相关配置,先到先得。 ??③ 主机广播DHCP请求报文。主机向服务器请求提供IP地址。为什么这个也是广播地址呢?这样就可以告诉其他的DHCP服务器,我找到服务器了,你们不用等我,我IP地址分给别人去吧。 ??④ DHCP服务器广播DHCP确认报文。正式将IP地址分配给主机。 ??这四步就相当于是: ??——主机发送群聊:“在?” ??——某服务器在群聊中回复:“@主机 在。” ??——主机本想私发给服务器,但想了想,如果私发的话,群里其他人不知道自己事情已经解决了,又会来回自己消息,所以便在群里发:“@服务器 给我空间点个赞?” ??——服务器:“好。” §4.3.8 ICMP协议一、网际控制报文协议ICMP1.ICMP协议是什么:??我们先看看TCP/IP协议栈,显而易见,ICMP协议处在网络层和传输层中间。ICMP协议的存在是为了更有效地转发IP数据报和提高交付成功的机会。 2.差错(或异常)报告:??对于差错(或异常)报告,ICMP协议负责发送一个ICMP报文。 ??以下是ICMP报文各个字段的内容分析图。 ??② 代码:为了进一步区分具体的错误情况。 ??③ 检验和:检验整个报文。 二、ICMP差错报文(有五种):
三、ICMP差错报告报文数据字段四、不应发送ICMP差错报文的五种情况??1.对ICMP差错报告报文不再发送ICMP差错报告报文。 ??2.对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文 ??3.对具有组播地址的数据报都不发送ICMP差错报告报文。 ??4.对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文。 五、ICMP询问报文1.回答请求和回答报文:??主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。测试目的站是否可达以及了解其相关状态,也就是我们常说的ping。 2.时间戳请求和回答报文:??请某个主机或路由器回答当前的日期和时间。用来进行时钟同步和测量时间。 ??其实不止两个,还有掩码地址请求和回答报文和路由器询问和通告报文,不过现在已经取消掉了。 六、ICMP的应用1.PING:??测试两个主机之间的连通性,使用了ICMP回送请求和回答报文。 2.Tranceroute:??跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。 ??Traceroute的原理是vujiA给主机B发送一连串的数据报,这一连串的数据报的TTL也就是生存时间都是不一样的,tamfdeTTL是逐个递增的。这串数据报到第一个路由器的时候就会死上一个,路由器给vujiA发送一个ICMP时间超过差错报告报文,到下一个路由器也是如此,每个路由器都是如此,主机A给主机B通信过程中每个路由器都会给主机A发送数据报,那主机A就知道了分组发送的路径了。 §4.4 IPv6一、为什么会有IPv6???因为32位的IP地址空间已经快要分配殆尽了。我们甚至有了CIDR和NAT技术来缓解,但这点操作还是远远不够的,只能说是治标不治本。因此我们产生了IPv6技术来从根本上解决地址耗尽的问题。 ??CIDR和NAT是在小房子的基础上放点柜子、书架,进行合理分配,就有空放杂物了。而IPv6技术则是直接扩建小房子。 ??另外IPv6还想尝试支持快速处理/转发数据报、支持QoS。 ??QoS ( Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。 二、IPv6数据格式??其中扩展首部可有可无。如果需要特殊服务,就填充一个扩展首部。需要几个扩充几个,不需要则无扩展首部。 ??② 优先级:区分数据报的类别和优先级 ??③ 流标签:“流”是互联网络上从特定源点到特定终点的一系列数据报。所有属于同一个流的数据报都具有同样的流标签。 ??④ 有效载荷长度:顾名思义,有效载荷的长度。注意要和IPv4区分开,IPv4是给个头的长度,给个全身长度,而IPv6是给了头的长度,给了头往下的长度。 ??⑤ 下一个首部:标识下一个扩展首部或上层协议首部。如果说数据包是一个链表节点,下一个首部字段相当于是指针域,指向了下一个数据报。 ??⑥ 跳数限制:相当于是IPv4的TTL,如果跳数限制达到零则丢弃掉该数据报并返回ICMP差错报文。 ??⑦ 原地址和目的地址:需要注意,对于IPv4,这两个字段都是32位,而对于IPv6而言,是128位。 三、IPv4和IPv6??lPv6将地址从32位(4B)扩大到128位(16B),更大的地址空间。 ??IPv6将IPv4的校验和字段彻底移除,以减少每跳的处理时间。 ??IPv6将IPv4的可选字段移出首部,变成了扩展首部,成为灵活的首部格式,路由器通常不对扩展首部进行检查.大大提高了路由器的处理效率。 ??lPv6支持即插即用(即自动配置),不需要DHCP协议。 ??lPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍。 ??IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。 ??ICMPv6的附加报文类型“分组过大”。 ??lPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。 ??lPv6取消了协议字段,改成下一个首部字段。 ??IPv6取消了总长度字段,改用有效载荷长度字段。 ??IPv6取消了服务类型字段。 四、IPv6地址表示方式??一般形式:4BF5:0000:0000:0000:BA 5F:039A:000A:2176 ??压缩方式:4BF5:0:0:0:BA5F:39A:A:2176 ??零压缩方式(一连串的零用一对冒号表示):4BF5::BA5F:39A:A:2176 五、IPv6基本地址类型1.单播:??一对一通信,可做源地址+目的地址。 2.多播:??一对多通信,可做目的地址。多播地址指代的是一堆主机,这一堆主机称为一个多播组, 3.任播:??这个是IPv6的专有名词,任播组和多播组一样都是一堆主机,但是多播是这一堆主机都有份,任播是这一堆主机谁离我近我给谁发数据,其他人就算了。 六、如何实现IPv4与IPv6的兼容1.双栈协议:??双协议栈技术就是指在一台设备上同时启用lPv4协议栈和IPv6协议栈。这样的话,这台设备既能和IPv4网络通信,又能和IPv6网络通信。如果这台设备是一个路由器,那么这台路由器的不同接口上,分别配置了IPv4地址和IPv6地址,并很可能分别连接了IPv4网络和IPv6网络。如果这台设备是一个计算机,那么它将同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能。 2.隧道协议:??通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。 七、本节思维导图
§4.5.1 RIP协议与距离向量算法一、路由选择协议分类回顾
二、RIP协议??RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。 ??RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)。 ??距离:通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。 ??PS:RIP协议只适用于小互联网。算法基础是Floyd算法 三、RIP协议和谁交换?多久交换一次?交换什么???1.仅和相邻路由器交换信息。 ??⒉路由器交换的信息是自己的路由表。 ??3.每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表。路由器刚开始工作时,只知道直接连接的网络的距离(距离为1),接着每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。经过若干次更新后,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址,即“收敛”。 四、距离向量算法??1.修改相邻路由器发来的RIP报文中所有表项,对地址为x的相邻路由器发来的RIP报文,修改此报文中的所有项目:把“下一跳”字段中的地址改为x,并把所有的“距离”字段+1。 ??2.对修改后的RIP报文中的每一个项目,进行以下步骤: ????( 1)R1路由表中若没有Net3,则把该项目填入R1路由表。 ????(2)R1路由表中若有Net3,则查看下一跳路由器地址: ??3.若180s还没收到相邻路由器x的更新路由表,则把X记为不可达的路由器,即把距离设置为16。 例题:已知路由器R6的路由表,现收到相邻路由器R4发来的路由更新信息,试更新路由器R1的路由表。 ????C通过B:(11,6,14,18,12,8) ????C通过D:(19,15,9,3,12,13) ????C通过E:(12,11,8,14,5,9) ??除了表示C到C的第三项为零,其他都去最小值,最终的答案为(11, 6, 0, 3, 5, 8),答案为B。 五、RIP协议的报文格式??RIP是应用层协议使用UDP传送数据。一个RIP报文最多可包括25个路由表项,如超过,必须再用一个RIP报文传送。 六、本节思维导图
4.5.2 OSPF协议与链路状态算法一、路由选择协议分类回顾
二、OSFP协议1.OSFP的概念:??开放最短路径优先OSPF协议:“开放”标明oSPF协议不是受某一家厂商控制,而是公开发表的;“最短路径优先”是因为使用了Dijkstra提出的最短路径算法SPF。 ??OSPF最主要的特征就是使用分布式的链路状态协议。 2.OSPF的特点:??和谁交换信息?使用洪泛法向自治系统内所有路由器发送信息,即路由器通过输出端口向所有相邻的路由器发送信息,而每一个相邻路由器又再次将此信息发往其所有的相邻路由器。最终整个区域内所有路由器都得到了这个信息的一个副本。(类似于广播的形式) ??交换什么?发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器和哪些路由器相邻,以及该链路的度量/代价――费用、距离、时延、带宽等)。 ??多久交换一次?只有当链路状态发生变化时,路由器才向所有路由器洪泛发送此信息。 ??最后,所有路由器都能建立一个链路状态数据库,即全网拓扑图。 三、链路状态??1.每个路由器发现它的邻居结点**【HELLO问候分组】**,并了解邻居节点的网络地址。 ??2.设置到它的每个邻居的成本度量metric。 ??3.构造**【DD数据库描述分组】**,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息。 ??4.如果DD分组中的摘要自己都有,则邻站不做处理;如果有没有的或者是更新的,则发送**【LSR链路状态请求分组】**请求自己没有的和比自己更新的信息。 ??5.收到邻站的LSR分组后,发送**【LSU链路状态更新分组】**进行更新。 ??6.更新完毕后,邻站返回一个**【LSAck链路状态确认分组】**进行确认。 ??只要一个路由器的链路发生变化,就会进行第五六步:泛洪发送【LSU链路状态更新分组】进行更新。更新完毕后,邻站返回一个【LSAck链路状态确认分组】进行确认。 ??7.使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径。 四、OSFP的区域??为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统再划分为若干个更小的范围,叫做区域。每一个区域都有一个32位的区域标识符(用点分十进制表示)。区域也不能太大,在一个区域内的路由器最好不超过200个。 ??R6叫自制系统边界路由器,他要连接到别的自制系统上。 ??区域内部的所有路由器就叫做区域内部路由器了。 ??这样虽然让自制系统拓扑结构更加复杂,但是能让每个区域内部交换路由信息的通信量大大减少。所以OSFP协议才应用于规模大的自治系统。 五、OSFP分组
六、OSFP协议的其它特点??1.每隔30min,要刷新一次数据库中的链路状态。 ??2.由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF协议要比距离向量协议RIP好得多。 ??3.OSPF不存在坏消息传的慢的问题,它的收敛速度很快。 4.5.2 BGP协议一、路由选择协议分类回顾
二、BGP协议1.和谁交换:??与其他AS的邻站发言人交换信息。 2.交换什么:??交换网络可达性的问题,即到达某个网络所要经过的一系列AS。 3.多久交换一次:??发生变化时更新有变化的部分。 三、BGP协议交换信息的过程??BGP所交换的网络可达性的信息就是要到达某个网络所要经过的一系列AS,当BGP发言人互相交换了网络可达性的信息后,各BGP发言人就根据所采用的策略从收到的路由信息中找出到达各AS的较好路由。 四、BGP协议交换信息的过程??BGP发言人交换路径向量: ??自治系统AS2的 BGP发言人通知主干网AS1的BGP发言人:“要到达网络N1、N2、N3和N4可经过AS2。” 五、BGP协议的报文格式??一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立TCP连接,即通过TCP传送,然后在此连接上交换BGP报文以建立BGP会话(session),利用BGP会话交换路由信息。 六、BGP协议特点??BGP支持CIDR,因此BGP的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。 ??在BGP刚刚运行时,BGP的邻站是交换整个的 BGP路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销都有好处。 七、BGP-4的四种报文格式??1.OPEN(打开)报文:用来与相邻的另一个BGP发言人建立关系,并认证发送方。 ??2.UPDATE(更新)报文:通告新路径或撤销原路径。 ??3.KEEPALIVE(保活)报文:在无UPDATE时,周期性证实邻站的连通性;也作为oPEN的确认。 ??4.NOTIFICATION(通知)报文:报告先前报文的差错;也被用于关闭连接。 八、三种路由协议比较??RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文来交换路由信息。 ??OSPF是一个内部网关协议,要交换的信息量较大,应使报文的长度尽量短,所以不使用传输层协议(如UDP或TCP),而是直接采用IP。 ??BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP。
4.6 IP组播一、IP数据报的三种传输方式1.单播:??单播用于发送数据包到单个目的地,且每发送一份单播报文都使用一个单播IP地址作为目的地址。是一种点对点传输方式。 2.多播:??广播是指发送数据包到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。(给一堆人,不管用户需求) 3.多播 / 组播:??当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据包建立组播分发树,被传递的数据到达距离用户端尽可能近的节点后才开始复制和分发,是一种点对多点传输方式。(这一堆人谁需要才给谁) 二、IP组播地址1.概念:??IP组播地址让源设备能够将分组发送给一组设备。属于多播组的设备将被分配一个组播组IP地址(一群共同需求主机的相同标识)。 ??组播地址范围为224.0.0.0~239.255.255.255(D类地址),一个D类地址表示一个组播组。只能用作分组的目标地址。源地址总是为单播地址。 2.特点:??① 组播数据报也是“尽最大努力交付”,不提供可靠交付,应用于UDP。 ??② 对组播数据报不产生lCMP差错报文。 ??③ 并非所有D类地址都可以当做组播地址。 三、硬件组播??同单播地址一样,组播IP地址也需要相应的组播MAc地址在本地网络中实际传送帧。组播MAC地址以十六进制值01-00-5E打头,余下的6个十六进制位是根据IP组播组地址的最后23位转换得到的。 ??TCP/IP协议使用的以太网多播地址的范围是:从01-00-5E-00-00-00到01-00-5E-7F-FF-FF . ??因此,收到多播数据报的主机,还要在P层利用软件进行过滤,把不是本主机要接收的数据报丢弃。 四、IGMP协议1.概念:??IGMP协议(网际组管理协议)让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组。 ??使用IGMP协议的路由器并不知道参加组播的路由器个数,也不会知道这些主机具体都是谁。只知道自己的辖区内到底有没有。 2.工作流程:??① 某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要称为该组的成员。 ??② 本地组播路由器收到lGMIP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。 ??③ 本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。 ??④ 只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的;如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。 ??PS:组播路由器知道的成员关系只是所连接的局域网中有无组播组的成员。只要组播组中一个主机响应了,其他主机会通过监听得知已经有人替我们发言了,便不会继续吱声了,避免不必要的通信量。 五、组播路由选择协议1.概念与组播转发树:??组播路由选择协议目的是找出以源主机为根节点的组播转发树。树可以有效避免数据报兜在路由器堆堆里边兜圈子儿。 ??对不同的多播组对应于不同的多播转发树;同一个多播组,对不同的源点也会有不同的多播转发树。 2.组播路由协议常用的三种算法:??① 链路状态路由算法 ??② 距离向量路由算法 ??③ 协议无关的组播(稀疏 / 密集):稀疏密集指的是组播组中主机离得近还是远。 六、本节思维导图
4.7 移动IP一、移动IP基本概念??移动IP不同于DHCP协议的地址分配。比如你在西安工作,因为工作原因要去曹县出差,但你却还能使用以前在西安的IP,进行一些删库跑路的事情, 二、移动IP相关术语??移动Ip技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游过程中不发生任何改变。 ??移动节点:具有永久IP地址的移动设备。 ??归属代理(本地代理):一个移动结点拥有的就“居所”称为归属网络,在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理。 ??外部代理(外地代理):在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理。 ??永久地址(归属地址/主地址):移动站点在归属网络中的原始地址。 ??转交地址(归属地址/主地址):移动站点在归属网络中的原始地址。 三、移动IP通信过程1.A刚进入外部网络:??① 在外部代理登记获得一个转交地址,离开时注销。 ??② 外地代理向本地代理登记转交地址。 2.B给A发送数据:??① 本地代理截获数据报 ??② 本地代理再封装数据报,新的数据报目的地址是转交地址,发给外部代理(使用隧道技术,前面有讲过)。 ??③ 外部代理拆封数据报,发送给A。 3.B给A发送数据:??A用自己的主地址作为数据报源地址,用B的IPp地址作为数据报的目的地址。 4.A移动到了下一个网络:??① 在新外部代理登记注册一个转交地址。 ??② 新外部代理给本地代理发送新的转交地址(覆盖旧的)。 ??③ 通信。 5.A回到了本地网络:??① A向本地代理注销转交地址。 ??② 按原始方式通信。 4.8 网络层设备一、路由器1.路由器:??路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。 2.路由选择部分的路由选择处理机:??根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。 3.分组转发部分的交换结构:??根据**转发表(路由表得来)**进行分组转发。 ??若收到RIP/OSPF分组等,则把分组送往路由选择处理机,而不进行输出;若收到数据分组,则查找转发表并输出。 二、输入输出端口对线路上收到的分组的处理1.输入端口:
2.输出端口:
??路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。 三、三层设备的区别??路由器:可以互联两个不同网络层协议的网段。 ??网桥:可以互联两个物理层和链路层不同的网段。 ??集线器:来什么我发什么,不能互联两个物理层不同的网段。
四、路由表与路由转发1.路由表:??路由表根据路由选择算法得出的,主要用途是路由选择,总用软件来实现。它包括:目的网络IP地址、子网掩码、下一跳IP地址、接口,以及默认路由(不知道往哪发的时候默认往哪发) 2.转发表:??转发表由路由表得来,可以用软件实现,也可以用特殊的硬件来实现。转发表必须包含完成转发功能所必需的信息,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些MAC地址信息的映射。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 20:40:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |