TCPIP协议课件:第12章 TCP_第1页
TCPIP协议课件:第12章 TCP_第2页
TCPIP协议课件:第12章 TCP_第3页
TCPIP协议课件:第12章 TCP_第4页
TCPIP协议课件:第12章 TCP_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

1、1第12章 TCP协议概述TCP服务TCP特点报文段格式TCP连接管理流量控制差错控制拥塞控制TCP计时器TCP软件设计2引言高层应用的需求传输大量的数据,要求可靠的通信服务自身的可靠性机制弱底层网络和IP网络是不可靠、无连接投递TCP提供通用的、面向连接的、可靠的通信服务3协议概述Transmission Control Protocol,TCPRFC 793,传输控制协议IPLANsMANsWANsICMPIGMPARPRARPNetworkLayerNetworkAccess LayerApplication LayerTCPUDPTransportLayer412.1 TCP服务进程到

2、进程的通信流交付服务全双工通信面向连接服务可靠服务512.1.1 进程到进程的通信Internet进程Process进程ProcessIP协议的作用范围传输层协议的作用范围IP地址协议端口(port)端点(endpoint)6TCP使用的熟知端口号712.1.2 流交付服务报文交付 Datagram stream单位:报文连续报文流,报文边界发送:报文,前后报文不能合并接收:报文接收的报文:大小和顺序严格与发送方相同可靠性:报文按序接收字节流交付 Byte stream单位:byte连续字节流、无边界发送:数据块或逐字节,前后可合并接收:数据块或逐字节接收的字节:顺序严格与发送方发送顺序相同可

3、靠性:byte按序接收8流交付服务9发送缓存和接收缓存进程使用自己认为适宜的任何大小的数据片进行发送或接收TCP根据网络情况选择适宜的发送缓冲区或接收缓冲区10报文段1112.1.3 全双工服务全双工服务DataAcknowledgment捎带PiggybackingAB12.1.4 面向连接服务虚电路服务尽管IP网络是无连接的,但在TCP的端点上,却可看作是面向连接的通信 端到端连接TCPTCPIP网络13TCP端口、端点、连接端口、端点概念与方式与UDP完全一样连接:TCP上通信双方抽象的虚电路连接202.115.12.680Port: 80Endpoint: (202.115.12.6,

4、 80)202.115.12.3416250Connection: (202.115.12.6, 80) and (202.115.12.34, 16250)1412.1.5 可靠的服务TCP的可靠性按序无差错不丢失、不重复流量控制滑动窗口协议差错控制检测:校验和、确认、超时纠正:重传拥塞控制拥塞避免1512.2 编号系统IncisingSegmentDatastreamSendingRecoveringSending bufferReceiving bufferReceivingHHTCP把一个连接中发送的所有数据字节都编上号在每个方向的编号是相互独立的TCP产生一个随机数作为第一个字节的编

5、号在0232-1之间16序号(Sequence number)依据数据流中的字节序号(流序号)序号为报文段中第一个数据字节的流序号如:流序号X,数据长度L的报文段则:报文段的序号为X,下一报文段序号为XL特点报文段的顺序关系数据流的位置,更便于流的复原需较大的序号空间(32bit,4Gbyte)序号不连续,n1n2n3确认号(Acknowledgment number)确认机制接收方收到正确的数据后,向源站回送ACK报文累计确认ACK number是接收方希望接收的下一个字节对ACK number以前的所有字节的确认12.3 报文段格式(0 40 bytes)控制字段Segment标识应用进程

6、 差错控制 以字节为单位完成所有操作 流控 同UDP19控制字段报文段类型、流控、连接建立和拆除URGACKPSHRSTSYNFINURG: Urgent pointer is validACK: Acknowledgment is validPSH: Request for pushRST: Reset the connectionSYN: Synchronize sequence numbersFIN: Terminate the connection20校验和TCP校验和的计算过程与UDP相同伪首部 + TCP首部 + 数据21选项选项Option单字节Single-byte多字节Mul

