首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

计网复习笔记2-2

计网复习笔记2-2

思维导图高清原图:http://neusoftware.top/images/computer_networking_2.1.jpg

需要注意的是,本系列笔记思维导图才是重点内容,文字只起到了辅助理解的作用

慢开始和拥塞避免:

发送方维持一个叫做拥塞窗口(cwnd)的状态变量。拥塞窗口的大小取决于拥塞程度,动态变化。发送方让发送窗口等于拥塞窗口。开始拥塞窗口的值设置为一个最大报文段(MSS)的数值,记为1。如果没有出现拥塞,每经过一个传输轮次,cwnd变为原来的两倍。为了防止过快增加,设置了慢开始门限状态变量(ssthresh)。当检测到超时时,将ssthresh设为原先cwnd的一半,将cwnd置为1,重新开始慢启动,这个过程中当cwnd的大小等于ssthresh时,执行拥塞避免策略,每次cwnd的大小只增加1.

快速重传和快速恢复:快速重传的策略已经在图中有解释。当发送方接收到3个冗余ACK时(但并没有超时),TCP对于这种事件反应没有超时那么激烈,此时执行快速恢复策略:将ssthresh设为原先cwnd的一半,再将cwnd的值减半,之后每次发送时cwnd的值再增加1。

一种称为TCP Tahoe的TCP早期版本没有快速恢复策略,不管是超时还是收到3个冗余ACK,均采用慢开始策略。而较新版本的TCP Reno,则综合了快速恢复。两者的区别如下图:

TCP报文段格式:

三次握手的过程:

第一次握手:客户端主机向服务器发送一个特殊的TCP报文段,该报文段不包含应用层数据,但是在报文段的首部中的SYN标志位置为1,代表请求建立连接,称为SYN报文段。客户端随机选择一个初始序号,并将此编号放在SYN报文段的序号字段。该报文段被封装在一个网络层数据报中,发送给服务器。

第二次握手:服务器接收到包含SYN报文段的IP数据报,提取出SYN报文段,为该TCP连接分配TCP缓存和变量,并向客户TCP发送允许连接的报文段。该报文段也不包含应用层数据,SYN标志位置为1,确认号字段为SYN报文段的编号+1,服务器选择主机的初始序号,并将其放置到TCP报文段首部的序号字段。这个报文段被称为SYNACK报文段。

第三次握手:客户端收到SYNACK报文段后,也要给该连接分配缓存和变量。同时再向服务器发送另外一个报文段,对于SYNACK报文段给以确认,这个报文段包含了应用层数据。

拓展知识:

因为第二次握手(还没有正式开始传送数据)时,服务器就已经给TCP连接分配了缓存资源,这为经典的DoS攻击即SYN洪泛攻击(SYN flood attack)提供了环境。在这种攻击中,攻击者发送大量的TCP SYN报文段,而不完成第三次握手的步骤。随着这种SYN报文段纷至沓来,服务器不断为这些半开连接分配资源(但从未使用),导致服务器的连接资源被消耗殆尽。这种SYN洪泛攻击是被记载的众多DoS攻击中的第一种。

连接释放的过程:

客户端向服务器发送一个特殊的TCP报文段,该报文段FIN标志位置为1。服务器收到后,给发送方回送一个确认报文段。然后服务器发送它自己的终止报文段,其FIN比特被置为1.最后,客户端对服务器的终止报文段进行确认。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180927G1QI2800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券