网络基本知识

来源:互联网 发布:网络优化工程师好学不 编辑:程序博客网 时间:2024/05/22 15:01

关于网络的一些基本知识,比如物理传输速率,带宽,网络传输速率,延迟等概念感觉还是有些模糊,在这里做一个总结以方便记忆。

先说说物理传输速率,电缆中的信号传播速度一般在20w公里每秒,光纤因为折射等原因好像要低一点,没关系,都算20w好了,这个基本上无法提高了。我们的数据在网络上传输时,依赖的底层物理介质就是电缆或者光纤,考虑国内外传输距离一万公里,在这里电缆的传输速度相当于汽车的行驶速度(假设汽车速度固定),而传输距离相当于高速公路的总里程,因此这里的传输速度和距离长度是没有直接关系的,不管你是传输到北极还是南极,都是20w公里每秒。你的一个bit数据从网络的一端开始传输,假设中间没有任何干扰(比如路由跳数延迟),传输到另一端的时间就是1万公里除以20万公里等于50毫秒。这是一个很小的值,如果在国内传输基本会更小,因此由于物理介质传输速度导致的延迟是非常小的,甚至可以忽略不计。


带宽实际上是在传输物理介质的基础上而来的,是运营商网络能提供的单位时间内最大传输数据量,常用Mbps/Gbps来表示每秒钟能传输的数据量。这里Mbps/Gbps时运营商提出给概念,是运营商在物理介质的基础上通过网络建设提出的网络带宽速度。由于物理介质的传输速度是固定的,为了能同时传输足够多的数据,运营商需要扩展网络线路,解决网络上数据量过大导致的网络拥塞问题。这里的网络线路相当于火车轨道,如果一条线路同时只能行驶一辆列车,为了单位时间内运送更多的货物,可以增加轨道增加行驶列车,带宽就是运送的货物。很多人可能将带宽理解成我们数据在网络上一定距离内传输的速度,其实不是这样的,这里的带宽和我们通常理解的物理传输速率其实没有直接关系。物理传输速率提升可以提高带宽,但是通过网络扩建同样可以提高带宽。通常运营商面对普通消费者宣传地网速就是这里的带宽。


网络传输速率需要根据带宽的使用来区分,比如可靠传输,不可靠传输。

对于不可靠传输,发送方只管发,接收方只管收,这时候传输速率与距离是无关的,只跟线路能承载的速率(带宽)有关。UDP协议是这样工作的。一些视频会议之类的协议工作在这种方式上,如果丢包或者传错了,最多就是对面卡一下而已,不是什么大问题。这时候的传输速率主要受到线路本身以及传输设备协议的限制,双绞线至少可以达到1Gbps,光纤至少可以达到10Gbps。
但是真实网络中我们通常需要一种可靠传输的方法,因为我们发送出去的数据有可能会传错,有可能会丢失,如果我们是传送文件这样的比较重要的数据,我们必须确保对方正确收到了所有的数据,否则我们整个文件都可能是不能用的。这时候我们通常使用TCP协议,这个协议的原理是发送方一边发送数据,接收方收到的同时会发送一个确认信息给发送方,告诉发送方自己已经正确收到了某一段数据。如果一段时间内发送方没有收到确认,说明之前的数据可能发丢了,就会尝试重新发送之前没有确认过的数据。
在TCP传输中有一个概念叫做窗长,由于我们需要不断确认,而且也要确保接收方能来得及处理我们发送的数据,我们不可能一口气不停往下发,而是每发送一小段数据就停下来,等待一个确认信息。在没有确认信息的情况下一口气能发送的最大数据大小就叫做窗长,由于历史原因,这个数据使用16位二进制数表示,最大是65535,也就是一次确认最多传输64KB的大小。
我们考虑数据在发送方和接收方之间走一次来回的延迟,这个一般叫做round-trip time(RTT),一般比如说你用ping命令去ping一个地址的时候,看到的时间就是RTT。一个TCP报文从发送方发出,到接收方的确认信息到达发送方,这个时间就是RTT,那么这段时间当中最大能发送的数据量就是Max Windows Size = 64KB,于是传输速率受到确认机制影响的上限是:窗长 / RTT。这就是延迟对可靠传输的影响。
比如说我们现在有两个距离非常远的发送方和接收方,它们之间的延迟有100ms,那么使用默认最大窗长的时候,最大传输速率就是640KB/s = 5Mb/s左右。这个按现在的网速来看显然已经不够快了,而一些很重要的数据链路,比如说同步卫星通信的链路,跨大洋的海底光缆线路,都会有比较高的延迟,这时候如果使用默认窗长,传输速率就会明显低于线路的速率限制,浪费了很多线路资源。幸好TCP协议现在支持一种扩展,可以将窗长最大扩充到2^30字节,也就是1GB,这样即使传输双方RTT达到了1s,也可以有8Gbps的传输速率。不过不一定通信双方都实现了、或者愿意使用这一协议扩展,在没有使用的时候就仍然受到前面所说的限制。另外如果真的要建立一个到火星的TCP,到火星的RTT可能有10分钟以上,这个速率就又要大大受影响了。

延迟和网络上的很多因素有关系,比如物理介质传输延迟(很小中国到美国一万公里在50毫秒级别),传输协议,上面所述的可靠传输,比如路由跳数,网络路由跳数过多在路由上耗费的延迟过大,运营商网络互通的问题。比如南电信北网通导致的跨网传输速度慢(可以通过bgp解决),比如网络拥塞,网络拥塞是由于网络上传输数据过多导致拥堵,可以把运营商网络比作双向车道,传输数据相当于汽车,汽车多了自然道路拥堵造成延迟,延迟导致的上班迟到可能会扣你钱,而数据拥塞可能导致丢失。






原创粉丝点击