
























前言:市面上的各种书籍按照计算机对信息的处理流程分别有从application到physical(从上到下),从physical到application(从下到上)两种介绍方式。粗略看了Cisco英文教程、《网络是怎样连接的》以及《计算机网络》,对于完全零编程基础,对计算机的硬件构成(CPU,GPU,网卡NIC,主板maiboard,内存Memory,硬盘Storage等)有基本了解的人,想要学习Network相关知识最好还是从可见的硬件层次向上攀爬。所以整理了这段时间的学习笔记,供想要入门计算机网络的同志交流学习。特别注意到,计算机科学很多术语的中文翻译混乱,概念容易混淆,对这部分用词决定直接使用英文原文,部分内容直接使用英文写作。本人为某乎同名专栏作者,奈何某乎不干人事,非说我的内容是AI写的,给我封禁、屏蔽等等待遇,申诉无果,只好狡兔三窟。另外特别强调英文对于高层次发展的重要性,由于国内英文资料实在缺乏,特此分享我找到的资料和学习笔记。
Notice: “internet” is a common noun widely referring to any computer network with any type of communication protocol. But “Internet” is a proper noun exactly referring to the broadest global internet with TCP/IP communication protocol.
Internet is connections between network and network.
A network consists of nodes, links and computers connected by hardware. Those computers that we see, use and operate are called hosts.
ISP: Internet Service Provider, such as 中国电信,中国移动,中国联通
A three-tier network architecture is a hierarchical design that divides a network into three layers, each with specific functions:
对应三层组织,可以划分三层网络实体,以及描述这些ISP在互联网中工作的层次:
IXP: Internet eXchange Point, 直接连接两个网络的枢纽,不需要通过上级网络组织转发信息,节省费用,降低延迟
互联网的边缘部分:
各个主机(端系统,end system)之间的通信方式可划分为:客户-服务器(C/S),对等(P2P)两种方式
client-server,不对等的通信,由通用简单的客户程序向专业复杂的服务器程序发送请求,服务器程序被动等待接受并回应请求
peer to peer,对等的通信,不区分client与server,每一台运行P2P软件的主机都兼具client和server功能
互联网的核心部分:
由于单个计算机上可以同时运行着多个程序,所以计算机通信的本质是Host A上的某个进程与Host B上的某个进程进行数据交换(打电话)。
router(路由器)是专用于实现packet switching的计算机,packet switching发展自电话通信的电话交换机技术,电话端口通过电话交换机分配连接线路避免了两两直接连接造成的电线数量随端口数量增加指数式的增长。
交换switching是动态的分配传输线路资源的操作。
电话通信使用的circuit switching(电路交换)三步骤:建立连接(占用通信资源)-通话(传输数据)-释放连接(归还通信资源),
circuit switching技术在通话时间内,两个用户始终占用着端到端的通信资源,因为人脑处理通话信息的速度相对信息发送接收的速度很快,用户之间互相发送接收对话的过程几乎可以无缝衔接。
而计算机处理信息的速度相对发送接收信息的速度很慢,如果占线通话,只有很短时间用于发送接收信息流,大部分时间在等待本地的信息处理,这导致circuit switching技术用于计算机通信时效率低下,因为占用的传输线路资源大部分时候都闲置浪费了。
packet switching中store and forward(存储转发)操作:
packet switching技术只在传输packet时候占用通信资源,计算机的非传输操作不占用通信资源。当网络中部分node与link故障或者阻塞的时候,router也能够自动寻找其他的转发路径。
packet switching中没有端到端之间连接线路的建立、占用、释放等过程,但是packet携带的控制信息也造成新的开销(overhead)。
网络中的多个计算机可以同时彼此通信,packet的分装也可以实现计算机上的多个进程同时与另一台计算机上的进程通信,但是packet在router储存转发时需要排队,造成时延(delay)。
packet switching旨在解决packet这样的小容量数据的多地址间传输问题,这种情况下建立连接的时间远超过数据传输时间,而当端口与端口之间需要连续传输大容量数据的时候,packet switching的表现会打折扣。
计算机网络的速率使用比特bit来衡量,单位为bit/s,
$10^3$为kilo,缩写为k,千
$10^6$次方为Mega,缩写为M,兆
$10^9$次方为Giga,缩写为G,
$10^{12}$次方为Tera,缩写为T。
注意,计算机中的数据量常用字节byte度量,1 byte通常为8 bit
此时字母缩写使用二进制
K表示$2^{10}$,即1024,
M表示$2^{20}$,
G表示$2^{30}$,
T表示$2^{40}$。
计算机网络的带宽通常表示为单位时间内某信道所能通过的最高数据数量,单位为bit/s
吞吐量表示单位时间内实际通过某个网络、某个信道、或者某个接口的实际数据量,单位为bit/s
延迟是指数据从一端发出到另一端接收所需要的时间,总的延迟由以下几个部分造成,
transmission delay发送延迟:从发送的第一个bit算起,到发送完该段数据最后一个bit为止,所需要的时间,发送延迟=数据长度/数据发送速率
propagation delay传导延迟:信号波在信道中传导花费的时间,传导延迟=传导长度/信号波传导速率
Processing delay处理延迟:router等网络设备处理packet中的控制信息所需要的时间
queuing delay排队延迟:packet在任务队列中等候处理消耗的时间
对于高速网络链路,提高的仅仅是数据的发送速率而非信号波传导速率。信号波传到速率取决于通信线路的材料。“光纤信道的传输速度高”指的是发送速率比较快,光在光纤中的传导速率有时候会比电磁波在铜线中的速率更慢。
计算机网络通信往往是双向交互的,因此数据往返传输一次消耗的时间,即往返时间RTT,也是一个衡量网络质量的重要参数。例如A向B发送一段数据,需要收到B返回的正确接收信号,才能继续发送下一段数据,此时数据传输的速率计算就需要考虑RTT了。
延迟带宽积表示网络管道中同时传输的最大数据量,BDP=Propagation Delay×Bandwidth,反映了网络在给定延迟下能够承载的最大数据量。类比水管,Propagation delay是水管长度,Bandwidth是水管截面积,当水充满整个管道时,数据总量等于二者乘积。
利用率Utilization可分为信道利用率和网络利用率两种。
信道利用率channel utilization指某一信道有百分之几的时间被利用。
网络利用率network utilizaiton是全网信道利用率的加权平均值。
网络当前的延迟$D$可以由网络利用率$U$以及网络空闲时候的延迟$D_0$计算得出
$D=D_0/(1-U)$
网络利用率达到50%的时候延迟就会加倍,网络利用率过高延迟就会非常大,因此网络利用率并非越高越好。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。