tcpip协议分析-3网际协议

上传人:san****019 文档编号:71631757 上传时间:2019-01-21 格式:PPT 页数:50 大小:1.06MB
返回 下载 相关 举报
tcpip协议分析-3网际协议_第1页
第1页 / 共50页
tcpip协议分析-3网际协议_第2页
第2页 / 共50页
tcpip协议分析-3网际协议_第3页
第3页 / 共50页
tcpip协议分析-3网际协议_第4页
第4页 / 共50页
tcpip协议分析-3网际协议_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《tcpip协议分析-3网际协议》由会员分享,可在线阅读,更多相关《tcpip协议分析-3网际协议(50页珍藏版)》请在金锄头文库上搜索。

1、网 络 协 议,第2章 TCP/IP协议分析,TCP/IP协议族 编址与地址解析 网际协议 网际控制消息协议 IP路由协议 IP组播协议 传输层协议 应用层协议,2.3 网 际 协 议,网际协议(IP)负责通过相互连接的一组网络传送数据块(数据报)。IP接受来自TCP或用户数据报(UDP)等更高层次协议的这些数据块,然后再转发给网络接口层,并通过Internet传送这些数据块。 IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输。,1 网际协议概述,向网络接口层传输数据; 在端站之间提供无连接(数据报)传送服务。每个数据报携带一个完整的

2、目的地址,并独立于其他数据报在系统内进行路由,此时不需要建立连接和逻辑链路。 为那些最大数据报长度小于数据包长度的网络进行数据传送提供一种数据报分段和重组机制。,(1)IP的功能,(2) IP特性,无连接传递数据报独立传输、IP不维护通信双方之间的连接细节。 不能保证数据传输的可靠性。IP提供了一个16位报头校验和,用于接收节点验证数据包传送是否正确。 “尽力而为”的传递机制不提供确认功能,不提供对丢失或破坏数据的重传机制,不提供流量控制或数据包排序机制。,2 多路分解传送协议,3 IP数据报,目前,已经有2种IP版本成为标准,它们分别是IPv4和IPv6,后者是前者的升级。现在网络正在使用的

3、是IPv4。,0,4,8,16,19,24,31,版 本,标志,生存时间,协 议,标 识,服 务 类 型,总 长 度,片 偏 移,填 充,首 部 检 验 和,源 站 IP 地 址,目 地 站 IP 地 址,长 度 可 变 的 可 选 字 段,比特,首部长度,20个 字节 固定 长度,可变 长度,0,1,2,3,4,5,6,7,D,T,R,C,未用,优 先 级,数 据,IP数据报的格式,版本(version): 说明数据报属于哪一个协议版本,以便可以在运行不同版本协议的机器之间进行版本转换。 IPv4和IPv6即在此标示,当该域值为4时,表示IPv4。 首部长度(Header Length):

4、说明报头的长度(单位:32位字长,4字节),最小为5,最大为15。头部最长为60字节,可选部分最大为40字节。该域值变化1,表示报头长度变化32个字节。此外,对于有些可选项,例如记录分组已经走过路由的源路由选项,40字节就显得太短了。,服务类型(type of service): 允许主机告诉子网它需要什么类型的服务,可能是可靠程度和传输速率的各种组合。 例如,对数字话音要求快速传递;而对文件传输无差错比快速更重要。该域中,左起3位为优先级(precedence)字段,从0(正常)到7(网络控制分组)。后跟3个标识(flag)位分别表示延迟、吞吐量和可靠性,它们允许主机指明在以上三项指标中它最

5、关心什么。最后两位没有定义。 实际上,目前的路由器都不支持服务类型字段。,CISCO提出的服务类型组件:,总长度(total length): 指头部和正文部分的长度之和,最大为65535字节。(目前允许这一上限,但将来的千兆位网络将要求更长的数据报。) 数据报总长 = 报头长度 + 数据长度 标识(identification): 由信源机产生,每次自动加1。用来让目的主机确定新到达的分段(fragment)属于哪一个数据报。同一数据报的所有分段包含相同的标识值。 : 该域没有定义。,DF: 置“1”表示不要分段(dont fragment),它命令路由器不要将数据报分段。置“0”表示需要的

6、话数据就会被分段。 MF: 表示当前分段后面是否还有更多的分段(more fragment)。除了最后一个分段外,所有同一数据报的各分段中该位都要置位“1”。,分段偏移量(fragment offset): 告知本分段在当前数据报的位置。除了最后一个分段以外,一个数据报的所有分组必须是8字节的倍数,即8字节为一个基本分段单位。该域有13位,所以每个数据报最多有8192个分段,数据报长度最大可达到65536字节,比总长度域的最大值大1个字节。,生存期TTL(time to live): 是用来限制分组寿命的计数器,最长生存期为255秒。该域在每条链路上都必须递减。若在某个路由器中排了长时间的队,

