欢迎您访问我爱IT技术网,今天小编为你分享的电脑教程是网络协议方面的经验知识教程:如何提高ADSL速度,下面是详细的分享!
如何提高ADSL速度
作者:yansy 来源: DRL
DSL的设计思路就是上下行互不影响的,也就是说上下行可以同时达到满负荷。
但是我们平时使用的时候可能经常会有这样的感觉:当自己满负荷上传的时候,下载达不到满负荷,反之也一样。这种现象的出现就是因为ACK没有优先权。
我们先回顾一下TCP的传输原理:
假设A要和B建立TCP的连接,过程如下:
A首先向B发送syn信号,请求建立连接
B答复A的syn请求,这种答复信号就是ACK
A收到B的ACK信号,开始建立连接,传输数据
如果A和B之间要建立双向的TCP连接,过程如下:
A首先向B发送syn信号,请求建立连接
B答复A的syn请求,这是B发送的ACK信号;同时B向A发送syn请求,并等待A的ACK信号
A收到B的ACK信号,建立A到B的连接;同时答复A发过来的syn信号,也就是A发送了ACK给B
B接受到A的ACK信号,建立B到A的连接
这样就经过了一个三次握手过程,经过两两确认,建立了双向的TCP连接。
不管是单向还是双向的TCP连接,数据传输开始后,每次传输的数据都带有一个syn值,这个syn值是在建立连接的syn值上递增的,在传输下一个数据之前,必须要接收到对方的ACK值,这个ACK值是自己刚才发送的(syn值+1)。因为只有接收到对方的ACK值,才意味着对方已经收到了我发送的syn值的数据,才能接下来发送值为(syn+1)的数据,这样就保证了TCP传输的可靠性。
通过上面的回顾,我们来分析单向传输的情况:
假设B是FTP server,A是FTP client,A从B上面下载数据。连接建立以后,B向A每次发送数据之前都需要接收A给B的ACK信号,因为这时候绝大部分数据都是B到A的,A到B基本没有数据在传输,所以A到B的ACK信号没有受到任何影响,可以顺利发送,这种情况下,传输可以达到A和B之间的较小带宽的满负荷值。
接下来我们看看A和B之间双向传输的情况:
仍然假设B是FTP server,A是FTP client,但是A从B上面下载数据的同时还上传数据到B或其他的FTP SERVER。这种情况下,B向A发送数据时需要等待A发送给B的ACK信号,A向B(或其他机器)发送数据时需要等待B(或其他机器)的ACK信号。不幸的是,A的发送和接收两个方向的信道都有数据在传输,如果ACK同时也传输,那就必然会受到正常传输的数据的影响, 需要排队,而发送方因为TCP的设计是必须要收到ACK后才发送下一数据段,这样就导致了双向传输时跑不到理论值的最大带宽。
要解决这个问题很简单,只要采取某种机制保证数据和ACK信号同时传输的时候ACK信号可以优先传输就行了,这种做法就是QOS(质量服务)的一个方面。
接下来再分析PPPOE的DSL的情况:
QOS建立在pppoe的节点。pppoe的节点有哪些呢?首先是操作系统拨号。在Windows系统中,Windows XP以前的系统并自带pppoe支持,需要安装第三方的拨号软件,我试过的软件中RASPPPOE0.98是支持QOS,0.98以前的版本不支持。
在Windows XP和Windows 2003中系统自带了pppoe的支持,通过系统自带的pppoe拨号建立的dsl连接,默认的时候是支持QOS的。(这个选项一度被人误导说要占用额外的带宽,建议大家不要勾选,真是害人不浅)
在linux和类linux系统中,可以通过IPFW+DUMMYNET或者PF+ALTQ来实现QOS
可是对于现在的很多DSL用户,并不是采用操作系统来拨号的,比如用宽带路由器。遗憾的是目前市面上各种各样的几百块钱的DSL router,各种WIFI+router的产品,都不支持ACK优先,当然,如果使用cisco的路由器(比如1700,2600)+DSL模块,是毫无疑问可以配置QOS保证ACK优先的。
以上就是关于如何提高ADSL速度的网络协议知识分享,更多电脑教程请移步到>>电脑教程。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
