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

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到来时,则数据段已集结成大接近满载的数据段。此时将数据段发送出去。则利用率就会大幅提升。该算法的优越性在于它的自适应性。确认到达的越快,数据发的就越快,到达的慢就发的慢,在局域网内因为跳数较少,所以传输数据速度就会非常快。可是数据报中的数据较少。而在广域网里。因为跳数多,ack过来的时间非常慢,所以数据发送的相对慢点,可是与之相应的是,数据报所携带的数据差点儿是满载的。

    注意点:我们能够在应用程序设置套接字,将其设为TCP_NODELAY就会关闭Nagle算法,从而将要发的数据高速的发出去,此做法一般适用于即使交互类的软件

2.成块数据流

(1)滑动窗体

如上图所看到的

1,2,3为已经确认的数据,所以窗体以滑过他们,当接收方确认数据后,这个窗体不时的向右移动,窗体俩个边沿的相对运动添加或降低了窗体的大小,我们使用三个术语来描写叙述窗体的左右移动

(1)称窗体左边沿向右边沿移动为窗体合拢,这样的现象发生在数据被发送和确认时。

(2)当窗体右边沿向右移动时将同意发送很多其它的数据。我们称之为窗体张开,这样的现象发生在还有一端的接收进程读取已经确认的数据TCP的接收缓冲区

(3)当右边沿向左移动时称之为窗体收缩

(2)窗体大小

窗体大小由接收方来提供。默认的窗体大小为4096字节,可是在文件传输中未必高效。測试表明当窗体为16000时效率最高。大约能提高40%

(3)PUSH标志

发送方使用PUSH标志通知接收方将所收到的数据所有提交给接收进程。这里的所有包括PUSH之前已经收到的数据

(4)慢启动

所谓的慢事实上是对流量控制的一种算法,该算法通过观察到新分组进入网络的速率应该与接收端返回确认的速率同样而进行工作的

慢启动为发送方的TCP添加了一个拥塞窗体。当连接两方建立连接时。拥塞窗体被初始化为1个报文段,每收到一个ACK。拥塞窗体就添加一个一个报文段,发送方会取拥塞窗体和接收窗体的最小值做为发送数据的最大上线。因为拥塞窗体刚開始为1,发送方刚開始等待ACK。当收到后拥塞窗体变为2,此时能够发送俩个数据了。当再次收到ACK后,拥塞窗体变为4,如此呈指数增长,当达到互联网容量。于是中间路由器開始丢弃分组,以此来告知发送方它的拥塞窗体开的太大了

(5)拥塞

当数据到达一个大管道并向一个较小的管道发送时便会产生拥塞。当多个输入流到达一个路由器,而路由器的输出流小于这些输入流的总和时也会发生拥塞

时间: 2024-09-27 16:37:11

TCP/IP具体解释学习笔记--TCP数据流的相关文章

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

TCP的坚持定时器 1.基本概念 TCP的接收方指名希望从发送方接收的数据字节(窗体大小)来进行流量控制,假设窗体大小为0.那么放送方就会阻止发送数据,直到接收方发来一个已跟新窗体大小的ACK为止,那么假设接收方发送的这个ACK中途丢失了呢(这样的可能性是有的)?此时发送方收不到信息,就默认窗体大小还为0,那它就继续堵塞在那,这样就造成了死锁. 那么怎样解决此类问题呢,解决方式就是我此片博文的题目.TCP的坚持定时器.为了防止上述死锁的发生.TCP的发送方使用了一个坚持定时器.来周期性的向接收方

TCP/IP详解学习笔记--TCP数据流

1.TCP的交互数据流 (1)基本概念 所谓交互数据流,其对TCP而言,就是他们所产生的大多数的TCP报文段中所包含的数据不超过10个字节,例如聊天等telnet的软件的TCP数据流就属于TCP交互数据流 (2)经受时延的确认 TCP收到数据时并不会马上发送数据,相反它会推迟数据的发送,以便让ack和该方向要发送的数据一起发送(搭个便车,不然ack就得自己自己组成一个数据段发送,这样有可能造成网络发生拥塞),但是如果此方向一直没数据发送,那么ack就得一直等下去?当然不会,系统会给其定一个最长等

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

