资源预览内容
第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
第9页 / 共24页
第10页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第四章第四章 网际协议网际协议4-1 引言引言vIP是是TCP/IP协议族中最为核心的协议,是协议族中最为核心的协议,是TCP/IP协议协议使用的传输机制,它是一种不可靠的无连接数据报协使用的传输机制,它是一种不可靠的无连接数据报协议议尽尽最大努力服务。最大努力服务。v尽最大努力尽最大努力(best effort)的意思是的意思是IP不提供差错检验不提供差错检验或跟踪。或跟踪。v不可靠不可靠(unreliable)的意思是它不能保证的意思是它不能保证IP数据报能数据报能成功地到达目的地。成功地到达目的地。IP仅提供最好的传输服务。仅提供最好的传输服务。v如果发生某种错误时,如某个路由器暂时用完了缓冲如果发生某种错误时,如某个路由器暂时用完了缓冲区,区,IP有一个简单的错误处理算法:丢弃该数据报,有一个简单的错误处理算法:丢弃该数据报,然后发送然后发送ICMP消息报给信源端。任何要求的可靠性必消息报给信源端。任何要求的可靠性必须由上层来提供(如须由上层来提供(如TCP)21.无连接无连接(connectionless)这个术语的意思是这个术语的意思是IP并不维护任并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互何关于后续数据报的状态信息。每个数据报的处理是相互独立的。独立的。2.这也说明,这也说明, IP数据报可以不按发送顺序接收。如果一信源数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是向相同的信宿发送两个连续的数据报(先是A,然后是然后是B),),每个数据报都是独立地进行路由选择,可能选择不同的路每个数据报都是独立地进行路由选择,可能选择不同的路线,因此线,因此B可能在可能在A到达之前先到达。到达之前先到达。3.IP提供了三个重要的定义:提供了三个重要的定义:IP定义了在整个定义了在整个TCP/IP互联网上数据传输所用的基本单元。互联网上数据传输所用的基本单元。因此,它规定了互联网上传输的数据的确切格式。因此,它规定了互联网上传输的数据的确切格式。IP软件完成选路的功能,选择一个数据发送的路径。软件完成选路的功能,选择一个数据发送的路径。IP还包括了一组体现了不可靠分组交付思路的规则。这些还包括了一组体现了不可靠分组交付思路的规则。这些规则指明了主机和路由器应该如何处理分组、何时及如何规则指明了主机和路由器应该如何处理分组、何时及如何发出错误信息以及在什么情况下可以放弃分组。发出错误信息以及在什么情况下可以放弃分组。34-2 数据报数据报v在在IP层的分组叫数据报。层的分组叫数据报。v数据报是一个变长分组,它由两部分组成:首部和数据。数据报是一个变长分组,它由两部分组成:首部和数据。v首部可以从首部可以从20至至60字节,包含有对路由选择和交付有关的字节,包含有对路由选择和交付有关的重要信息。重要信息。4IP数据报具有如下的一些字段:数据报具有如下的一些字段:v版本版本:这是一个这是一个4 4比特字段。用来定义比特字段。用来定义IPIP协议的版本。协议的版本。目目前的协议版本号是前的协议版本号是4。v首部长度首部长度:这是一个这是一个4 4比特字段。用来定义数据报首部以比特字段。用来定义数据报首部以4 4字节字计算的总长度。这个字段是必需的,因为首部的字节字计算的总长度。这个字段是必需的,因为首部的长度是可变的(在长度是可变的(在2020至至6060字节之间)。当没有选项时,字节之间)。当没有选项时,首部长度是首部长度是2020字节,则这个字段的值是字节,则这个字段的值是5 5(5*4=205*4=20);当);当选项字段为最大值时,这个字段的值是选项字段为最大值时,这个字段的值是1515(15*4=60)15*4=60)。v服务类型服务类型:这是一个这是一个8 8比特字段。定义了路由器应如何处比特字段。定义了路由器应如何处理此数据报。这个字段分为两个子字段:优先(理此数据报。这个字段分为两个子字段:优先(3 3比特比特) )和服务类型(和服务类型(4 4比特)。剩下的一个比特未使用。比特)。剩下的一个比特未使用。 如下图所示:如下图所示:5优先优先:是一个:是一个3比特的子字段。其值从比特的子字段。其值从0到到7,定义了,定义了在出现一些问题时数据报的优先级。但目前在在出现一些问题时数据报的优先级。但目前在IPv4中中未被使用,今后的版本可能会使用这个功能。未被使用,今后的版本可能会使用这个功能。4 bit的的TOS分别代表:最小时延、最大吞吐量、最高分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。可靠性和最小费用。4 bit中只能置其中中只能置其中1 bit。如果所如果所有有4 bit均为均为0,那么就意味着是一般服务。,那么就意味着是一般服务。1 bit未用位未用位必须置必须置0。优先优先TOS段段D:最小时延最小时延R:最高可靠性最高可靠性T:最大吞吐量最大吞吐量C:最小代价最小代价DTRC服务类型服务类型6v总长度总长度:这是一个这是一个1616比特字段。定义一个数据报以字节计的比特字段。定义一个数据报以字节计的总长度(首部总长度(首部+ +数据)。故要找出从上层来的数据长度,可将数据)。故要找出从上层来的数据长度,可将总长度减去首部长度(首部长度字段的值总长度减去首部长度(首部长度字段的值*4*4就是真正的首部就是真正的首部长度)。长度)。v标识标识:这个字段用在分片中。(下一节讨论):这个字段用在分片中。(下一节讨论)v标志标志:这个字段用在分片中。(下一节讨论):这个字段用在分片中。(下一节讨论)v片偏移片偏移:这个字段用在分片中。(下一节讨论):这个字段用在分片中。(下一节讨论)v生存时间(生存时间( TTL ):这是个这是个8比特字段。设置了数据报可以比特字段。设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间。经过的最多路由器数。它指定了数据报的生存时间。TTL的的初始值由源主机设置(通常为初始值由源主机设置(通常为32或或64),一旦经过一个处理),一旦经过一个处理它的路由器,它的值就减去它的路由器,它的值就减去1。当该字段的值为。当该字段的值为0时,数据报时,数据报就被丢弃,并发送就被丢弃,并发送ICMP报文通知源主机。报文通知源主机。7v协议协议:这是个:这是个8比特字段。定义使用此比特字段。定义使用此IP层服务的高层层服务的高层协议。协议。根据它可以识别是哪个协议向根据它可以识别是哪个协议向IP传送数据传送数据。v检验和检验和:这是个:这是个16比特字段。比特字段。是根据是根据IP首部计算的检首部计算的检验和码。它不对首部后面的数据进行计算。验和码。它不对首部后面的数据进行计算。v源地址源地址: :这是个这是个32比特字段。定义源站的比特字段。定义源站的IP地址。在地址。在IP数据报从源主机发送到目的主机的时间内,这个字数据报从源主机发送到目的主机的时间内,这个字段必须保持不变。段必须保持不变。v目的地址目的地址:这是个这是个32比特字段。定义目的站的比特字段。定义目的站的IP地址。地址。在在IP数据报从源主机发送到目的主机的时间内,这个数据报从源主机发送到目的主机的时间内,这个字段必须保持不变。字段必须保持不变。84-3 分片分片v一个数据报可以通过几个不同的网络。每一个路由器将一个数据报可以通过几个不同的网络。每一个路由器将它收到的帧进行拆包,进行处理,然后再封装成另一个它收到的帧进行拆包,进行处理,然后再封装成另一个帧。帧。v收到的帧的格式与长度取决于此帧刚刚经过的物理网络收到的帧的格式与长度取决于此帧刚刚经过的物理网络所使用的协议。所使用的协议。v发送出的帧的格式与长度则取决于此帧将要经过的物理发送出的帧的格式与长度则取决于此帧将要经过的物理网络所使用的协议。网络所使用的协议。v每一个数据链路层有其自己的帧格式,在这格式中有一每一个数据链路层有其自己的帧格式,在这格式中有一个字段就是最大数据长度。称为个字段就是最大数据长度。称为最大传送单元(最大传送单元(MTU)。v当数据报封装成帧时,数据报的总长度必须小于这个最当数据报封装成帧时,数据报的总长度必须小于这个最大传送单元。这是由网络所使用的硬件与软件给出的限大传送单元。这是由网络所使用的硬件与软件给出的限制所定义的。制所定义的。9vMTU的值对于不同的物理网络协议是不同的。的值对于不同的物理网络协议是不同的。v为了使为了使IP协议与物理网络无关,协议的设计者决定让协议与物理网络无关,协议的设计者决定让IP数据报的最大长度等于数据报的最大长度等于65535字节。字节。v对于其他的一些物理网络,就要将数据报进行分割,对于其他的一些物理网络,就要将数据报进行分割,时它们能够通过这些网络,这就叫做时它们能够通过这些网络,这就叫做分片分片。v当一个数据报被分片时,每一个数据报片有其自己的当一个数据报被分片时,每一个数据报片有其自己的首部。首部。v如果遇到了一个具有更小如果遇到了一个具有更小MTU的网络,则一个分片了的网络,则一个分片了的数据报还可以再进行分片。的数据报还可以再进行分片。v一个数据报可以被主机或在其路径上的任何路由器进一个数据报可以被主机或在其路径上的任何路由器进行分片。行分片。v然而数据报的重装却只能在目的主机上进行。然而数据报的重装却只能在目的主机上进行。10v对一个数据报进行分片的主机或路由器必须改变三个字段对一个数据报进行分片的主机或路由器必须改变三个字段的值:的值:标志标志、片偏移片偏移和和总长度总长度。其余的各字段必须被复制。其余的各字段必须被复制。v与一个数据报的分片与重装有关的字段是:与一个数据报的分片与重装有关的字段是:标识标识、标志标志和和片偏移片偏移。标识标识:这是一个:这是一个16比特字段,标识一个从源主机发出的比特字段,标识一个从源主机发出的数据报。当数据报离开源主机时,这个标识与源数据报。当数据报离开源主机时,这个标识与源IP地址地址必须唯一地定义这个数据报。必须唯一地定义这个数据报。当数据报被分片时,标识字段的值就复制到所有的分片中。当数据报被分片时,标识字段的值就复制到所有的分片中。也就是说,所有的分片具有相同的标识数。这在重装数据也就是说,所有的分片具有相同的标识数。这在重装数据报时很有用。报时很有用。标志标志:这是一个:这是一个3比特字段。比特字段。第一个比特保留为以后用。第一个比特保留为以后用。11第二个比特是第二个比特是不分片不分片比特。若此值为比特。若此值为1,则机器就不能将,则机器就不能将该数据报进行分片。若无法将此数据报通过任何可用的该数据报进行分片。若无法将此数据报通过任何可用的物理网络进行转发,则丢弃该数据报,并向源站发送物理网络进行转发,则丢弃该数据报,并向源站发送ICMP差错报文。若为差错报文。若为0,则可进行分片。,则可进行分片。第三个比特是第三个比特是还有分片还有分片比特。值为比特。值为1,表示此数据报不是,表示此数据报不是最后的分片;为最后的分片;为0,则表示这已是最后的或唯一的分片。,则表示这已是最后的或唯一的分片。片偏移片偏移:这是一个:这是一个13比特字段。表示这个分片在整个数比特字段。表示这个分片在整个数据报中的相对位置。它是在原始数据报中的数据的偏移据报中的相对位置。它是在原始数据报中的数据的偏移量,以量,以8字节为度量单位。字节为度量单位。因为偏移值是以因为偏移值是以8字节为单位的,因此,将数据报进行分字节为单位的,因此,将数据报进行分片的主机或路由器必须这样选择每一个分片的长度,即片的主机或路由器必须这样选择每一个分片的长度,即第一个字节数应当能够被第一个字节数应当能够被8除尽。除尽。12字节字节0000字节字节3999偏移偏移 = 0000/8 = 0偏移偏移 = 0000/8 = 000001399偏移偏移 = 1400/8 = 17514002799偏移偏移 = 2800/8 = 35028003999分片举例分片举例13v这样,即使每一个分片走不同的路径,并在到达时失序,这样,即使每一个分片走不同的路径,并在到达时失序,只要没有丢失,最终目的主机也能够用收到的这些分片只要没有丢失,最终目的主机也能够用收到的这些分片重装重装成原始的数据报:成原始的数据报:第一个分片的片偏移值是第一个分片的片偏移值是0。将第一个分片长度除以将第一个分片长度除以8,这个结果就是第二个分片偏移,这个结果就是第二个分片偏移值。值。将第一个和第二个分片的总长度除以将第一个和第二个分片的总长度除以8,结果就是第三个,结果就是第三个分片偏移值。分片偏移值。继续以上过程。最后的分片的继续以上过程。最后的分片的还有分片还有分片比特的值是比特的值是0。144-4 选项选项vIP数据报的首部由两部分组成:固定部分和可变部分。数据报的首部由两部分组成:固定部分和可变部分。v固定部分的长度是固定部分的长度是20字节;字节;v可变部分由许多选项组成,最长可达可变部分由许多选项组成,最长可达40字节。字节。v选项对每个数据报来说并不是必需的,这些选项可用于选项对每个数据报来说并不是必需的,这些选项可用于网络的测试和排错。网络的测试和排错。v虽然选项并非虽然选项并非IP数据报的必需部分,但当选项出现在首数据报的必需部分,但当选项出现在首部中时,部中时,IP软件却必须能够处理这些选项。软件却必须能够处理这些选项。选项码选项码 (8比特)比特) 长度长度 (8比特)比特)数据数据 (可变长度)(可变长度)选项的格式选项的格式15v选项码选项码:共:共8比特长,包括三个子字段:比特长,包括三个子字段:复制复制(控制在分片中选(控制在分片中选项的出现)、项的出现)、选项类选项类(定义了该选项的一般用途)和(定义了该选项的一般用途)和选项号选项号(定(定义选项的类型)。具体见上图。义选项的类型)。具体见上图。v长度长度:共:共8比特长,用来定义选项的总长度,包括选项码字段和比特长,用来定义选项的总长度,包括选项码字段和长度字段本身。可选。长度字段本身。可选。v数据数据:是一个可变长度的。包括了该特定选项所需的数据。可选。:是一个可变长度的。包括了该特定选项所需的数据。可选。选项码选项码 (8比特)比特)长度长度 (8比特)比特)数据数据 (可变长度)(可变长度)复制(复制(1比特)比特)选项类(选项类(2比特)比特)选项号(选项号(5比特)比特)复制:复制: 0仅仅在第一个分片复制在第一个分片复制 1复复制到所有的分片制到所有的分片选项类:选项类: 00数据报控制数据报控制 10排错和管理排错和管理 01和和11保留保留选项号:选项号: 00000选项结束选项结束 00001无操作无操作 00011不严格的源路由不严格的源路由 00100时时间戳间戳 00111记录路由记录路由 01001严格的源路由严格的源路由16选项号选项号-选项类型选项类型 如上所示,目前主要是用如上所示,目前主要是用6种选项,其中的两种是种选项,其中的两种是1字节字节选项,它们不需要长度字段和数据字段;另外选项,它们不需要长度字段和数据字段;另外4种是多字种是多字节选项,需要长度字段和数据字段。节选项,需要长度字段和数据字段。 选选 项项 单字节单字节 多字节多字节 无操作无操作 选项结束选项结束 记录路由记录路由 严格的源路由严格的源路由 时间戳时间戳不严格的源路由不严格的源路由17v无操作无操作:是一个:是一个1字节选项,用作选项之间的填充符。字节选项,用作选项之间的填充符。可用于对齐选项表中的八位组。可用于对齐选项表中的八位组。v选项结束选项结束:也是一个:也是一个1字节选项,用于选项字段结束时字节选项,用于选项字段结束时的填充。但它只能用作最后一个选项。在此选项之后,的填充。但它只能用作最后一个选项。在此选项之后,接收器就寻找有效载荷数据。接收器就寻找有效载荷数据。选项选项数据数据选项结束选项结束18v记录路由记录路由:用来记录处理数据报的互联网路由器。它可列:用来记录处理数据报的互联网路由器。它可列出一直到出一直到9个路由器的个路由器的IP地址。地址。0 8 16 24 31代码代码 (7) 长度长度 指针指针第一个第一个IP地址地址 (在开始时是空的)(在开始时是空的)第一个第一个IP地址地址 (在开始时是空的)(在开始时是空的)最后一个最后一个IP地址地址 (在开始时是空的)(在开始时是空的)记录路由选项记录路由选项19v严格的源路由严格的源路由:使用在源站。用来预先确定数据报在因特:使用在源站。用来预先确定数据报在因特网中传送时的路由。网中传送时的路由。0 8 16 24 31代码代码 (137) 长度长度 指针指针第一个第一个IP地址地址 (在开始时填入)(在开始时填入)第一个第一个IP地址地址 (在开始时填入)(在开始时填入)最后一个最后一个IP地址地址 (在开始时填入)(在开始时填入)严格的源路由严格的源路由20说明:说明:如果一个数据报指明了一个严格的源路由,该数据报就如果一个数据报指明了一个严格的源路由,该数据报就必须经过在选项中定义了的所有路由器。必须经过在选项中定义了的所有路由器。若一个数据报通过一个未列入的路由器,则该数据报将若一个数据报通过一个未列入的路由器,则该数据报将丢弃此数据报并发出差错报文。丢弃此数据报并发出差错报文。若数据报到达目的站时仍有某些项目未经过,则目的站若数据报到达目的站时仍有某些项目未经过,则目的站应将此数据报丢弃并发出差错报文。应将此数据报丢弃并发出差错报文。v不严格的源路由不严格的源路由:使用在源站。与严格的源路由相似,:使用在源站。与严格的源路由相似,但更放松。在表中的路由器必须通过,但数据报还可以但更放松。在表中的路由器必须通过,但数据报还可以通过其他的路由器。通过其他的路由器。21v时间戳时间戳:用来记录路由器处理数据报的时间。是我们能够:用来记录路由器处理数据报的时间。是我们能够估计一个数据报从一个路由器到另一个路由器所需的时间。估计一个数据报从一个路由器到另一个路由器所需的时间。0 8 16 24 31代码代码 (68) 长度长度 指针指针第一个第一个IP地址地址 第一个时间戳第一个时间戳时间戳选项时间戳选项溢出溢出标志标志溢出溢出:统计因为选项空间太小而不能提供时间戳的路由器的个数。:统计因为选项空间太小而不能提供时间戳的路由器的个数。标志标志:控制选项的确切格式,并指明路由器应如何提供时间戳。:控制选项的确切格式,并指明路由器应如何提供时间戳。见书见书P76。224-5 检验和检验和v在大多数在大多数TCP/IP协议中采用的差错检测方法是检验和。协议中采用的差错检测方法是检验和。v在发送站先计算检验和并将得到的结果与分组一起发送出在发送站先计算检验和并将得到的结果与分组一起发送出去。去。v接收站对包括检验和的整个分组重复进行同样的计算。若接收站对包括检验和的整个分组重复进行同样的计算。若结果正确就接受此分组,否组就将其丢弃。结果正确就接受此分组,否组就将其丢弃。发送端的检验和计算发送端的检验和计算:v先将首部的检验和字段置为先将首部的检验和字段置为0。v将分组划分为将分组划分为K部分,每部分都是部分,每部分都是16比特长。比特长。v用反码算术运算将所有这些部分相加。用反码算术运算将所有这些部分相加。v将最终结果取反码就得出检验和。再将其填入检验和字段。将最终结果取反码就得出检验和。再将其填入检验和字段。23接收端的检验和计算接收端的检验和计算:v将收到的分组划分为将收到的分组划分为K部分,每部分都是部分,每部分都是16比特长。比特长。v用反码算术运算将所有这些部分相加。用反码算术运算将所有这些部分相加。v将得到的结果取反码。将得到的结果取反码。v若结果为若结果为0,则接收此分组,否组就拒绝此分组。,则接收此分组,否组就拒绝此分组。检验和只在首部而不在数据部分进行的原因检验和只在首部而不在数据部分进行的原因:v所有将数据封装在所有将数据封装在IP数据报中的高层协议,都有覆盖整个数据报中的高层协议,都有覆盖整个分组的检验和。分组的检验和。v每经过一个路由器,每经过一个路由器,IP数据报的首部就要改变一次,但数数据报的首部就要改变一次,但数据部分不变。据部分不变。v减少了路由器的处理时间。减少了路由器的处理时间。24
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号