1.TCP的交互数据流
(1)基本概念
所谓交互数据流,其对TCP而言,就是他们所产生的大多数的TCP报文段中所包含的数据不超过10个字节,例如聊天等telnet的软件的TCP数据流就属于TCP交互数据流
(2)经受时延的确认
TCP收到数据时并不会马上发送数据,相反它会推迟数据的发送,以便让ack和该方向要发送的数据一起发送(搭个便车,不然ack就得自己自己组成一个数据段发送,这样有可能造成网络发生拥塞),但是如果此方向一直没数据发送,那么ack就得一直等下去?当然不会,系统会给其定一个最长等待时间,一般为200ms超过这个时间,那么这个ack就必须得发出去了
(3)Nagle算法
设想这么一种情况,发送端每次发一个字节,并且连续发了好多次,那么如果每个字节都组成一个TCP数据段,一个41字节大小的数据段只装有1个字节,对与网络来说这也太占用资源了,所以我们应该但不是必须得在发送端设计某种发送送规则,现在最常用的就是Nagle规则了,Nagle规则相对简单点,它的规则大致是这样的,在一个TCP连接所对应的线路中最多只能有一个未被确认的数据段,在该数据端的ack没来之前则不能发送数据,发送端在ack到来之前将小的字符流,组在一起,等ack到来时,则数据段已集结成大接近满载的数据段,此时将数据段发送出去,则利用率就会大幅提升。该算法的优越性在于它的自适应性,确认到达的越快,数据发的就越快,到达的慢就发的慢,在局域网内由于跳数较少,所以数据传输速度就会很快ÿ