一 概述 我们知道,IP协议是用来在不同的物理网络之间数据传输的.要在不同的网络之间数据传输,至少须要将IP协议所用的地址转换成特定网络所使用的物理地址. 一般来说.就是将IPv4地址转换为mac地址.要想与一个特定的设备进行数据交换,光知道它的IP地址是不够的.还须要知道它的物理地址. 而地址解析协议(ARP)就是来完毕这个工作的,它能将IPv4地址转换为设备的硬件地址.须要注意的是.ARP仅仅能转换IPv4的地址.IPv6须要使用另外的协议进行转换. 另外须要说明的是,网络层和数据链路层地址

TCP/IP详解学习笔记--TCP的基本概念

1.TCP的服务 虽然TCP和UDP最后都会通过IP层传输,但是二者却为用户提供完全不同的服务,TCP提供的是面向连接的,可靠的字节流服务 面向连接意味着俩个使用TCP的应用在彼此交换数据之前必须先建立一个TCP连接.可以用打电话比喻TCP的连接,要想俩个人通话,首先一方要拨通另一方的电话,等待另一方接通电话之后才可以通话,TCP连接只有俩方能通话,这和UDP完全不同 TCP通过如下方式来提供可靠的服务 .应用数据被分成TCP认为最合适的数据块 .当TCP发出一个段时,它启动一个定时器,等待目的

TCP/IP详解学习笔记--TCP连接的建立与终止

1.基本概念 由于TCP是一个面向连接的协议,无论在哪一方发送数据之前,都必须先在双方之间建立连接,接下来我们就讨论建立连接的具体过程 2.建立TCP连接 如下图所示: 1.首先请求端发送一个序列号为1(表明该方的起始序列号为1)的SYN段,此时由于连接还未建立成功,所以携带的数据为0,并前发送端还告诉接收端它所能接收的最大报文段mss 2.接收端收到SYN段后,也给对方回一个SYN端,告知对方它的其实序列号为5并携带给对方回的ack,同时也告诉对方它所能接收的最大报文段mss 3.请求端在收到

TCP/IP详解学习笔记--TCP的坚持和保活定时器

TCP的坚持定时器 1.基本概念 TCP的接收方指名希望从发送方接收的数据字节(窗口大小)来进行流量控制,如果窗口大小为0,那么放送方就会阻止发送数据,直到接收方发来一个已跟新窗口大小的ACK为止,那么如果接收方发送的这个ACK中途丢失了呢(这种可能性是有的)?此时发送方收不到信息,就默认窗口大小还为0,那它就继续阻塞在那,这样就造成了死锁.那么如何解决此类问题呢,解决方案就是我此片博文的题目,TCP的坚持定时器.为了防止上述死锁的发生,TCP的发送方使用了一个坚持定时器,来周期性的向接收方查询

TCP/IP详解学习笔记--TCP的超时与重传

1.基本概念 TCP之所以可以安全的将数据在传输中的安全性,是因为它每次给对方发送数据,都会等待对方给个确认,当长时间收不到这个确认,发送端就会重发这个数据. 2.超时时间的测量 要测超时时间,TCP必须要发送一个特别序号的字节和接收包含该字节的确认之间的RTT,但是,确认本身就是有延时的,所以一般有一种简单的测量超时时间的公式 RTO = RB 其中R为随RTT变化而变化的平滑因子 3.拥塞避免算法 前边的博客有写道,当发送端使用慢启动算法时,由于其发送的数据段呈指数增长,因此也很容易达到网络

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

TCP/IP详解学习笔记(5)-IP选路,动态选路,和一些细节 1.静态IP选路 1.1.一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统路由表. Destination     Gateway         Genmask         Flags Metric Ref    Use Iface192.168.11.0    *               255.

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

TCP/IP详解学习笔记   这位仁兄写得太好了 TCP/IP详解学习笔记   这位仁兄写得太好了. http://blog.csdn.net/goodboy1881/category/204448.aspx TCP/IP详解学习笔记(13)-TCP坚持定时器,TCP保活定时器 TCP/IP详解学习笔记(12)-TCP的超时与重传TCP/IP详解学习笔记(11)-TCP交互数据流,成块数据流 TCP/IP详解学习笔记(1)-基本概念 为什么会有TCP/IP协议 在世界上各地,各种各样的电脑运行着