[信息与通信]第5章运输层new.ppt
《[信息与通信]第5章运输层new.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]第5章运输层new.ppt(186页珍藏版)》请在三一办公上搜索。
1、第5章 运输层,5.1 运输层协议概述,5.1.1 进程之间的通信,物理层,运输层在层次体系结构中的地位,数据链路层,网络层,运输层,应用层,面向信息处理,面向通信,用户功能,网络功能,运输层为通信的应用进程提供逻辑通信,主机 A,主机 B,IP 协议的作用范围,运输层协议 TCP 和 UDP 的作用范围,IP 层,“逻辑通信”运输层之间的通信似乎是沿水平方向传送数据事实上运输层之间并没有一条水平方向的物理连接,运输层协议和网络层协议的主要区别,应用进程,应用进程,IP 协议的作用范围(提供主机之间的逻辑通信),TCP 和 UDP 协议的作用范围(提供进程之间的逻辑通信),因 特 网,运输层和
2、网络层的区别,12个孩子要与另一个家庭的12个孩子相互通信进程=孩子们进程间报文=信封中的信笺主机=家庭的房子运输协议=孩子之间的通信网络层协议=家庭之间的通信,为什么需要运输层,在一个网络连接上复用多对进程的通信 控制网络层及下两层自身不能解决的传输错误 解决多互连的通信子网 通信协议和提供的服务功能的差异,运输层与上下层之间的关系,运输实体,运输实体,运输协议,应用层,网络层(或网际层),运输层服务访问点TSAP,网络层服务访问点NSAP,运输层,5.1.2 TCP/IP体系中的运输层协议,UDP(User Datagram Protocol)用户数据报协议:提供面向无连接的服务此时逻辑通
3、信信道是一条不可靠信道 TCP(Transmission Control Protocol)传输控制协议:提供面向连接的服务尽管下面的网络不可靠(尽最大努力服务)但逻辑通信信道相当于一条全双工的可靠信道,5.1.3 运输层的端口(port),操作系统用进程标识符来标志运行在计算机中的进程 但因特网上不同操作系统使用不同格式的进程标识符 必须用统一方法对 TCP/IP 体系的应用进程进行标志 进程动态创建和撤销,发送方无法识别其他机器上的进程 端口号只具有本地意义,标志本计算机应用层中的各进程 通信的终点是应用进程,但可以想象通信终点是端口 在协议栈层间的抽象的协议端口是软件端口 路由器或交换机
4、上的端口是硬件端口端口用一个 16 bit 端口号进行标志,套接字,从上面的分析可以看出,要唯一的标识一个网络进程,除了需要主机IP地址外,还需要进程标识-端口号。IP+Port称为套接字。套接字和端口、IP 地址的关系是:,三类端口,熟知端口(01023)登记端口号(102449151)为没有熟知端口号的应用程序使用的使用该端口号必须在 IANA 登记,以防重复客户端口号或短暂端口号(4915265535)留给客户进程选择暂时使用通信结束后,该端口号可供其他客户进程使用,5.2 用户数据报协议UDP,传送的协议数据单元是 UDP 报文或用户数据报无连接方式,发送数据之前不需要建立连接尽最大努
5、力交付,不保证可靠交付,也不使用拥塞控制面向报文,没有拥塞控制,适合多媒体通信支持一对一、一对多、多对一和多对多的交互通信 8 个字节首部,开销小,面向报文的 UDP,IP 层,运输层,应用层报文,应用层,发送方 UDP 对应用程序交下来的报文在添加首部后就向下交付 IP 层一次发送一个报文一次交付一个完整的报文,UDP 首部格式,字节,4,4,1,1,2,12,2,2,2,2,字节,发送在前,UDP 用户数据报,用户数据报 UDP 有两个字段:数据字段和首部字段首部字段由4个字段共8字节组成,每个字段都是两个字节,在计算检验和时临时把“伪首部”和 UDP 用户数据报连接在一起伪首部仅仅是为了
6、计算检验和,计算 UDP 检验和的例子,10011001 00010011 153.1900001000 01101000 8.10410101011 00000011 171.300001110 00001011 14.1100000000 00010001 0 和 1700000000 00001111 1500000100 00111111 108700000000 00001101 1300000000 00001111 1500000000 00000000 0(检验和)01010100 01000101 数据01010011 01010100 数据01001001 01001110
7、 数据01000111 00000000 数据和 0(填充)10010110 11101101 求和得出的结果01101001 00010010 检验和,153.19.8.104,171.3.14.11,12 字节伪首部,8 字节UDP 首部,7 字节数据,按二进制反码运算求和将得出的结果求反码,全 0 17 15 1087 13 15 全 0数据 数据 数据 数据数据 数据 数据 全 0,某UDP用户数据报的首部用十六进制表示是:F6 32 00 45 00 1C E2 17。试求源端口、目的端口、用户数据报的总长度、数据部分长度。这个用户数据报是从客户发送给服务器还是服务器发送给客户?使用
8、UDP的这个服务器程序是什么?,答案,源端口号:63026目的端口号:69用户数据报的总长度为:28字节数据部分长度为:20字节使用UDP的这个服务器程序是:TFTP,UDP 基于端口分用,IP 层,UDP 数据报到达,端口 2,端口 3,端口 1,UDP 分用,5.3 传输控制协议TCP概述,面向连接的运输层协议,提供可靠交付的服务传送的协议数据单元是 TCP 报文段(segment)每条 TCP 连接只能有两个端点(endpoint)每一条 TCP 连接只能是点对点的TCP 提供全双工通信面向字节流,面向字节流的 TCP,敬请关注,是一条虚连接而不是一条真正的物理连接不关心应用进程一次把多
9、长的报文发送到TCP 缓存中根据对方给出的窗口值和当前网络拥塞程度来决定一个报文段应包含多少个字节可把太长的数据块划分短一些再传送也可等待积累有足够多的字节后再构成报文段发送出去,TCP 的连接,TCP 把连接作为最基本的抽象每一条连接有两个端点TCP 连接的端点不是主机、应用进程,或运输层协议端口TCP 连接的端点叫做套接字(socket)或插口端口号拼接到 IP 地址即构成了套接字,TCP 连接:=socket1,socket2=(IP1:port1),(IP2:port2),套接字 socket=(IP地址:端口号),套接字(socket),每一条 TCP 连接唯一地被通信两端套接字所确
10、定,例题,某主机的IP地址是172.12.22.101,运行了3个应用程序:浏览器、QQ和迅雷下载,分别绑定在端口:50333、55443和59932上。如果该主机接收到4个IP数据报,每个IP数据报的目的IP:目的PORT分别是:数据报1 172.12.22.101:55443数据报2 172.12.22.101:59932 数据报3 172.12.22.101:50333数据报4172.12.22.101:10000那么这些数据报会分别上交给哪个应用进程?,关于TCP和UDP端口,下列说法中正确的是()A TCP和UDP分别拥有自己的端口号,二者互不干扰,可以共存于同一台主机B TCP和U
11、DP分别拥有自己的端口号,但二者不能共存于同一台主机C TCP和UDP的端口号没有本质区别,二者互不干扰,可以共存于同一台主机D TCP和UDP的端口号没有本质区别,但二者不能共存于同一台主机,IP 数 据 部 分,32bit,TCP首部,20字节固定首部,TCP报文段,发送在前,5.5 TCP报文段首部,TCP首部,TCP 数 据 部 分,IP首 部,源端口和目的端口字段各占 2 字节端口是运输层与应用层的服务接口运输层的复用和分用功能都要通过端口才能实现,序号字段占 4 字节TCP 连接传送的数据流中每一个字节都编上一个序号序号字段的值指出本报文段所发送的数据的第一个字节的序号,确认号字段
12、占 4 字节期望收到对方的下一个报文段的数据的第一个字节的序号,数据偏移(即首部长度)占 4 位,以 4 字节为计算单位指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远,保留字段占 6 位保留为今后使用,目前应置为 0,紧急 URG当 URG 1 时,表明紧急指针字段有效告诉系统此报文段中有紧急数据(高优先级数据),应尽快传送,紧急指针字段 占 16 位指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面),确认 ACK当 ACK 1 时,确认号字段有效 当 ACK 0 时,确认号字段无效,推送 PSH(PuSH)接收 TCP 收到 PSH=1 的报文段,
13、就尽快地交付接收应用进程不再等到整个缓存都填满了后再向上交付,复位 RST(ReSeT)当 RST 1 时,表明 TCP 连接中出现严重差错必须释放连接,然后再重新建立运输连接,同步 SYN 同步 SYN=1 表示这是一个连接请求或连接接受报文,终止 FIN(FINis)用来释放一个连接FIN 1 表明此报文段的发送端数据已发送完毕,要求释放运输连接,窗口字段 占 2 字节用来让对方设置发送窗口的依据,单位为字节,检验和 占 2 字节:检验的范围包括首部和数据这两部分在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部与UDP一样,只不过17修改为6,长度为TCP长度,选项字段
14、长度可变最初只规定了一种选项,最大报文段长度 MSS(Maximum Segment Size)MSS 告诉对方 TCP:“我的缓存能接收报文段数据字段最大长度是 MSS 个字节。”,其他选项,窗口扩大选项 占 3 字节,其中有一个字节表示移位值 S。新的窗口值等于TCP 首部中的窗口位数增大到(16+S),相当于把窗口值向左移动 S 位后获得实际的窗口大小。时间戳选项占10 字节,其中最主要的字段时间戳值字段(4 字节)和时间戳回送回答字段(4 字节),用于计算RTT和防止序号绕回。选择确认选项,填充字段为了使整个首部长度是 4 字节的整数倍,5.4 可靠传输的工作原理,5.4.1 停止等待
15、协议,可靠传输之停止等待协议,(a)无差错情况,A,发送 M1,确认 M1,B,发送 M2,发送 M3,确认 M2,确认 M3,t,t,理想的传输条件:1.传输信道不产生差错2.不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据,可靠传输之停止等待协议,A,发送 M1,B,超时重传 M1,发送 M2,确认 M1,丢弃有差错的报文,(b)超时重传,t,t,如果发送方分组后,一直未收到确认,出现“死锁”,可靠传输之停止等待协议,A,发送 M1,B,超时重传 M1,发送 M2,确认 M1,丢弃有差错的报文,(b)超时重传,t,t,发送完一个分组后,必须暂时保留已发送的分组副本分组和确认分
16、组都必须进行编号超时计时器的重传时间应略长于分组传输平均往返时间,可靠传输之停止等待协议,(c)确认丢失,A,发送 M1,B,发送 M2,丢弃重复M1重传M1确认,t,t,确认 M1,超时重传 M1,可靠传输之停止等待协议,丢弃重复M1重传M1确认,(d)确认迟到,超时重传 M1,A,发送 M1,B,发送 M2,确认 M1,收下迟到确认但什么也不做,t,t,停止等待协议的实现,使用确认和重传机制,可以在不可靠的传输网络上实现可靠通信该可靠传输协议称为自动重传请求ARQ(Automatic Repeat reQuest)ARQ 表明重传的请求是自动进行的接收方不需要请求发送方重传某个出错的分组,
17、停止等待协议的信道利用率,优点:简单缺点:信道利用率太低,TD,RTT,A,TD+RTT+TA,B,分组,确认,t,t,分组,确认,5.4.2 流水线传输,发送方可连续发送多个分组不必每发完一个分组就停顿下来等待对方的确认信道上不间断地传送数据,可获得很高的信道利用率,B,分组,t,t,A,ACK,可靠传输之连续 ARQ 协议,(a)发送方维持发送窗口(发送窗口是 5),发送窗口,(b)收到一个确认后发送窗口向前滑动,向前,可靠传输之连续 ARQ 协议,接收方一般采用累积确认的方式并不逐个确认,只对按序到达的最后一个分组发送确认优点:容易实现,即使确认丢失也不必重传缺点:不能向发送方反映接收方
18、已正确收到所有分组的信息Go-back-N:需要再退回来重传已发送过的 N 个分组当通信线路质量不好时,连续 ARQ 协议会带来负面影响,5.6 连续 ARQ 协议的实现,TCP 连接的每一端都设有窗口一个发送窗口和一个接收窗口TCP 的可靠传输机制用字节序号进行控制TCP 所有的确认都是基于序号而不是基于报文段TCP 两端的四个窗口经常处于动态变化之中TCP连接的往返时间 RTT 也不是固定不变的,需要特定算法估算,TCP 以字节为单位的滑动窗口,前移,不允许发送,已发送并收到确认,A 的发送窗口=20,允许发送的序号,26,27,28,29,30,31,32,33,34,35,36,37,
19、38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,B 期望收到的序号,前沿,后沿,前移,收缩,根据 B 给出的窗口值A 构造出自己的发送窗口,允许发送但尚未发送,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=已发送但尚
20、未收到确认的字节数P3 P2=允许发送但尚未发送的字节数(又称为可用窗口),不允许发送,已发送并收到确认,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,允许发送但尚未发送,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,已发送并收到确认,不允许发送,已发送但未收
21、到确认,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,5
22、4,55,已发送但未收到确认,56,P1,P2,P3,A 的发送窗口内的序号都已用完,但还没有再收到确认,必须停止发送,发送缓存与接收缓存的作用,发送缓存用来暂时存放:发送应用程序传送给发送方 TCP 准备发送的数据;TCP 已发送出但尚未收到确认的数据。接收缓存用来暂时存放:按序到达的、但尚未被接收应用程序读取的数据;不按序到达的数据。,发送缓存,最后被确认的字节,发送应用程序,发送缓存,最后发送的字节,发送窗口,已发送,TCP,序号增大,接收缓存,接收应用程序,已收到,接收窗口,TCP,接收缓存,下一个读取的字节,序号增大,下一个期望收到的字节(确认号),按序达到的,未被取走的,未按序达到
23、的,需要暂存的,需要强调三点,A 的发送窗口并不总是和 B 的接收窗口一样大(因为有一定的时间滞后)。TCP 标准没有规定对不按序到达的数据应如何处理。通常是先临时存放在接收窗口中,等到字节流中所缺少的字节收到后,再按序交付上层的应用进程。TCP 要求接收方必须有累积确认的功能,这样可以减小传输开销。,TCP的差错控制,差错控制包括:检测传输出错报文,丢失报文,乱序报文,重复报文。TCP的差错检测手段:检验和,确认,超时重传传输出错报文:检验和不等于0,丢弃;不确认丢失报文:超时重传乱序报文:接收方先保存,收齐后再发确认重复报文:丢弃,TCP捎带确认,捎带确认:在发送数据报文中捎带确认信息。T
24、CP建立连接后,收发双方实行全双工通信,通信双方不需要专门发送确认报文,可以在传送数据的同时,以“捎带确认”方法完成确认过程。但是大多数应用程序不同时在两个方向上发送数据。,TCP累积确认,接收方收到第1、2个报文后,发送确认报文,确认号为1601,但这个确认报文在传输过程中丢失,如果确认号为1801的确认报文在第一个报文确认超时之前到达发送方,则发送方可以认为1801之前的所有字节均被正确接收,而忽略之前的确认丢失。,5.6.2 超时重传时间的选择,重传机制是 TCP 中最重要和最复杂的问题之一。TCP 每发送一个报文段,就对这个报文段设置一次计时器。只要计时器设置的重传时间到但还没有收到确
25、认,就要重传这一报文段。,往返时延的方差很大,由于 TCP 的下层是一个互联网环境,IP 数据报所选择的路由变化很大。因而运输层的往返时间的方差也很大。,时间,数据链路层,T1,T2,T3,往返时间的概率分布,加权平均往返时间,TCP 保留了 RTT 的一个加权平均往返时间 RTTS(这又称为平滑的往返时间)。第一次测量到 RTT 样本时,RTTS 值就取为所测量到的 RTT 样本值。以后每测量到一个新的 RTT 样本,就按下式重新计算一次 RTTS:新的 RTTS(1)(旧的 RTTS)(新的 RTT 样本)(5-4)式中,0 1。若 很接近于零,表示 RTT 值更新较慢。若选择 接近于 1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息与通信 信息 通信 运输 new

链接地址:https://www.31ppt.com/p-5615490.html