1.基本概念

TCP之所以能够安全的将数据在传输中的安全性,是因为它每次给对方发送数据,都会等待对方给个确认,当长时间收不到这个确认,发送端就会重发这个数据。

2.超时时间的測量

要測超时时间,TCP必须要发送一个特别序号的字节和接收包括该字节的确认之间的RTT,可是,确认本身就是有延时的,所以一般有一种简单的測量超时时间的公式

RTO = RB

当中R为随RTT变化而变化的平滑因子

3.拥塞避免算法

前边的博客有写道,当发送端使用慢启动算法时,因为其发送的数据段呈指数增长,因此也非常easy达到网络通道的极限,此时。网络上的路由就会将部分分组丢失,因此TCP又给发送端设置了一种拥塞算法,此算法就是用来解决分组丢失问题的

拥塞算法假定正常情况下分组的丢失率是非常小的低于(1%)。所以当两方出现大量丢失分组现象,则说明网络出现拥堵

拥塞避免算法和慢启动算法一般结合使用,此时须要给发送端维持俩个变量,一个是拥塞窗体cwnd,和一个慢启动门ssthresh。算法过程详细例如以下

(1)对于一个给定的连接,将初始化cwnd为1,和ssthresh为65535字节

(2)TCP输出的数据不能超过接收方给的通告窗体和拥塞窗体的最小值,拥塞窗体是发送方使用的流量控制。通告窗体是接收仿使用的流量控制

(3)当拥塞发生时(超时或收到反复确认),ssthresh就会被设置为当前窗体的一般。即拥塞和通告窗体的最小值

(4)此时我们先进行慢启动,发送的数据段将呈指数增长,非常快便达到了改动后的ssthresh(窗体的一般)的值。此时慢启动将不在以指数的方式增长发送量了,而是每收到一个确认,则发送量就增长1的线性增长

4.高速重传与高速恢复

当我们收到失序的报文段时。TCP需马上产生一个ACK(一个反复的ACK),这个反复的ACK不应该延迟,该ACK是想让对方知道收到了失序的报文段,并告诉对方希望收到的序号

因为我们并不知道一个反复的ACK是由丢失的报文段引起的还是只由又一次排序所引起的,因此我们就略微等待一下,在做推断。当在又一次排序的报文段被处理并产生一个新的ACK之前只可能收到1-2个反复的ACK,假设收到3个以上的ACK就非常可能是报文段丢失了。于是我们就直接重传丢失的报文段,而无须等待超时定时器的溢出(也就是不须要等到超时时间到了才推断丢了)接下来运行的就是拥塞避免算法。这就是高速恢复。

5.按每条路由进行度量

如今较新的TCP实现的路由表项中维持了很多指标,当一个TCP连接关闭时,假设已经发出了足够多的数据来获得有意义的统计资料。且目的节点的路由表项不是一个默认表项。那么下列信息就保存在在路由表项中使用:平滑的RTT,慢启动门限等

6.又一次分组

当TCP重传时,它不一定要重传相同的报文段。相反TCP同意进行又一次分组。而进行发送一个较大的报文段

TCP/IP具体解释学习笔记--TCP的超时与重传的更多相关文章

  1. TCP/IP具体解释学习笔记--TCP数据流

    1.TCP的交互数据流 (1)基本概念 所谓交互数据流,其对TCP而言,就是他们所产生的大多数的TCP报文段中所包括的数据不超过10个字节.比如聊天等telnet的软件的TCP数据流就属于TCP交互数 ...

  2. TCP/IP具体解释学习笔记--TCP的坚持和保活定时器

    TCP的坚持定时器 1.基本概念 TCP的接收方指名希望从发送方接收的数据字节(窗体大小)来进行流量控制,假设窗体大小为0.那么放送方就会阻止发送数据,直到接收方发来一个已跟新窗体大小的ACK为止,那 ...

  3. TCP/IP具体解释学习笔记——数据链路层(2)

    五 Wireless LANs(Wi-Fi) 现在很流行的一种接入互联网的方式就是Wi-Fi了.我们用的ipad.手机.笔记本电脑等等都能够用这样的方式接入互联网,很方便灵活.一个典型的Wi-Fi网络 ...

  4. TCP/IP具体解释学习笔记——地址解析协议ARP

    一 概述 我们知道,IP协议是用来在不同的物理网络之间数据传输的.要在不同的网络之间数据传输,至少须要将IP协议所用的地址转换成特定网络所使用的物理地址. 一般来说.就是将IPv4地址转换为mac地址 ...

  5. TCP/IP详解学习笔记 这位仁兄写得太好了

      TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣 ...

  6. TCP/IP详解学习笔记 这位仁兄写得太好了.(转载)

    TCP/IP详解学习笔记   这位仁兄写得太好了   TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/20444 ...

  7. 【转】TCP/IP详解学习笔记(二)

    TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据 ...

  8. 【转】TCP/IP详解学习笔记(一)

      TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/204448.aspx TCP/IP详解学习笔记(13)-T ...

  9. TCP/IP详解学习笔记

    TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议, ...

随机推荐

  1. Jack--10天学会IOS大纲;注意将图片放大观看!

    第一天:磨刀霍霍期 耐得住性子好好熟悉和认识开发环境 ---------Jack/版权全部     认识开发环境         操作系统认识             Mac系统是苹果机专用系统.是基 ...

  2. STM32 F4 Clock Sources

    STM32 F4 Clock Sources Goal: routing clock sources to the microcontroller output pin (MCO1)    High- ...

  3. Snmp学习总结(四)——WinServer2003安装和配置SNMP

    一.安装SNMP 今天讲解一下在WinServer2003安装和配置SNMP,具体操作步骤如下: 找到[控制面板]→[添加或删除程序]

  4. 国内打不开onedrive,怎么办?

    Onedrive不能正常连接使用是由于DNS遭到污染闹的,其上传和下载文件慢也是DNS遭到污染闹的. 方法/步骤   在C盘windows/system32/drivers/etc/hosts下,用记 ...

  5. 关于iosApp审核问题

    求各位大神指导!!!!我上周app打包上传给APPstore准备发布,可是苹果官方发来邮件,说我引用了非公有选择,原文如下: Non-public API usage: The app referen ...

  6. Android上的单元测试

    Android上的单元测试 http://www.sina.com.cn  2009年12月04日 16:07  IT168.com [IT168 技术文档]任何程序的开发都离不开单元测试来保证其健壮 ...

  7. 使用VMWare虚拟机创建CentOS版本号的Linux学习环境(每一步都有截图与说明)

    学习Android开发.假设不学习Linux的基本使用,总感觉心里过意不去,由于毕竟Android还是搭载在Linux的基础之上的. 因此.学习一种Linux系统的基本操作.对我们以后的学习还是非常有 ...

  8. StringBuffer与StringBuilder差别

    从JDK源代码能够看出,StringBuffer和StringBuilder都是继承自AbstractStringBuilder,事实上这两个类的功能实现都是在AbstractStringBuilde ...

  9. 抄袭证据之中的一个CMM与CMMI的名称

    以下文字来自我即将完毕的文章,谢博士说她没有抄袭,可是文中实在是有太多的漏洞了. 6.2.7 P120页中: "实际上终于所谓的统一方法论就是标准,尽管作标准并非目的.但标准是必须有的.能够 ...

  10. Material Designer的低版本兼容实现(十四)—— CardView

    今天说的又是一个5.0中才有的新控件——CardView(卡片视图).这个东东其实我们早就见过了,无论是微博还是人人客户端,它都有出现.通常我们都是通过自定义一个背景图片,然后通过给layout进行设 ...