计算机网络在学什么?
· 通信:数据如何从一个实体传输到另一个实体?
· 服务:用户能利用网络做什么?
如何解决通信和服务的问题?
· 如何解决通信问题——分层解决:
物理层:比特流(透明)传输;
数据链路层:相邻节点之间的无差错通信;
网络层:两个主机之间的通信;
传输层:端到端主机中应用进程之间的通信,
· 如何提供服务——应用层提供:
DNS:域名解析服务;
WWW:资源共享服务;
SMTP:电子邮件服务;
FTP:匿名下载文件服务;
DHCP:主机IP地址等配置服务;
SNMP:网络管理服务;
.......
如何学习计算机网络?
· 按层次来学习,根据计算机网络的7层体系结构与TCP/IP的4层体系结构,我们归纳出学习计算机网络的5层原理体系结构:
· 之后,我们会根据每个层要解决什么问题,用了些什么协议,提供了什么服务来分析计算机网络。
· 每一层通过自己的协议来为高一层提供服务,如数据链路层通过自己的协议为网络层提供服务;最终,应用层为用户提供服务。
互联网的核心部分
· 互联网的核心部分中最重要的就是采用了分组交换的技术。
· 典型的交换技术有电路交换、分组交换和报文交换。
· 电路交换:
两部电话之间通过1条线可以连接,那么N部电话就需要N(N-1)/2条线,这不可行。
因此,我们可以采用一个中心节点,即交换机,来连接全网。
当某两台电话需要通话的时候,就把两台电话的线连接起来即可。
这里交换的含义其实就是转接,从通信资源的角度来看,就是按某种方式动态地分配传输线路的资源。
由于计算机数据具有突发性,因此使用电路交换来传输数据的话通信线路的利用率就很低,早期拨号上网的速度就非常非常慢。
· 分组交换:
分组交换采用存储转发的技术,在发送端,先把较长的报文划分成较短的,固定长度的数据段。
然后,在每个数据段前面添加首部(Header)来构建分组,这个首部里包括了各种解析数据的重要信息,如多少比特数据为一组,组的顺序,所使用的协议等。
然后,把分组一个一个地依次发送出去。
最后,接收端在收到分组的信息后,去除首部并还原成报文。
具体来说,第3步的发送是怎么发的呢?采用的是存储、转发的方式。
首先,路由器接收到分组信息后,把收到的分组放入缓存;然后查找转发表,找到某个目的地址应该从哪个端口转发;最后把分组送到适当的端口转发出去。
同时,每个分组所走的路线可以动态选择,可基于负载均衡等场景选择最佳路线。
分组交换的优点有:
· 高效:分组传输过程中动态分配带宽,对通信链路的占用是逐段而不是整段。
· 灵活:每一个分组可以独立选择最合适的转发路由。
· 迅速:以分组作为传送单位,可以不先建立连接就能向其它主机发送分组。
· 可靠:拥有可靠的网络协议;分布式多路由的分组交换网提高了生存性。
分组交换带来的问题:
· 分组在各存储节点转发时需要排队,这必然造成时延。
· 分组必须携带首部,也会造成一定开销。
· 报文交换:
电报通信采用了基于存储转发原理的报文交换(Message Switching),他是把一整段数据一起发送出去的。
它的发送时延比较长,因此现在很少人会使用这种交换方式。
· 通过比较三种交换方式,我们发现,分组交换最适合计算机网络传输:
计算机网络的分类
· 我们可以按照网络的作用范围对计算机网络进行分类:
· 也可以按照网络的使用者进行分类:
计算机网络的性能指标
· 速率:指的是数据的传输速率,单位是bit/s,kbits/s,Mbits/s,Gbits/s等;速率往往指的是额定速率,并非实际运行速率。
· 带宽(bandwidth):在计算机网络中,用于表示某通道传输数据的能力,表示在单位时间内网络中某信道所能通过的最高数据率。说人话就是最高网速。
· 吞吐量(throughput):单位时间内通过某个网络(或信道、接口)的数据量。吞吐量受网络的带宽或网络的额定速率限制。
· 时延(delay/latency):数据(一个报文/分组/比特)从网络一端传送到另一端所需的时间。
发送时延:也称传输时延,是从发送数据帧的第一个比特起,到该帧的最后一个比特发送完毕所需要的时间,说人话就是数据从主机的网卡传到网线上去所要的时间。计算公式为数据帧长度(bit)/发送速率(bit/s)。
传播时延:数据传到网线上去的时候以电磁波的形式传输,电磁波在信道中传输一定距离所花费的时间就是传播时延。计算公式为信道长度(m)/信号在信道上传播速率(m/s)。
处理时延:主机或路由器在接收到分组的时候,为处理分组所耗费的时间。
排队时延:分组在路由器输入输出队列中排队等待处理所消耗的时间。
总时延由四个时延之和决定,谁占大头要根据实际情况来计算。
注意:对于高速网络链路,我们能提高的只有数据的发送速率,而传播速率无法提高,这是由其物理介质决定的,因此不能笼统地说"数据发送速率越高,传送的就越快。"
· 时延带宽积:又称为以比特为单位的链路长度,即在一个长度的链路上,最多同时充满多少比特,计算公式为传播时延*带宽。
· 往返时间(round-trip time, RTT):从发送方发送数据开始,到发送方收到来自接收方的确认,总共经历的时间。
· 利用率:
信道利用率:某信道有百分之几的时间是被利用的。并非越高越好,当某信道的利用率上升时,该信道引起的时延也就迅速增加。
网络利用率:全网络的信道利用率的加权平均值。