7、则要以倍数递减。实际上,它只计算链路上的时间。当该域减为0时,就将这一分组丢弃,并向源主机发送一告警分组。,运输层,网络层,首部,TCP,UDP,ICMP,IGMP,OSPF,数 据 部 分,IP 数据报,协议字段指出应将数据 部分交给哪一个进程,协议(protocol): 告诉网络层把收到的数据报送给哪一个传输层进程,可能是TCP,也可能是UDP或其他。协议编号在整个Internet中是全局唯一的,定义参考RFC 1700。,Protocol Keyword Protocol,0 1 2 3 4 5 6 8 9 17 29 41 55-60 80 92 101-254 255,ICMP IG

8、MP GGP IP ST TCP EGP IGP UDP ISO-TP4 SIP ISO-IP MTP,Reserved Internet Control Message Internet Group Management Gateway-to-Gateway IP in IP (encasulation) Stream Transmission Control Exterior Gateway Protocol any private interior gateway User Datagram ISO Transport Protocol Class 4 Simple Internet P

9、rotocol Unassigned ISO Internet Protocol Multicast Transport Protocol Unassigned Reserved,报头校验和(header checksum): 只验证IP报头。每条链路中该域都必须重新计算,因为至少有一个域(生存期域)的值是一直在变化的。 校验和不计算被封装的数据,UDP、TCP和ICMP都有各自的校验和。 按照IP校验和算法的定义,头部被分成16位的字进行1的补码相加求和,计算中要注意加上进位。 发现校验和错时: 数据报必须立即丢弃,不作进一步的处理。,(原文)The checksum algorithm i

10、s simply to add up all the 16-bit words in ones complement and then to take the ones complement of the sum. (译文)校验和的算法是简单地将所有16位字以1的补码形式相加,然后再对相加和求1的补码。 ones complement 就是反码。,在发送数据时,按如下步骤: (1)把IP数据报的首部校验和字段置为0。 (2)把首部看成以16位为单位的数字组成,依次进行二进制反码求和。 (3)把得到的结果存入校验和字段中。 在接收数据时,按如下步骤: (1)把首部看成以16位为单位的数字组成,依

11、次进行二进制反码求和,包括校验和字段。 (2)检查计算出的校验和的结果是否等于零。 (3)如果等于零,说明被整除,校验是和正确。否则,校验和就是错误的,协议栈要抛弃这个数据包。,计算方法描述,USHORT checksum(USHORT *buffer, int size) unsigned long cksum=0; while (size 1) cksum+=*buffer+; size -=sizeof(USHORT); if (size ) cksum += *(UCHAR*)buffer; cksum = (cksum 16) + (cksum ,& 按位与 | 按位或 按位异或 取

12、反 右移,C语言实现,01000101 /*ver_hlen*/ 00000000 /*tos*/ 00000000 00000010 /*len*/ 00000000 00000000 /*id*/ 00000000 00000000 /*offset*/ 00000100 /*ttl*/ 00010001 /*type*/ 00000000 00000000 /*cksum(0)*/ 01111111 00000000 00000000 00000001 -/*sip*/ 01111111 00000000 00000000 00000001 -/*dip*/,发送端的IP报头数据:,1

13、01000111 00010101 cksum 00000000 00000001 (cksum16) 01000111 00010101 (cksum&0xffff) - 01000111 00010110 10111000 11101001 cksum,计算校验和:,01000101 /*ver_hlen*/ 00000000 /*tos*/ 00000000 00000010 /*len*/ 00000000 00000000 /*id*/ 00000000 00000000 /*offset*/ 00000100 /*ttl*/ 00010001 /*type*/ 10111000 1

14、1101001 /*cksum(0)*/ 01111111 00000000 00000000 00000001 /*sip*/ 01111111 00000000 00000000 00000001 /*dip*/,接受端的IP报头数据:,1 11111111 11111110 cksum 00000000 00000001 (cksum16) 11111111 11111110 (cksum&0xffff) - 11111111 11111111 00000000 00000000 cksum,计算校验和:,源地址(source address)和目的地址(destination addr

15、ess): 指明发送数据报的源和目的的网络号和主机号。 选项(options): 用来提供一种余地,使协议的后来版本可以包含原有设计中没有的信息,也可以使试验者能尝试他的新想法。选项域的长度是可变的,每个选项都以一个字节表明内容。某些选项还跟有一个字节的选项长度字段,其后是一个或多个数据字节。选项域以4个字节的倍数来安排。,Option Type,Option Type,Option length,data,Copy Class number,1B,1B,1B,1b,2,5,Option Type,IP数据报选项 (长度可变,默认是0字节,最大值是40字节),Copy,1 该选项应被拷 贝到所有段中 0 该选项仅被拷 贝到第一分段中,Class,0 数据报用于 网络控制 1 保留 2 调试和测量 3

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号