健网站怎么做,360浏览器下载,培 网站建设方案 doc,工作纪律生活纪律研讨发言IP地址与MAC地址 由于MAC地址已固化在网卡上的ROM 中#xff0c;因此常常将 MAC地址称为硬件地址或物理地址#xff1b;物理地址的反义词就是虚拟地址、软件地址或逻辑地址#xff0c;IP地址就属于这类地址。 从层次的角度看#xff0c;MAC地址是数据链路层使用的地址…IP地址与MAC地址 由于MAC地址已固化在网卡上的ROM 中因此常常将 MAC地址称为硬件地址或物理地址物理地址的反义词就是虚拟地址、软件地址或逻辑地址IP地址就属于这类地址。 从层次的角度看MAC地址是数据链路层使用的地址而IP地址是网络层和以上各层使用的地址是一种逻辑地址(称IP地址为逻辑地址是因为IP地址是用软件实现的)。 IP地址与MAC地址在层次间的关系 总之IP地址放在IP数据报的首部而MAC地址则放在MAC帧的首部。在网络层和网络层以上使用的是IP地址而数据链路层及以下使用的是MAC地址。 IP地址与MAC地址在运输中的关系 数据报中间经过的两个路由器的IP地址并不出现在IP数据报的首部中。IP数据报被封装在MAC帧中。MAC帧在不同网络上传送时其MAC帧首部中的源地址和目的地址要发生变化 开始在H1到R1间传送时MAC帧首部中写的是从MAC1地址发送到MAC3地址路由器R1收到此MAC帧后在数据链路层要剥去原来的MAC帧的首部和尾部。在转发时在数据链路层要重新添加上MAC 帧的首部和尾部。这时首部中的源地址和目的地址分别变成为MAC4和MAC5。 为什么不能只用MAC地址进行寻址 如果仅使用MAC地址进行通信则会出现以下主要问题: 路由表要记录网络中所有MAC地址因特网中的每台路由器的路由表中就必须记录因特网上所有主机和路由器各接口的MAC地址。配置路由表很麻烦手工给各路由器配置路由表几乎是不可能完成的任务即使使用路由协议让路由器通过相互交换路由信息来自动构建路由表也会因为路由信息需要包含海量的MAC地址信息而严重占用通信资源。路由信息的存储和查找很麻烦包含海量MAC地址的路由信息需要路由器具备极大的存储空间并且会给分组的查表转发带来非常大的时延。 因特网的网际层使用IP地址进行寻址就可使因特网中各路由器的路由表中的路由记录的数量大大减少 因为只需记录部分网络的网络地址而不是记录每个网络中各通信设备的各接口的MAC地址。路由器收到IP数据报后根据其首部中的目的IP地址的网络号部分基于自己的路由表进行查表转发。 地址解析协议ARP 已经知道了一个机器的IP地址需要找出其相应的 MAC地址。地址解析协议ARP就是用来解决这样的问题的。 ARP的要点 IP与MAC之间的关系很模糊网络层使用的是IP地址但在实际网络的链路上传送数据帧时最终还是必须使用链路层的MAC 地址。IP地址和下面链路层的MAC地址之间由于格式不同而不存在简单的映射关系。MAC地址也随时发生变动在一个网络上可能经常会有新的主机加入进来或撤走一些主机。更换网络适配器也会使主机的MAC地址改变(请注意主机的MAC地址实际上就是其网络适配器的MAC地址)。 地址解析协议ARP解决这个问题的方法是在主机的ARP高速缓存中存放一个从IP地址到MAC地址的映射表并且这个映射表还经常动态更新新增或超时删除 ARP运行流程 那如果A中的ARP高速缓存中没有找到主机B的IP地址呢 B发送响应分组的流程如下 MAC地址类型 动态通过ARP自动获取生命周期默认为两分钟。 静态手工配置不同操作系统下的生命周期不同例如系统重启后不存在或系统重启后依然有效。 设置生存时间的原因 答转发表中的MAC地址与交换机接口号的对应关系记录也要周期性删除,因为这种对应关系并不是永久不变的。同理,ARP高速缓存表中的IP地址与MAC地址的对应关系也并不是永久不变的。例如主机更换了一块新网卡。 主机跨网络寻址 IP数据报的格式 一个IP数据报由首部和数据两部分组成首部的前一部分长度是固定的共20字节是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段其长度是可变的。 版本 长度为4个比特用来表示lP协议的版本通信双方使用的IP协议的版本必须一致。目前广泛使用的IP协议的版本号为4(即IPv4) 首部长度 长度为4个比特该字段的取值以4字节为单位用来表示IPv4数据报的首部长度。 最小取值为二进制的0101即十进制的5再乘以4字节单位表示IPv4数据报首部只有20字节固定部分。最大取值为二进制的1111即十进制的15再乘以4字节单位表示IPv4数据报首部包含20字节固定部分和最大40字节可变部分。 以下是对该概念的深入讨论 大概可以得出首部长度是怎样控制的 区分服务 长度为8个比特用来获得更好的服务。 该字段在旧标准中叫作服务类型但实际上一直没有被使用过。1998年因特网工程任务组ETF把这个字段改名为区分服务。利用该字段的不同取值可提供不同等级的服务质量。 只有在使用区分服务时该字段才起作用一般情况下都不使用该字段。 总长度 长度为16个比特该字段的取值以字节为单位用来表示IPv4数据报的长度首部长度数据载荷长度)最大取值为二进制的16个比特1即十进制的65535(很少传输这么长的IPv4数据报)。 总长度与首部长度的关系 标识、标志、片位移 标识长度为16个比特属于同一个IPv4数据报的各分片数据报应该具有相同的标识。 IP软件会维持一个计数器每产生一个IPv4数据报计数器值就加1并将此值赋给标识字段。 标志 最低位(More FragmentMF) MF1表示本分片后面还有分片MF0表示本分片后面没有分片 中间位(Dont FragmentDF) DF1表示不允许分片DF0表示允许分片 最高位为保留位必须设置为0 片位移长度为13个比特该字段的取值以8字节为单位用来指出分片lPv4数据报的数据载荷偏移其在原IPv4数据报的位置有多远。 数据报的划分 对划分的数据报进行再划分 练习 正确的做法如下 生存时间、协议、首部检验和 生存时间(Time To LiveTTL) 长度为8个比特最大取值为二进制的111111即十进制的255。该字段的取值最初以秒为单位。 因此IPv4数据报的最大生存时间最初为255秒。路由器转发IPv4数据报时将其首部中该字段的值减去该数据报在路由器上所耗费的时间若结果不为0就转发否则就丢弃。 生存时间字段后来改为以“跳数”为单位路由器收到待转发的IPv4数据报时将其首部中的该字段的值减1,若结果不为0就转发否则就丢弃。 协议 长度为8个比特用来指明IPv4数据报的数据载荷是何种协议数据单元PDU。 首部检验和 长度为16个比特用于检测IPv4数据报在传输过程中其首部是否出现了差错。 IPv4数据报每经过一个路由器其首部中的某些字段的值例如生存时间TTL、标志以及片偏移等都可能发生变化因此路由器都要重新计算一下首部检验和。 首部检验和的计算方法 二进制反码求和的运算 源IP地址与目的IP地址 源IP地址 长度为32个比特用来填写发送IPv4数据报的源主机的IPv4地址。 目的IP地址 长度为32个比特用来填写接收IPv4数据报的目的主机的IPv4地址。 可变部分可选字段填充 可选字段 长度从1字节到40字节不等用来支持排错、测量以及安全措施等功能。 虽然可选字段增加了IPv4数据报的功能但这同时也使得IPv4数据报的首部长度成为可变的这就增加了因特网中每一个路由器处理IPv4数据报的开销。实际上可选字段很少被使用。 填充 用来确保IPv4数据报的首部长度是4字节的整数倍使用全0进行填充。 IP转发分组 分组在互联网上传送和转发是基于分组首部中的目的地址的因此这种转发方式称为基于终点的转发。 因此分组每到达一个路由器路由器就根据分组中的终点目的地址查找转发表然后就得知下一跳应当到哪一个路由器。 但是路由器路由器中的转发表却不是按目的IP地址来直接查出下一跳路由器的 路由器的寻址方法而是先查找目的网络网络前缀)在找到了目的网络之后就把分组在这个网络上直接交付目的主机。 由于互联网上的网络数远远小于主机数这样就可以大大压缩转发表的大小加速分组在路由器中的转发。这就是基于终点的转发过程。 IP转发分组的工作流程 我们用如下网络来进行举例 直接交付与间接交付 直接交付同一个网络中的主机之间可以直接通信。间接交付不同网络中的主机之间的通信需要通过路由器来中转。 源主机如何判断自己与目的主机在同一网络 源主机C如何知道需要经由哪个路由器 实际上用户为了让本网络中的各主机能与其他网络中的各主机进行通信就要必须给本网络中的各主机指定本网络中的一个路由器由该路由器帮忙进行转发。所指定的路由器也被称为默认网关。 假设主机A要给主机D发送IP数据包 路由器配置IP地址时就生成了路由表条目 路由器收到IP数据报后的表现 主机A发送广播 静态路由配置 静态路由配置是指用户或网络运维人员使用路由器的相关命令给路由器人工配置路由表。 人工配置方式简单、开销小、但不能及时适应网络状态流量、拓扑等的变化一般只在小规模网络中采用。 进行静态路由配置需要认真考虑和谨慎操作否则可能出现以下问题: 路由条目配置错误甚至导致出现路由环路。聚合路由条目时可能引入不存在的网络。 当R1向蓝色网络群发送IP数据 默认路由 我们思考一个问题如果下述情况需要针对英特网中的每一个网络给R1添加一条相应的路由条目吗 回答是否定的。试想一下如果针对因特网中的每一个网络给R1添加一条静态路由条目这会给人工配置带来巨大的工作量并且使R1的路由表变得非常大降低了转发的速度。 特定主机路由 出于某种安全问题的考虑同时为了使网络运维人员更方便地控制网络和测试网络特别是在对网络的连接或路由表进行排错时指明到某一台主机的特定主机路由是十分有用的。 最长前缀匹配 分组目的地址可能出现与路由器多个项目匹配的情况 得出最长前缀匹配如下 使用二叉树线索查找转发表 为了进行更加有效的查找通常是把无分类编址的转发表存放在一种层次的数据结构中然后自上而下地按层次进行查找。这里最常用的就是二叉线索(binary trie)。 二叉线索的结构 IP地址中从左到右的比特值决定了从根节点逐层向下层延伸的路径而二叉线索中的各个路径就代表转发表中存放的各个地址。 二叉线索的运作 二叉树存储IP 从二叉线索的根节点自顶向下的深度最多有32层每一层对应于IP地址中的一位。 一个IP地址存入二叉线索的规则很简单:先检查IP地址左边的第一位如为0则第一层的节点就在根节点的左下方;如为1则在右下方。然后再检查地址的第二位构造出第二层的节点。依此类推直到唯一前缀的最后一位。由于唯一前缀一般都小于32位因此用唯一前缀构造的二叉线索的深度往往不到32层。 在二叉树中查找IP地址 以上只是给出了二叉线索这种数据结构的用法而并没有说明“与唯一前缀匹配”和“与网络前缀匹配”的关系。 显然要将二叉线索用于转发表中还必须使二叉线索中的每一个叶节点包含所对应的网络前缀和子网掩码。当搜索到一个叶节点时就必须将寻找匹配的目的地址和该叶节点的子网掩码进行按位AND运算看结果是否与对应的网络前缀相匹配。 若匹配就按下一跳的接口转发该分组。 否则就丢弃该分组 总之二叉线索只是提供了一种可以快速在转发表中找到匹配的叶节点的机制。但这是否和网络前缀匹配还要和子网掩码进行一次逻辑AND运算。 另外为了提高二叉线索的查找速度广泛使用了各种压缩技术。例如下图中的最后两个地址其最前面的4位都是1011。因此只要一个地址的前4位是1011就可以跳过前面4位即压缩了4个层次而直接从第5位开始比较。这样就可以减少查找的时间。 网际控制报文ICMP 为了更有效地转发IP数据报以及提高IP数据报交付成功的机会TCP/IP体系结构的网际层使用了网际控制报文协议ICMP (Internet Control Message Protocol) ICMP是互联网的标准协议。但ICMP不是高层协议而是IP层的协议。看起来好像是高层协议因为ICMP报文装在IP数据报中作为其中的数据部分)。 ICMP报文作为IP层数据报的数据加上数据报的首部组成IP数据报发送出去。 ICMP报文的种类 ICMP报文有两种即ICMP差错报告报文和ICMP询问报文。
差错报告报文用来向主机或路由器报告差错情况。询问报文用来向主机或路由器询问情况。 1、ICMP报文的前4字节是统一的格式共有三个字段:类型、代码和检验和。 2、接着的4字节的内容与ICMP的类型有关。最后面是数据字段其长度取决于ICMP的类型 差错报告报文详解 (1)终点不可达当路由器或主机不能交付数据报时就向源点发送终点不可达报文。 具体可再根据ICMP的代码字段细分为目的网络不可达、目的主机不可达、目的协议不可达、目的端口不可达、目的网络未知、目的主机未知等13种。 (2)时间超过当路由器收到生存时间为零的数据报时除丢弃该数据报外还要向 源点发送时间超过报文。 当路由器收到一个目的IP地址不是自己的IP数据报时会将其首部中生存时间TTL字段的值减1。 若结果不为0则路由器将该数据报转发出去;若结果为0路由器不但要丢弃该数据报还要向发送该IP数据报的源点发送时间超过(超时)报文。 另外当终点在预先规定的时间内未能收到一个数据报的全部数据报分片时就把已收到的数据报片都丢弃也会向源点发送时间超过(超时)报文。 (3)参数问题:当路由器或目的主机收到的数据报的首部中有的字段的值不正确时就丢弃该数据报并向源点发送参数问题报文。 (4)改变路由重定向):路由器把改变路由报文发送给主机让主机知道下次应将数据报发送给另外的路由器也就是说找到了更好的路由)。 5源点抑制当路由器或主机由于拥塞而丢弃IP数据报时就向发送该IP数据报的源点发送源点抑制报文使源点知道应当把P数据报的发送速率放慢。 同理主机也有可能出现因拥塞而丢弃IP数据报并发送ICMP差错报告报文的情况如图所示。 不应发送ICMP差错报告报文的情况 对ICMP差错报告报文不再发送ICMP差错报告报文。对第一个分片的IP数据报片的所有后续数据报片都不发送ICMP差错报告报文。对具有多播地址的IP数据报都不发送ICMP差错报告报文。对具有特殊地址例如127.0.0.0或0.0.0.0的IP数据报不发送ICMP差错报告报文。 询问报文详解 回送请求和回答 由主机或路由器向一个特定的目的主机或路由器发出收到此报文的主机或路由器必须给发送该报文的源主机或路由器发送ICMP回送回答报文。 这种询问报文用来测试目的站是否可达以及了解其有关状态。 时间戳请求和回答 用来请求某个主机或路由器回答当前的日期和时间。 在ICMP时间戳回答报文中有一个32比特的字段其中写入的整数代表从1900年1月1日起到当前时刻一共有多少秒。 这种询问报文用来进行时钟同步和测量时间。 ICMP的典型应用——分组网间探测PING 分组网间探测PING用来测试主机或路由器之间的连通性。 PING是TCP/IP体系结构的应用层直接使用网际层ICMP的一个例子它并不使用运输层的TCP或UDP。PING应用所使用的ICMP报文类型为回送请求和回答。 ICMP的典型应用——跟踪路由 跟踪路由应用traceroute用于探测IP数据报从源主机到达目的主机要经过哪些路由器。 在不同操作系统中traceroute应用的命令和实现机制有所不同: 在UNIX版本中具体命令为“traceroute”其在运输层使用UDP协议在网络层使用ICMP报文类型只有差错报告报文。在Windows版本中具体命令为“tracert”其应用层直接使用网际层的ICMP协议所使用的ICMP报文类型有回送请求和回答报文以及差错报告报文。 跟踪路由的运行过程 接着H1在发送一段TTL2的ICMP回送请求 接着H1在发送一段TTL3的ICMP回送请求 IPV6 互联网经过几十年的飞速发展在2011年2月3日IANA 开始停止向地区互联网注册机构RIR分配IPv4地址因为 IPv4地址已经全部耗尽了。 不久各地区互联网地址分配机构也相继宣布地址耗尽。我国在2014年至2015年也逐步停止了向新用户和应用分配IPv4地址同时全面开始商用部署IPv6。 解决IP地址耗尽的根本措施就是采用具有更大地址空间的新版本的IP即 IPv6。经过多年的研究和试验2017年7月终于发布了IPv6的正式标准。 IPV6的优势 IPV6的基本首部 IPv6数据报由两大部分组成即基本首部(base header)和后面的有效载荷(payload)。 有效载荷也称为净负荷。有效载荷允许有零个或多个扩展首部(extension header)再后面是数据部分。但请注意所有的扩展首部并不属于IPv6 数据报的基本首部。 与IPV4相比IPV6首部某些字段发生更改 取消了首部长度字段因为它的首部长度是固定的40字节取消了服务类型字段因为优先级和流标号字段实现了服务类型字段的功能。取消了总长度字段,改用有效载荷长度字段。取消了标识、标志和片偏移字段因为这些功能已包含在分片扩展首部中。把 TTL字段改称为跳数限制字段但作用是一样的名称与作用更加一致)。取消了协议字段改用下一个首部字段。取消了检验和字段这样就加快了路由器处理数据报的速度。取消了选项字段而用扩展首部来实现选项功能。 IPv6基本首部中各字段的作用 版本字段:长度为4比特用来表示IP协议的版本。对于IPv6该字段的值是6。 通信量类字段:长度为8比特该字段用来区分不同的IPv6数据报的类别或优先级。目前正在进行不同的通信量类性能的实验。流标号字段:长度为20比特。IPv6提出了流的抽象概念。 “流”就是因特网上从特定源点到特定终点(单播或多播)的一系列IPv6数据报如实时音视频数据的传送)而在这个“流”所经过的路径上的所有路由器都保证指明的服务质量。所有属于同一个流的IlPv6数据报都具有同样的流标号。换句话说流标号用于资源分配。 流标号对实时音频/视频数据的传送特别有用。对于传统的电子邮件或非实时数据流标号则没有用处把它置为0即可。 有效载荷长度字段:长度为16比特它指明IPv6数据报基本首部后面的有效载荷(包括扩展首部和数据部分)的字节数量。 该字段以字节为单位最大取值为65535因此IPv6数据报基本首部后面的有效载荷的最大长度为65535字节。下一个首部字段:长度为8比特。该字段相当于IPv4数据报首部中的协议字段或可选字段。 当IPv6数据报没有扩展首部时该字段的作用与IPv4的协议字段一样它的值指出了IPv6数据报基本首部后面的数据是何种协议数据单元PDU。 当IPv6数据报基本首部后面带有扩展首部时该字段的值就标识后面第一个扩展首部的类型。 跳数限制字段长度为8比特。该字段用来防止IPv6数据报在因特网中永久兜圈。 源点在每个IPv6数据报发出时即设定某个跳数限制(最大255跳)。每个路由器在转发IPv6数据报时要先把跳数限制字段中的值减1。当跳数限制的值为0时就把这个IPv6数据报丢弃(即不转发)。 该字段的作用与IPv4数据报首部中的生存时间TTL字段完全一样。IPv6将名称改为跳数限制后,可使名称与作用更加一致。 源地址字段和目的地址字段:长度都为128比特。分别用来填写IPv6数据报的发送端的IPv6地址和接收端的IPv6地址。 IPv6数据报的扩展首部 IPv4数据报如果在其首部中使用了选项字段则在数据报的整个传送路径中的全部路由器都要对选项字段进行检查这就降低了路由器处理数据报的速度。 实际上在路径中的路由器对很多选项是不需要检查的。因此为了提高路由器对数据报的处理效率IPv6把原来IPv4首部中的选项字段都放在了扩展首部中由路径两端的源点和终点的主机来处理而数据报传送路径中的所有路由器都不处理这些扩展首部(除逐跳选项扩展首部)。 IPV6的地址 在IPv6中每个地址占128个比特。lPv6地址空间大小为(大于3.4×1038 ) 如果整个地球表面(包括陆地和水面都覆盖着需要IPv6地址的通信设备那么IPv6允许每平方米拥有7×1023个IPv6地址。如果IPv6地址分配速率是每微秒分配100万个IPv6地址则需要1019年的时间才能将所有可能的地址分配完毕。 很显然这样巨大的地址空间在采用合理编址方法的情况下在可预见的未来是不会用完的。 IPV6的表示方法 二进制转化为十六进制的方法如下 IPV6写作方式说明 在一个IPv6地址中只能使用一次“连续零”压缩否则会导致歧义 冒号十六进制记法还可结合点分十进制的后缀 IPV6地址的分类 未指明地址 128个比特为“全0”的地址可缩写为两个冒号“:”。该地址不能用作目的地址只能用于还没有配置到一个标准IPv6地址的主机用作源地址。未指明地址仅有一个。 环回地址 IPv6的环回地址是0:0:0:0:0:0:0:1可缩写为::1。它的作用和IPv4的环回地址一样。这类地址也是仅此一个。 多播地址 最高8比特为“全1”的地址可记为FF00:/8。IPv6多播地址的功能与IPv4多播地址相同。这类地址占IPv6地址空间的1/256。 本地链路单播地址 最高10比特为1111111010的地址可记为FE80::/10。即使用户网络没有连接到因特网但仍然可以使用TCP/IP协议。连接在这种网络上的主机都可以使用本地链路单播地址进行通信但不能和因特网上的其他主机通信。这类地址占IPv6地址空间的1/1024。 全球单播地址 全球单播地址是使用得最多的一类地址。IPv6全球单播地址采用三级结构这是为了使路由器可以更快地查找路由。 从IPv4向IPv6过渡 因特网上使用IPv4的路由器的数量太大要让所有路由器都改用IPv6并不能一蹴而就。因此从IPv4转变到IPv6只能采用逐步演进的办法。另外新部署的IPv6系统必须能够向后兼容也就是IPv6系统必须能够接收和转发IPv4数据报并且能够为IPv4数据报选择路由。 下面介绍两种由IPv4向IlPv6过渡的策略:
使用双协议栈使用隧道技术 双协议栈
双协议栈(Dual Stack)是指在完全过渡到IPv6之前使一部分主机或路由器装有IPv4和IPv6两套协议栈。双协议栈主机或路由器既可以和IPv6系统通信又可以和IPv4系统通信。双协议栈主机或路由器记为IPv6/IPv4表明它具有一个IPv6地址和一个IPv4地址。 双协议栈主机在与IPv6主机通信时采用IPv6地址而与IPv4主机通信时采用IPv4地址。双协议栈主机通过域名系统DNS查询目的主机采用的IP地址: 若DNS返回的是IPv4地址则双协议栈的源主机就使用IPv4地址;若DNS返回的是IPv6地址则双协议栈的源主机就使用IPv6地址。 双协议栈的工作流程 隧道技术 隧道技术的核心思想
当IPv6数据报要进入IPv4网络时将IPv6数据报重新封装成IPv4数据报即整个IPv6数据报成为IPv4数据报的数据载荷。封装有IPv6数据报的IPv4数据报在IPv4网络中传输。当IPv4数据报要离开IPv4网络时再将其数据载荷即原来的IPv6数据报取出并转发到IPv6网络。 隧道技术的工作流程 本例使用隧道技术就好像在路由器R1和R4之间为ipv6数据报的传送打通了一条专用的隧道。R1是隧道的入口。R4是隧道的出口。 网际控制报文协议ICMPv6 由于IPv6与IPv4一样都不确保数据报的可靠交付因此IPv6也需要使用网际控制报文协议ICMP来向发送Pv6数据报的源主机反馈一些差错信息相应的ICMP版本为ICMPv6。 ICMPv6比ICMPv4要复杂得多它合并了原来的地址解析协议ARP和网际组管理协议IGMP的功能。因此与IPv6配套使用的网际层协议就只有ICMPv6这一个协议。 ICMPv6的封装 有扩展首部的情况 ICMPv6报文的分类 ICMPv6报文可被用来报告差错、获取信息、探测邻站或管理多播通信。