7、tiple-byte无操作No operation最大报文段长度Max segment size选项结束End of option窗口比例因子Window scale factor时间戳TimestampRFC 1323最大报文段长度(MSS)MSS影响网络传输性能太小:降低网络利用率(报文开销)太大:降低网络性能(分片降低成功传输概率)最佳MSS理论:尽可能长而不分片实际:不存在通常:发送端按发送接口的MTU来确定MSS通信双方用MSS选项进行MSS值的协商接收方不能处理较长的报文时(如资源有限等)Code:200000010Length:400000100MSS2 bytes默认值:536

8、 = 576 -20 -2012.4 TCP连接连接的概念由一对端点标识:(IP1,port1)-(IP2,port2)连接个数受机器内存容量限制,最多65535个一个机器上某个TCP端口号可被多个连接共享TCP应用1应用3TCP应用2应用3ServerClient 2TCP应用1Client 1应用212.4.1 TCP连接建立主动建立连接(Active open)发起建立连接,Client被动建立连接(Passive open)接受建立连接,Server被动连接方一般先于主动连接方启动,但不发起连接建立过程,而是在某个端口上等待主动方的连接请求TCP连接的任意一方都可以主动打开连接初始序号

9、TCP连接的初始序号值非常关键可以证明:以任意固定值作为初始序号可能会造成TCP的失败TCP使用随机的初始序号值双方都必须知道对方的初始序号才能正常通信双方都需确认对方得到了自己的初始序号确保把初始序号送到对方使得TCP采用三次握手(three-way handshake)方式建立连接考虑报文丢失、乱序、重复、延迟的因素最大报文段长度(MSS)MSS影响网络传输性能太小:降低网络利用率(报文开销)太大:降低网络性能(分片降低成功传输概率)最佳MSS理论:尽可能长而不分片实际:不存在通常:发送端按发送接口的MTU来确定MSS通信双方用MSS选项进行MSS值的协商接收方不能处理较长的报文时(如资源

10、有限等)Code:200000010Length:400000100MSS2 bytes默认值:536 = 576 -20 -20窗口比例因子针对高吞吐量和高时延传输介质上的数据传输,增大窗口大小新窗口大小 = 首部中定义的窗口大小 * 2 比例因子比例因子的最大值是16最大窗口大小 = 216 * 216 = 232窗口大小可在数据传输阶段改变,窗口比例因子只能在连接建立阶段确定Code:300000011Length:300000011比例因子(1 byte)三次握手:建立连接Segment 1: SYNseq : 1200, ack : -ClientServerSegment 2: S

11、YN+ACKseq : 4800, ack : 1201Segment 3: ACKseq : 1201, ack : 4801Waits for apassive openRequests forAn active openClients wish to make a connectionServers ack. and own requestClients ack. to servers requestData can be sent with the 3rd packetProcedure startswith server12.4.2 数据传送推送数据推送数据主要用于交互式通信,希望立

12、即得到对方响应发送端TCP设置控制比特PSH=1,不必等发送窗口填满就立即发送接收端TCP尽快交付给接收应用进程紧急数据紧急数据(out-of-band data,urgent data)提供快速传递数据的功能,例如:ctrl-c发送端发送URG=1的报文段紧急数据放在报文段开始,报文段的其余部分可放缓存中的正常数据报文段首部的紧急指针字段定义了紧急数据的结束和正常数据的开始接收端收到URG=1的报文段,利用紧急指针值从报文段中提取出紧急数据,不在数据流中排队,直接递交上层接收缓冲区urgent12.4.3 TCP连接终止通信是双向的,但连接的拆除是单向的网络上两个方向所走的路不同报文段从网络

13、上陆续到达主机连接拆除的发起方只能关闭自己的发送方向不能发送数据,可接收数据,可发送确认接收方向由对方拆除TCPTCP发送方向接收方向发送方向接收方向四次握手:拆除连接Segment 1: FINSeq: 2500, ack: 7000Segment 2: ACKSeq: 7000, ack: 2501Segment 4: ACKSeq: 2501, ack: 7001Procedure startswith clientSegment 3: FINSeq: 7000, ack: 2501Clients wishto close theconnectionServers ack.to clie

14、ntsrequestClients ack.to serversrequestServers wishto close theconnectionClientServer12.4.4 TCP连接复位连接复位(reset)拒绝连接请求异常终止连接终止空闲连接发出RST1的报文,立即中止连接(双向)收到RST1的报文,立即中止连接(双向)Close/FINFIN/ACKActive open/SYN12.5 TCP状态转换图FIN WAIT-2CLOSINGTIME-WAITLAST ACKFIN/ACKACK/-FIN/ACKACK/-Close/FINFIN+ACK/ACKSYN/SYN+AC

