收藏 分享(赏)

计算机通信与网络_CH06_传输层.ppt

上传人:gnk289057 文档编号:6920442 上传时间:2019-04-27 格式:PPT 页数:79 大小:649KB
下载 相关 举报
计算机通信与网络_CH06_传输层.ppt_第1页
第1页 / 共79页
计算机通信与网络_CH06_传输层.ppt_第2页
第2页 / 共79页
计算机通信与网络_CH06_传输层.ppt_第3页
第3页 / 共79页
计算机通信与网络_CH06_传输层.ppt_第4页
第4页 / 共79页
计算机通信与网络_CH06_传输层.ppt_第5页
第5页 / 共79页
点击查看更多>>
资源描述

1、计算机通信与网络 Computer Telecommunications & Networks,南京邮电大学计算机学院 “计算机通信与网络”国家精品课程组,第6章 传输层,传输层,传输层的作用是在通信子网提供的服务的基础上,为上层应用层提供有效的、合理的传输服务。使高层用户在相互通信时不必关心通信子网的实现细节和具体服务质量。 主要阐述6.2无连接的传输层协议UDP和面向连接的传输层协议TCP两大传输层协议,最后简述套接字和套接字编程的基本概念。,内容纲要,传输服务 无连接的传输层协议UDP 面向连接的传输层协议TCP 套接字,内容纲要,传输服务 无连接的传输层协议UDP 面向连接的传输层协议

2、TCP 套接字,6.1传输服务,传输层又称为运输层,位于应用层和网络层之间,是分层网络体系结构的核心部分。 传输层用于增强和弥补通信子网的服务不足,提供主机之间有效、合理的传输服务。 设置传输层的理由:,6.1传输服务,应用进程,应用进程,IP 协议的作用范围 (提供主机之间的逻辑通信),TCP 和 UDP 协议的作用范围 (提供进程之间的逻辑通信),因 特 网,(1)两个主机进行通信实际上是两个主机中的应用进程互相通信,6.1传输服务,传输层的复用和分用,进程,传输层复用,IP数据报,传输层分用,IP数据报,TSAP,NSAP,6.1传输服务,从通信和信息处理的角度看,传输层向它上面的应用层

3、提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。,物理层,网络层,传输层,应用层,数据链路层,面向信息处理,面向通信,用户功能,通信子网,端系统,6.1传输服务,为了提高传输效率,IP首部中的首部校验和字段只检验IP数据报首部是否出现差错而不检查数据部分 传输层TCP和UDP的校验和既要校验首部也要校验数据部分,并且只在发送端进行一次校验和计算,在接收端进行一次检测,(2)传输层对整个报文段进行差错校验和检测,6.1传输服务,当传输层采用面向连接的协议(如TCP)时,它为应用进程在传输实体间建立一条全双工的可靠逻辑信道,尽管下面的网络可能是不可靠的(如IP交换网络)。 当

4、传输层采用如UDP这样的无连接协议时,这种逻辑信道是不可靠的。,(3)根据应用的不同,传输层需要执行不同的传输协议来提供不同的传输服务,6.1传输服务,用户不能对通信子网加以控制,无法解决网络层的服务质量不佳问题 应用层协议如果强调数据传输的可靠性,那么选择TCP较好,分组的丢失、残缺甚至网络重置都可以被传输层检测到,并采取相应的补救措施。如果应用层协议强调实时应用要求,那么选择UDP为宜。,(4)传输层的存在使得传输服务比网络服务更加合理有效,6.1传输服务,(5)传输层采用一个标准的原语集提供传输服务,由于传输服务独立于网络服务,故可以采用一个标准的原语集提供传输服务。 为网络向高层提供了

5、一个统一的服务界面,所以用传输服务原语编写的应用程序就可以广泛适用于各种网络。,6.1传输服务,一个传输层协议通常可同时支持多个进程的连接。若通信子网所提供的服务越多,传输协议就可以做得越简单。若网络层提供虚电路服务,那就能保证报文无差错、不丢失、不重复、并且按序地进行可靠交付,因而传输协议就很简单。但若网络层提供的是不可靠的数据报服务,如果要保证传输服务质量,则要求主机有一个复杂的传输协议。,传输层的主要功能,6.1传输服务,向上提供可靠的和不可靠的逻辑通信信道,?,应 用 层,运 输 层,发 送 进 程,接 收 进 程,接 收 进 程,数据,数据,全双工可靠信道,数据,数据,使用 TCP

