随笔- 34
文章- 0
评论- 2
阅读-
71517
随笔分类 - TCP/IP协议栈实现
教科书和工程实现真的有很大的区别
TCP拥塞控制
摘要:0x01 为什么要做拥塞控制 我们知道TCP是一个可靠的传输层协议,与UDP最大的不同首先是可靠,然后是,为了实现可靠性,TCP需要在发送端和接收端维护发送窗口和接收窗口来缓存尚未被确认的报文。发送窗口是拥塞控制算法对当前网络传输能力的一个评估,发送窗口越大,拥塞控制算法认为 那么什么时候是网络拥塞
阅读全文
TCP/IP OPTION字段
摘要:0x01 简介 TCP头部和IPV4头部除了固定的20字节外,都设置了 OPTION 字段用于存储自定义的数据,因为TCP头部和IPV4的报文长度字段均为4字节,所表示的最大值为15, 乘4,报文头部最大长度为60字节,因此Option字段最大长度为40字节,足够存储大量的报文控制信息。TCP和IP
阅读全文
Google Quic协议
摘要:0x01 Quic QUIC协议于2012年实现,2015年提交RFC草案,它是Goolge为了解决当今WEB应用常见的传输层和应用层问题而提出的,从分层结构上可以看做是TCP+TLS+HTTP2的集合,不过是在UDP的基础上实现的 主要解决了下面的几个问题 0x02 HOLB问题 HOLB(Hea
阅读全文
显式拥塞通告(ECN)及其在Linux上的实现
摘要:1 ECN简介 首先看看ECN握手报文的特点,根据RFC3168,ECN握手报文IP头部不能够设置ECT和CE位的 SYN报文TCP标志字段的CWR和ECE位被置1 SYN-ACK报文的CWR位被置0,ECE位被置1 报文在网络上传输的过程中,如果路由器判断自身发生拥塞则在报文的IP首部设置CE标志
阅读全文