计算机通信与网络_CH06_传输层.ppt_第1页
计算机通信与网络_CH06_传输层.ppt_第2页
计算机通信与网络_CH06_传输层.ppt_第3页
计算机通信与网络_CH06_传输层.ppt_第4页
计算机通信与网络_CH06_传输层.ppt_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

计算机通信与网络ComputerTelecommunications Networks 南京邮电大学计算机学院 计算机通信与网络 国家精品课程组 第6章传输层 传输层 传输层的作用是在通信子网提供的服务的基础上 为上层应用层提供有效的 合理的传输服务 使高层用户在相互通信时不必关心通信子网的实现细节和具体服务质量 主要阐述6 2无连接的传输层协议UDP和面向连接的传输层协议TCP两大传输层协议 最后简述套接字和套接字编程的基本概念 内容纲要 传输服务无连接的传输层协议UDP面向连接的传输层协议TCP套接字 内容纲要 传输服务无连接的传输层协议UDP面向连接的传输层协议TCP套接字 6 1传输服务 传输层又称为运输层 位于应用层和网络层之间 是分层网络体系结构的核心部分 传输层用于增强和弥补通信子网的服务不足 提供主机之间有效 合理的传输服务 设置传输层的理由 6 1传输服务 应用进程 应用进程 IP协议的作用范围 提供主机之间的逻辑通信 TCP和UDP协议的作用范围 提供进程之间的逻辑通信 因特网 1 两个主机进行通信实际上是两个主机中的应用进程互相通信 6 1传输服务 传输层的复用和分用 进程 传输层复用 IP数据报 传输层分用 IP数据报 TSAP NSAP 6 1传输服务 从通信和信息处理的角度看 传输层向它上面的应用层提供通信服务 它属于面向通信部分的最高层 同时也是用户功能中的最低层 物理层 网络层 传输层 应用层 数据链路层 面向信息处理 面向通信 用户功能 通信子网 端系统 6 1传输服务 为了提高传输效率 IP首部中的首部校验和字段只检验IP数据报首部是否出现差错而不检查数据部分传输层TCP和UDP的校验和既要校验首部也要校验数据部分 并且只在发送端进行一次校验和计算 在接收端进行一次检测 2 传输层对整个报文段进行差错校验和检测 6 1传输服务 当传输层采用面向连接的协议 如TCP 时 它为应用进程在传输实体间建立一条全双工的可靠逻辑信道 尽管下面的网络可能是不可靠的 如IP交换网络 当传输层采用如UDP这样的无连接协议时 这种逻辑信道是不可靠的 3 根据应用的不同 传输层需要执行不同的传输协议来提供不同的传输服务 6 1传输服务 用户不能对通信子网加以控制 无法解决网络层的服务质量不佳问题应用层协议如果强调数据传输的可靠性 那么选择TCP较好 分组的丢失 残缺甚至网络重置都可以被传输层检测到 并采取相应的补救措施 如果应用层协议强调实时应用要求 那么选择UDP为宜 4 传输层的存在使得传输服务比网络服务更加合理有效 6 1传输服务 5 传输层采用一个标准的原语集提供传输服务 由于传输服务独立于网络服务 故可以采用一个标准的原语集提供传输服务 为网络向高层提供了一个统一的服务界面 所以用传输服务原语编写的应用程序就可以广泛适用于各种网络 6 1传输服务 一个传输层协议通常可同时支持多个进程的连接 若通信子网所提供的服务越多 传输协议就可以做得越简单 若网络层提供虚电路服务 那就能保证报文无差错 不丢失 不重复 并且按序地进行可靠交付 因而传输协议就很简单 但若网络层提供的是不可靠的数据报服务 如果要保证传输服务质量 则要求主机有一个复杂的传输协议 传输层的主要功能 6 1传输服务 向上提供可靠的和不可靠的逻辑通信信道 应用层 运输层 发送进程 接收进程 接收进程 数据 数据 全双工可靠信道 数据 数据 使用TCP协议 使用UDP协议 不可靠信道 发送进程 6 1传输服务 传输层协议的选择是根据高层用户的需要和低层网络协议提供的服务来决定的 高层对传输层服务的要求T通信子网所提供的服务N传输层协议 T N 传输层协议的分类 6 1传输服务 网络提供的服务质量 网络连接具有可接受低残留差错率和可接受低故障通知率 网络连接具有可接受的低残留差错率和不可接受的高故障通知率 网络连接具有不可接受的高差错率 A型 B型 C型 6 1传输服务 OSI参考模型中的传输层协议分类 差错恢复与复用类支持B型网络 差错检测和恢复 复用类支持C型网络 简单类支持A型网络 复用类支持A型网络 基本差错恢复类支持B型网络 OSI 6 1传输服务 传输层的UDP和TCP都使用了端口 port 与上层的应用进程进行通信 端口就是传输层服务访问点TSAP 也就是与应用进程的接口 端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层 以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程 从这个意义上讲 端口是应用层进程的标识 2 传输层编址 6 1传输服务 2 传输层编址 RPC111 SNMP161 TFTP69 SMTP25 FTP21 HTTP80 UDP TCP IP 应用层传输层网络层 6 1传输服务 2 传输层编址 其数值一般为0 1023 这些端口号是TCP IP体系确定并公布的 熟知端口 用来随时分配给请求通信的客户进程 一般端口 端口类型 6 1传输服务 3 无连接服务和面向连接服务 6 1传输服务 3 无连接服务和面向连接服务 内容纲要 传输服务无连接的传输层协议UDP面向连接的传输层协议TCP套接字 6 2无连接的传输层协议UDP UDP是一个简单的面向用户数据报的传输层协议 应用进程的输出正好产生一个UDP数据报 并组装成一个待发送的IP数据报 UDP只在IP的数据报服务之上增加了很少一点的功能 即端口的功能和有限的差错检测功能 1 UDP概述 6 2无连接的传输层协议UDP UDP是无连接的 在传输数据前不需要与对方建立连接 UDP提供不可靠的服务 数据可能不按发送顺序到达接收方 也可能会重复或者丢失数据 UDP同时支持点到点和多点之间的通信 UDP是面向报文的 1 UDP概述 6 2无连接的传输层协议UDP 2 UDP首部格式 伪首部 源端口 目的端口 长度 检验和 数据 首部 UDP长度 源IP地址 目的IP地址 0 17 IP数据报 字节 4 4 1 1 2 12 2 2 2 2 字节 发送在前 数据 首部 UDP用户数据报 6 2无连接的传输层协议UDP 2 UDP首部格式 伪首部 源端口 目的端口 长度 检验和 数据 首部 UDP长度 源IP地址 目的IP地址 0 17 IP数据报 字节 4 4 1 1 2 12 2 2 2 2 字节 发送在前 数据 首部 UDP用户数据报 用户数据报UDP有两个字段 数据字段和首部字段 首部字段有8个字节 由4个字段组成 每个字段都是两个字节 6 2无连接的传输层协议UDP UDP用户数据报的首部中检验和用来检验整个用户数据报 首部加数据部分 出现的差错 在计算检验和时在UDP数据报之前要增加12个字节的伪首部 所谓 伪首部 是因为这种首部只在计算UDP校验和的时候使用 既不向下层传送 也不向上层递交 2 UDP首部格式 6 2无连接的传输层协议UDP 2 UDP首部格式 伪首部 源端口 目的端口 长度 检验和 12 2 2 2 2 字节 6 2无连接的传输层协议UDP 2 UDP首部格式 网络需传输的UDP数据报数据如下 以16进制数表示 其中第一行数据是IP数据报首部的内容 第二行数据是UDP数据 请计算其UDP校验和 45000020f91200008011bf9fc0a80064c0a8006613611389000c 50434155 6 2无连接的传输层协议UDP 2 UDP首部格式 UDP首部的校验和字段设置为0 如果UDP数据域长度为奇数的话 则填充一个 0 字节将UDP首部和数据部分按照16位为单位划分伪首部部分参与校验和计算进行反码求和运算最后对累加的结果取反码 即得到UDP校验和 6 2无连接的传输层协议UDP 3 UDP实例 内容纲要 传输服务无连接的传输层协议UDP面向连接的传输层协议TCP套接字 6 3面向连接的传输层协议TCP TCP是面向连接的TCP提供可靠的服务TCP只能进行点到点的通信TCP是面向字节流的 1 TCP概述 TCP的基本概念 6 3面向连接的传输层协议TCP 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 填充 6 3面向连接的传输层协议TCP 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报文段 MSS TCP报文长度 TCP首部长度 TCP首部 20字节固定首部 目的端口 数据偏移 检验和 选项 长度可变 源端口 序号 紧急指针 窗口 确认号 保留 FIN SYN RST PSH ACK URG 比特08162431 填充 填充字段 这是为了使整个首部长度是4字节的整数倍 6 3面向连接的传输层协议TCP 3 TCP连接管理 建立连接 三次握手 SYN 1 SEQ x ACK 1 ACK x 1SYN 1 SEQ y ACK 1 SEQ x 1ACK y 1 6 3面向连接的传输层协议TCP 3 TCP连接管理 建立释放 四次握手 文雅释放 FIN 1 SEQ m ACK 1 ACK m 1 FIN 1 SEQ nACK m 1 ACK 1 SEQ m 1ACK n 1 半关闭状态 双向关闭状态 6 3面向连接的传输层协议TCP TCP将连接可能处在的状态及各状态可能发生的变迁 画成状态转移图的形式 称为有限状态机 图中每一个方框即TCP可能具有的状态 方框中的字是TCP标准使用的状态名 状态之间的箭头表示可能发生的状态变迁 箭头旁边的字表示变迁的原因 或状态变迁后又出现的动作 TCP的有限状态机 3 TCP连接管理 TCP的有限状态机 CLOSED ESTABLISHED LISTEN CLOSE WAIT FIN WAIT 1 SYN RCVD FIN WAIT 2 CLOSING TIME WAIT SYN SENT LAST ACK 主动打开 被动打开 被动关闭 主动关闭 起点 被动打开 主动打开发送SYN 同时打开 收到SYN 发送SYN ACK 收到ACK 数据传送阶段 关闭发送FIN 关闭发送FIN 关闭发送FIN 收到RST 收到SYN发送SYN ACK 关闭或超时 收到ACK 收到SYN ACK发送ACK 收到ACK 收到ACK 收到FIN发送ACK 收到FIN ACK发送ACK 收到FIN发送ACK 同时关闭 收到FIN发送ACK 发送SYN 定时经过两倍报文段寿命后 关闭 6 3面向连接的传输层协议TCP TCP将所要传送的整个应用层报文 这可能要嵌在多个报文段中发送 看成是一个个字节组成的数据流 然后对每一个字节编一个序号 在连接建立时 双方要商定初始序号 TCP就将每一次所传送的报文段中的第一个数据字节的序号 放在TCP首部的序号字段中 4 TCP可靠传输 确认机制 6 3面向连接的传输层协议TCP TCP的确认是对接收到的数据的最高序号表示确认 接收端返回的确认号是已收到的数据的最高序号加1 因此确认号表示接收端期望下次收到的数据中的第一个数据字节的序号 为提高效率 TCP可以累积确认 即在接收多个报文段后 一次确认 4 TCP可靠传输 确认机制 6 3面向连接的传输层协议TCP 4 TCP可靠传输 用TCP传送112字节的数据 设窗口为100字节 而TCP报文段每次也是传送100字节的数据 再设发送端和接收端的起始序号分别选为l00和200 试画出连接建立阶段到连接释放的图 6 3面向连接的传输层协议TCP 4 TCP可靠传输 6 3面向连接的传输层协议TCP 4 TCP可靠传输 超时重传机制 由于TCP的下层是一个互连网环境 IP数据报所选择的路由变化很大 因而运输层的往返时延的方差也很大 时间 数据链路层 T1 T2 T3 往返时延的概率分布 6 3面向连接的传输层协议TCP 4 TCP可靠传输 RTT自适应算法 计算一次平均往返时延 RTTnew RTTsample 第一次测量 RTTnew RTTold l RTTsample 第二次以后的测量 上式中RTTold是前次测量的RTTnew在上式中对0 1 典型的 值为7 8 6 3面向连接的传输层协议TCP 4 TCP可靠传输 RTTD算法 引入RTT的偏差的加权平均值RTTDnew 计算方法如下 RTTDnew RTTsample 2 第一次测量 RTTDnew RTTDold l RTTnew RTTsample 第二次以后的测量 在上式中对0 1 典型的 值为3 4 6 3面向连接的传输层协议TCP 4 TCP可靠传输 RTO算法 最后 超时重传时间RTO采用以下公式计算出来 RTO RTTnew 4 RTTDnewKarn提出了一个算法 在计算平均往返时延时 只要报文段重发了 就不采用其往返时延样本 这样得出的平均往返时延和重发时间较准确 6 3面向连接的传输层协议TCP 4 TCP可靠传输 定时器 重传定时器持续定时器保活定时器 6 3面向连接的传输层协议TCP 5 TCP流量控制 TCP采用大小可变滑动窗口的方式进行流量控制 窗口大小的单位是字节 根据接收方接收能力 通过接收窗口rwnd receivewindow 可以实现端到端的流量控制 接收端将接收窗口rwnd的值放在TCP报文的首部中的 窗口 字段 传送给发送端 6 3面向连接的传输层协议TCP 5 TCP流量控制 发送窗口在连接建立时由双方商定初始值 在通信的过程中 接收端可根据自己的资源情况 随时动态地调整自己的接收窗口 然后告诉发送方 使发送方的发送窗口和自己的接收窗口一致 这种由接收端控制发送端的做法 在计算机网络中经常使用 6 3面向连接的传输层协议TCP 5 TCP流量控制 TCP采用大小可变滑动窗口的方式进行流量控制 根据图6 13的通信情况 设主机A向主机B发送数据 双方商定的窗口值是500 设每一个报文段为100字节长 序号的初始值为1 请问接收方对发送方进行了几次的流量控制 6 3面向连接的传输层协议TCP 5 TCP流量控制 主机A 主机B SEQ 1 WIN 500 SEQ 101 ACK 101 WIN 400 SEQ 201 SEQ 301 SEQ 401 ACK 101 WIN 0 SEQ 101 ACK 501 WIN 300 1 2 3 6 3面向连接的传输层协议TCP 6 TCP拥塞控制 拥塞控制的基本功能是避免网络发生拥塞 或者缓解已经发生的拥塞 TCP IP拥塞控制机制主要集中在传输层实现 TCP为了进行有效的拥塞控制 需要通过拥塞窗口cwnd congestionwindow 来进行衡量网络的拥塞程度 注意 发送窗口的取值依据拥塞窗口和接收窗口中的较小的值 即Min rwnd cwnd rwnd在流量控制中已阐述 在下文中将只关注cwnd 6 3面向连接的传输层协议TCP 6 TCP拥塞控制 慢启动拥塞避免快速重传快速恢复 6 3面向连接的传输层协议TCP 6 TCP拥塞控制 慢启动 拥塞避免 cwnd ssthresh 拥塞 3重复ACK ssthresh 1 2cwndcwnd 1MSS ssthresh 1 2cwndcwnd ssthresh快速重传 快速恢复 6 3面向连接的传输层协议TCP TCP的拥塞窗口cwnd大小 以报文段个数为单位 与传输轮次n的关系如图所示 1 请画出拥塞窗口和传输轮次的关系曲线图 2 请问各个传输轮次使用的是什么拥塞控制算法 3 各个阶段的门限值ssthresh各是多大 4 第40个报文段在第几个传输轮次发送 6 TCP拥塞控制 6 3面向连接的传输层协议TCP 6 TCP拥塞控制 6 3面向连接的传输层协议TCP 7 TCP实例 内容纲要 传输服务无连接的传输层协议UDP面向连接的传输层协议TCP套接字 6 4套接字 1 套接字概念 UDP和TCP使用 端口号 作为计算机系统中高层应用进程的标识 而IP地址则标识了网络中的一台主机 IP地址和端口号的组合称为套接字 套接字和端口 IP地址的关系是 6 4套接字 1 套接字概念 客户端A10 32 100 9

温馨提示

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

评论

0/150

提交评论