TCP说明.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TCP说明

TCP提供面向连接的可靠性传输。 一、TCP首部 TCP首部包含在ip首部中: Ip首部 Tcp首部 Tcp数据 TCP首部格式: 16位源端口号 16位目的端口号 32位序号 32位确认序号 4位 首长 保留(6位) U R G A C K P S H R S T S Y N F I N 16位窗口大小 16位检验和 16位紧急指针 选 项 数 据 (1) 端口号:用来区分发送端与目的端的应用进程。 (2) 序号:指的是数据部分第一个字节在整个字节流当中的位置、序号。 例如:序号为x,数据部分的长度为L 则报文序号为x,下一个报文序号为x+L (3) 窗口大小:窗口大小为字节数,最大为65535,这个值是接收方期望接收的字节数 (4) 检验和:检验和覆盖整个TCP段,TCP首部、TCP数据。这是个强制字段,由发送方计算,由接收方校验。 (5) 紧急指针与带外数据:带外数据位于数据部分的开始,不在数据缓冲区中排队,当收到带外数据时,TCP应将带外数据立即交给应用进程。紧急指针指向带外数据的最后一个字节。 (6) 选项:一般为最大报文长度(MSS),接收方允许接收方允许接收的最大字节数。 (7) 控制字段:说明了报文的类型、流控、连接建立和终止 URG:紧急指针 RST:连接复位 SYN:连接建立 FIN:链接终止 ACK:当此位置1时,序号字段有效,报文带确认信息 PSH:接收方应尽快将这个报文交给应用层 二、TCP一些概念 一)TCP确认机制 带重传的肯定确认。接收方收到数据后,向源站返回ACK报文,五确认时,发送方应重传数据 累计确认: ACK取值是接收方期望收到的下一个字节。(2)是对ACK以前的所有字节数据的确认。 二)超时与重传机制 发送方发送数据时,同时开启一个定时器,定时期满时,如果没有收到确认,重发数据,否则发送下一个数据。 未确认数据包括: 受损或丢失数据。(2)确认的ACK丢失了。 当接收方收到数据,但发送方没有收到确认信息,也认为没有正确的收到数据。 三)滑动窗口 窗口:发送方发送数据量的大小,即发送方在收到确认前,其发送缓冲区可以发送数据的大小。 滑动:随着确认的不断到达,窗口也不断向后移动,根据ACK,确认滑动的大小。 三、TCP连接的建立与关闭 一)TCP连接建立 TCP连接建立需要经过三次握手 (1) 请求端发送一个SYN段,指明客户端打算连接服务器的端口 (2) 服务器发回包含服务器的初始序号的SYN报文段作为应答。同时将确认序号设置为客户端的序号ISN+1,因为SYN占用一个序号。 (3)客户必须将确认序号设置为服务器的ISN+1,对服务器的SYN报文段进行确认。 通过这三个报文段,TCP建立连接。 二)TCP连接关闭 TCP连接关闭需要经过四次握手 (1) 首先进行关闭的一方发送第一个FIN,执行主动关闭。 (2) 另一方收到FIN时,发回一个ACK,确认序号为FIN+1,接着执行被动关闭 (3) 服务器执行关闭时,发送一个FIN。 (4) 客户必须对这个FIN进行确认,确认序号为接受的FIN+1 经过这四个报文段,TCP连接关闭。 TCP处于半关闭状态时,允许连接的一端在结束他的发送后还能接受来自另一端的数据的能力。 复位报文段:当连接请求到达时,目的端口没有进程正在听,对于UDP来说是发送一个IGMP的端口不可达的差错。而TCP则使用复位报文段。 异常终止一个连接:(1)丢弃任何待发数据,立即发送复位报文段;(2)RST的接收方区分另一端执行的是异常关闭还是正常关闭。 RST报文段中包含一个序号和一个确认序号。RST报文不会导致另一端产生任何响应,另一端根本不做任何确认。收到RST的一方将终止该连接,并通知应用层连接复位。 半打开连接:如果一方已经关闭或异常终止连接而另一方不知道,这样的TCP称为半打开。 四、TCP交互数据流 每一个交互按键都会产生一个数据分组,每次从客户端传到服务器的是一个字节的按键(而不是一行)。换句话说,对于交互数据,TCP是一个字节一个字节的发送。而服务器收到数据后,要回显字符。这样就会有四个报文段产生。 (1) 来自客户端的交互按键 (2) 来自客户端的按键确认 (3) 来自服务器的交互按键的回显 (4) 客户对回显信息的确认 通常TCP在接收到数据时,并不是立即发送ACK,相反,推迟发送,以便将ACK与数据一起发生(数据捎带ACK)。绝大多数实现采用的延时为200m

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档