docs/cs-basics/network/computer-network-xiexiren-summary.md
本文是我在大二学习计算机网络期间整理, 大部分内容都来自于谢希仁老师的《计算机网络》第七版这本书。为了内容更容易理解,我对之前的整理进行了一波重构,并配上了一些相关的示意图便于理解。
相关问题:如何评价谢希仁的计算机网络(第七版)? - 知乎 。
结点 (node):网络中的结点可以是计算机,集线器,交换机或路由器等。
链路(link ) : 从一个结点到另一个结点的一段物理线路。中间没有任何其他交点。
主机(host):连接在因特网上的计算机。
ISP(Internet Service Provider):因特网服务提供者(提供商)。
IXP(Internet eXchange Point):互联网交换点 IXP 的主要作用就是允许两个网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。
<p style="text-align:center;font-size:13px;color:gray">https://labs.ripe.net/Members/fergalc/ixp-traffic-during-stratos-skydive</p>RFC(Request For Comments):意思是“请求评议”,包含了关于 Internet 几乎所有的重要的文字资料。
广域网 WAN(Wide Area Network):任务是通过长距离运送主机发送的数据。
城域网 MAN(Metropolitan Area Network):用来将多个局域网进行互连。
局域网 LAN(Local Area Network):学校或企业大多拥有多个互连的局域网。
<p style="text-align:center;font-size:13px;color:gray">http://conexionesmanwman.blogspot.com/</p>个人区域网 PAN(Personal Area Network):在个人工作的地方把属于个人使用的电子设备用无线技术连接起来的网络 。
<p style="text-align:center;font-size:13px;color:gray">https://www.itrelease.com/2018/07/advantages-and-disadvantages-of-personal-area-network-pan/</p>分组(packet ):因特网中传送的数据单元。由首部 header 和数据段组成。分组又称为包,首部可称为包头。
存储转发(store and forward ):路由器收到一个分组,先检查分组是否正确,并过滤掉冲突包错误。确定包正确后,取出目的地址,通过查找表找到想要发送的输出端口地址,然后将该包发送出去。
带宽(bandwidth):在计算机网络中,表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。常用来表示网络的通信线路所能传送数据的能力。单位是“比特每秒”,记为 b/s。
吞吐量(throughput ):表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。吞吐量受网络的带宽或网络的额定速率的限制。
下面的内容会介绍计算机网络的五层体系结构:物理层+数据链路层+网络层(网际层)+运输层+应用层。
数据(data):运送消息的实体。
信号(signal):数据的电气的或电磁的表现。或者说信号是适合在传输介质上传输的对象。
码元( code):在使用时间域(或简称为时域)的波形来表示数字信号时,代表不同离散数值的基本波形。
单工(simplex ):只能有一个方向的通信而没有反方向的交互。
半双工(half duplex ):通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。
全双工(full duplex):通信的双方可以同时发送和接收信息。
失真:失去真实性,主要是指接受到的信号和发送的信号不同,有磨损和衰减。影响失真程度的因素:1.码元传输速率 2.信号传输距离 3.噪声干扰 4.传输媒体质量
奈氏准则:在任何信道中,码元的传输的效率是有上限的,传输速率超过此上限,就会出现严重的码间串扰问题,使接收端对码元的判决(即识别)成为不可能。
香农定理:在带宽受限且有噪声的信道中,为了不产生误差,信息的数据传输速率有上限值。
基带信号(baseband signal):来自信源的信号。指没有经过调制的数字信号或模拟信号。
带通(频带)信号(bandpass signal):把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道),这里调制过后的信号就是带通信号。
调制(modulation ):对信号源的信息进行处理后加到载波信号上,使其变为适合在信道传输的形式的过程。
信噪比(signal-to-noise ratio ):指信号的平均功率和噪声的平均功率之比,记为 S/N。信噪比(dB)=10*log10(S/N)。
信道复用(channel multiplexing ):指多个用户共享同一个信道。(并不一定是同时)。
比特率(bit rate ):单位时间(每秒)内传送的比特数。
波特率(baud rate):单位时间载波调制状态改变的次数。针对数据信号对载波的调制速率。
复用(multiplexing):共享信道的方法。
ADSL(Asymmetric Digital Subscriber Line ):非对称数字用户线。
光纤同轴混合网(HFC 网):在目前覆盖范围很广的有线电视网的基础上开发的一种居民宽带接入网
物理层主要做的事情就是 透明地传送比特流。也可以将物理层的主要任务描述为确定与传输媒体的接口的一些特性,即:机械特性(接口所用接线器的一些物理属性如形状和尺寸),电气特性(接口电缆的各条线上出现的电压的范围),功能特性(某条线上出现的某一电平的电压的意义),过程特性(对于不同功能的各种可能事件的出现顺序)。
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。 现有的计算机网络中的硬件设备和传输媒体的种类非常繁多,而且通信手段也有许多不同的方式。物理层的作用正是尽可能地屏蔽掉这些传输媒体和通信手段的差异,使物理层上面的数据链路层感觉不到这些差异,这样就可以使数据链路层只考虑完成本层的协议和服务,而不必考虑网络的具体传输媒体和通信手段是什么。
用户到互联网的宽带接入方法有非对称数字用户线 ADSL(用数字技术对现有的模拟电话线进行改造,而不需要重新布线。ADSL 的快速版本是甚高速数字用户线 VDSL。),光纤同轴混合网 HFC(是在目前覆盖范围很广的有线电视网的基础上开发的一种居民宽带接入网)和 FTTx(即光纤到······)。
链路(link):一个结点到相邻结点的一段物理链路。
数据链路(data link):把实现控制数据运输的协议的硬件和软件加到链路上就构成了数据链路。
循环冗余检验 CRC(Cyclic Redundancy Check):为了保证数据传输的可靠性,CRC 是数据链路层广泛使用的一种检错技术。
帧(frame):一个数据链路层的传输单元,由一个数据链路层首部和其携带的封包所组成协议数据单元。
MTU(Maximum Transfer Uint ):最大传送单元。帧的数据部分的长度上限。
误码率 BER(Bit Error Rate ):在一段时间内,传输错误的比特占所传输比特总数的比率。
PPP(Point-to-Point Protocol ):点对点协议。即用户计算机和 ISP 进行通信时所使用的数据链路层协议。以下是 PPP 帧的示意图:
MAC 地址(Media Access Control 或者 Medium Access Control):意译为媒体访问控制,或称为物理地址、硬件地址,用来定义网络设备的位置。在 OSI 模型中,第三层网络层负责 IP 地址,第二层数据链路层则负责 MAC 地址。因此一个主机会有一个 MAC 地址,而每个网络位置会有一个专属于它的 IP 地址 。地址是识别某个系统的重要标识符,“名字指出我们所要寻找的资源,地址指出资源所在的地方,路由告诉我们如何到达该处。”
网桥(bridge):一种用于数据链路层实现中继,连接两个或多个局域网的网络互连设备。
交换机(switch ):广义的来说,交换机指的是一种通信系统中完成信息交换的设备。这里工作在数据链路层的交换机指的是交换式集线器,其实质是一个多接口的网桥
进程(process):指计算机中正在运行的程序实体。
应用进程互相通信:一台主机的进程和另一台主机中的一个进程交换数据的过程(另外注意通信真正的端点不是主机而是主机中的进程,也就是说端到端的通信是应用进程之间的通信)。
传输层的复用与分用:复用指发送方不同的进程都可以通过同一个运输层协议传送数据。分用指接收方的运输层在剥去报文的首部后能把这些数据正确的交付到目的应用进程。
TCP(Transmission Control Protocol):传输控制协议。
UDP(User Datagram Protocol):用户数据报协议。
端口(port):端口的目的是为了确认对方机器的哪个进程在与自己进行交互,比如 MSN 和 QQ 的端口不同,如果没有端口就可能出现 QQ 进程和 MSN 交互错误。端口又称协议端口号。
停止等待协议(stop-and-wait):指发送方每发送完一个分组就停止发送,等待对方确认,在收到确认之后在发送下一个分组。
流量控制 : 就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。
拥塞控制:防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。
以下知识点需要重点关注:
域名系统(DNS):域名系统(DNS,Domain Name System)将人类可读的域名 (例如,www.baidu.com) 转换为机器可读的 IP 地址 (例如,220.181.38.148)。我们可以将其理解为专为互联网设计的电话薄。
<p style="text-align:right;font-size:12px">https://www.seobility.net/en/wiki/HTTP_headers</p>文件传输协议(FTP):FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在 FTP 的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)。 "下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用 Internet 语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
简单文件传输协议(TFTP):TFTP(Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为 69。
远程终端协议(TELNET):Telnet 协议是 TCP/IP 协议族中的一员,是 Internet 远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用 telnet 程序,用它连接到服务器。终端使用者可以在 telnet 程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个 telnet 会话,必须输入用户名和密码来登录服务器。Telnet 是常用的远程控制 Web 服务器的方法。
万维网(WWW):WWW 是环球信息网的缩写,(亦作“Web”、“WWW”、“'W3'”,英文全称为“World Wide Web”),中文名字为“万维网”,"环球网"等,常简称为 Web。分为 Web 客户端和 Web 服务器程序。WWW 可以让 Web 客户端(常用浏览器)访问浏览 Web 服务器上的页面。是一个由许多互相链接的超文本组成的系统,通过互联网访问。在这个系统中,每个有用的事物,称为一样“资源”;并且由一个全局“统一资源标识符”(URI)标识;这些资源通过超文本传输协议(Hypertext Transfer Protocol)传送给用户,而后者通过点击链接来获得资源。万维网联盟(英语:World Wide Web Consortium,简称 W3C),又称 W3C 理事会。1994 年 10 月在麻省理工学院(MIT)计算机科学实验室成立。万维网联盟的创建者是万维网的发明者蒂姆·伯纳斯-李。万维网并不等同互联网,万维网只是互联网所能提供的服务其中之一,是靠着互联网运行的一项服务。
万维网的大致工作工程:
统一资源定位符(URL):统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的 URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。
超文本传输协议(HTTP):超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的 WWW 文件都必须遵守这个标准。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。1960 年美国人 Ted Nelson 构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了 HTTP 超文本传输协议标准架构的发展根基。
HTTP 协议的本质就是一种浏览器与服务器之间约定好的通信格式。HTTP 的原理如下图所示:
代理服务器(Proxy Server):代理服务器(Proxy Server)是一种网络实体,它又称为万维网高速缓存。 代理服务器把最近的一些请求和响应暂存在本地磁盘中。当新请求到达时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应,而不需要按 URL 的地址再次去互联网访问该资源。代理服务器可在客户端或服务器工作,也可以在中间系统工作。
简单邮件传输协议(SMTP) : SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。 SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。 通过 SMTP 协议所指定的服务器,就可以把 E-mail 寄到收信人的服务器上了,整个过程只要几分钟。SMTP 服务器则是遵循 SMTP 协议的发送邮件服务器,用来发送或中转发出的电子邮件。
<p style="text-align:right;font-size:12px">https://www.campaignmonitor.com/resources/knowledge-base/what-is-the-code-that-makes-bcc-or-cc-operate-in-an-email/</p>搜索引擎 :搜索引擎(Search Engine)是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统。搜索引擎包括全文索引、目录索引、元搜索引擎、垂直搜索引擎、集合式搜索引擎、门户搜索引擎与免费链接列表等。
垂直搜索引擎:垂直搜索引擎是针对某一个行业的专业搜索引擎,是搜索引擎的细分和延伸,是对网页库中的某类专门的信息进行一次整合,定向分字段抽取出需要的数据进行处理后再以某种形式返回给用户。垂直搜索是相对通用搜索引擎的信息量大、查询不准确、深度不够等提出来的新的搜索引擎服务模式,通过针对某一特定领域、某一特定人群或某一特定需求提供的有一定价值的信息和相关服务。其特点就是“专、精、深”,且具有行业色彩,相比较通用搜索引擎的海量信息无序化,垂直搜索引擎则显得更加专注、具体和深入。
全文索引 :全文索引技术是目前搜索引擎的关键技术。试想在 1M 大小的文件中搜索一个词,可能需要几秒,在 100M 的文件中可能需要几十秒,如果在更大的文件中搜索那么就需要更大的系统开销,这样的开销是不现实的。所以在这样的矛盾下出现了全文索引技术,有时候有人叫倒排文档技术。
目录索引:目录索引( search index/directory),顾名思义就是将网站分门别类地存放在相应的目录中,因此用户在查询信息时,可选择关键词搜索,也可按分类目录逐层查找。
以下知识点需要重点关注: