《计算机网络基础》 第6章 TCP和UDP_第1页
《计算机网络基础》 第6章 TCP和UDP_第2页
《计算机网络基础》 第6章 TCP和UDP_第3页
《计算机网络基础》 第6章 TCP和UDP_第4页
《计算机网络基础》 第6章 TCP和UDP_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

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

文档简介

1、第6章 TCP和UDP6.1 TCP和UDP概述6.2 TCP的连接过程6.3 TCP的控制机制6.4 TCP首部6.5 UDP协议计算机网络技术-1计算机网络技术-26.1 TCP和UDP概述TCP和UDP的区别端口3运输层的功能主要功能是在互连网中源主机与目的主机的对等实体间建立用于会话的端-端连接;运输层向高层屏蔽了下层数据通信的细节运输层的目的实现分布式进程通信程序静态概念在时间上按照严格次序执行的操作序列进程动态概念是一个程序对某个数据集的执行过程计算机网络最根本的目的实现网络环境中联网计算机之间的分布式进程通信,以实现各种网络服务功能。4TCP和UDP的区别TCP:可靠的面向连接的

2、全双工的数据流协议;UDP:不可靠的无连接协议。计算机网络技术-56TCP网络可靠或不可靠在一对进程之间提供可靠的通信TCP在逻辑上是面向流的为每个字节编号传输单位:TCP报文段(TCP的PDU)。TCP头部:最小20字节。7TCP 端口标识应用程序的进程进程号PID标识端口端口类型:公认端口:01023 注册端口:1024 49151动态和/或私有端口49152 65535 查看端口natstat antelnet 25telnet 23telnet 110计算机网络技术-89熟知的TCP端口10套接字套接字的不同实现IP地址+端口号主机名+端口号一条TCP连接是由发送方套接字和接收方套接字

3、来唯一标识的即TCP连接用四元组来唯一标识TCP套接字实验计算机网络技术-1112套接字Socket是TCP/IP网络的API通过Socket可以实现进程之间的通信 它定义了一系列的接口函数Socket调用功能含义socket建立一个Socketbind为建立的Socket建立一个标识listen在一个Sokcet上监听外来的连接请求accept接受Socket上到来的连接connect在一个Socket上建立连接shut_down关闭连接send在一条连接上发送数据receive在一条连接上接受数据select检查一组Socket是否有数据或异常13如何知道目的地址预先知道通过配置管理收集统

4、计信息熟知地址例如,SMTP为25,HTTP为80名字服务器查找目录特权进程使用熟知地址分配新进程的地址计算机网络技术-146.2 TCP的连接过程6.2.1 TCP连接的建立6.2.2 TCP连接的终止15面向连接的运输层 机制连接建立数据传送连接终止16建立连接的作用即使网络层可靠,面向连接的运输层也需要建立连接建立连接的三个作用使每一端都能证实对方的存在协商可选参数分配运输实体资源缓冲区,连接表表项17连接建立和终止连接的建立主动打开被动打开连接的终止粗暴终止文明终止18主动打开和被动打开主动打开命令TS用户通知运输层与指定用户建立连接TS(运输服务)例如,FTP客户端动态选择一个端口向

5、服务器端的FTP端口(默认是21)发送连接请求IE默认方式被动打开命令自己被动等待一个请求TCP的SYN报文段可以同时用作:同步连接请求连接确认19粗暴终止和文明终止任意一方或者双方都可以关闭连接经双方同意才能终止连接粗暴终止数据可能丢失文明终止处于FIN WAIT状态中的连接必须继续接受报文段,直至接收到一个FIN(结束)报文段双方都能接收到所有未完成的数据双方都同意终止该连接6.2.1 TCP连接的建立一对端口之间仅有一条连接由套接字惟一标识但一个端口可以连接到多个目的端口三次握手计算机网络技术-2021三次握手1. 连接请求SYN标志置位序号字段=初始序号(SN=i)2. 连接响应SYN

6、,SN=j,AN=X+i3. 对响应的确认,并开始传输SN=i+1,AN=j+1TCP连接建立的实例telnet 计算机网络技术-2223TCP为什么不使用二次握手不可靠网络使用二次握手存在问题:SYN重复SYN滞后数据报滞后24二次握手SYN重复二次握手会造成半连接A发出SYN,B应答SYN,B的SYN丢失B认为已连接,A认为未连接。A会重传SYN 会导致重复的 SYNs一旦连接,忽视掉重复的SYN25二次握手滞后的SYN二次握手会造成误连接SYN i废SYN i到达;B响应;SYN kSYN jSN k+1B丢弃重复SYN;因为乱序B拒收段现在两边认为合法连接已存在解决办法:每一边都显式确

7、认对方的SYN和序号ABA发起SYN;26二次握手滞后的数据段27连接建立的措施 每个新连接以不同序号开始,且这个序号远离上一次连接使用的最后一个序号采用SYN i在ACK中包含发送序号i三次握手明确确认对方的SYN及其序号三次握手中收到旧的确认发送序号i和确认序号p相差较远计算机网络技术-286.2.2 TCP连接的终止每个TCP 用户必须发出 CLOSE原语运输实体将FIN置位三次握手或四次握手计算机网络技术-2930三次握手关闭连接发送一个FIN i 并接收一个 AN i接收一个 FIN j 并发送一个 AN j等待的间隔时间长度为预计的报文段最大生存期的两倍NKPPSOCKET连接和断

8、开31TCP的四次握手TCP关闭时响应方在FIN之前还有数据段发送所谓的四次握手过程实际情况32TCP连接终止实例telnetQuit命令退出33连接终止存在的问题后发先至FIN 比最后的数据报文段先到达运输实体接受这个 FIN关闭连接丢失最后的报文段解决方法:三次握手用一个序号与 FIN关联接收运输实体等待FIN序号之前的所有报文段必须明确地确认对方的FIN报文段34两军问题蓝军一方单独行动必败,同时进攻则必胜蓝军是否存在必胜的机会?35FINA发FIN启动定时器B确认并发FIN启动定时器FIN,ACK释放连接ACKA发ACK(超时)释放连接AB三次握手释放对确认丢失的处理36不可靠网络服务

9、之上连接释放三次握手方式释放连接FINA发FIN启动定时器B发FIN启动定时器FIN, ACK释放连接ACKA发ACK释放连接AB37FINA发FIN启动定时器B发FIN启动定时器FIN释放连接ACKA发ACK释放连接A重发FIN启动定时器FINB发FIN启动定时器FINAB三次握手释放对响应丢失的处理38FINA发FIN启动定时器B发FIN启动定时器FIN(N次超时) 释放连接(超时)释放连接A重发FIN启动定时器FINAB三次握手释放响应确认均丢处理39崩溃恢复重新启动后,所有的状态信息都将丢失连接是半打开状态无故障的一方仍然认为处于连接状态使用一个放弃计时器来关闭这条连接运输实体等待对方

10、ACK的时间为 (time out) * (number of retries)如果计时器超时,关闭连接并向用户发出通知故障方对接收到的每一个报文段i都会返回一个RST i用户必须决定是否要重新连接数据丢失或者重复的问题计算机网络技术-406.3 TCP的控制机制6.3.1 流量机制6.3.2 差错控制6.3.3 拥塞控制6.3.1 流量机制信用量机制TCP窗口计算机网络技术-4142流量控制运输层流控相当复杂,原因:传输时延大流量控制信息的通信存在着相当可观的时延时延抖动大超时机制难以高效43为什么需要流量控制接收运输实体的用户无法跟上数据流的传输速度接收运输实体自身无法跟上报文段流的传输速

11、度都导致缓冲区满溢44应付流量控制的要求 (1)什么也不做丢弃溢出的报文段发送方重发,流量更恶化拒绝接受后继的、来自网络服务的报文段形成反压机制触发网络内部的流量控制笨拙复用一条网络连接时,会影响所有运输连接45应付流量控制的要求(2)使用固定的滑动窗口协议使用可靠的网络服务,滑动窗口技术的表现很好没有收到确认是出于流量控制的策略不可靠的网络上行不通无法区分缺少确认到底是因为流量控制还是因为报文段丢失使用信用量机制接收方告诉下次应该最多发送多少数据平滑流量将确认与流量控制分开HDLC的确认与流控同义TCP用之46TCP 窗口字段分配的信用量,以字节为单位。用于流量控制信用量分配机制TCP不使用

12、固定滑动窗口技术可靠的网络服务运行良好没有收到确认就意味着流量控制不可靠的网络上行不通无法区分缺少确认的原因:流量控制?报文段丢失?47信用量机制对于可靠网络来说,是更强的控制对于不可靠网络来说,是一种高效的机制将确认从流量控制中分离出来没有新信用量时也可以被确认,反之亦然。每个字节都有一个序列号首部中三个字段:序号确认号窗口大小48信用量机制从1开始,对数据的每个字节编号序号 SN确认序号AN窗口WACK包括(AN=i,W=j),表示:直至AN=i-1的所有字节都被确认 下一个希望接收到的字节的序号为i允许发送另外的 W=j个字节即,从序号i到 i+j-149信用量发送和接收窗口telnet

13、的数据流交互式一次按键,3个报文按键服务器服务器回显,并确认终端对回显的确认服务器Nagle算法只发送第一个字节后续缓冲后一起发计算机网络技术-506.3.2 差错控制报文段失序丢失重复损坏计算机网络技术-51失序后到的暂不确认到齐后一起确认计算机网络技术-52失序到达计算机网络技术-53重复报文段TCP超时重传造成的丢弃但要再次确认计算机网络技术-54严重迟滞的报文段序号空间不够大计算机网络技术-55报文段丢失如:路由器丢弃IP数据报定时器超时重发计算机网络技术-56报文段出错校验和丢弃不反馈任何信息不使用ARQ发送方重传定时器超时重传计算机网络技术-5758重传策略报文段在给定时间内没有收

14、到确认,则重传。重传策略:仅仅重传第一个整个已发送队列只有一个计时器批量重传重传整个队列单个重传每个报文段有一个计时器59确认策略即时确认用空报文确认累积确认捎带技术需要窗口计时器6.3.3 拥塞控制1. 重传计时器管理2慢启动算法3拥塞避免算法4快速恢复算法计算机网络技术-60拥塞的原因路由器丢弃IP数据报不通知发送方发送方超时重传61TCP拥塞控制重传计时器管理简单平均算法指数平均算法RTT方差估计 (Jacobsons 算法)窗口管理慢启动算法拥塞避免算法快速恢复算法计算机网络基础-6263重传计时器管理通过最近的报文段时延模式来估计当前的往返时延将计时器的值设置得比估计的往返时延稍大一

15、些RTO(重传超时):重传计时器Retransmission TimeOutRTT(往返时间)Round Trip Time64重传计时器管理实现方法简单平均指数平均Jacobsons 算法(RTT方差估计)65简单平均算法ARTT:平均往返时间路由器处理+排队+接收方发送+传播66Jacobson算法利用RTT方差估值决定RTO用于处理正常情况重传情况下无法判断是原本的确认,还是重传的确认即无法准确判断RTT67Karns 算法不对重传报文测量 RTT 当重传发生时,计算退避RTO对后续的报文段使用退避RTO值直至接收到一个对未重传的报文段的确认为止恢复Jacbson算法 68指数 RTO

16、退避因超时很可能是因网络拥塞造成的 (分组发生丢失或 往返时间很长),保持相同的 RTO 值并不是明智之举 每次重传一个报文段时增加其RTO时间 RTO(i) = q*RTO(i-1)常用的 q=2二进制指数退避即RTO倍增窗口管理通过控制信用量进行拥塞控制实现方法慢启动算法拥塞避免算法快速恢复算法计算机网络技术-6970慢启动算法目的是避免大量数据送往拥塞网络增加另一个窗口:拥塞窗口cwnd拥塞窗口是发送方使用的流量控制信用量是接收方使用的流量控制让发送方从较小的窗口开始发送逐渐到达最大窗口值慢启动门限(ssthresh)71慢启动算法awnd = MINcredit,cwnd发送方的发送窗

17、口打开一个新连接时,初始化cwnd=1每次收到一个确认ACK,cwnd的值就加1 ,直至到达慢启动门限以报文段大小为单位如cwnd为2时,发送方可以发送2个报文段 实际情况cwnd按指数增长,即1,2,4,8,加速度快慢启动算法的缺陷拥塞的判断路由器开始丢弃分组超时收到重复的确认慢启动只能靠信用量降低流量分组丢失,接收方不会减少信用量慢启动失效改进:拥塞避免算法拥塞时的动态调整拥塞窗口大小计算机网络技术-72拥塞避免算法拥塞时减少拥塞窗口值cwnd执行慢启动算法收到确认拥塞窗口增加1个报文计算机网络技术-73拥塞避免算法当有一次超时发生时设置慢启动的门限值为目前拥塞窗口的一半大小ssthres

18、h=cwnd/2设置 cwnd=1并执行慢启动过程,直到 cwnd=ssthreshCwnd在每收到一个ACK时就增加 1 当 cwnd =ssthresh,则每过一个往返时间 cwnd 加 1计算机网络技术-74拥塞避免算法与慢启动算法关系动态调整慢启动门限值 当cwnd 慢启动门限时,cwnd按线性增长拥塞避免算法计算机网络技术-75快速恢复算法收到多个重复ACK立即重传丢失的报文段无需等待重传定时器超时执行拥塞避免算法若执行慢启动,则称为快速重传算法计算机网络技术-76选择确认SACKSACK只重传丢失的报文段SelectiveAcknowledgmentTCP通常会重传ACK之后的所有

19、报文段放在TCP首部的选项中是否支持SACK不连续数据块的首、尾字节序号能说明数据丢失、重传情况计算机网络技术-77思考题设TCP的拥塞窗口的慢启动门限值初始为8,当拥塞窗口上升到12时,网络发生超时,那么第14次传输时拥塞窗口大小为_。计算机网络技术-78解答拥塞窗口变化慢启动1,2,4,8门限值8,停止拥塞避免算法9,10,11,12发生拥塞慢启动的门限值减半12/2=6计算机网络技术-79解答开始慢启动1,2,4,6门限值6停止拥塞避免算法7,8,9,10,11,12计算机网络技术-80解答总的传输次序拥塞窗口的变化:1,2,4,8,9,10,11,12,1,2,4,6,7,8,9,10

20、,11,12第14次传输,拥塞窗口大小为 8 计算机网络技术-81计算机网络技术-826.4 TCP首部6.4.1 TCP首部格式6.4.2 TCP的标志位6.4.1 TCP首部格式封装格式伪首部计算机网络技术-83TCP报文段封装计算机网络技术-8485TCP数据段首部格式86TCP数据段首部字段源端口号16比特标识着发送方用户的应用程序目的端口号16比特标识着接收方用户的应用程序序号32比特表示这个报文段数据字段中第一个数据字节的序号87TCP数据段首部字段确认序号32比特表示TCP实体希望接收到的下一个数据字节的序号捎带技术首部长度4比特表示TCP首部的长度,单位为32比特。标志位6比特

21、,RFC793;8比特,RFC 3168定义标志位,后述。88TCP数据段首部字段窗口16比特标识流量控制中信用量的大小以字节为单位死锁问题接收方忙时,会发送窗口W=0的报文段当接收方重新打开窗口时,会发送W=j的报文段如果这个新信用量的报文段丢失,则接收方认为它已重新打开窗口,但发送方认为仍然关闭解决方法是发送方使用窗口计时器89TCP数据段首部字段校验和16bit整个报文段再加上伪首部即,IP首部的下列字段:源、目IP地址协议报文段长度伪首部校验和计算机网络技术-9091TCP数据段首部字段选项长度可变不足4字节整数倍时,用填充补足TCP中的选项字段提供了一些额外的功能如设置报文段的最大长

22、度窗口宽度因子时间戳等6.4.2 TCP的标志位计算机网络技术-92RFC 7936位RFC 31688位TCP的标志位计算机网络技术-93RFC 793位(从左到右)含义URG紧急指针段有效ACK确认字段有效PSH推送功能RST复位连接SYN序号同步FIN发送者无其他数据TCP的标志位计算机网络技术-94RFC 3168利用保留字段标志位含义CWR拥塞窗口已减小ECEECN-Echo URG紧急指针段有效ACK确认字段有效PSH推送功能RST复位连接SYN序号同步FIN发送者无其他数据PSH 数据流推送不用等缓冲区满立即传输缓冲区的所有数据接收端立即交付数据交互式应用telnet计算机网络技

23、术-95URG 紧急数据通知紧急指针字段有效通知目的用户有重要数据指向紧急数据在本报文段的偏移量最后一个字节?RFC 793未指明带外数据(OOB,Out-Of Band)用户决定怎样处理计算机网络技术-96RST报文段不属于当前连接套接字错误连接粗暴终止telnet 6000(端口6000未被使用,telnet的熟知端口为23)计算机网络技术-97ECE显式拥塞通告响应ECN-Echo提供端到端的拥塞控制作用TCP连接期间指明是否支持ECN显式拥塞通告ECN-setup SYN packet(即SYN报文段)已收到IP头部的ECN通告IP的服务类型字段中计算机网络技术-98CWR告知接收方拥塞窗口已减小Congestion Window Reduced 连接期间对ECE的响应ECN-setup SYN-ACK packet计算机网络技术-99TCP 服务和计时器TCP 服务TCP计时器100101TCP 服务TCP为其用户提供的服务面向连接完全可靠(没有数据重复或丢失)全双工通信流接口TCP服务请求原语TCP服务响应原语TCP服务参数102TCP 发送服务原语Send ( Local-connection-name /local and remote socket Data Data-length PUSH-

温馨提示

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

评论

0/150

提交评论