15、K(simultaneous open)RST/-Send/SYNClose/FINClose/FINACK/-SYN/SYN+ACKFIN/ACKSYN+ACK/ACKRST/-Close/-Active open/SYN(Time-out)ACK/-Time-out/RSTClose or time-out/-Passive open/-CLOSEDPassive open/-SYN/SYN+ACKACK/-SYN-RCVDLISTENSYN+ACK/ACKSYN-SENTClose/FINCLOSE WAITACK/-ESTABLISHEDACK/-FIN WAIT-1FIN/ACK(T

16、ime-out)有限状态机Finite State Machine直观、全局、准确的协议描述方法要素事件触发状态的转换某些转换不一定产生动作状态1状态2事件 / 动作思考:根据TCP状态转换图画以下时序交互图通信双方同时主动打开连接通信双方同时关闭连接12.6 流量控制TCP流量控制对源点在收到目的节点发来的确认前可以发送的数据进行管制目的收发速率匹配,防止接收方被数据流淹没提高传输效率方法收发速率匹配 滑动窗口协议01234567812.6.1 滑动窗口(Sliding Window)窗口发送方在收到确认前,其发送缓冲区中可以发送的数据流长度单位:报文或字节滑动随着确认的不断到达,窗口也不断

17、的向后移动senderreceiver0910111213141516Window = 512345678ACK1ACK4TCP滑动窗口机制发送窗口发送窗口发送缓冲区中可以发送的数据流长度应用数据可一次1或多字节送交至TCP发送缓冲区发送窗口随确认过程滑动已发未确认 等待确认或重发可以发送 当前仍未发出,其数据将切割成适当的报文段后发送14131211109876543211615已发送并确认Sliding window已发送未确认不能发送可以发送指针TCP的接收缓冲区接收缓冲区对接收的报文段进行字节流排序上层可以一次1字节或多字节提取字节流下层(IP层)一个、一个报文段提交给TCP接收缓冲区

18、已提交已排序未提交零散段部分排序,中间有空缺可用缓冲区思考:为什么TCP的接收缓冲区中会有空缺部分?TCP的动态可变窗口发送窗口大小动态可变接收方通告当前可用接收缓冲区大小发送方用该通告值调整发送窗口大小优点:更加有效的传输,同时还可控制数据流量极端情况:接收方通告的可用缓冲区0发送方停止发送重新开始发送的条件收到窗口值不为0的通告试探性发送 预防通告丢失造成的死锁带外数据ACK报文首部的窗口字段值滑动中调整窗口管理Segment 1Seq: 1001, 4000BAck: 5001, Win: 0Ack: 5001, Win: 1000400010003000BufferSeq: 5001,

19、 1000BSegment 2SenderReceiverTCP滑窗讨论:流量控制发送缓存、发送窗口、接收缓存、接收窗口发送方不一定要发送整个窗口大小的数据窗口大小由接收方调整,实现流量控制大窗口增加流量小窗口减少流量零窗口暂停发送接收方可在任何时候发送确认可能的问题窗口机制不会立即起作用(网络缓冲)无法确切知道和防止网络中间的拥塞12.6.2 糊涂窗口综合症(自学)TCP协议软件有较高的性能实际中发现:通信双方的应用进程以不同速率工作时,会出现严重的性能问题糊涂窗口综合症(Silly Window Syndrome,SWS)RFC 813接收方:确认报文通告小窗口发送方:报文段携带少量数据接

20、收方的SWS避免推迟窗口通告通告零窗口之后,在接收窗口显著增加之前,推迟窗口的通告达到接收缓冲区的一半或达到最大报文段长度推迟确认推迟确认的发送直到窗口值增大到一定程度,或有数据要发送,或超时时限快到推迟确认的特点优点:降低流量、提高吞吐量收到多个报文段,只需一个确认(累计确认)应用程序读取数据处理后,可能马上产生新的数据送到对方,短暂延迟正好可用该数据来捎带应答短暂延迟后,也许接收窗口增大到可以通告的程度缺点增加了发送方的超时重传可能性使RTT估计值增大,重传超时增大(反应变慢)TCP规定:最大推迟时间500ms每隔一个报文就应至少一次正常应答方式发送方的SWS避免延迟发送收集应用程序的发送

