第五讲 运输层_第1页
第五讲 运输层_第2页
第五讲 运输层_第3页
第五讲 运输层_第4页
第五讲 运输层_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第五讲运输层 北京交通大学电气工程学院黄彧 主要内容 基本内容 运输层协议 运输层的端口号 UDP和TCP的数据格式 TCP流量控制和连接管理 重点掌握端口概念以及常用运输层的端口用户数据报协议UDP的数据格式TCP的数据格式TCP如何实现可靠传输TCP连接管理过程 运输层协议概述 从通信和信息处理的角度看 运输层向它上面的应用层提供通信服务 它属于面向通信部分的最高层 同时也是用户功能中的最低层 物理层 网络层 运输层 应用层 数据链路层 面向信息处理 面向通信 用户功能 网络功能 运输层为相互通信的应用进程提供了逻辑通信 54321 运输层提供应用进程间的逻辑通信 主机A 主机B 应用进程 应用进程 路由器1 路由器2 AP1 LAN2 WAN AP2 AP3 AP4 IP层 LAN1 AP1 AP2 AP4 端口 端口 54321 IP协议的作用范围 运输层协议TCP和UDP的作用范围 AP3 运输层的主要功能 运输层为应用进程之间提供端到端的逻辑通信 但网络层是为主机之间提供逻辑通信 运输层还要对收到的报文进行差错检测 运输层需要有两种不同的运输协议 即面向连接的TCP和无连接的UDP TCP IP运输层的UDP和TCP 两个重要协议用户数据报协议UDP UDP报文或用户数据报 传输控制协议TCP TCP报文段 UDP和TCP都使用IP协议UDP在传送数据之前不需要预先建立连接TCP提供面向连接的服务 但不提供广播或多播服务 运输层协议 运输层向上提供可靠的和不可靠的逻辑通信信道 应用层 运输层 发送进程 接收进程 接收进程 数据 数据 全双工可靠信道 数据 数据 使用TCP协议 使用UDP协议 不可靠信道 发送进程 运输层的端口 端口就是运输层服务访问点TSAP 端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给运输层 以及让运输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程 从这个意义上讲 端口是用来标志应用层的进程 端口在进程之间的通信中所起的作用 应用层 运输层 网络层 TCP报文段 UDP用户数据报 应用进程 TCP复用 IP复用 UDP复用 TCP报文段 UDP用户数据报 应用进程 端口 端口 TCP分用 UDP分用 IP分用 发送方 接收方 三类端口 端口 16位标识符熟知端口 数值一般为0 1023 由因特网指派名字和号码公司IANA分配给常用应用层进程 登记端口 数值为1024 49151 由IANA控制 使用必须登记 动态端口 数值为49152 65535 留给客户进程的临时端口 客户端使用的端口号 常见熟知端口 FTP SMTP TFTP DNS Telnet SNMP 21 23 25 53 69 161 TCP UDP 应用层 传输层 20 HTTP 80 网络层 IP 用户数据报协议UDP UDP只在IP的数据报服务之上增加了很少一点的功能 即端口的功能和差错检测的功能 虽然UDP用户数据报只能提供不可靠的交付 但UDP在某些方面有其特殊的优点 发送数据之前不需要建立连接 UDP的主机不需要维持复杂的连接状态表 UDP用户数据报只有8个字节的首部开销 网络出现的拥塞不会使源主机的发送速率降低 这对某些实时应用是很重要的 UDP是面向报文的 UDP支持一对一 一对多 多对一和多对多通信 UDP用户数据报的格式 伪首部 源端口 目的端口 长度 检验和 数据 首部 UDP长度 源IP地址 目的IP地址 0 17 IP数据报 字节 4 4 1 1 2 12 2 2 2 2 字节 发送在前 数据 首部 UDP用户数据报 伪首部 源端口 目的端口 长度 检验和 数据 首部 UDP长度 源IP地址 目的IP地址 0 17 IP数据报 字节 4 4 1 1 2 12 2 2 2 2 字节 发送在前 数据 首部 UDP用户数据报 用户数据报UDP有两个字段 数据字段和首部字段 首部字段有8个字节 由4个字段组成 每个字段都是两个字节 伪首部 源端口 目的端口 长度 检验和 数据 首部 UDP长度 源IP地址 目的IP地址 0 17 IP数据报 字节 4 4 1 1 2 12 2 2 2 2 字节 发送在前 数据 首部 UDP用户数据报 在计算检验和时 临时把 伪首部 和UDP用户数据报连接在一起 伪首部仅仅是为了计算检验和 计算UDP检验和的例子 1001100100010011 153 190000100001101000 8 1041010101100000011 171 30000111000001011 14 110000000000010001 0和170000000000001111 150000010000111111 10870000000000001101 130000000000001111 150000000000000000 0 检验和 0101010001000101 数据0101001101010100 数据0100100101001110 数据0100011100000000 数据和0 填充 1001011011101011 求和得出的结果0110100100010100 检验和 153 19 8 104 171 3 14 11 12字节伪首部 8字节UDP首部 7字节数据 按二进制反码运算求和将得出的结果求反码 全0171510871315全0数据数据数据数据数据数据数据全0 传输控制协议TCP TCP是面向连接的 提供全双工和可靠交付的服务 TCP每一条连接上的通信只能是一对一的 TCP是面向字节流的 如何实现可靠传输 停止等待协议 TCP发送报文示意图 TCP的连接 每一条TCP连接有两个端点 TCP连接的端点不是主机 不是主机的IP地址 不是应用进程 也不是运输层的协议端口 TCP连接的端点叫做套接字 socket 或插口 套接字socket IP地址 端口号 TCP连接 socket1 socket2 IP1 port1 IP2 port2 可靠传输工作原理停止等待协议 确认丢失和确认迟到 信道利用率 停止等待协议的优点是简单 但缺点是信道利用率太低 TD RTT A TD RTT TA B 分组 确认 t t 分组 确认 发送方可连续发送多个分组 不必每发完一个分组就停顿下来等待对方的确认 由于信道上一直有数据不间断地传送 这种传输方式可获得很高的信道利用率 B 分组 t t A ACK 连续ARQ协议 连续ARQ协议 1 2 3 4 5 6 7 8 9 10 11 12 a 发送方维持发送窗口 发送窗口是5 发送窗口 TCP报文格式 一个TCP报文段分为首部和数据两部分 首部前20个字节是固定的 后面4N字节是根据需要增加的选项 TCP首部 20字节的固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN 32bit SYN RST PSH ACK URG 比特08162431 填充 TCP数据部分 TCP首部 TCP报文段 IP数据部分 IP首部 发送在前 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 源端口和目的端口字段 各占2字节 端口是运输层与应用层的服务接口 运输层的复用和分用功能都要通过端口才能实现 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 序号字段 占4字节 TCP连接中传送的数据流中的每一个字节都编上一个序号 序号字段的值则指的是本报文段所发送的数据的第一个字节的序号 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 确认号字段 占4字节 是期望收到对方的下一个报文段的数据的第一个字节的序号 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 数据偏移 占4bit 它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远 数据偏移 的单位不是字节而是32bit字 4字节为计算单位 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 保留字段 占6bit 保留为今后使用 但目前应置为0 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 紧急比特URG 当URG 1时 表明紧急指针字段有效 它告诉系统此报文段中有紧急数据 应尽快传送 相当于高优先级的数据 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 确认比特ACK 只有当ACK 1时确认号字段才有效 当ACK 0时 确认号无效 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 推送比特PSH PuSH 接收TCP收到推送比特置1的报文段 就尽快地交付给接收应用进程 而不再等到整个缓存都填满了后再向上交付 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 复位比特RST ReSeT 当RST 1时 表明TCP连接中出现严重差错 如由于主机崩溃或其他原因 必须释放连接 然后再重新建立运输连接 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 同步比特SYN 同步比特SYN置为1 就表示这是一个连接请求或连接接受报文 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 终止比特FIN FINal 用来释放一个连接 当FIN 1时 表明此报文段的发送端的数据已发送完毕 并要求释放运输连接 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 窗口字段 占2字节 窗口字段用来控制对方发送的数据量 单位为字节 TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小 然后通知对方以确定对方的发送窗口的上限 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 检验和 占2字节 检验和字段检验的范围包括首部和数据这两部分 在计算检验和时 要在TCP报文段的前面加上12字节的伪首部 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 紧急指针字段 占16bit 紧急指针指出在本报文段中的紧急数据的最后一个字节的序号 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 选项字段 长度可变 TCP只规定了一种选项 即最大报文段长度MSS MaximumSegmentSize MSS告诉对方TCP 我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节 MSS是TCP报文段中的数据字段的最大长度 数据字段加上TCP首部才等于整个的TCP报文段 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 填充字段 这是为了使整个首部长度是4字节的整数倍 TCP的数据编号与确认 TCP协议是面向字节的 每个字节对应于一个序号 TCP报文段中序号数值表示该报文段中的数据部分的第一个字节的序号 TCP的确认是对接收到的数据的最高序号进行确认 确认号表示接收端期望下次收到的数据中的第一个数据字节的序号 TCP提供全双工通信 确认信息可以在数据中稍带传送 提高传输效率 收到确认即可前移 100 200 300 400 500 600 700 800 900 101 201 301 401 501 601 701 801 1 可发送 不可发送 发送端要发送900字节长的数据 划分为9个100字节长的报文段 而发送窗口确定为500字节 发送端只要收到了对方的确认 发送窗口就可前移 发送TCP要维护一个指针 每发送一个报文段 指针就向前移动一个报文段的距离 收到确认即可前移 100 200 300 400 500 600 700 800 900 101 201 301 401 501 601 701 801 1 不可发送 100 200 300 400 500 600 700 800 900 101 201 301 401 501 601 701 801 1 发送窗口 可发送 不可发送 发送窗口前移 发送端已发送了400字节的数据 但只收到对前200字节数据的确认 同时窗口大小不变 现在发送端还可发送300字节 100 200 300 400 500 600 700 800 900 101 201 301 401 501 601 701 801 1 已发送并被确认 已发送但未被确认 可发送 不可发送 指针 100 200 300 400 500 600 700 800 900 101 201 301 401 501 601 701 801 1 不可发送 指针 发送窗口前移 发送端收到了对方对前400字节数据的确认 但对方通知发送端必须把窗口减小到400字节 现在发送端最多还可发送400字节的数据 TCP可靠传输的实现 前移 不允许发送 已发送并收到确认 A的发送窗口 20 允许发送的序号 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 B期望收到的序号 前沿 后沿 前移 收缩 根据B给出的窗口值A构造出自己的发送窗口 TCP标准强烈不赞成发送窗口前沿向后收缩 不允许发送 已发送并收到确认 A的发送窗口位置不变 允许发送但尚未发送 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 已发送但未收到确认 56 P1 P2 P3 不允许接收 已发送确认并交付主机 B的接收窗口 允许接收 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 未按序收到 可用窗口 A发送了11个字节的数据 P3 P1 A的发送窗口 又称为通知窗口 P2 P1 已发送但尚未收到确认的字节数P3 P2 允许发送但尚未发送的字节数 又称为可用窗口 允许发送但尚未发送 A的发送窗口向前滑动 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 已发送并收到确认 不允许发送 已发送但未收到确认 56 P1 P2 P3 允许接收 B的接收窗口向前滑动 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 已发送确认并交付主机 不允许接收 56 未按序收到 A收到新的确认号 发送窗口向前滑动 先存下 等待缺少的数据的到达 不允许发送 已发送并收到确认 A的发送窗口已满 有效窗口为零 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 已发送但未收到确认 56 P1 P2 P3 A的发送窗口内的序号都已用完 但还没有再收到确认 必须停止发送 发送缓存与发送窗口 最后被确认的字节 发送应用程序 发送缓存 最后发送的字节 发送窗口 已发送 TCP 序号增大 接收缓存与接收窗口 接收应用程序 已收到 接收窗口 TCP 接收缓存 下一个读取的字节 序号增大 下一个期望收到的字节 确认号 超时重传时间选择 TCP保留了RTT的一个加权平均往返时间RTTS 这又称为平滑的往返时间 第一次测量到RTT样本时 RTTS值就取为所测量到的RTT样本值 以后每测量到一个新的RTT样本 就按下式重新计算一次RTTS 新的RTTS 1 旧的RTTS 新的RTT样本 式中 0 1 若 很接近于零 表示RTT值更新较慢 若选择 接近于1 则表示RTT值更新较快 RFC2988推荐的 值为1 8 即0 125 超时重传时间RTO RTO应略大于上面得出的加权平均往返时间RTTS RFC2988建议使用下式计算RTO RTO RTTS 4 RTTDRTTD是RTT的偏差的加权平均值 RFC2988建议这样计算RTTD 第一次测量时 RTTD值取为测量到的RTT样本值的一半 在以后的测量中 则使用下式计算加权平均的RTTD 新的RTTD 1 旧的RTTD RTTS 新的RTT样本 是个小于1的系数 其推荐值是1 4 即0 25 往返时间RTT 往返时间的测量问题 TCP报文段1没有收到确认 重传 即报文段2 后 收到了确认报文段ACK 如何判定此确认报文段是对原来的报文段1的确认 还是对重传的报文段2的确认 发送一个TCP报文段 超时重传TCP报文段 收到ACK 时间 1 2 往返时间RTT 是对哪一个报文段的确认 Karn算法 选择确认SACK问题 110001501300035014500 确认号 1001 L1 1501 L2 3501 R1 3001 R1 4501 连续的字节流 第一个字节块 第二个字节块 和前后字节不连续的每一个字节块都有两个边界 左边界和右边界 图中用四个指针标记这些边界 第一个字节块的左边界L1 1501 但右边界R1 3001 左边界指出字节块的第一个字节的序号 但右边界减1才是字节块中的最后一个序号 第二个字节块的左边界L2 3501 而右边界R2 4501 RFC2018的规定 如果要使用选择确认 那么在建立TCP连接时 就要在TCP首部的选项中加上 允许SACK 的选项 而双方必须都事先商定好 如果使用选择确认 那么原来首部中的 确认号字段 的用法仍然不变 只是以后在TCP报文段的首部中都增加了SACK选项 以便报告收到的不连续的字节块的边界 由于首部选项的长度最多只有40字节 而指明一个边界就要用掉4字节 因此在选项中最多只能指明4个字节块的边界信息 TCP的流量控制 TCP采用大小可变的滑动窗口进行流量控制 窗口大小的单位是字节 在TCP报文段首部的窗口字段写入的数值就是当前给对方设置的发送窗口数值的上限 发送窗口在连接建立时由双方商定 但在通信的过程中 接收端可根据自己的资源情况 随时动态地调整对方的发送窗口上限值 可增大或减小 seq 1 DATA seq 201 DATA seq 401 DATA seq 301 DATA seq 101 DATA seq 201 DATA seq 501 DATA ACK 1 ack 201 rwnd 300 ACK 1 ack 601 rwnd 0 ACK 1 ack 501 rwnd 100 A B 允许A发送序号201至500共300字节 A发送了序号101至200 还能发送200字节 A发送了序号301至400 还能再发送100字节新数据 A发送了序号1至100 还能发送300字节 A发送了序号401至500 不能再发送新数据了 A超时重传旧的数据 但不能发送新的数据 允许A发送序号501至600共100字节 A发送了序号501至600 不能再发送了 不允许A再发送 到序号600为止的数据都收到了 丢失 流量控制举例 A向B发送数据 在连接建立时 B告诉A 我的接收窗口rwnd 400 字节 TCP报文段发送方法 TCP维持一个最大报文段长度MSS的变量 只要发送缓存从发送进程得到的数据达到MSS字节时 就组装成一个TCP报文段 然后发送出去 发送端的发送进程指明要求发送报文段 即TCP的推送 push 操作 发送端的计时器时间到了 就把当前已有的缓存数据组装成一个TCP报文段 然后发送出去 TCP拥塞控制 在某段时间 若对网络中某资源的需求超过了该资源所能提供的可用部分 网络的性能就要变坏 产生拥塞 congestion 出现资源拥塞的条件 对资源需求的总和 可用资源若网络中有许多资源同时产生拥塞 网络的性能就要明显变坏 整个网络的吞吐量将随输入负荷的增大而下降 拥塞控制与流量控制的关系 拥塞控制所要做的都有一个前提 就是网络能够承受现有的网络负荷 拥塞控制是一个全局性的过程 涉及到所有的主机 所有的路由器 以及与降低网络传输性能有关的所有因素 流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制 流量控制所要做的就是抑制发送端发送数据的速率 以便使接收端来得及接收 拥塞控制方法 慢开始和拥塞避免 发送方维持一个叫做拥塞窗口cwnd congestionwindow 的状态变量 拥塞窗口的大小取决于网络的拥塞程度 并且动态地在变化 只要网络没有出现拥塞 拥塞窗口就再增大一些 以便把更多的分组发送出去 快重传和快恢复 要求接收方每收到一个失序的报文段后就立即发出重复确认 发送方只要一连收到三个重复确认就应当立即重传对方尚未收到的报文段 发送窗口的选择 发送端的主机在确定发送报文段的速率时 既要根据接收端的接收能力 又要从全局考虑不要使网络发生拥塞 因此 每一个TCP连接需要有以下两个状态变量 接收端窗口rwnd receiverwindow 又称为通知窗口 advertisedwindow 拥塞窗口cwnd congestionwindow 发送窗口的上限值 Min rwnd cwnd TCP的运输连接管理 运输连接就有三个阶段 即 连接建立 数据传送和连接释放 运输连接的管理就是使运输连接的建立和释放都能正常地进行 连接建立过程中要解决以下三个问题 要使每一方能够确知对方的存在 要允许双方协商一些参数 如最大报文段长度 最大窗口大小 服务质量等 能够对运输实体资源 如缓存大小 连接表中的项目等 进行分配 客户服务器方式 TCP的连接和建立都是采用客户服务器方式 主动发起连接建立的应用进程叫做客户 client 被动等待连接建立的应用进程叫做服务器 server 用三次握手建立TCP连接 CLOSED CLOSED A B 客户 服务器 TCP的连接建立 A的TCP向B发出连接请求报文段 其首部中的同步位SYN 1 并选择序号seq x 表明传送数据时的第一个数据字节的序号是x CLOSED CLOSED A B 客户 服务器 B的TCP收到连接请求报文段后 如同意 则发回确认 B在确认报文段中应使SYN 1 使ACK 1 其确认号ack x 1 自己选择的序号seq y 用三次握手建立TCP连接 TCP的连接建立 CLOSED CLOSED A B 客户 服务器 A收到此报文段后向B给出确认 其ACK 1 确认号ack y 1 A的TCP通知上层应用进程 连接已经建立 CLOSED CLOSED A B 客户 服务器 B的TCP收到主机A的确认后 也通知其上层应用进程 TCP连接已经建立 CLOSED CLOSED A B 客户 服务器 用三次握手建立TCP连接 TCP的连接建立 建立TCP连接 A的TCP向B发出连接请求报文段 其首部中的同步比特SYN应置为1 并选择序号x 表明传送数据时的第一个数据字节的序号是x B的TCP收到连接请求报文段后 如同意 则发回确认 B在确认报文段中应将SYN置为1 其确认号应为x 1 同时也为自己选择序号y A收到此报文段后 向B给出确认 其确认号应为y 1 A的TCP通知上层应用进程 连接已经建立 当运行服务器进程的主机B的TCP收到主机A的确认后 也通知其上层应用进程 连接已经建立 CLOSED 数据传送 ESTAB LISHED ESTAB LISHED A B 客户 服务器 CLOSED 数据传输结束后 通信的双方都可释放连接 现在A的应用进程先向其TCP发出连接释放报文段 并停止再发送数据 主动关闭TCP连接 A把连接释放报文段首部的FIN 1 其序号seq u 等待B的确认 TCP的连接释放 数据传送 通知应用进程 ESTAB LISHED ESTAB LISHED

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论