6、协议,使用 UDP 协议,不可靠信道,发 送 进 程,6.1传输服务,传输层协议的选择是根据高层用户的需要和低层网络协议提供的服务来决定的。 高层对传输层服务的要求 T 通信子网所提供的服务 N 传输层协议TN,传输层协议的分类,6.1传输服务,网络提供的服务质量,网络连接具有可接受低残留差错率和可接受低故障通知率,网络连接具有可接受的低残留差错率和不可接受的高故障通知率,网络连接具有不可接受的高差错率,A型,B型,C型,6.1传输服务,OSI参考模型中的传输层协议分类,差错恢复与复用类 支持B型网络,差错检测和恢复、复用类 支持C型网络,简单类 支持A型网络,复用类 支持A型网络,基本差错恢

7、复类 支持B型网络,OSI,6.1传输服务,传输层的UDP和TCP都使用了端口(port)与上层的应用进程进行通信,端口就是传输层服务访问点 TSAP(也就是与应用进程的接口) 端口的作用就是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层相应的进程。从这个意义上讲,端口是应用层进程的标识。,2、传输层编址,6.1传输服务,2、传输层编址,R P C111,( ),S N M P 161,( ),T F T P 69,( ),S M T P 25,( ),F T P21,( ),H T T P 80,( ),UDP,TC

8、P,IP,应用层传输层网络层,6.1传输服务,2、传输层编址,其数值一般为01023。这些端 口号是TCP/IP体 系确定并公布的,熟知端口,用来随时分配 给请求通信的 客户进程,一般端口,端口 类型,6.1传输服务,3、无连接服务和面向连接服务,6.1传输服务,3、无连接服务和面向连接服务,内容纲要,传输服务 无连接的传输层协议UDP 面向连接的传输层协议TCP 套接字,6.2无连接的传输层协议UDP,UDP 是一个简单的面向用户数据报的传输层协议。应用进程的输出正好产生一个UDP数据报,并组装成一个待发送的IP数据报。 UDP 只在 IP 的数据报服务之上增加了很少一点的功能,即端口的功能

9、和有限的差错检测功能。,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,

10、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校验和的

11、时候使用,既不向下层传送,也不向上层递交。,2、UDP首部格式,6.2无连接的传输层协议UDP,2、UDP首部格式,伪首部,源端口,目的端口,长 度,检验和,12,2,2,2,2,字节,6.2无连接的传输层协议UDP,2、UDP首部格式,网络需传输的UDP数据报数据如下,以16进制数表示,其中第一行数据是IP数据报首部的内容,第二行数据是UDP数据,请计算其UDP校验和。45 00 00 20 f9 12 00 00 80 11 bf 9f c0 a8 00 64 c0 a8 00 66 13 61 13 89 00 0c ? ? 50 43 41 55,6.2无连接的传输层协议UDP,2、U

12、DP首部格式,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 字节的 固定首部,目

13、的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,32 bit,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,TCP 数据部分,TCP 首部,TCP 报文段,IP 数据部分,IP 首部,发送在前,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16

14、 24 31,填 充,源端口和目的端口字段各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,序号字段占 4 字节。TCP 连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。,TCP 首部,20 字节 固定 首部,目

15、的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,确认号字段占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充

16、,数据偏移占 4 bit,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位不是字节而是 32 bit 字(4 字节为计算单位)。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,6.3面向连接的传输层协议TCP,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端

17、口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,窗口字段 占 2 字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8

18、16 24 31,填 充,检验和 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在 TCP 报文段的前面加上 12 字节的伪首部。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,紧急指针字段 占 16 bit。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。,TCP 首部,20 字节 固定 首部,目 的 端 口,数据 偏移,

