计算机网络
计算机网络
1.球鞋网络(Sneakernet)
可用于任何使用物理媒体在计算机之间传输数据的情况,而不是使用电子网络。早期通过纸卡或磁带传递计算机信息。现在用于大型资料的传输,如超大型的望远镜数据信息。
Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway.
—Tanenbaum, Andrew S. (1989).永远不要低估一台正在高速公路上飞驰又满载磁带的卡车的带宽
2.局域网
计算机近距离构成的小型网络称为局域网,LAN。
—以太网(Ethernet):
1.最简单形式:一条以太网电线连接数台计算机,数据以电信号的形式进行传递。以太网需要每台计算机有唯一的媒体访问控制地址,简称MAC地址。此地址放在头部,作为数据的前缀发送到网络中。如此,计算机只需要监听以太网电缆,只有识别出MAC地址,才会处理数据。
2.多台电脑共享一个传输媒介,这种方法叫“载波侦听多路访问”,简称“CSMA”。多态电脑进行监听载体,数据传输的速度称为“带宽”。
3.当位于同一网络的两台以上的计算机想要同时传输信息时会产生冲突,此时计算机检测到冲突并停止一定时间来避免冲突。一种方案是停止1s+随机时间,另一种是停止1s、2s、4s、8s……,这被称为“指数退避”。
4.冲突域:为了减少冲突和提高效率,需要减少同一载体中设备的数量。载体和其中的设备总称为“冲突域”。
5.交换机(switch):使用交换机将一个冲突域拆分为两个冲突域,减少冲突域的范围。
交换机位于两个更小的网络之间,必要时才会在两个网络间传输数据。交换机会记录一个列表,列表上写着哪个MAC地址在哪边网络。这样,a—>c 和 d—>f的传输可以同时发生。但是,若f—>a,则数据会通过交换机且两个网络都会被占用。
6.路由(routing):大型网络中,从一个节点到另一个节点通常有许多路线。如果两个计算机或网路相隔遥远,那么传输会通过更多的关口也就是冲突域,导致冲突机会增加,产生高延迟。因此,最简单的方法是分配一条专用的通信线路,就像早期的电话。将线路转接到正确线路的方式为“电路交换”。
7.“报文交换”:报文交换是以报文为数据交换的单位,报文携带有目标地址、源地址等信息,在交换结点采用存储转发的传输方式。报文交换可以使用不同的路由(routes),使通信跟具有容错性(不会因为某条线路受损而导致无法通信)。跳数:信息沿着路由跳转的次数叫“跳数”(记录跳数可以分辨出路由问题)。“跳数限制”:如果看到某条信息的跳数很高,就知道路由肯定出问题了。报文交换的缺点:报文比较大时会堵塞网络,英文只有把整个报文从一战转到下一站后,才能继续传递其他报文。解决方法是将大报文分成许多小块,称为:“数据包”。每个数据包都有目标地址,这样路由器知道应该发到哪里。报文的具体格式有“互联网协议”定义,简称IP,互联网协议标准创建于1970年代。
8.IP-互联网协议:
数据包想在互联网上传输,需要符合“互联网协议”的标准。数据包头部储存的关于数据的数据也叫“元数据”。如果只包含地址,数据到达之后,计算机不知道把数据包给哪个程序使用。因此需要在IP之上开发更高级的协议。其中,最简单、最常见的叫“用户数据报协议”,简称为“UDP”。UDP包含不同的端口号,当一个数据包到达后,接收方会读取UDP头部中的端口号,并将数据交给拥有对应端口号的程序。
IP:负责把数据包送到正确的计算机;
UDP:负责把数据包交给正确的程序。
UDP中还有一个“CHECKSUM”(校验和),电脑会把所有数据加在一起算出“校验和”,UDP中,校验和以16位二进制储存。若超出,则舍去高位,保留低位。当接收者接受到数据包后,会重复这个步骤。若和头部校验和一致,代表一切正常。反之,代表数据出现了问题。
传输时的功率波动或线路故障都会导致数据的损失。UDP不提供数据修复或数据重发的机制,且发送方无法通过UDP得知数据包是否到达目的地。如果要求所有数据必须到达,就要用传输控制协议-TCP。
9.TCP
TCP头部也有“端口号”和”校验和”及一些特性:
- TCP数据包有序号:接收方可以根据序号把数据包排列成正确的顺序,即使到达的时间不同。
- TCP要求接收方的电脑收到数据包,并且校验无误后,给发送方发一个确认码,简称“ACK”,代表收到了。
- TCP会根据ACK发送的速度确认网络的拥挤状况,根据网络状况自动调整传输率。
- UDP和TCP的应用场景不同:王者荣耀如何使用UDP做到低延迟(我就一搜还真有……不过是个噱头……
10.DNS-域名系统
浏览器访问DNS服务器,询问地址的IP地址为多少。得到IP后服务器会给在这个地址发TCP请求。顶级域名(TLD)在域名的最顶部,如:.com和.gov。
然后是二级域名:
再下一层是子域名:
3.万维网
1.各种超链接组成的巨大互联网络被称为万维网。为了能使网页相互连接,每个网页需要一个唯一的地址,这个地址被称为“统一资源定位器-URL”。当访问地址下服务器的指定资源时,会用到“超文本传输协议-HTTP”。如:我们想要访问“courses”,就会向服务器发送指令“GET /courses”。该指令以“ASCII编码”发送到服务器。服务器返回对应的网页资源,浏览器渲染后在屏幕上显示。HTTP中网页回应的报文中的状态码代表了访问结果:
状态码200:找到网页成功返回
400~499:客户端出错
“超文本”的储存和发送都基于普通文本的形式,纯文本无法标记出链接。为此,出现了HTML,超文本标记语言。
4.网络中立性
简单来说,网络中立性是指应该平等对待所有的数据包。数据包的速度与优先级应该使一样的。