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. hdu5094 Maze

    --就是爬管道-- 还好内存给的多-- 不然就不会做了-- #include<iostream> #include<map> #include<string> #i ...

  2. C# webrequest 抓取数据时,多个域Cookie的问题

    最近研究了下如何抓取为知笔记的内容,在抓取笔记里的图片内容时,老是提示403错误,用Chorme的开发者工具看了下: 这里的Cookie来自两个域,估计为知那边是验证了token(登录后才能获取到to ...

  3. google打不开怎么办?谷歌打不开的解决方法

    www.ggfwzs.com 我是在这里安装插件,安装后可以打开google http://jingyan.baidu.com/article/b907e627d67ad646e6891c52.htm ...

  4. 基于设备树的TQ2440 DMA学习(3)—— DMA控制器驱动

    作者 彭东林pengdonglin137@163.com 平台 TQ2440Linux-4.9 概述 上一篇直接操作DMA控制器实现了一个mem2mem的DMA传输,但是这样不符合linux driv ...

  5. 基于设备树的TQ2440 DMA学习(2)—— 简单的DMA传输

    作者 彭东林 pengdonglin137@163.com   平台 TQ2440 Linux-4.9   概述 上一篇博客分析了DMA控制器的寄存器,循序渐进,下面我们直接操作DMA控制器的寄存器实 ...

  6. UITableView分割线样式与颜色

    tv.separatorStyle = UITableViewCellSeparatorStyleSingleLine;   //设置样式 tv.separatorColor = [UIColor c ...

  7. 【CentOS】centos7上查看服务开机启动列表

    centos7上查看服务开机启动列表 命令: systemctl list-unit-files; 点击回车,可以向下翻页查询

  8. SharePoint 修改项目的new图标显示天数

    前言 最近有这么个需求,用户需要修改新建项目前面的new图标的显示天数,查了很久,发现有powershell命令或者stsadm命令可以,分享给大家. PowerShell命令 $wa = Get-S ...

  9. 从源码角度一步一步来修改PreferenceActivity界面

         PreferenceActivity给我们封装好了一个数据存储对象,我们只需要在xml文件中写上控件即可完成简单的设置界面.但是系统提供的设置界面十分的简陋,要想做的好看必须要自己来进行修改 ...

  10. JQuery中的对象和事件

    一:JQuery 对象和 Dom 对象 在使用 JQuery 过程中,我们一般(也是绝大多数情况下,除非我们使用了第二个框架)只有两类对象,即:JQuery 对象和 Dom 对象.Dom 对象指的是普 ...