传输层学习教程.pptx
传输层的功能5 应用层4 传输层3 网络层2 数据链路层1 物理层5 应用层4 传输层3 网络层2 数据链路层1 物理层第七章 传输层第1页/共44页两台主机中的应用进程相互通信54321传输层提供应用进程间的逻辑通信应用进程应用进程IP 层AP1AP2AP454321AP3第2页/共44页主机 A主机 B路由器 1路由器 2AP1LAN2WANAP2AP3AP4LAN1IP 协议的作用范围传输层协议的作用范围网络层为主机之间提供逻辑通信传输层为应用进程之间提供端到端的逻辑通信第3页/共44页协议端口号(端口)应用层的各种进程与传输层进行层间交互的一种地址54321运输层提供应用进程间的逻辑通信应用进程应用进程IP 层AP1AP2AP4端口端口54321AP3第4页/共44页端口号:16位服务器端使用的端口号熟知端口号:01023登记端口号:102449151客户端使用的端口号:4915265535第5页/共44页传输层协议TCP:传输控制协议UDP:用户数据报协议第6页/共44页oUDPIP 数据部分IP 首部IP 层UDP 首部UDP 数据部分传输层应用层报文应用层第7页/共44页UDP首部格式源端口目的端口长 度检验和数 据首 部IP 数据报2222发送在前数 据首 部UDP 用户数据报第8页/共44页UDP的特点 不需要连接建立和释放 不可靠传输面向报文没有拥塞控制 支持广播和组播第9页/共44页oTCPo面向字节流o可靠传输通过TCP传输的数据无差错、不丢失、不重复、按序到达第10页/共44页7 68H发送 TCP 报文段发送方接收方把字节写入发送缓存从接收缓存读取字节应用进程应用进程1230181716151419202145131211H109 H加上 TCP 首部构成 TCP 报文段TCPTCP字节流字节流H表示 TCP 报文段的首部x表示序号为 x 的数据字节TCP 连接第11页/共44页可靠传输的基本原理理想的传输条件传输信道不产生差错无论发送方以多快的速度发送数据,接收方总能来得及处理收到的数据第12页/共44页停-等协议(a)无差错情况A发送 M1确认 M1B发送 M2发送 M3确认 M2确认 M3A发送 M1B超时重传 M1发送 M2确认 M1丢弃有差错的报文(b)超时重传tttt第13页/共44页确认丢失A发送 M1B超时重传 M1发送 M2丢弃重复的 M1重传确认 M1确认 M1tt第14页/共44页确认迟到A发送 M1B超时重传 M1发送 M2丢弃重复的 M1重传确认M1确认 M1收下迟到的确认但什么也不做tt第15页/共44页TDRTTATD+RTT+TAB分组确认tt分组确认信道利用率第16页/共44页连续发送,提高信道利用率B分组ttAACK第17页/共44页窗口123456789101112(a)发送方维持发送窗口(发送窗口是 5)发送窗口(b)收到一个确认后发送窗口向前滑动向前123456789101112发送窗口第18页/共44页累积确认对按序到达的最后一个分组发送确认,表示:到这个分组为止的所有分组都已正确收到了优点:确认丢失也不一定会重传缺点:不能向发送方反映出接收方已经正确收到的所有分组的信息 第19页/共44页TCP报文段的首部格式TCP 数据部分TCP 首部TCP 报文段IP 数据部分IP 首部20 字节的固定首部TCP首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FIN32 位SYNRSTPSHACKURG位 0 8 16 24 31填 充发送在前第20页/共44页TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充源/目的端口:各 2 字节。表示发送方和接收方的端口号 第21页/共44页TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充序号:4 字节。本报文段所发送数据的第一个字节的序号第22页/共44页TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充确认号:4 字节,表示期望收到下一个报文段数据的第一个字节的序号,同时表示对确认号之前数据的确认 第23页/共44页TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充数据偏移:4 位,表示TCP报文段首部长度(包括固定和可变部分,单位为字(32位)保留:6位 第24页/共44页TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充URG:为 1 时,表示有紧急数据,应尽快传送同时紧急指针字段给出本TCP报文段中紧急数据的结束位置,数据字段的起始位置作为紧急数据的开始位置 第25页/共44页TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充PSH:发送TCP从应用进程得到一部分数据立即创建TCP报文段接收 TCP 收到 PSH=1 的报文段,尽快交付接收应用进程第26页/共44页TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充窗口:窗口:2 字节,表示从确认号开始还可以接收多少字节。字节,表示从确认号开始还可以接收多少字节。第27页/共44页TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充检验和:2 字节。检验的范围包括首部和数据两部分第28页/共44页TCP首部20字节固定首部目 的 端 口数据偏移检 验 和选 项 (长 度 可 变)源 端 口序 号紧 急 指 针窗 口确 认 号保 留FINSYNRSTPSHACKURG比特 0 8 16 24 31填 充选项字段 长度可变。提供一些附加功能第29页/共44页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前沿后沿前移发送窗口:表示在收到对方确认的信息之前,可以连续发出的最多字节数(只有序号在窗口内的字节才可以发送)第30页/共44页不允许接收已发送确认并交付主机B 的接收窗口允许接收26 27 28 29 30 3134 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56接收窗口:可以连续接收的最多字节数(只有序号在窗口内的字节才可以接收,否则丢弃)32 33第31页/共44页流量控制限制发送方的发送速率第32页/共44页seq=1,DATAseq=201,DATAseq=401,DATAseq=301,DATAseq=101,DATAseq=201,DATAseq=501,DATAACK=1,ack=201,rwnd=300ACK=1,ack=601,rwnd=0ACK=1,ack=501,rwnd=100AB允许 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:“接收窗口 Wr=400(字节)”第33页/共44页拥塞控制拥塞:对资源需求的总和 可用资源拥塞控制:防止过多的数据注入到网络中,避免网络中的路由器或链路过载流量控制:指在给定的发送端和接收端之间通信量的控制第34页/共44页发送方维持一个拥塞窗口(cwnd),其大小取决于网络的拥塞程度,并动态变化 发送窗口的上限值 Min rwnd,cwnd rwnd:接收方窗口rwndcwnd,接收方的接收能力限制发送窗口的最大值cwndrwnd,网络的拥塞限制发送窗口的最大值 拥塞控制方法第35页/共44页发送方如何控制拥塞窗口?网络没有出现拥塞,拥塞窗口就再增大一些网络出现拥塞,拥塞窗口就减小一些-发送方如何判断网络出现拥塞?发送方没有按时收到应当到达的确认报文第36页/共44页nTCP的传输连接管理nTCP是面向连接的传输层协议n每一个TCP连接只能有两个端点套接字 socket=(IP地址:端口号)TCP 连接:=socket1,socket2=(IP1:port1),(IP2:port2)第37页/共44页传输连接的三个阶段连接建立数据传送连接释放第38页/共44页连接建立采用客户-服务器方式如何获得对方的IP地址及端口号?客户端使用服务器端的熟知端口服务器端监听特定的端口,被动的等待客户端的连接请求 服务器端收到连接请求,知道了客户端的端口号第39页/共44页SYN=1,seq=xCLOSEDCLOSED主动打开被动打开AB客户服务器连接建立三次握手SYN=1,ACK=1,seq=y,ack=x 1ACK=1,seq=x+1,ack=y 1数据传送第40页/共44页释放连接:4次握手FIN=1,seq=u主动关闭数据传送ESTAB-LISHEDESTAB-LISHEDAB客户服务器CLOSEDACK=1,seq=v,ack=u 1通知应用进程FIN=1,ACK=1,seq=w,ack=u 1数据传送ACK=1,seq=u+1,ack=w 1被动关闭第41页/共44页TCP报文段的首部格式可靠传输 停-等协议连续ARQ协议与滑动窗口机制流量控制拥塞控制TCP连接管理7.2.1 TCP协议第42页/共44页本章小结介绍了传输层协议(TCP、UDP)可靠传输流量控制拥塞控制 传输连接的建立和释放第43页/共44页感谢您的观看!第44页/共44页