19、检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,选项字段 长度可变。TCP 只规定了一种选项,即最大报文段长度 MSS (Maximum Segment Size)。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”,MSS 是 TCP 报文段中的数据字段的最大长度。 数据字段加上 TCP 首部 才等于整个的 TCP 报文段。 MSS = TCP报文长度 TCP首部长度,TCP 首部,

20、20 字节 固定 首部,目 的 端 口,数据 偏移,检 验 和,选 项 (长 度 可 变),源 端 口,序 号,紧 急 指 针,窗 口,确 认 号,保 留,F I N,S Y N,R S T,P S H,A C K,U R G,比特 0 8 16 24 31,填 充,填充字段 这是为了使整个首部长度是 4 字节的整数倍。,6.3面向连接的传输层协议TCP,3、 TCP 连接管理,建立连接三次握手,SYN = 1, SEQ = x,ACK = 1, ACK = x + 1 SYN = 1, SEQ = y,ACK = 1, SEQ = x + 1ACK = y + 1,6.3面向连接的传输层协议

21、TCP,3、 TCP 连接管理,建立释放四次握手(文雅释放),FIN = 1, SEQ = m,ACK = 1, ACK = m + 1,FIN = 1, SEQ = n ACK = m + 1,ACK = 1, SEQ = m + 1ACK = n + 1,半关闭状态,双向关闭状态,6.3面向连接的传输层协议TCP,TCP 将连接可能处在的状态及各状态可能发生的变迁,画成状态转移图的形式,称为有限状态机。 图中每一个方框即TCP可能具有的状态,方框中的字是TCP标准使用的状态名;状态之间的箭头表示可能发生的状态变迁,箭头旁边的字表示变迁的原因,或状态变迁后又出现的动作。,TCP 的有限状态机

22、,3、 TCP 连接管理,T C P 的 有 限 状 态 机,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

23、,收到 ACK,收到 ACK,收到 FIN 发送 ACK,收到 FIN, ACK发送 ACK,收到 FIN 发送 ACK,同时关闭,收到 FIN 发送 ACK,发送 SYN,定时经过两倍报文段寿命后,关闭,6.3面向连接的传输层协议TCP,TCP 将所要传送的整个应用层报文(这可能要嵌在多个报文段中发送)看成是一个个字节组成的数据流,然后对每一个字节编一个序号。在连接建立时,双方要商定初始序号。TCP 就将每一次所传送的报文段中的第一个数据字节的序号,放在 TCP 首部的序号字段中。,4、 TCP可靠传输,确认机制,6.3面向连接的传输层协议TCP,TCP 的确认是对接收到的数据的最高序号表示

24、确认。接收端返回的确认号是已收到的数据的最高序号加 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 的

25、下层是一个互连网环境,IP 数据报所选择的路由变化很大。因而运输层的往返时延的方差也很大。,时间,数据链路层,T1,T2,T3,往返时延的 概率分布,6.3面向连接的传输层协议TCP,4、 TCP可靠传输,RTT自适应算法,计算一次平均往返时延: RTTnew = RTTsample (第一次测量) RTTnew RTTnew +(l)RTTsample(第二次以后的测量) 在上式中对01。典型的值为7/8。,6.3面向连接的传输层协议TCP,4、 TCP可靠传输,RTTD算法,引入RTT的偏差的加权平均值RTTDnew,计算方法如下: RTTDnew RTTsample / 2(第一次测量)

26、 RTTDnew RTTDold +(l)| RTTnew - RTTsample |(第二次以后的测量) 在上式中对 01。典型的值为 3/4。,6.3面向连接的传输层协议TCP,4、 TCP可靠传输,RTO算法,最后,超时重传时间RTO采用以下公式计算出来: RTO RTTnew + 4 RTTDnew Karn 提出了一个算法:在计算平均往返时延时,只要报文段重发了,就不采用其往返时延样本。这样得出的平均往返时延和重发时间较准确。,6.3面向连接的传输层协议TCP,4、 TCP可靠传输,定时器,重传定时器 持续定时器 保活定时器,6.3面向连接的传输层协议TCP,5、 TCP流量控制,T

