[转载]tcp可靠性的好文

TCP是通过什么方式来提供可靠传输的

2012-11-23 14:18 665人阅读 评论(0) 收藏 举报

TCP是通过什么方式来提供可靠传输的 (合理截断数据包,超时重发,校验,失序重新排序,能够丢弃重复数据,TCP可以进行流量控制)

TCP提供一种面向连接的可靠的字节流服务。
         面向连接:意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。在一个TCP连接中,仅有两方进行彼此通信。广播多播不能用于TCP。
          TCP通过下列方式来提供可靠性:
            1、应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据报长度将保持不变。
                                                                  (将数据截断为合理的长度)
          2、当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。                         (超时重发)
          3、当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒。
                                                                 (对于收到的请求,给出确认响应)           (之所以推迟,可能是要对包做完整校验)
            4、 TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。      (校验出包有错,丢弃报文段,不给出响应,TCP发送数据端,超时时会重发数据)
            5、既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。                            (对失序数据进行重新排序,然后才交给应用层)          
           6、既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。                            (对于重复数据,能够丢弃重复数据)       
           7、TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。         
                           (TCP可以进行流量控制,防止较快主机致使较慢主机的缓冲区溢出)
             TCP使用的流量控制协议是可变大小的滑动窗口协议。
字节流服务::             两个应用程序通过TCP连接交换8bit字节构成的字节流。TCP不在字节流中插入记录标识符。我们将这称为字节流服务(bytestreamservice)。
TCP对字节流的内容不作任何解释::             TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCII字符、EBCDIC字符或者其他类型数据。对字节流的解释由TCP连接双方的应用层解释。

更多 0

[转载]tcp可靠性的好文

时间: 2024-08-30 10:22:12

[转载]tcp可靠性的好文的相关文章

[转载] TCP/IP协议族

物理层(RS-232.V.35)和 数据链路层(HDLC.X.25)涉及到在通信信道上传输的原始比特流,它实现传输数据所需要的机械.电气.功能性及过程等手段,提供检错.纠错.同步等措施,使之对网络层显现一条无错线路:并且进行流量调控.Bits.Frames 网络层检查网络拓扑,以决定传输报文的最佳路由,执行数据转发.其关键问题是确定数据包从源端到目的端如何选择路由.网络层的主要协议有IP.ICMP(Internet Control Message Protocol,互联网控制报文协议).IGMP

(转载)TCP/IP四层模型

本文章转载地址:http://www.cnblogs.com/BlueTzar/articles/811160.html TCP/IP参考模型 ISO制定的OSI参考模型的过于庞大.复杂招致了许多批评.与此对照,由技术人员自己开发的TCP/IP协议栈获得了更为广泛的应用.如图2-1所示,是TCP/IP参考模型和OSI参考模型的对比示意图.            图2-1 TCP/IP参考模型 2.1 TCP/IP参考模型的层次结构 TCP/IP协议栈是美国国防部高级研究计划局计算机网(Advan

[转载] TCP与UDP对比

TCP和UDP区别 TCP UDP 是否连接 面向连接 面向非连接 传输可靠性 可靠的 不可靠的 应用场合 传输大量的数据 少量数据 速度 慢 快 OSI 和 TCP/IP 模型在传输层定义两种传输协议:TCP(或传输控制协议)和 UDP(或用户数据报协议). UDP     UDP 与 TCP 的主要区别在于 UDP 不一定提供可靠的数据传输.事实上,该协议不能保证数据准确无误地到达目的地.UDP 在许多方面非常有效.当某个程序的目标是尽快地传输尽可能多的信息时(其中任意给定数据的重要性相对较

[转载] tcp那些事1

原文: http://coolshell.cn/articles/11564.html TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面.所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获.关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的<TCP/IP 详解 卷1:协议>(当然,你也可以去读一下RFC793以及后面N多的RFC).另外,本文我会使用英文术语,这样方便你通过这些英文关键词来查找相关的技术文档.

[转载] tcp数据重传时间细节探秘及数据中心优化

原文: http://weibo.com/p/1001603821691477346388 在数据中心网络内,机器之间数据传输的往返时间(rtt)一般在10ms以内,为此调内部服务的超时时间一般会设置成50ms.200ms.500ms等,如果在传输过程中出现丢包,这样的服务超时时间,tcp层有机会发现并重传一次数据么?如果设置成200ms以内,答案是没有机会,原因是linux系统下第一次重传时间等于传输的往返时间上至少加上200ms的预测偏差值,即如果rtt值是7ms,第一次重传超时时间至少是2

转载:TCP连接的状态详解以及故障排查

FROM:http://blog.csdn.net/hguisu/article/details/38700899 该博文的条理清晰,步骤明确,故复制到这个博文中收藏,若文章作者看到且觉得不能装载,麻烦请告知,谢谢. 我们通过了解TCP各个状态,可以排除和定位网络或系统故障时大有帮助.(总结网络上的内容) 1.TCP状态 linux查看tcp的状态命令: 1).netstat -nat  查看TCP各个状态的数量 2).lsof  -i:port  可以检测到打开套接字的状况 3).  sar

[转载] tcp那些事2

原文: http://coolshell.cn/articles/11609.html 这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇<TCP的那些事儿(上)> 上篇中,我们介绍了TCP的协议头.状态机.数据重传中的东西.但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定.在你阅读下篇之前,你需要做好准备,本篇文章有好些算法和策略,可能会引发你的各种思考,让你的大脑分配很多内存和计算资源,所以,

[转载]Java动态填充word文档并上传到服务器

一. 需求背景 在一些特殊应用场合,客户希望在服务器上生成文档的同时并填充数据,客户端的页面不显示打开文档,但是服务器上生成文档对服务器压力很大,目前服务器上生成文档第一种就是方式是jacob, 但是局限于windows平台,往往许多JAVA程序运行于其他操作系统,在此不讨论该方案.二是POI. 但是它的excel处理还凑合, word模块还局限于读取word的文本内容,写word文件的功能就更弱:还有一个要命的地方,处理doc格式和处理docx格式的类几乎完全不同,要分开针对不同的格式写不同的

(转载)(收藏)Awk学习详细文档

awk命令 本文索引 [隐藏] awk命令格式和选项 awk模式和操作 模式 操作 awk脚本基本结构 awk的工作原理 awk内置变量(预定义变量) 将外部变量值传递给awk awk运算与判断 算术运算符 赋值运算符 逻辑运算符 正则运算符 关系运算符 其它运算符 运算级优先级表 awk高级输入输出 读取下一条记录 简单地读取一条记录 关闭文件 输出到一个文件 设置字段定界符 流程控制语句 条件判断语句 循环语句 while语句 for循环 do循环 其他语句 数组应用 数组的定义 数组相关函