- 1、本文档共91页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
传输层协议和传输层软件编程精选
5.4.5 TCP窗口与流量控制 通知窗口的概念 通知窗口(advertised window)是接收端根据接收能力确定的窗口值; 接收端将通知窗口值放在TCP报文头部中发送给发送端; 在数据交互的过程中,接收端可以根据自己的资源情况,随时动态调整对方的发送窗口大小。 * 如果接收端应用程序读取数据的速度与数据到达的速度一样快,接收端将在每个确认中发送一个非零的窗口通告; 如果发送端发送的速度比接收端要快,由于接收端来不及处理到达到的字节,最终将造成缓冲区被全部占用,等待处理。这时,接收端只能发出一个“零窗口”的通告; 当发送端接收到一个“零窗口”通告时,必须停止发送,直到接收端重新通告一个非零窗口。 * TCP利用窗口进行流量控制的过程 * 坚持计时器 假定接收端的TCP通告窗口大小为零。发送方的TCP就停止传送报文,直到接收端的TCP发送确认并通告一个非零的窗口大小,这个确认可能会丢失。对方的TCP都在永远地等待着对方,这就可能出现了死锁; 为了防止死锁,TCP为每个连接使用一个坚持计时器; 当发送方的TCP收到一个窗口大小为零的确认时,就需要启动坚持计时器; 当坚持计时器期限到时,发送方的TCP就发送一个特殊的报文,称为探测报文; 探测报文提醒接收端的TCP:确认已丢失,必须重传; 坚持计时器的值设置为重传时间值,这个值增大到门限值通常设定为60秒。 * TCP窗口与拥塞控制 拥塞控制用于防止由于过多的报文进入网络而造成路由器与链路过载情况的发生; 流量控制的重点是放在点-点链路的通信量的局部控制上,而拥塞控制重点是放在进入网络报文量的全局控制上。 * 支持全双工服务 TCP允许通信双方的应用程序在任何时候都可以发送数据; 由于通信的双方都设置有发送和接收缓冲区,应用程序将要发送的数据字节提交给发送缓冲区,数据字节的实际发送过程由TCP协议来控制; 接收端在接收到数据字节之后也将它存放到接收缓冲区,高层应用程序在它合适的时间到缓冲区中读取数据。 * 支持同时建立多个并发的TCP连接 根据应用程序的需要,TCP协议支持一个服务器与多个客户端同时建立多个TCP连接; 也支持一个客户端与多个服务器同时建立多个TCP连接; TCP软件将分别管理多个TCP连接。 * 支持可靠传输服务 TCP是一种可靠的传输服务协议,它使用确认机制检查数据是否安全和完整地到达,并且提供拥塞控制功能; TCP支持可靠数据通信的关键是对发送和接收的数据进行跟踪、确认与重传; 传输层传输的可靠性是建立在网络层基础上,同时也就会受到它们的限制。 * 总结 TCP协议的特点是: 面向连接 面向字节流 支持全双工 支持并发连接 提供确认重传与拥塞控制 * 5.4.2 TCP报文格式 TCP报头长度为20~60字节,其中固定部分长度为20字 节;选项部分长度可变,最多为40字节。 * TCP报头包括的主要字段: 端口号 端口号字段包括源端口号与目的端口号; 每个端口号字段长度为16 位(2字节),分别表示发送该报文段的应用进程的源端口号与接收进程的目的端口号。 序号 序号字段长度为32位(4个字节),序号范围在0~(232-1),即0~4284967295; TCP是面向字节流的,它要为发送字节流中的每个字节都按顺序编号。 * 确认号 确认号字段长度为32 位(4字节); 确认号表示一个进程已经正确接收序号为N的字节,要求发送方下一个应该发送序号为N+1的字节的报文段。 报头长度 报头长度字段的长度为4位; TCP报头长度是以4字节为一个单元来计算的,实际报头长度是在20~60字节,因此这个字段的值是在5至15之间。 * 控制字段 控制字段定义了6种不同的控制位或标志位; 控制字段将在TCP的连接建立和终止、流量控制,以及数据传送中发挥作用。 * 标志 说明 SYN 在连接时对序号进行同步 ACK 确认字段的值有效 FIN 终止连接 RST 连接必须复位 URG 紧急指针字段的值有效 PSH 将数据推向前 窗口 窗口字段长度为16位; 窗口的长度值是在0~65 535之间; 窗口字段值指示对方在下一个报文中最多发送的字节数,作为发送方确定发送窗口的依据; 窗口字段值是动态变化的。 紧急指针 紧急指针字段的长度为16位,只有当紧急标志URG=1时,这个位字段才有效,这时的报文段中包括紧急数据; TCP软件要在优先处理完紧急数据之后才能够恢复正常操作。 * 选项 TCP报头可以有多达40字节的选项字段; 选项包括:单字节选项和多字节选项; 单字节选项:选项结束和无操作; 多字节选项:最大报文段长度、窗口扩大因子以 及时间戳。 校验和 计
文档评论(0)