资源预览内容
第1页 / 共91页
第2页 / 共91页
第3页 / 共91页
第4页 / 共91页
第5页 / 共91页
第6页 / 共91页
第7页 / 共91页
第8页 / 共91页
第9页 / 共91页
第10页 / 共91页
亲,该文档总共91页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五章第五章 TCP/IP协议协议5.1 引言引言l以TCP/IP为核心协议的Internet更加促进了TCP/IP的应用和发展,已成为事实上的国际标准。 l从网络体系结构来看,TCP/IP是OSI参考模型七层结构的简化,它只分为四层: 应用层、传送层、网际层和网络接口层 5.2 网络接口网络接口lTCP/IP协议不包含具体的物理层和数据链路层协议,只规定了TCP/IP协议与各种物理网络之间的网络接口。这些物理网络可以是广域网,如ARPANET、MILNET和X.25公用数据网,也可以是局域网,如Ethernet、Token Ring、FDDI等IEEE定义的各种标准局域网。 5.3 网际层协议网际层协议各种应用层协议各种应用层协议 网络接口层网络接口层(TELNET, FTP, SMTP 等等)物理硬件物理硬件运输层运输层TCP, UDP应用层应用层ICMPIPRARPARP与各种网络接口与各种网络接口网际层网际层IGMPl网际层的功能是实现互连网络环境下端到端数据分组的传输,采用无连接的方式。lIP协议:数据传输、路由选择 地址解析协议 ARP 逆地址解析协议 RARP 因特网控制报文协议 ICMP:网络控制和差错处理 逻辑地址与物理地址的映射5.3.1 IP协议协议1. IP 地址地址l在互连网体系结构中,参与通信的各个节点都要预先分配一个惟一的逻辑地址作为标识符,并且使用该地址进行一切通信活动,该地址称为IP地址。l实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。一个路由器至少应当有两个不同的 IP 地址。l在IP v4 中,IP地址为32位,由网络标识(Net)和主机标识(Host)两部分组成。网络号标志主机(或路由器)所连接到的网络,主机号标志该主机(或路由器)。 网络号网络号主机号主机号点分十进制记法点分十进制记法 10000000000010110000001100011111 机器中存放的 IP 地址是 32 bit 二进制代码10000000 00001011 00000011 00011111 采用点分十进制记法则进一步提高可读性128.11.3.31 128 11 3 31 将每 8 bit 的二进制数转换为十进制数net-id24 bithost-id24 bitnet-id16 bitnet-id8 bitIP地址共分为五类地址共分为五类0A 类地址host-id16 bitB 类地址C 类地址01 1host-id8 bitD 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 1 001特殊地址特殊地址能表示的地址范围 网络数主机数适用范围A0.0.0.0127.255.255.25527 2224 2超大型网络B128.0.0.0191.255.255.255214 1216 2大型网络C192.0.0.0223.255.255.255221 128 2校园网或企业网常用的三种类别的常用的三种类别的 IP 地址地址lD类地址是多播地址,表示的地址范围是224.0.0.0239.255.255.255lE类地址是实验地址,表示的地址范围是 240.0.0.0247.255.255.255l在Internet中,IP地址不是任意分配的,必须由国际组织统一分配,以保持IP地址的惟一性,避免IP地址冲突。lIP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这方便了 IP 地址的管理。lIP地址中专门保留了三个区域作为私有地址,用于Intranet内部地址。其地址范围如下: 10.0.0.0 10.255.255.255 172.16.0.0 172.31.255.255 192.168.0.0196.168.255.255l私有地址只能在内部网络中使用,只有通过代理服务器才能与Internet通信。l两级的 IP 地址地址空间的利用率很低。例如,A类地址中一个网络中包含大量主机,这会给网络寻址和管理带来困难。解决的方法是在网络中引入子网。l划分子网,是指将主机地址进一步划分成子网地址和主机地址,使两级的 IP 地址变成为三级的 IP 地址。划分子网划分子网l在原来的主机号中用若干个比特作为子网号。l子网号所占的位数与子网的数量相对应 。例如,用3个比特来进行子网划分,则可划分为8(23)个子网,每个子网中可以有32 (25)台主机主机号子网号网络号屏蔽码(掩码)的概念屏蔽码(掩码)的概念 l屏蔽码是IP地址的特殊标注码,用于指明一个IP网络中是否有子网。l如果没有子网,屏蔽码中的网络号为全1,主机号字段为全0net-idnet-idhost-idnet-idA类地址屏蔽码255.0.0.0B类地址屏蔽码255.255.0.0C类地址屏蔽码255.255.255.01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 1 1 1 1 1 1 10 0 0 0 0 0 0 0host-idhost-idA 类、类、B 类和类和 C 类类 IP 地址的屏蔽码地址的屏蔽码 l划分了子网后,屏蔽码中的网络号和子网号字段为全1,主机号字段为全0网络号 net-id主机号 host-id两级 IP 地址网络号net-idhost-id三级 IP 地址主机号subnet-id子网号屏蔽码1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0l通过屏蔽码,可以找出一个IP地址所在网络的网络地址。 方法:用屏蔽码与IP地址进行逐位“与”运算。网络号 net-id主机号 host-id两级 IP 地址网络号主机号子网号屏蔽码不划分子网时的网络地址 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0net-id host-id 为全 0AND(IP 地址地址) AND (屏蔽码屏蔽码) =网络地址网络地址例例l在没有划分子网的情况下,某主机的IP地址为23.56.7.91,求该主机所在的网络地址。 求解:这是一个A类地址,A类地址的屏蔽码是255.0.0.0,因此,用23.56.7.91和255.0.0.0进行AND运算,即可得到其网络地址为23.0.0.0网络号三级 IP 地址主机号net-idhost-idsubnet-id子网号屏蔽码划分子网时的网络地址1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0net-idsubnet-idhost-id 为全 0AND划分子网后,划分子网后,IP地址与屏蔽码总是成对出现地址与屏蔽码总是成对出现例例l某IP地址为19.56.7.91,而子网屏蔽码是255.255.192.0,求其网络地址。 求解:用19.56.7.91和255.255.192.0进行AND运算,即可得到划分了子网后的网络地址为19.56.0.0l同一个子网内的两个主机可以直接进行通信。如果两个主机不在同一个子网内,就必须借助路由器进行转发。l例:屏蔽码:255.255.255.224IP地址:202.114.80.1 主机号字段为00000001 202.114.80.16 主机号字段为00010000 l由于这两个IP地址的主机号字段前三位均为000,说明它们属于同一子网,直接交换信息。l方法二:AND运算结果均为 202.114.80.0,说明它们属于同一子网,直接交换信息。例例子网掩码:255.255.255.224IP地址:202.114.80.1 主机号字段为00000001 202.114.80.130 主机号字段为10000010l这两个IP地址的主机号字段前三位不同,说明它们属于不同子网,必须通过路由器来交换信息。l方法二:AND运算结果为 202.114.80.0和202.114.80.128 ,说明它们不属于同一子网。获取网络地址的意义获取网络地址的意义 路由器的路由表中保存的是网络地址,这样既可以解决存储空间有限问题,又可以加快路由选择。 路由器收到分组后取出目的主机的IP地址,计算出目的主机所在的网络地址,用网络地址去查找路由表以决定该从哪一个接口来转发分组。互联网中的互联网中的 IP 地址地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP 地址中的网络号必须是一样的。互联网互联网中的中的 IP 地址地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网路由器总是具有两个或两个以上的 IP 地址。路由器的每一个接口都有一个不同网络号的 IP 地址。 2. IP2. IP协议协议1 1)IPIP数据报格式数据报格式lTCP/IP中,网际层的分组又叫做IP数据报。IP数据报由报头(首部)和报文数据两部分组成。lIP首部由20字节的固定部分和可变长部分组成,最大可以为60字节。数 据 部 分首 部IP 数据报固定部分可变部分04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度段 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特数 据 部 分首 部传送IP 数据报首部首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度段 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分版本( 4 bit),指IP协议的版本目前的 IP 协议版本号为 4 (即 IPv4)首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度段 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分首部长度(4 bit)。 IP 的首部长度为2060字节。可表示的最大数值是 15 个单位(以 4 字节为单位)首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度段 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分服务类型( 8 bit),用于规定优先级、延迟、吞吐量、可靠性 、代价等参数。首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度段 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分总长度( 16 bit),首部和数据两部分的总长度,单位为字节。数据报的分段数据报的分段l在各种物理网络中都有最大帧长限制。为了使较大的数据报能以适当的大小在物理网络上传输,IP协议首先要根据物理网络所允许的最大帧长对上层协议提交的数据报进行长度检查,必要时把数据报分成若干个段发送。l与数据报分段相关的字段有:标识、标志、段标识、标志、段偏移偏移首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度段 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分标识( 16 bit),用于数据报的分段与重装,是数据报的唯一标识。 首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度段 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分标志( 3 bit),第1位保留,第2位DF(不分段),第3位MF(更多分段)。 首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度段 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分段偏移(13 bit) :分段在原数据报中的相对位置。以 8 个字节为偏移单位。l在数据报分段时,每个段都要加上IP报头,形成IP数据报。l对每一个被分段的IP数据报都要重新计算其报文总长度。 数 据数 据数 据报文首部首部首部分组 1分组 2分组 3偏移 = 0/8 = 0偏移 = 0/8= 0偏移 = 1400/8 = 175偏移 = 2800/8 = 350140028003799279913993799需分片的数据报数据报段1首部数据部分共 3800 字节首部 1首部 2首部 3字节 0数据报段 2数据报段 314002800字节 0IP 数据报分段的举例数据报分段的举例总长度标识MFDF段偏移原始数据报382012345000数据报段1142012345100数据报段214201234510175数据报段310201234500350数据报重装数据报重装 l由于被分段的各个IP数据报进行独立的传输,到达目的主机时可能失序。因此,目的主机必须将分段后的IP数据报进行重装。 l数据报重装时,分组应具有相同的标识、IP地址、上层协议号,并按分段偏移顺序组装成一个完整的原始IP数据报,提交给上层协议。首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分生存时间(8 bit) TTL (Time To Live)限制数据报在网络中的寿命,每通过一个路由器,值减1,减至0时,数据报被丢弃。首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分协议(8 bit)字段指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程运输层网络层首部TCPUDPICMPIGMPOSPF数 据 部 分IP 数据报协议字段指出应将数据部分交给哪一个进程首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分首部检验和(16 bit)字段只检验数据报的首部不包括数据部分。这里不采用 CRC 检验码而采用简单的计算方法。 发送端接收端16 bit字 116 bit字 2置为全 0检验和16 bit字 n16 bit反码算术运算求和取反码数据报首部IP 数据报16 bit检验和16 bit字 116 bit字 216 bit检验和16 bit字 n16 bit反码算术运算求和16 bit结果取反码数据部分若结果为 0, 则保留;否则,丢弃该数据报数据部分不参与检验和的计算首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分源地址和目的地址都各占 4 字节首部04816192431版 本标志生 存 时 间协 议标 识服 务 类 型总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)比特首部长度01234567DTRC未用优 先 级数 据 部 分比特固定部分可变部分可选字段:可变长度。可选字段:可变长度。040个字节。用于测试和控制。个字节。用于测试和控制。填充字段:可变长度,保证填充字段:可变长度,保证IP报头以报头以32位为边界对齐。位为边界对齐。IP 数据报首部的可变部分数据报首部的可变部分l主要的选项有:l源路由:源路由是指传送数据报的路由是由源主机指定,而不是由IP协议通过路由表确定的。 l记录路由:记录路由是指记录下数据报从源主机到目的主机所经过路径上各个路由器的IP地址。 l时间戳:指数据报每经过一个路由器时所记录下的当时时间。 2 2)路由选择)路由选择lIP协议是TCP/IP协议集的核心协议之一,提供无连接的数据报传输和路由服务,各个IP分组独立传输,IP不保证传送到可靠性。l互连网络中的每个主机和路由器都保持一个路由表,给出互连网络中各个网络所对应的路由器地址以及该路由器当前的忙闲度。l如果分组的源节点和目的节点处于同一个物理网络,或者交付是在最后一个路由器与目的主机之间进行时,这样的分组交付叫做直接交付;l间接交付是指分组需要从一个路由器传到另一个路由器,直到这个分组到达与最终目的主机连接在同一个物理网络上的路由器为止。l源主机发送的数据分组可以直接传送给本网络中的目的主机(直接交付),若目的主机不在同一个网络中,数据被发送给本地路由器(Windows系统中设置网关的原因),由该路由器传送给下一个路由器,这样使分组逐渐向目的主机逼近,直到最后能直接送达为止。(1) 数据报发送数据报发送 l发送IP数据报时,如果上层协议已指定了发送路由,则按指定的路由发送数据报;l如果上层协议未指定发送路由,IP协议则根据目的IP地址来搜索路由表中的路由。l如果未找到任何路由,则说明目的不可达,向上层协议报告错误信息。l如果该路由是直接可达的,则目的IP地址通告给网络接口程序;l如果该路由不是直接可达的,则将路由表中下一跳路由器IP 地址通告给网络接口程序。l 网络接口程序收到IP协议提交的IP数据报后,调用ARP协议,将IP地址映射成物理地址,并把IP数据报封装成数据帧,通过物理网络传送给目的主机或下一跳路由器。(2) 数据报接收数据报接收 当接收节点IP协议收到由网络接口程序传来的数据报时,分两种情况处理: 当该节点为主机时,则比较IP数据报中的目的IP地址与本机IP地址是否相匹配。若匹配,则把IP数据报递交给对应的上层协议;否则丢弃该数据报。 当该节点为路由器时,需要转发该数据报。如果找到转发路由,则按该路由转发数据报;否则,向发送该数据报的源主机发送ICMP报文,报告目的不可达。5.3.2 ARP/RARPl地址解析协议ARP和逆地址解析协议RARP的主要功能是完成逻辑地址和物理地址之间的相互映射。分清逻辑地址与物理地址分清逻辑地址与物理地址 TCP 报文IP 数据报数据链路层 帧应用层数据首部首部尾部首部硬件地址IP 地址地址类别层次位数(bit)表示格式灵活泩适用对象物理地址链路层48或16无层次一般固化在网卡同一个LAN中的数据交换IP地址网络层32或128分级逻辑,可配置用于互连网连接中地址地址解析协议解析协议 ARP 和和逆地址解析协议逆地址解析协议 RARP IP 地址物理地址ARP物理地址IP 地址RARP为什么要进行地址解析为什么要进行地址解析l思考:假设PC1可以直接向PC2发起通信。那么IP首部应该为IP1IP2。当IP数据报由PC1的网络层交给链路层封装时,源物理地址应该填入HA1,那么目的物理地址应该填入多少呢?地址解析协议地址解析协议 ARP l不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。 l当主机 A 欲向本网络上的某个主机 B 发送 IP 数据报时,A事先不知道目的主机的物理地址,广播一个ARP请求分组。该网中的所有节点都能够接收这个请求,但只有本机的IP地址与报文中的目的IP地址一致的主机才发送ARP响应分组,这样发送主机就得到目的主机的物理地址栏。ARP 响应AYXBZ主机 B 向 A 发送ARP 响应分组 主机 A 广播发送ARP 请求分组 ARP 请求ARP 请求ARP 请求ARP 请求209.0.0.5209.0.0.600-00-C0-15-AD-1808-00-2B-00-EE-0A我是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18我想知道主机 209.0.0.6 的硬件地址我是 209.0.0.6硬件地址是 08-00-2B-00-EE-0AAYXBZ209.0.0.5209.0.0.600-00-C0-15-AD-18ARP/RARP报文格式报文格式物理网络类型协议类型操作发送方物理地址发送方IP地址接收方物理地址接收方IP地址IP地址长度物理地址长度物理网络类型:发送方主机的物理网络类型。物理网络类型:发送方主机的物理网络类型。“1”表示以太网。表示以太网。ARP/RARP报文格式报文格式物理网络类型协议类型操作发送方物理地址发送方IP地址接收方物理地址接收方IP地址IP地址长度物理地址长度协议类型:发送方的高层协议类型。协议类型:发送方的高层协议类型。“0x0800”表示表示IPv4协议。协议。ARP/RARP报文格式报文格式物理网络类型协议类型操作发送方物理地址发送方IP地址接收方物理地址接收方IP地址IP地址长度物理地址长度物理地址长度:定义以字节为单位的物理地址长度。物理地址长度:定义以字节为单位的物理地址长度。对于以太网这个值是对于以太网这个值是6。ARP/RARP报文格式报文格式物理网络类型协议类型操作发送方物理地址发送方IP地址接收方物理地址接收方IP地址IP地址长度物理地址长度IP地址长度:定义以字节为单位的逻辑地址长度。地址长度:定义以字节为单位的逻辑地址长度。对于对于IPv4这个值是这个值是4。ARP/RARP报文格式报文格式物理网络类型协议类型操作发送方物理地址发送方IP地址接收方物理地址接收方IP地址IP地址长度物理地址长度操作:表示报文的类型。操作:表示报文的类型。1,2用于用于ARP请求和响应;请求和响应; 3、4用于用于RARP请求和响应。请求和响应。注意注意l在ARP请求报文中,需要解析得到接收方的物理地址。因此,在ARP请求报文中,“接收方物理地址”这个字段填入全0(无实际意义,仅用于字段的填充)。lARP和RARP分组都是直接封装在数据链路帧中的。ARP请求分组的封装 ARP响应分组的封装应当注意的问题应当注意的问题lARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。l如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1MAC 帧IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报逆地址解析协议逆地址解析协议 RARP l逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。l这种主机往往是无盘工作站。它首先创建RARP请求,并在本地网络上广播。在本地网络上的另一台主机(RARP服务器)知道所有的IP地址,它将用RARP回答来响应。5.3.3 因特网控制报文协议因特网控制报文协议 ICMPlIP分组中传送中若发生差错,需要一种通信机制向源节点报告,以便于进行相应处理。因特网控制报文协议 ICMP (Internet Control Message Protocol)正是提供这类差错报告的协议。lICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。首 部ICMP 报文数 据 部 分IP 数据报ICMP 报文0检验和类型代码其他信息(取决于 ICMP 报文的类型)81631前 4 个字节都是一样的ICMP 的数据部分Type:1个字节,指出ICMP报文的类型;Code:1个字节,提供关于报文类型的进一步信息;例如类型3表示“目的不可达”,用代码域进一步说明是“网络不可达”、“主机不可达”还是“端口不可达”等不同情况。Checksum:两个字节,提供了整个ICMP报文的校验和。其它信息字段为4个字节,一般不使用(为全0)。 ICMP 报文0检验和类型代码其他信息(取决于 ICMP 报文的类型)81631前 4 个字节都是一样的ICMP 的数据部分(长度取决于类型)ICMP 报文的格式报文的格式 ICMP报文数据部分:包含出错数据报报头以及该数据报前64位数据(这8个字节正好含有TCP或UDP端口号和报文序号),目的在于与相应的用户进程取得联系。 ICMP 差错报告报文的数据字段的内容差错报告报文的数据字段的内容 首部IP 数据报ICMP 的前 8 字节装入 ICMP 报文的 IP 数据报IP 数据报首部ICMP 差错报告报文8字节出错的IP报文IP 数据报首部8字节ICMP 差错报告报文IP 数据报的数据字段1)ICMP 差错差错报告报文报告报文 路由器发现路由器发现IP数据报差错后,使用数据报差错后,使用ICMP差错报文差错报文向源主机报告错误。同时,发生差错的向源主机报告错误。同时,发生差错的IP数据报被数据报被丢弃。丢弃。(1) 目的不可达报文目的不可达报文 当从路由表上查不出与IP数据报目的IP地址对应的路由时,则会发生目的不可达的错误。目的不可达ICMP报文类型(Type)为3,并进一步细分为13种子类,用代码(Code)来码识。(2) 超时报文超时报文 l如果在一个路由器上数据报的生存期递减为0,该路由器则会丢弃这个数据报,并向源主机发送Type=11、Code=0的ICMP报文。l目的主机发生重装超时时,将丢弃现已收到的各个分段数据报,并在第1个分段数据报到达后向源主机节点发送Type=11、Code=1的ICMP报文。(3) 参数出错报文当路由器或目的主机在对收到的IP数据进行处理时,如果发现在IP报头参数中含有错误时,则将该数据报丢弃,并向源主机发送Type=12、Code=0的ICMP报文,并在其他信息字段中用1个字节作为指针来指出差错在数据报中的位置。2)ICMP 控制报文控制报文(1) 报源抑制报文 TCP/IP采用报源抑制技术进行拥塞控制。l当路由器节点由于缺乏缓冲区空间而无法接收数据报,或目的主机节点由于数据报的到达速度太快而无法继续处理时,它们都将丢弃数据报,并向源主机节点发送Type=4、Code=0的报源抑制ICMP报文。 l源主机收到ICMP抑制报文,降低发送速率,直到不收到ICMP报文为止。之后,又可以提高发送速率,直到再一次收到ICMP抑制报文。l理想的抑制报文发送时间是在当前输入数据报占用的缓冲区容量接近系统限制时。(2) 重定向报文重定向报文l重定向功能提供了一种路由优化控制机制,使重定向功能提供了一种路由优化控制机制,使源主机能以动态方式寻址最短路径。源主机能以动态方式寻址最短路径。l当路由器R1从处于同一子网的主机H1收到一个需转发的IP数据报时,R1将检查路由表,并选定了下一个路由器R2继续转发该数据报。如果这时R1判别确认R2和H1也处于同一子网时,R1就向H1发送重定向ICMP,通知H1将数据报直接发给R2将会是一条转短的传送路径。 R2H1R1重定向报文type=5,又分为4个子类:lCode=0,网络重定向;lCode=1,主机重定向;lCode=2,服务类型和网络重定向;lCode=3,服务类型和主机重定向;4ICMP请求请求/应答报文应答报文 (1) 回送请求与响应报文 回送请求与响应报文主要用于测试网络目的回送请求与响应报文主要用于测试网络目的节点的可达性。节点的可达性。lPing程序便是利用ICMP回送请求/响应报文来进行网络连通性测试。程序工作时会定期向目的主机发送ICMP回送请求报文,并接收目的主机的应答。(2) 时戳请求与响应报文 时戳请求与响应报文主要用于估算源和目的时戳请求与响应报文主要用于估算源和目的节点间的报文往返时间。节点间的报文往返时间。l初始时戳字段是源字点发送时戳请求报文的时间;l接收时戳字段是目的节点接收到时戳请求报文的时间;l发送时戳字段是目的节点发送时戳响应报文的时间。(3) 屏蔽请求与响应报文 屏蔽码请求与响应报文主要用于源节点获屏蔽码请求与响应报文主要用于源节点获取所在网络的取所在网络的IP地址屏蔽码信息地址屏蔽码信息。l源节点在发送请求报文时,将IP报头中的源和目的IP地址字段的网络号部分设为0,这样网络上的节点(通常为路由器)接收到该请求后,填写好网络的屏蔽码向源节点回送响应报文。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号