架构师基础一

 

架构师基础一

 

主要内容是数据是如何发送、影响发送速度的因素、为什么要限制带宽

一、数据的网络传输

数据是如何发送的?

  1. 应用程序首先将要发送的数据写入该进程的内存地址空间中。
  2. 应用程序通过系统函数(send)向内核发出系统调用,它将这些数据从用户态内存区复制到由内核维护的一段称为内核缓冲区的内存地址空间。这块地址是有限的空间,所以发送的数据以队列的形式进入,而这些数据来自多个进程,每块数据都有一定的额外记号来标记去向。如果发送的数据比较多,那么改系统调用就会进行多次,每次复制一定的数据大小,这个大小取决于网络数据包的大小以及内核区的承载能力。
  3. 当数据写入内核区后,内核会通知网卡控制器来取数据,同时CPU转而处理其他的进程。网卡接到通知后,便根据网卡驱动信息得知对应内核缓冲区的地址,将发送的数据复制到网卡的缓冲区中。注意以上一系列的数据复制中,数据始终按照连接两端设备的内部总线宽度来复制,也就是字节的整数倍。比如32位总线的主机系统一般使用32位总线宽度。
  4. 网卡缓冲区中的数据需要发送到线路中,同时释放缓冲区来来获取更多要发送的数据。只有二进制的数字信号才可以在线路中传输,所以这时候需要对数据进行字节到位的转换。
  5. 发送时网卡会使用内部特定的物理装置来生成可以传播的各种信号。

二、影响发送速度的因素

这里所将的带宽指的是数据的发送速度,如百兆网卡,一秒钟最快可以发送100Mb,那么影响他的发送速度的因素有哪些?

  • 数据发送装置将二进制信号传送至线路的能力称信号传输频率,以及另一端的数据接收装置对二进制信号的接收能力。值得注意的是,信号的接收能力至关重要,如果接收能力跟不上,发送能力不可能提高。
  • 数据传播介质的并行度,它完全等价于计算机系统总线宽度的概念。

三、限制带宽

在大多数情况下,我们都将Web站点服务器托管在IDC,通过将其连接到某个交换机,从而进入互联网。这时候,我们的服务器拥有自己的IP地址,当站点用户通过互联网向这台服务器请求数据后,数据从服务器经交换机到达指定的路由器,这个过程需要交换机的存储转发机制,也就是交换机从连接服务器的端口接收数据,存储到交换机内部的高速缓冲队列中,然后将其从连接路由器的端口发送出去,再经过路由器的转发,进入另一个网络,接下来重复这些过程,直至进入PC。

如果全世界只有你的服务器和你的用户在传输数据,那么这部分数据流经的每个交换节点都会全心全意地做好转发工作,此时你的数据在各节点转发的发送速度都可以达到理论上设备所能达到的最大值。但实际上每处交换节点都有可能来自其他的主机数据,包括你的数据在内的所有数据都汇集进入路由器的转发队列,路由器按照转发队列中的顺序来交错地发送这些来自不同主机的数据,所以单从来自不同主机的数据而言,其转发时的发送速度必定小于所有从路由器转发出去的数据的发送速度(即该交换节点的出口带宽)

因为带宽是有限的,它毫无疑问是个抢手的资源,而且互联网运营商在所有的基础交换节点设置管卡,也就是限制数据从你的主机流入路由器转发队列的速度,而只要流入路由器转发队列的数据,都会按照路由器出口带宽,流入其他网络。

猜你喜欢

转载自he-wen.iteye.com/blog/1574062