21、数据,聚集合理的数据量延迟时间长反应变慢(如对话应用程序)短数据量少,吞吐率下降延迟策略:根据当前网络性能而定自定时方式,使用确认的到达来触发报文的发送发送延迟的讨论若网络性能好,发送数据量大确认很快会到达若网络性能差,发送数据量大调整超时时限,能匹配网络的吞吐率若网络性能好,发送数据量少传小报文,对网络的影响小,反应快捷若网络性能差,发送数据量少传中小报文,效率有所提高,反应较快12.7 差错控制TCP的可靠性按序无差错不丢失、不重复差错控制检测:校验和、确认、超时纠正:重传正确投递数据TCP的确认机制确认机制 带重传的肯定确认,Positive acknowledgement with r

22、etransmission接收方收到正确的数据后,向源站回送ACK报文发送方重传错误数据(受损报文、丢失报文)累计确认ACK number是接收方希望接收的下一个字节对ACK number以前的所有字节的确认问题:发送方如何判定错误数据?没有收到确认问题:发送方怎样判定没有收到确认?超时机制超时重传机制发送方发送数据时启动一个定时器定时期间,发送方收到确认后,再发送后续数据定时期满,发送方重传未确认数据未确认数据受损或丢失的数据确认丢失的数据受损报文的超时重传Segment 1Seq: 1201, 200bytesAck: 1601SenderReceiverSegment 2Seq: 140

23、1, 200bytesSegment 3Seq: 1601, 200bytesSegment 3, retransmittedSeq: 1601, 200bytesAck: 1801TimeTime报文段3 受损OKOKOK超时丢失报文的超时重传Segment 1Seq: 1201, 200bytesAck: 1601SenderReceiverSegment 2Seq: 1401, 200bytesSegment 3Seq: 1601, 200bytesSegment 3, retransmittedSeq: 1601, 200bytesAck: 1801TimeTime报文段3 丢失OKO

24、KOK超时丢失确认Segment 1Seq: 1201, 200bytesAck: 1601SenderReceiverSegment 2Seq: 1401, 200bytesSegment 3Seq: 1601, 200bytesAck: 1801TimeTime确认丢失OKOKOK问题:重复报文段原因重传定时器 = RTT 自适应超时重传算法不同的连接传输路径“远近”差异,时延随网络流量变化的差异 固定超时时限只能使TCP性能更糟超时重传报文时,后续的重传报文“再多等一会儿”,这当中也许就收到了确认(考虑时延的不确定性)关键:精确估计当前的RTT问题:失序报文段原因封装TCP报文段的IP数

25、据报的独立选路,不按序到达解决接收方对失序报文段不确认,直到收到所有它以前的报文段为止若确认晚到,发送方重发失序报文段,接收方丢弃重复的报文段12.8 拥塞控制拥塞当网络负载大于网络容量,网络中就会发生拥塞拥塞控制一种使网络负载低于网络容量的机制产生拥塞的根源路由器和交换机的队列处理能力出现问题12.8.1 网络性能判断网络性能的两个因素时延(delay)吞吐量(throughput)12.8.2 拥塞控制机制开环拥塞控制在拥塞发生之前使用一些策略来预防拥塞方法:重传策略、确认策略、丢弃策略闭环拥塞控制试图在拥塞发生后减轻拥塞方法:反压、阻流点、发出隐式信号、发出显示信号12.8.3 TCP中的拥塞控制TCP的拥塞控制TCP的拥塞表现为时延增加超时重传机制会进一步加重网络拥塞方法:减少报文段的发送量 基于滑窗协议TCP中的拥塞控制策略前提假定报文的丢失都是由网络拥塞引起的发送窗口min(窗口通告值rwnd,拥塞窗口cwnd)阶段一:慢启动(Slow Start)- 指数增大拥塞窗口 = 1个MSS时,每个被确认的报文段,拥塞窗口即发送窗口增加1个MSS阶段二:拥塞避免(congestion avoi

温馨提示

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

评论

0/150

提交评论