Download presentation
Presentation is loading. Please wait.
1
作为TCP/IP中最为核心的协议,IP协议为网络数据传输提供最基本的服务。
2
第4章 IP协议 学习要点 IP协议 IP数据报 IP首部格式(重点) 差分服务与显式拥塞通告 数据报分片与重组(重点) IP选项
3
网络层是TCP/IP网络的核心。网络层的IP协议负责生成数据包,发往目的地,完成数据从网络上一个节点向另一个节点的传输。
4.1 IP协议概述(P80) 网络层是TCP/IP网络的核心。网络层的IP协议负责生成数据包,发往目的地,完成数据从网络上一个节点向另一个节点的传输。 4.1.1 什么是IP协议 IP(Internet Protocol)是TCP/IP协议簇中的网络层协议。 RFC 791“INTERNET PROTOCOL”是IP协议的正式规范文件。
4
什么是IP协议(P80) IP协议位于TCP/IP协议的网络层。位于同一层次的还有下面的ARP和RARP以及上面的ICMP和IGMP。除了ARP和RARP报文外,几乎所有的数据都要经过IP协议传送。 ICMP和IGMP的数据要封装在IP数据报中传送,而ARP和RARP没有封装在IP中。
5
什么是IP协议(P80) IP协议是为了在分组交换计算机网络的互联系统中使用而设计的。 IP层只负责数据的路由和传输,并不处理数据内容。
IP协议传输的IP数据报(Packet)带有发送方和接收方的IP地址,每个数据报可以经过不同的路径到达目的地,在目的地再重新组合成原来的报文。 数据报在提到路由时,往往称为数据包。
6
IP协议使用以下4个主要的机制来提供服务(P81)
服务类型(Type of Service):用来指示要求的服务质量。 生存时间(Time to Live):数据报生存时间的上限。 选项(Option):提供在某些情况下需要或有用的控制功能。 首部校验和(Header Checksum):提供对IP首部内容进行出错检测的功能。 IP层向下要面对各种不同的物理网络,向上要提供一个统一的数据传输服务。IP层通过IP地址实现了物理地址的统一,通过数据报实现了数据帧的统一,达到了向上屏蔽底层差异的目的。
7
IP协议的基本功能(P81) 寻址(Addressing):IP协议根据数据报首部中包括的目的地址将数据报传送到目的节点,这就要涉及到传送路径的选择,即路由功能。IP协议使用IP地址来实现路由。 分片(Fragmentation):IP协议还提供对数据大小的分片和重组,以适应不同网络对数据包大小的限制。
8
IP协议的特性(P81) IP协议提供无连接数据报服务,各个数据报独立传输,可能沿着不同的路径到达目的地,也可能不会按序到达目的地。 IP协议不含错误检测或错误恢复的编码,属于不可靠的协议 作为一种点对点协议,虽然IP数据报携带源IP地址和目的IP地址,但进行数据传输时的对等实体一定是相邻设备(同一网络)中的对等实体 IP协议的效率非常高,实现起来也较简单。这是因为IP协议采用了尽力传输的思想,随着底层网络质量的日益提高,IP协议的尽力传输的优势体现得更加明显
9
回顾第1章 P11 图1-6 TCP/IP封装过程(P11)
10
4.2 IP数据报(P82) IP数据报首部长20字节,共有13个字段,如果使用IP选项,最多达到60字节,
11
4.2.1 IP首部格式(P82) 1.版本(Version),4bit,4:IPv4,6:IPv6
2.首部长度(Internet Header Length,IHL),4bit,单位为4,IP首部定长20字节,即5个单位的长度(4X5=20)。IP首部最大值60字节。 3.服务类型(Type of Service,TOS)8bit 优先级,3bit,表示本数据包的重要程度,当网络出现拥塞时,路由设备根据数据包的优先级决定首先丢弃哪些包。RFC791把TOS分为8个优先级,见P83表4-1,数值越大优先级越高。 但是目前的IPv4并未使用优先级,统一用0表示。
12
IP首部格式 服务类型4bit,为本数据包希望得到的服务,分别用DTRC表示: D T R C D( delay,0为普通值,1为最小延迟)
T( throughput,0为普通值,1为最大吞吐量) R( reliability,0为普通值,1为最高可靠性) C( cost,0为普通值,1为最低成本) 0001最小代价 0010最高可靠性 0100最大吞吐量 1000最小延迟 P83表4-2列出了各位组合的设置类型。 4位全0表示一般服务,4位全1是最高安全性。
13
IP首部格式 对于传输数据量大的一般要求高吞吐率,如FTP、SMTP、DNS。
对于数据量少的要求低延迟,如Telnet、FTP控制信息、SMTP命令。 对于路由和网管信息,要求较高的可靠性,如IGP、SNMP。 对于向用户发送的一般新闻,要采用低成本路径,如NNTP。 不过,服务类型未能在现有的IP网络中普及使用。
14
IP首部格式 4. 总长度(Total Length)16bit,指定包括首部和数据在内的数据包总长度。数据长度=总长度-20。
5. 标识(Identification)16bit,为分片的数据单元提供唯一标识,由源主机赋予IP数据包,当IP包被分片时,每个分片仍使用这个标识符,目的主机根据该标识和源IP地址判定收到的分片,从而完成数据包的重组。 6. 标志(Flags)3bit,表示数据包是否允许分片以及是否是最后1片。第1位保留0;第2位0表示可以分片,1不表示分片;第3位0表示最后一片,1表示还有更多分片抵达。 7. 分片偏移(Fragmentation Offset)13bit,为目的主机各分片的重组提供顺序依据。偏移量以8字节为1个单位。
15
IP首部格式 8. 生存时间(Time to Live,TTL)8bit,数据包在网络中的生存时间,数据包每经过1个路由器,TTL值减1,当TTL值减到0时如果仍未到达目的地,便丢弃该数据包。 9. 协议(Protocol)8bit,确定发送时数据包的上一层协议,指明被IP数据包封装的协议。TCP为6,UDP为17。 10. 首部校验和(Header Checksum)16bit。 11. 源地址(Source Address)32bit,源主机的IP地址。 12. 目的地址(Destination Address)32bit,目标主机的IP地址。 13. 选项(Options)不定长,但受首部长度的限制,主要用于调试。
16
4.2.2 差分服务与显式拥塞通告(P85) RFC791(1981)所定义的服务类型(TOS)字段已经被新的差分服务(DS)字段所取代。
RFC2474(1998)“Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers(IPv4和IPv6首部中差分服务字段(DS字段)的定义)” RFC2475“An Architecture for Differentiated Services(一种差分服务架构)” RFC3168(2001)“The Addition of Explicit Congestion Notification (ECN) to IP(显式拥塞通告(ECN)添加到IP)”提供了原来的服务类型8bit的新用途。
17
差分服务与显式拥塞通告 将原来的优先级和服务类型替换为新的差分服务代码点(Differentiated Services Code Point, DSCP)和显式拥塞通告(Explicit Congestion Notification,ECN),该字段被称为差分服务字段。 格式如下:
18
1. 差分服务(DS)(P85) RFC2474中对原来由RFC791定义的服务类型字段进行了重新定义,将该字段的前6位定位成DSCP。
DSCP优先级值有64个(0-63),0优先级最低,63优先级最高。将DSCP优先级分成以下4种类型: 类选择器(Class Selector,CS), 加速转发(Expedited Forwarding,EF) 确保转发(Assured Forwarding,AF) 默认(Default,BE)
19
差分服务 (1)类选择器(CS),定义为向后与IP优先级兼容,值为8、16、24、32、40、48、56,后3位为0,格式为“aaa000”,仍沿用了IP优先级。 (2)加速转发(EF),一般用于低延迟的服务,推荐值为101110,可以看做是IP优先级5,是比较高的优先级。 EF用于承载语音流量,语音要求低延迟、低丢包率。 (3)确保转发(AF),分为a部分和b部分,格式为“aaabb0”,a部分3位,与IP优先级对应;b部分2位,表示丢弃优先级(优先丢弃)。AF4用来承载语音的信令,AF3用来承载IPTV的流量,AF2用来承载VOD的流量,AF1承载不重要的专线业务。 (4)默认(BE),默认值为000000。
20
2. 显式拥塞通告(Explicit Congestion Notification,ECN)(P86)
为避免因路由器拥塞而丢包,让发送方在开始丢包前降低发送速率。拥塞链路的两端(发送方和接收方)必须支持ECN,并且能够表明自身支持ECN。 需要在IP数据报首部原服务类型字段中使用最后两个位来设置ECN字段。 ECT(ECN-Capable Transport)位,由发送方设置以显示发送方的传输协议是否支持ECN;CE(Congestion Experienced)位,由路由器设置,以显示是否发生了拥塞 必须将这两个位结合起来实现ECN功能,包括以下几种组合。 • 00:发送主机不支持ECN。 • 01或者10:发送主机支持ECN。 • 11:路由器正在经历拥塞。
21
4.2.3 首部校验和(P86) IP数据包的传输只校验首部,不校验数据部分,主要有两个原因:
1)作为一个点对点协议,在传输过程中每个网络节点都对数据进行校验,会增加很大的开销. 2)把数据部分的校验留给上层协议去解决,既可以保证数据的可靠性,又可以提高效率。 IP首部通过首部校验来保证其正确性。 IP数据包不断的从一个网络节点转向下一个网络节点,在这个过程中,首部中的部分字段是不断变化的,只能在每个中间点重新形成校验数据,在相邻点之间形成校验。
22
4.2.4 验证IP首部信息(P87) 抓取1个包,展开IP数据包,可以看到差分服务字段,DSCP和ECN各位显示明细。首部校验和证明校验正确。
23
IP首部
24
IP首部
25
4.3 数据报分片与重组(P87) IP数据包最大长度可达65535字节,但很少有底层的物理网络能封装如此大的数据包,例如以太网1个帧只能封装1500字节,因此将IP数据包分片传输,到达目的主机后再将这些分片进行重新组合,还原成为原来完整的数据包。
26
4.3.1 最大传输单元(MTU)(P88) 物理网络能够封装的最大数据长度称为最大传输单元(Maximum Transmission Unit,MTU)。当数据报封装成帧,数据包的总长度必须小于MTU。 不同物理网络的MTU 协议 MTU 超级通道(Hyperchannel) 65535字节 以太网 1500字节 令牌环(16Mbps) 17914字节 X.25 576字节 令牌环(4Mbps) 4464字节 PPP 296字节 FDDI 4352字节
27
4.3.2 数据报分片(P88) 当IP层要传送的数据大于物理网络的最大传输单元时,必须将IP数据包分片传输。分片就是将一个数据报划分成若干更小的单元,以适应底层物理网络的MTU。 数据报从一台源主机发出时,TCP/IP协议选择当前源主机所在物理网络最合适的数据包大小来传输数据。当该数据包穿过MTU更小的网络时,要分成较小的数据片传输。 已经分片的数据包通过更小MTU的网络时还要进一步分片。 数据包在传输过程中可能会多次分片,但是传输途中在网络节点上一般只分片不重组。
28
数据包分片首部 数据包分片时,每个分片都会得到一个首部。分片首部的大部分内容和原数据包相同,如IP地址、版本号、协议和标识等,所不同的主要是标志、总长度和分片偏移3个字段。 标识(Identification)字段提供分片所属数据包的关键信息,是分片重组的依据,同一数据包的所有分片标识相同。 标志(Flags)字段占3位,用于表示该IP数据包是否允许分片以及是否是最后的一个分片。 分片偏移(Fragmentation Offset) 字段指出本片数据在原始数据包数据区中的相对位置,以便到达目标主机后能按顺序重组。
29
4.3.3 分片的重组(P89) 同一数据包各个分片到达目的地,必须被重组为一个完整的数据包。
目的主机在进行分片重组时,采用一组重组定时器,如果超时仍未完成重组,目标主机将丢弃此数据包。 IP协议主要依据数据包首部中的标识、标志和分片偏移字段进行分片重组。 同一标识的分片应归并到一个数据包,重组的分片依据分片偏移量的顺序排列。 标志字段中的D位决定到达的数据报是否分片,M位决定是否最后一个分片。 分片可以在源主机或传输路径上的任何一台路由器上进行,而分片的重组只能在目的主机上进行
30
4.3.4 查看和验证数据包分片与重组(P90) 抓取IP数据报分片与重组过程中的数据包 必须构造一个较大的数据包
执行带参数 –l 4096的ping命令 分片和重组过程中的数据包列表
31
查看和验证数据报分片与重组 分析数据报分片与重组数据包 第1个分片
32
查看和验证数据报分片与重组 分析数据报分片与重组数据包 第2个分片
33
查看和验证数据报分片与重组 分析数据报分片与重组数据包 最后1个分片
34
Ping –l 发送请求数据包
35
对方响应的数据包----第1个分片
36
对方响应的数据包----第2个分片
37
对方响应的数据包----最后1个分片
38
4.4 IP选项(P91) 选项是IP数据包首部中的变长部分,用于网络控制和测试。 对于IP数据包,选项是可选的。
选项是单方向发送的请求,不需要目的主机响应。
39
4.4.1 选项格式(P91) IP选项有两种格式: 一种是单字节选项。另一种是多字节选项,有三部分,1字节的选项类型、1字节的选项长度、若干字节的选项数据。 选项长度8bit,包括选项数据部分、选项类型、选项长度字段本身的长度。选项数据不定长,但受数据包首部长度和选项长度的限制。 选项类型8bit,包括3个字段:复制字段(Copied Flag)、选项类(Option Class)、选项编号(Option Number),分别占1bit、2bit、5bit。 复制标志为0表示仅将选项复制到第1个分片中,为1表示将选项复制到所有分片中。
40
IP选项类型(P92) 选项类用于定义选项的作用,值为0(00)表示用于数据包控制,值为2(10)表示用于排错和测量。
选项编号用于定义具体类型。 选项类 选项编号 选项长度(字节) 说明 0(00) 0(00000) 无 选项列表结束。仅占1个字节,没有选项长度字段 1(00001) 无操作。仅占1个字节,没有选项长度字段 2(00010) 11 安全 3(00011) 变长 宽松源路由。基于源节点提供的信息路由数据报 9(01001) 严格源路由。基于源节点提供的信息路由数据报 7(00111) 记录路由。跟踪数据报所用的路由 8(01000) 4 流标识符 2(10) 4(00100) 时间戳
41
4.4.2 主要IP选项介绍(P92) 1. 选项列表结束(End of Option List)与无操作
在选项列表末尾用于填充,只能使用一次,而且只能用于最后一个选项 无操作(No Operation)选项 用作选项之间的填充,但是它通常用在另一个选项之前
42
主要IP选项介绍 2. 严格源路由与宽松源路由 严格源路由(Strict Source and Record Route,SSRR)要求源主机上的发送方指定数据报必须经过的每一个路由器 宽松源路由(Loose Source and Record Route)选项与严格源路由相似,只是要求没那么严格,所指定的路由仅限于某些关键路由器
43
主要IP选项介绍 3. 记录路由(Record Route)选项
44
主要IP选项介绍 4. 时间戳(Internet Timestamp)选项
用于记录数据报经过各路由器时的时间,根据时间戳可以估算数据报从一个路由器到另一个路由器所花费的时间,有助于分析网络的吞吐率和负载情况。
45
4.5 IP软件实现与模块分析(P95) 省略IP选项的处理,整个方案包括8个基本模块。
Similar presentations