
TCP/IP
文章平均质量分 92
zhangskd
一路风雨,一路奔跑
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
TCP的ACK确认系列 — 发送状态转换机
主要内容:TCP的ACK发送方式,以及ACK发送状态转换机的实现。内核版本:3.15.2我的博客:http://blog.csdn.net/zhangskd 概述 TCP采用两种方式来发送ACK:快速确认和延迟确认。在快速确认模式中,本端接收到数据包后,会立即发送ACK给对端。在延迟确认模式中,本端接收到数据包后,不会立即发送ACK给对端,而是等待一段时间,如果在此原创 2015-04-19 21:36:07 · 16842 阅读 · 7 评论 -
TCP的ACK确认系列 — 快速确认
主要内容:TCP的快速确认、TCP_QUICKACK选项的实现。内核版本:3.15.2我的博客:http://blog.csdn.net/zhangskd 快速确认模式 (1) 进入快速确认模式设置快速确认模式标志,设置在快速确认模式中可以发送的ACK数量。static void tcp_enter_quickack_mode (struct sock *sk)原创 2015-04-19 21:36:39 · 16632 阅读 · 1 评论 -
TCP的TSO处理
概述 In computer networking, large segment offload (LSO) is a technique for increasing outboundthroughput of high-bandwidth network connections by reducing CPU overhead. It works by queuingup la原创 2012-10-15 16:52:53 · 13996 阅读 · 0 评论 -
TCP的发送系列 — 发送缓存的管理(二)
主要内容:从TCP层面判断发送缓存的申请是否合法,进程因缺少发送缓存而进行睡眠等待、因为有发送缓存可写事件而被唤醒。内核版本:3.15.2上一篇blog讲述了单个Socket层面上的发送缓存管理,现在来看下整个TCP层面上的发送缓存管理。原创 2015-09-06 22:48:14 · 9223 阅读 · 7 评论 -
TCP拥塞控制算法 — CUBIC的补丁(七)
描述 以下是提交者Stephen Hemminger对这个patch的描述:limit delayed_ack ratio to prevent divide errorTCP Cubic keeps a metirc that estimates the amount of delayed acknowledgements to usein adjusting the win原创 2013-03-02 17:32:05 · 2677 阅读 · 0 评论 -
Google对TCP快速恢复算法的改进
内容:本文主要分析Google对TCP快速恢复算法的改进,即Proportional Rate Reduction for TCP。内核版本:3.2.12作者:zhangskd @ csdn blog patch:Proportional Rate Reduction for TCP. 这个patch包含在3.2之后的版本中。 patch描述 以下是提交者Nan原创 2013-01-04 14:52:50 · 6775 阅读 · 0 评论 -
TCP retransmission statistics from Google
Abstract This article is an abstract from a paper which analyses TCP data from Google Web and vedio servers andpresent key statistics on the nature of retransmissions. Statistics (1)TCP原创 2013-01-17 10:06:10 · 2890 阅读 · 0 评论 -
Internet Delay Asymmetry
Background Transmission Control Protocol (TCP) estimates the available bandwidth of the unidirectional route fromthe sender to the receiver using the round-trip time as an approximation. If the原创 2013-03-04 18:14:40 · 2116 阅读 · 0 评论 -
TCP拥塞控制算法 优缺点 适用环境 性能分析
【摘要】对多种TCP拥塞控制算法进行简要说明,指出它们的优缺点、以及它们的适用环境。【关键字】TCP拥塞控制算法 优点 缺点 适用环境公平性 公平性 公平性是在发生拥塞时各源端(或同一源端建立的不同TCP连接或UDP数据报)能公平地共享同一网络资源(如带宽、缓存等)。处于相同级别的源端应该得到相同数量的网络资源。产生公平性的根本原因在于拥塞发生必然导致数据包丢失,原创 2011-08-24 17:56:07 · 68029 阅读 · 12 评论 -
千兆TCP拥塞控制算法分析
作者:Geoff Huston,APNIC回顾30多年来的互联网从业经验,我发现:促使互联网协议套件成功地成为全球通信系统首选技术的关键,是互联网协议(IP)本身。作为一种重叠协 议,它能够支持几乎任何类型的通信介质。但是我还想指出IP中另外一个重要的角色,即位于IP之上的可靠传输协议--传输控制协议(TCP)。我之所以认 为它如此重要,是因为TCP所采用的端到端速率自适应控制算法转载 2011-09-01 13:44:30 · 4851 阅读 · 0 评论 -
TCP拥塞控制算法内核实现剖析(三)
本文主要从算法层面分析Cubic,以及其它TCP拥塞控制算法 ======================================================================================================1. CubicCubic,立方的。顾名思义,此算法一特征为它的窗口增长函数为一立方函数。The protocol原创 2011-12-20 14:43:22 · 11301 阅读 · 1 评论 -
Forward Acknowledgement原理
SACK is generally viewed as a method to address data recovery, it has not been widely investigated toaddress congestion control issues.FACK decouples the congestion control algorithms (which deter原创 2012-02-07 16:50:18 · 4158 阅读 · 2 评论 -
Duplicate SACK原理
SACK & D-SACK InteractionNo difference between SACK & D-SACK, except that first SACK block is used to report a duplicate PDUin D-SACK.No separate negotiation / options for D-SACK.D-SACK is com原创 2012-02-09 15:58:22 · 3607 阅读 · 0 评论 -
TCP拥塞控制算法内核实现剖析(九)
内核版本:3.2.12主要源文件:linux-3.2.12/ net/ ipv4/ tcp_westwood.c本文主要分析westwood的实现,作者zhangskd @ csdn==================================================================================== 概要 westwoo原创 2012-04-17 16:06:53 · 10362 阅读 · 7 评论 -
TCP拥塞状态机的实现(下)
内容:本文主要分析TCP拥塞状态机的实现中,各个拥塞状态的进入、处理和退出的详细过程。内核版本:2.6.37作者:zhangskd @ csdn 各状态的退出 state E各状态的退出时机:tp->snd_una >= tp->high_seq (1) Open因为Open态是正常态,所以无所谓退出,保持原样。 (2)Loss icsk->ic原创 2012-12-14 17:47:34 · 6927 阅读 · 1 评论 -
TCP拥塞状态机的实现(中)
内容:本文主要分析TCP拥塞状态机的实现中,虚假SACK的处理、标志丢失数据包的详细过程。内核版本:2.6.37作者:zhangskd @ csdn 虚假SACK state B如果接收的ACK指向已记录的SACK,这说明记录的SACK并没有反应接收方的真实的状态,也就是说接收方现在已经处于严重拥塞的状态或者在处理上有bug,所以接下来就按照超时重传的方式去处理原创 2012-12-14 17:47:06 · 5441 阅读 · 0 评论 -
上传压死下载 & 常见TCP选项
上传压死下载 下载文件的速度非常低。抓取数据包分析,发现:服务器 —> 客户端 的包,经历时间 客户端 —> 服务器 的包,经历几十至几百ms后,对方才有反应。一个文件中的第一个SYN请求还超时,3s后重传。服务器 —> 客户端 的包,至少都重传了一遍,不论是在建立连接时,还是在传送数据时。可能的原因:客户端 —> 服务器的链路拥塞,丢包率高,客户端的ACK丢失了,服务原创 2012-11-29 15:19:28 · 4156 阅读 · 0 评论 -
TCP拥塞状态机的实现(上)
内容:本文主要分析TCP拥塞状态机的实现中,主体函数tcp_fastretrans_alert()的实现。接下来的文章会对其中重要的 部分进行更具体的分析。内核版本:2.6.37作者:zhangskd @ csdn 原理 先来看一下涉及到的知识。 拥塞状态:(1)Open:Normal state, no dubious events,原创 2012-12-14 17:46:21 · 8384 阅读 · 1 评论 -
RTT distribution of Internet
概述 Each end-to-end path is characterized by its own minimum possible RTT, given by the sum of linkpropagation latencies and transmssion and processing delays on all nodes in the forward and reve原创 2012-07-27 11:15:10 · 2401 阅读 · 0 评论 -
TCP Nagle剖析
本文内容:TCP Nalge的原理、内核实现以及应用。作者:zhangskd @ csdn 概述 Nagle's algorithm, named after John Nagle, is a means of improving the efficiency of TCP/IP networksby reducing the number of packets that原创 2012-10-12 15:31:53 · 4650 阅读 · 0 评论 -
getsockopt的TCP层实现剖析
应用层 NAME getsockopt - get options on socketsSYNOPSIS #include #include int getsockopt (int s, int level, int optname, void *optval, socklen_t *optlen); 调用关系 函数的调用关原创 2013-02-18 11:18:30 · 18361 阅读 · 1 评论 -
TCP拥塞控制窗口有效性验证机制
内核版本:3.2.12作者:zhangskd @ csdn内容:TCP congestion window validation mechanism 概述 问题1:当发送方长时间受到应用程序的限制,不能发送数据时,会使拥塞窗口无效。TCP是根据拥塞窗口来动态地估计网络带宽的。发送方受到应用程序的限制后,没有数据可以发送。那么此时的拥塞窗口就不能准确的反应网络状况,因原创 2012-06-05 17:39:31 · 6586 阅读 · 0 评论 -
Buffer size of router
Data buffer Buffers are typically used when there is a difference between the rate at which data is received and therate at which it can be processed, or in the case that these rates are variabl原创 2012-08-15 11:06:13 · 3998 阅读 · 0 评论 -
TCP拥塞控制算法内核实现剖析(一)
内核版本:2.6.37主要源文件:linux-2.6.37/ net/ ipv4/ Tcp_cong.c 本文主要分析RENO及TCP拥塞控制基础的实现======================================================================================================struct sock *s原创 2011-12-05 17:10:51 · 12739 阅读 · 10 评论 -
TCP拥塞状态的变迁
The Linux TCP sender is governed by a state machine that determines the sender actions whenacknowledgements arrive. The states are as follows:enum tcp_ca_state { TCP_CA_Open = 0,#define原创 2012-02-14 14:14:40 · 6715 阅读 · 0 评论 -
TCP拥塞控制算法内核实现剖析(六)
内核版本:3.2.12主要源文件:linux-3.2.12/ net/ ipv4/ tcp_highspeed.c本文主要分析highspeed的实现,作者zhangskd @ csdn==================================================================================== 原理 HighS原创 2012-03-26 15:01:24 · 3263 阅读 · 1 评论 -
TCP接收缓存大小的动态调整
引言 TCP中有拥塞控制,也有流控制,它们各自有什么作用呢?拥塞控制(Congestion Control) — A mechanism to prevent a TCP sender from overwhelming the network.流控制(Flow Control) — A mechanism to prevent a TCP sender from overwhe原创 2012-11-22 11:37:41 · 36393 阅读 · 2 评论 -
TCP中RTT的测量和RTO的计算
内核版本:3.2.12本文主要剖析:RTT的测量、RTO的计算作者:zhangskd @ csdn 概述 RTO(Retransmission TimeOut)即重传超时时间。TCP超时与重传中一个很最重要的部分是对一个给定连接的往返时间(RTT)的测量。由于网络流量的变化,这个时间会相应地发生改变,TCP需要跟踪这些变化并动态调整超时时间RTO。RFC2988原创 2012-06-11 10:27:22 · 115446 阅读 · 12 评论 -
TCP拥塞控制算法内核实现剖析(四)
内核版本:2.6.37 主要源文件:linux-2.6.37/ net/ ipv4/ tcp_cubic.c本文主要分析cubic的实现======================================================================================================全局变量和宏定义stat原创 2011-12-22 16:36:23 · 8380 阅读 · 5 评论 -
TCP拥塞控制算法 — CUBIC的补丁(六)
描述 以下是提交者Sangtae Ha对这个patch的描述:HyStart sets the initial exit point of slow start.Suppose that HyStart exits at 0.5BDP in a BDP network and no history exists.If the BDP of a network is large,原创 2013-03-02 17:31:54 · 2193 阅读 · 1 评论 -
TCP拥塞控制算法 — CUBIC的补丁(一)
cubic从2.6.37到3.0之间有7个patch,从3.0到3.8(当前最新版本)中无patch。 描述 以下是提交者Stephen Hemminger对这个patch的描述:fix comparison of jiffiesJiffies wraps around therefore the correct way to compare is to use cast原创 2013-03-02 17:27:27 · 4649 阅读 · 2 评论 -
TCP拥塞控制算法内核实现剖析(八)
内核版本:3.2.12主要源文件:linux-3.2.12/ net/ ipv4/ tcp_htcp.c本文主要分析htcp的实现,作者zhangskd @ csdn 概要 HTCP, like Cubic, uses the elapsed time(t) since the last congestion event for calculating the curren原创 2012-03-31 16:44:38 · 4301 阅读 · 0 评论 -
TCP Timestamp选项
Description Protocol suite: TCP/IP. Protocol type: Transport layer protocol. Option length: 10 bytes. The TCP Timestamp option obsoletes the TCP Echo request and Echo repl原创 2012-01-12 11:35:42 · 21983 阅读 · 2 评论 -
TCP接收窗口的调整算法(中)
本文内容:分析TCP接收窗口的调整算法,主要是接收窗口当前阈值的调整算法。内核版本:3.2.12作者:zhangskd @ csdn blog 接收窗口当前阈值的调整算法 我们知道,在拥塞控制中,有个慢启动阈值,控制着拥塞窗口的增长。在流控制中,也有个接收窗口的当前阈值,控制着接收窗口的增长。可见TCP的拥塞控制和流控制,在某些地方有异曲同工之处。 接收窗口当前原创 2013-02-22 17:27:55 · 7081 阅读 · 0 评论 -
TCP接收窗口的调整算法(上)
我们知道TCP首部中有一个16位的接收窗口字段,它可以告诉对端:我现在能接收多少数据。TCP的流控制主要就是通过调整接收窗口的大小来进行的。本文内容:分析TCP接收窗口的调整算法,包括一些相关知识和初始接收窗口的取值。内核版本:3.2.12作者:zhangskd @ csdn blog 数据结构 以下是涉及到的数据结构。struct tcp_sock {原创 2013-02-22 17:27:37 · 24830 阅读 · 6 评论 -
Google对TCP快速重传算法的改进
内容:本文主要分析Google对TCP快速重传算法的改进,即TCP early retransmit。内核版本:3.6作者:zhangskd @ csdn blogpatch series:(1) tcp: early retransmit: tcp_enter_recovery()(2) tcp: early retransmit(3) tcp: early re原创 2013-01-04 15:35:20 · 9795 阅读 · 1 评论 -
TCP拥塞控制算法内核实现剖析(二)
内核版本:2.6.37 主要源文件:linux-2.6.37/ net/ ipv4/ tcp_bic.c本文主要分析BIC算法实现======================================================================================================1. 相关结构体和参数/* BIC TCP P原创 2011-12-14 17:03:56 · 7757 阅读 · 1 评论 -
TCP快速重传与快速恢复原理分析
超时重传是TCP协议保证数据可靠性的一个重要机制,其原理是在发送一个数据以后就开启一个计时器,在一定时间内如果没有得到发送数据报的ACK报文,那么就重新发送数据,直到发送成功为止。这是数据包丢失的情况下给出的一种修补机制。一般来说,重传发生在超时之后,但是如果发送端接收到3个以上的重复ACK,就应该意识到,数据丢了,需要重新传递。这个机制不需要等到重传定时器溢出,所以叫做快速重传,原创 2012-02-03 18:07:07 · 39437 阅读 · 3 评论 -
TCP拥塞控制算法内核实现剖析(五)
内核版本:2.6.37主要源文件:linux-2.6.37/ net/ ipv4/ tcp_vegas.h、 linux-2.6.37/ net/ ipv4/ tcp_vegas.c本文主要分析Vegas算法的原理和实现,作者zhangskd @ csdn==================================================================原创 2012-03-02 16:59:10 · 7938 阅读 · 3 评论 -
TCP拥塞控制算法内核实现剖析(七)
内核版本:3.2.12主要源文件:linux-3.2.12/ net/ ipv4/ tcp_scalable.c本文主要分析scalable的实现,作者zhangskd @ csdn==================================================================================== 原理 The des原创 2012-03-26 18:03:26 · 3202 阅读 · 1 评论