1.1 带宽
带宽的单位是“bit/s”,也就是单位时间的比特数。
我们常说的比如100M带宽,全称应该是100Mbit/s,或者100Mbps。
1.2 数据如何发送
数据的发送一般经过以下几个环节:
1) 应用程序首先将要发送的数据写入该进程的内存地址空间中。通常在程序开发中这只需要一般的运行时变量赋值即可。
2) 应用程序通过系统函数库接口(比如send函数)向内核发出系统调用,系统内核随后将这些数据从用户态内存复制到由内核维护的一段称为内核缓冲区的内存地址空间。这块地址空间的大小通常是有限的,所有要发送的数据将以队列的形式进入这里,这些数据可能来自多个进程,每块数据都有一定的额外记号来标记他的去向。
3) 当数据写入内核缓冲区后,内核会通知网卡控制器前来取数据,同时CPU转而处理其他进程。网卡控制器接到通知后,便根据网卡驱动信息得知对应内核缓冲区的地址,将要发送的数据复制到网卡的缓冲区。
4) 网卡缓冲区的数据需要发送到线路中,同时释放缓冲区来获得更多要发送的数据。但是只有二进制的数字信号才可以在线路中传输,所以这时候需要对数据进行字节到位的转换,然后将数据的每个位按照顺序依次发出。
5) 发送时网卡会使用内部特定的物理装置来生成可以传播的各种信号。比如在使用铜线线路时,网卡会根据“0”与“1”的变化产生不同的电信号;而使用光纤线路时,网卡会产生不同的光信号。
1.3 响应时间
1.3.1 下载速度
下载速度就是指单位时间里从服务器到达用户PC的数据量的多少,一般用数据量的字节数多少来描述,所以下载速度的单位为“B/s”。
下载速度的计算公式:下载速度 = 数据量字节数 / 响应时间
1.3.2 响应时间
响应时间 = 发送时间(数据量比特数 / 带宽)