27、CP 采用大小可变滑动窗口的方式进行流量控制。窗口大小的单位是字节。根据接收方接收能力,通过接收窗口rwnd(receive window)可以实现端到端的流量控制,接收端将接收窗口rwnd的值放在 TCP 报文的首部中的“窗口”字段,传送给发送端。,6.3面向连接的传输层协议TCP,5、 TCP流量控制,发送窗口在连接建立时由双方商定初始值。在通信的过程中,接收端可根据自己的资源情况,随时动态地调整自己的接收窗口,然后告诉发送方,使发送方的发送窗口和自己的接收窗口一致。这种由接收端控制发送端的做法,在计算机网络中经常使用。,6.3面向连接的传输层协议TCP,5、 TCP流量控制,TCP采用大

28、小可变滑动窗口的方式进行流量控制。根据图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 = 101,ACK =401, WIN =200,SEQ = 401,ACK =501, WIN =0,(1)(2)(3),6.3面向连接的传输层协议TCP,6、 TCP拥塞控制,拥塞

29、控制的基本功能是避免网络发生拥塞,或者缓解已经发生的拥塞。TCP/IP拥塞控制机制主要集中在传输层实现。 TCP为了进行有效的拥塞控制,需要通过拥塞窗口cwnd(congestion window)来进行衡量网络的拥塞程度。注意,发送窗口的取值依据拥塞窗口和接收窗口中的较小的值,即Minrwnd,cwnd。rwnd在流量控制中已阐述,在下文中将只关注cwnd。,6.3面向连接的传输层协议TCP,6、 TCP拥塞控制,慢启动 拥塞避免 快速重传 快速恢复,6.3面向连接的传输层协议TCP,6、 TCP拥塞控制,慢启动,拥塞避免,cwndssthresh,拥塞,3重复ACK,ssthresh=1/

30、2 cwnd cwnd=1MSS,ssthresh =1/2 cwnd cwnd= 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

31、 面向连接的传输层协议TCP 套接字,6.4套接字,1、套接字概念,UDP 和 TCP 使用 “端口号”作为计算机系统中高层应用进程的标识,而IP地址则标识了网络中的一台主机, IP地址和端口号的组合称为套接字。 套接字和端口、IP 地址的关系是:,6.4套接字,1、套接字概念,客户端A 10.32.100.92,服务器C 202.119.230.10,80 端口,端口 3095,客户端B 10.32.100.93,端口 3095,6.4套接字,2、套接字编程,TCP/IP标准没有规定应用程序与TCP/IP协议软件接口的细节问题,而是允许系统设计者能够选择有关应用编程接口API的具体实现细节。

32、 最著名的API是美国加利福尼亚大学伯克利分校为Berkeley UNIX操作系统定义的套接字接口。微软公司的Windows Sockets是从Berkeley Sockets扩展而来的,以动态链接库(Dynamic Link Library,DLL)的形式提供给程序员使用,目前已经称为Windows网络编程事实上的标准。,6.4套接字,2、套接字编程,套接字编程类型 (1)数据报套接字(SOCK_DGRAM) (2)流套接字(SOCK_STREAM) (3)原始套接字(sock_raw),收发数据,收发数据,6.4套接字,2、套接字编程无连接数据报套接字API调用时序图,服务器端,客户端,s

33、ocket,bind,recvfrom,sendto,closesocket,socket,sendto,recvfrom,closesocket,6.4套接字,2、套接字编程 面向连接的 流套接字API 调用时序图,服务器端,客户端,socket,bind,listen,accept,recv,send,closesocket,socket,connect,send,recv,closesocket,建立连接,收发数据,收发数据,本章小结,传输层的作用是在通信子网提供的服务的基础上,为上层应用层提供有效的、合理的传输服务。 用户数据报协议 UDP 只是在 IP的数据报服务之上增加了端口复用/分用和差错控制的功能,本章小结,TCP面向连接,建立连接采用的过程叫做三次握手,且通过确认机制和超时重传机制来实现可靠传输,采用大小可变滑动窗口的方式进行流量控制,使用慢启动、拥塞避免、快速重传和快速恢复等四种拥塞控制机制,使用有限状态机机制,来刻画TCP连接可能处于的状态及各种状态可能发生的变迁 套接字就是IP地址和端口的结合,See You Next Time!,南京邮电大学,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 计算机原理

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报