wTCP本身已经确保传输的成功性。

HTTP The Definitive Guide

4.2.4 Delayed Acknowledgments
Because the Internet itself does not guarantee reliable packet delivery (Internet routers are free to
destroy packets at will if they are overloaded), TCP implements its own acknowledgment scheme to
guarantee successful data delivery.
Each TCP segment gets a sequence number and a data-integrity checksum. The receiver of each
segment returns small acknowledgment packets back to the sender when segments have been received
intact. If a sender does not receive an acknowledgment within a specified window of time, the sender
concludes the packet was destroyed or corrupted and resends the data.

Because acknowledgments are small, TCP allows them to "piggyback" on outgoing data packets
heading in the same direction. By combining returning acknowledgments with outgoing data packets,
TCP can make more efficient use of the network. To increase the chances that an acknowledgment
will find a data packet headed in the same direction, many TCP stacks implement a "delayed
acknowledgment" algorithm. Delayed acknowledgments hold outgoing acknowledgments in a buffer
for a certain window of time (usually 100-200 milliseconds), looking for an outgoing data packet on
which to piggyback. If no outgoing data packet arrives in that time, the acknowledgment is sent in its
own packet.
Unfortunately, the bimodal request-reply behavior of HTTP reduces the chances that piggybacking
can occur. There just aren't many packets heading in the reverse direction when you want them.
Frequently, the disabled acknowledgment algorithms introduce significant delays. Depending on your
operating system, you may be able to adjust or disable the delayed acknowledgment algorithm.
Before you modify any parameters of your TCP stack, be sure you know what you are doing.
Algorithms inside TCP were introduced to protect the Internet from poorly designed applications. If
you modify any TCP configurations, be absolutely sure your application will not create the problems
the algorithms were designed to avoid.

TCP implements its own acknowledgment scheme to guarantee successful data delivery的更多相关文章

  1. IP, TCP, and HTTP--reference

    IP, TCP, and HTTP Issue #10 Syncing Data, March 2014 By Daniel Eggert When an app communicates with ...

  2. Method of offloading iSCSI TCP/IP processing from a host processing unit, and related iSCSI TCP/IP offload engine

    A method of offloading, from a host data processing unit (205), iSCSI TCP/IP processing of data stre ...

  3. tcp ESTABLISHED 接收数据

    tcp_rcv_established函数的工作原理是把数据包的处理分为2类:fast path和slow path,其含义显而易见.这样分类的目的当然是加快数据包的处理,因为在正常情况下,数据包是按 ...

  4. HTTP协议用的TCP但是只建立单向连接

    作者:IronTech链接:https://www.zhihu.com/question/20085992/answer/71742030来源:知乎著作权归作者所有,转载请联系作者获得授权. 下面的解 ...

  5. TCP/IP Four Layer Protocol Format Learning

    相关学习资料 tcp-ip详解卷1:协议.pdf 目录 . 引言 . 应用层 . 传输层 . 网络层 0. 引言 协议中的网络字节序问题 在学习协议格式之前,有一点必须明白,否则我们在观察抓包数据的时 ...

  6. WCF - net.pipe vs. net.tcp vs. http Bindings

    WCF - net.pipe vs. net.tcp vs. http Bindings 问题: I'm new to WCF and would like to know the differenc ...

  7. TCP:三次握手、四次握手、backlog及其他

    TCP是什么 首先看一下OSI七层模型: 然后数据从应用层发下来,会在每一层都加上头部信息进行封装,然后再发送到数据接收端,这个基本的流程中每个数据都会经过数据的封装和解封的过程,流程如下图所示: 在 ...

  8. linux tcp调优

    Linux TCP Performance Tuning News Linux Performance Tuning Recommended Books Recommended Links Linux ...

  9. Systemtap examples, Network - 4 Monitoring TCP Packets

    http://blog.163.com/digoal@126/blog/static/16387704020131014104256627/   例子来自tcpdumplike.stp脚本, 当tcp ...

随机推荐

  1. win32之hPrevInstance

    看了一篇博客上面说,WinMain函数中的hPrevInstance是上一个示例的句柄,我就想到可不可以使用这个来实现只能运行一个实例呢? int WINAPI WinMain(HINSTANCE h ...

  2. jquery 获取字符串中的数字

    str_num = 'abc123' num = parseInt(str_num.replace(/[^0-9]/ig,"")); alert(num);

  3. python学习笔记(11)--爬虫下载漫画图片

    说明: 1. 某本子网站爬虫,现在只实现了扒取一页,已经凌晨两点了,又饿又困,先睡觉,明天再写总结吧! 2. 我是明天,我来写总结了! 3. 这个网站的结构是这样的: 主页: 主页-第1页-漫画1封面 ...

  4. Pgsql特殊排序

    对字段值为A,B,C,D的时候进行特殊排序. CASE WHEN aa = 'H' THEN ' WHENaa = 'O' THEN ' ELSE aa END 对数字进行排序,升序,0排到最后面 C ...

  5. 文件模式设置用户ID/设置组ID/sticky bit_转

    S_ISUID  (04000)  set-user-ID (set process effective user ID on execve(2))S_ISGID  (02000)  set-grou ...

  6. 一条经典SQL语句优化实例

    1.概述 如下SQL语句发生严重消耗资源的问题,使得OS's load average会在30以上,一条语句需要执行上百秒. /*PIXPatient 184176条DomainPatient 184 ...

  7. HeadFirst jsp 08 无脚本JSP

    web页面设计人员真的必须懂 java ? web页面人员可以很快学习 EL 语言. 目前不知道 EL 应用前景如何, 但是我们香港系统没有使用 EL. include 指令 include指令告诉容 ...

  8. 10个 jQuery 小技巧

    10个 jQuery 小技巧 -----整理by: xiaoshuai 1. 返回顶部按钮 可以利用 animate 和 scrollTop 来实现返回顶部的动画,而不需要使用其他插件. // Bac ...

  9. Mongodb的性能优化问题

    摘要 数据库性能对软件整体性能有着至关重要的影响,对于Mongodb数据库常用的性能优化方法主要有: 范式化与反范式化: 填充因子的使用: 索引的使用: 一. 范式化与反范式化 范式是为了消除重复数据 ...

  10. 【BZOJ】1034: [ZJOI2008]泡泡堂BNB(贪心)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1034 弱的比弱的强就用,强的比强的强就用: 否则弱的和强的比. 输的情况就是2n-ans(b,a), ...