- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 传输控制协议(TCP) 主要内容 TCP的服务 TCP的端口号和套接字地址 TCP的报文段 TCP的连接管理与释放 TCP的连接管理状态转换图 流量控制 傻瓜窗口综合症 差错控制 拥塞控制 定时器管理 8.1 TCP的服务 面向连接的服务 要获得T C P服务,在一个应用进程向另一个应用进程开始发送数据之前,必须先在双方之间建立一条连接,数据传送结束后要释放连接。 全双工服务 TCP连接提供全双工服务,所有TCP连接都是点到点的。 字节流传递服务 一个TCP连接就是一个字节流,端到端之间不保留消息的边界。 8.2 TCP的端口号和套接字地址 8.2.1 TCP的端口号 TCP采用16bit端口号来识别应用程序。服务器一般都是通过熟知端口来识别。而客户端通常使用的是临时端口号。 8.2.2 套接字地址 要使用TCP的服务,需要一对套接字地址。 一个套接字有可能同时被用于多个连接。也就是说,两个或多个连接可能终止于同一个套接字。 8.3???? TCP的报文段 TCP报文段由首部和数据两部分组成。 首部前20字节是固定部分,后面有4N字节是根据需要而增加的选项。 选项部分最多是40字节。 源端口号和目的端口号:分别标识发送和接收这个报文段的应用程序的端口。 序号:指每一个报文段数据的第一个字节的编号。 确认号:期望接收的对方的下一个报文段的第一个字节的序号。 首部长度:表明TCP首部的长度共有多少个4字节。 控制字段:定义6种不同的控制位或标记。这些位用于TCP的流量控制、连接建立和终止以及数据传送的方式等。 窗口大小字段:用来定义对方必须维持的窗口值(以字节为单位) . 检验和:覆盖了整个的 TCP报文段。 紧急指针:只有当紧急标志置位时,这个字段才有效,指示这个报文段中包括紧急数据。 选项:在TCP首部中有40字节的可选信息。最重要的选项是MSS(Maximum Segment Size) 。 代 码:2 长 度:4 最大报文段长度 (8bit) (8bit) (16bit) 8.4.1 建立连接 TCP协议中建立连接采用三次握手(three-way handshake)的方式实现。 8.4.2 连接释放 TCP连接释放四次握手的步骤: 1)首先进行关闭的客户端TCP发送第一个报文段,终止比特FIN标志置1。将执行主动关闭,不再发送数据。 2) 服务器端TCP发送第二个报文段,用来确认从客户发来的FIN报文段。 3)当服务器端没有数据发送时,它就发送第三个报文段,终止比特FIN标志置1。 4) 客户端TCP发送第四个报文段, 用来确认从服务器端TCP收到了FIN报文段。 8.4.3 连接复位 当TCP需要连接复位时使用RST报文段,其复位比特RST置1。 8.5?? TCP的连接管理状态转换 在任何时刻,机器只处于某一种状态,并一直保持这个状态,直到某个事件发生。发生的事件使机器进入一个新的状态,即事件可使机器完成某种操作。状态转换表示一个状态到另一个状态的迁移,包括迁移的条件和迁移的动作。 8.6 流量控制 TCP采用可变大小的滑动窗口协议进行流量控制。 TCP的滑动窗口是面向字节的。 窗口包括已发送的字节和未被确认的字节,以及可以发送的字节。 接收方窗口是说明接收方还能再接收的字节数。 在TCP报文段首部的窗口大小字段的值就是当前给对方设置的窗口值。 8.7 傻瓜窗口综合症 接收方通告一个小的窗口,引起发送的报文段很小,而降低传输效率。 该现象可发生在两端中的任何一端. 8.7.1 Nagle 算法 Nagle 算法试图解决由于发送应用程序每次向TCP发送小的报文段,如报文段只包括1个字节的数据而引起的问题。强迫发送端TCP等待,让它收集数据,以便发送大块数据。 8.7.2 Clark解决方案 Clark解决方案是只要数据到达就发送确认,但宣布窗口值为零,直到在缓存有足够的空间能容纳具有最大长度的报文或者缓存已有一半的空间为空了,再发送窗口更新报文段。 8.7.3 延迟确认 对于应用程序消耗数据比到达得慢所产生的这种糊涂窗口综合症,还有第二种解决方法,即延迟发送确认。 在TCP中,发送方并不要求一接到应用进程传递过来的数据就必须马上将数据传送出去;接收方也不要求尽可能快地发送确认报文段。 8.8?? 差错控制 TCP差错控制包括检测受到损伤的报文段、丢失的报文段、失序的报文段和重复的报文段,以及检测出差错后纠正差错,它除了使用检验和
您可能关注的文档
- SQL Server 2008 数据库案例教程 于斌 第4章 数据库的创建与管理新.ppt
- SQL Server 2008 数据库案例教程 于斌 第6章 数据查询新.ppt
- SQL Server 2008 数据库案例教程 于斌 第7章 索引和视图新.ppt
- SQL Server 2008 数据库案例教程 于斌 第8章 存储过程和触发器新.ppt
- SQL Server 2008 数据库案例教程 于斌 第9章 游标、事务与锁新.ppt
- SQL Server 2008 数据库案例教程 于斌 第10章 SQL Server 2008安全性管理新.ppt
- SQL Server 2008 数据库案例教程 于斌 第11章 SQL Server 2008服务新.ppt
- SQL Server 2008 数据库案例教程 于斌 第12章 SQL Server 2008服务新.ppt
- SQL Server 2008数据库应用技术 赵增敏 28832SQL Server 2008数据库应用技术 课件新.ppt
- SQL Server2005数据库实用教程 常军林 第八章新.ppt
文档评论(0)