第6章运输层-现代通信网-教学课件.ppt
《第6章运输层-现代通信网-教学课件.ppt》由会员分享,可在线阅读,更多相关《第6章运输层-现代通信网-教学课件.ppt(90页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 6 章 运输层 6.1 运输层协议概述6.2 TCP/IP 体系中的运输层6.2.1 运输层中的两个协议6.2.2 端口的概念6.3 用户数据报协议 UDP 6.3.1 UDP 概述6.3.2 UDP 用户数据报的首部格式6.4 传输控制协议 TCP 6.4.1 TCP 概述6.4.2 TCP 报文段的首部6.4.3 TCP 的数据编号与确认6.4.4 TCP 的流量控制与拥塞控制6.4.5 TCP 的重传机制 6.4.6 采用随机早期丢弃 RED 进行拥塞控制6.4.7 TCP 的运输连接管理 6.4.8 TCP 的有限状态机 6.1 运输层协议概述 n从通信和信息处理的角度看,运输层向
2、它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。物理层网络层运输层应用层数据链路层面向信息处理面向通信用户功能网络功能运输层为相互通信的应用进程提供了逻辑通信 54321运输层提供应用进程间的逻辑通信主机 A主机 B应用进程应用进程路由器 1路由器 2AP1LAN2WANAP2AP3AP4IP 层LAN1AP1AP2AP4端口端口54321IP 协议的作用范围运输层协议 TCP 和 UDP 的作用范围AP3运输层协议和网络层协议的主要区别 应用进程应用进程IP 协议的作用范围(提供主机之间的逻辑通信)TCP 和 UDP 协议的作用范围(提供进程之间的逻辑通信
3、)因 特 网运输层的主要功能 n运输层为应用进程之间提供端到端的逻辑通信n运输层还要对收到的报文进行差错检测。n运输层有两种不同的运输协议,即面向连接的 TCP 和无连接的 UDP。运输层与其上下层之间的关系的 OSI 表示法 运输实体运输实体运输协议运输层层接口 运输服务用户(应用层实体)运输服务用户(应用层实体)层接口 网络层(或网际层)应用层主机 A主机 B运输层服务访问点TSAP网络层服务访问点NSAPTCP/IP的运输层有两个不同的协议:(1)用户数据报协议 UDP (User Datagram Protocol)(2)传输控制协议 TCP (Transmission Control
4、 Protocol)6.2 TCP/IP 体系中的运输层6.2.1 运输层中的两个协议n两个对等运输实体在通信时传送的数据单位叫作运输协议数据单元 TPDU(Transport Protocol Data Unit)。nTCP 传送的数据单位协议是 TCP 报文段(segment)n UDP 传送的数据单位协议是 UDP 报文或用户数据报。TCP 与 UDP TCP 与 UDP nUDP 在传送数据之前不需要先建立连接。对方的运输层在收到 UDP 报文后,不需要给出任何确认。nTCP 则提供面向连接的服务。TCP 不提供广播或多播服务。TCP 要提供可靠的、面向连接的运输服务,但增加了许多的开
5、销。端口在进程之间的通信中所起的作用 应用层运输层网络层TCP 报文段UDP用户数据报应用进程TCP 复用IP 复用UDP 复用TCP 报文段UDP用户数据报 应用进程端口端口TCP 分用UDP 分用IP 分用发送方接收方端口 n端口用一个 16 bit 端口号进行标志。n端口号标志计算机应用层中的各进程。端口分为两部分,一部分是保留端口,另外一部分是自由端口。n其中保留端口只占很小的数目,以全局方式进行分配,即由一个公认的机构ICANN统一进行分配,其数值一般为0-1023。n自由端口占全端口的绝大部分,以本地方式进行分配。nTCP和UDP均规定,小于256的端口号才能作为保留端口使用。插口
6、(socket)nTCP 使用“连接”作为最基本的抽象,同时将 TCP 连接的端点称为插口(socket),或套接字、套接口。n插口和端口、IP 地址的关系是:IP 地址131.6.23.13 端口号1500 131.6.23.13,1500插口(socket)6.3 用户数据报协议 UDP 6.3.1 UDP 概述 nUDP 的功能:端口的功能和差错检测的功能。n虽然 UDP 用户数据报只能提供不可靠的交付,但 UDP 在某些方面有其特殊的优点。n发送数据之前不需要建立连接nUDP 的主机不需要维持复杂的连接状态表。nUDP 用户数据报只有8个字节的首部开销。n网络出现的拥塞不会使源主机的发
7、送速率降低。这对某些实时应用是很重要的。端口是用报文队列来实现 UDP 端口 51000UDP 端口 69出队列入队列出队列入队列TFTP 服务器TFTP 客户UDP 用户数据报应用层运输层6.3.2 UDP 用户数据报的首部格式 伪首部源端口目的端口长 度检验和数 据首 部UDP长度源 IP 地址目的 IP 地址017IP 数据报字节44112122222字节发送在前数 据首 部UDP 用户数据报伪首部源端口目的端口长 度检验和数 据首 部UDP长度源 IP 地址目的 IP 地址017IP 数据报字节44112122222字节发送在前数 据首 部UDP 用户数据报用户数据报 UDP 有两个字
8、段:数据字段和首部字段。首部字段有 8 个字节,由 4 个字段组成,每个字段都是两个字节。6.4 传输控制协议 TCP 6.4.1 TCP 概述 端口发送 TCP 报文段TCPTCP接收缓存发送缓存报文段报文段报文段端口发送端接收端向发送缓存写入数据块从接收缓存读取数据块应用进程应用进程TCP首部20 字节的固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FIN32 bitSYNRSTPSHACKURG比特 0 8 16 24 31填 充TCP 数据部分TCP 首部TCP 报文段IP 数据部分IP 首部发送在前TCP首部20
9、字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充源端口和目的端口字段各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充确认号字段占 4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。TCP首
10、部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充数据偏移占 4 bit,它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。“数据偏移”的单位不是字节而是 32 bit 字(4 字节为计算单位)。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充紧急比特 URG 当 UR
11、G 1 时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充确认比特 ACK 只有当 ACK 1 时确认号字段才有效。当 ACK 0 时,确认号无效。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 3
12、1填 充推送比特 PSH(PuSH)接收 TCP 收到推送比特置 1 的报文段,就尽快地交付给接收应用进程,而不再等到整个缓存都填满了后再向上交付。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充复位比特 RST(ReSeT)当 RST 1 时,表明 TCP 连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口
13、序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充同步比特 SYN 同步比特 SYN 置为 1,就表示这是一个连接请求或连接接受报文。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充终止比特 FIN(FINal)用来释放一个连接。当FIN 1 时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长
14、 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充窗口字段 占 2 字节。窗口字段用来控制对方发送的数据量,单位为字节。TCP 连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充检验和 占 2 字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时
15、,要在 TCP 报文段的前面加上 12 字节的伪首部。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充紧急指针字段 占 16 bit。紧急指针指出:在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充选项字段 长
16、度可变。TCP 只规定了一种选项,即最大报文段长度 MSS(Maximum Segment Size)。MSS 告诉对方 TCP:“我的缓存所能接收的报文段的数据字段的最大长度是 MSS 个字节。”MSS 是 TCP 报文段中的数据字段的最大长度。数据字段加上 TCP 首部才等于整个的 TCP 报文段。TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充填充字段 这是为了使整个首部长度是 4 字节的整数倍。6.4.3 TCP 的数据编号与确
17、认 nTCP 协议是面向字节的。TCP 将所要传送的报文的数据字段看成是字节组成的数据流,并使每一个字节对应于一个序号。n在连接建立时,双方要商定初始序号。TCP 每次发送的报文段的首部中的序号字段数值表示该报文段中的数据部分的第一个字节的序号。n TCP 的确认是对接收到的数据的最高序号表示确认。接收端返回的确认号是已收到的数据的最高序号加 1。因此确认号表示接收端期望下次收到的数据中的第一个数据字节的序号。6.4.4 TCP 的流量控制与拥塞控制1.滑动窗口的概念nTCP 采用大小可变的滑动窗口进行流量控制。窗口大小的单位是字节。n在 TCP 报文段首部的窗口字段写入的数值就是当前给对方设
18、置的发送窗口数值的上限。n发送窗口在连接建立时由双方商定。n在通信的过程中,接收端可根据自己的资源情况,随时动态地调整对方的发送窗口上限值(可增大或减小)。收到确认即可前移1002003004005006007008009001012013014015016017018011发送窗口可发送不可发送指针举例:n发送端要发送 900 字节长的数据,划分为 9 个 100 字节长的报文段,而发送窗口确定为 500 字节。n发送端只要收到了对方的确认,发送窗口就可前移。n发送 TCP 要维护一个指针。每发送一个报文段,指针就向前移动一个报文段的距离。收到确认即可前移100200300400500600
19、7008009001012013014015016017018011可发送不可发送指针1002003004005006007008009001012013014015016017018011发送窗口可发送不可发送指针发送窗口前移n发送端已发送了 400 字节的数据,但只收到对前 200 字节数据的确认,同时窗口大小不变。n现在发送端还可发送 300 字节。已发送并被确认已发送但未被确认1002003004005006007008009001012013014015016017018011已发送并被确认已发送但未被确认可发送不可发送指针100200300400500600700800900101
20、2013014015016017018011已发送并被确认可发送不可发送指针发送窗口前移发送窗口缩小n发送端收到了对方对前 400 字节数据的确认,但对方通知发送端必须把窗口减小到 400 字节。n现在发送端最多还可发送 400 字节的数据。利用可变窗口大小进行流量控制双方确定的窗口值是 400 SEQ=1SEQ=201SEQ=401SEQ=301SEQ=101SEQ=501ACK=201,WIN=300ACK=601,WIN=0ACK=501,WIN=200主机 A主机 B允许 A 再发送 300 字节(序号 201 至 500)A 还能发送 200 字节A 发送了序号 301 至400,还
21、能再发送100字节A 还能发送 300 字节A 发送了序号 401 至 500,不能再发送新数据A 超时重发,但不能发送序号 500 以后的数据允许 A 再发送 200 字节(序号 501 至 700)A 还能发送 100 字节(序号 601 至 700)不允许 A 再发送(到序号 600 的数据都已收到)SEQ=201丢失!2.慢开始和拥塞避免n发送端的主机在确定发送报文段的速率时,既要根据接收端的接收能力,又要从全局考虑不要使网络发生拥塞。n因此,每一个 TCP 连接需要有以下两个状态变量:n接收端窗口 rwnd(receiver window)又称为通知窗口(advertised win
22、dow)。n拥塞窗口 cwnd(congestion window)。接收端窗口 rwnd 和拥塞窗口 cwnd n(1)接收端窗口 rwnd 这是接收端根据其目前的接收缓存大小所许诺的最新的窗口值,是来自接收端的流量控制。n(2)拥塞窗口 cwnd(congestion window)是发送端根据自己估计的网络拥塞程度而设置的窗口值,是来自发送端的流量控制。发送窗口的上限值n发送端的发送窗口的上限值应当取为接收端窗口 rwnd 和拥塞窗口 cwnd 中较小的一个。n即应按以下公式确定:发送窗口的上限值 Min rwnd,cwnd (7-1)n当 rwnd cwnd 时,是接收端的接收能力限制
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 运输 现代 通信网 教学 课件
限制150内