Reference:《Computer Networking》(ver.6) by. Jim Kuros, Keith Ross
Github计算机网络笔记
这门课的内容知识点多且杂……我就挑一些自认的重点进行回顾了
created by 偷偷
打赏偷偷⛱️:[置顶]⬆️修考使用必看🔥
Part 1:
1️⃣网络根据范围范围划分有:
PAN (Personal Area Network,个人区域网络):这是最小的计算机网络。可以使用蓝牙或其他红外设备连接设备。它的连接范围为10米,可以覆盖直径达30英尺的区域。PAN网络使单个人的个人设备能够相互连接。
LAN (Local Area Network,局域网):在小型网络中,例如建筑物或小型办公室,系统是相互连接的。LAN网络成本低。使用令牌环技术。令牌环是一种用于构建局域网络的计算机网络方法。两台或更多的个人计算机可以通过节点(线或电缆)连接。数据传输快速且评价良好。
MAN (Metropolitan Area Network,城域网):例如,可以在城市内连接有线电视连接的网络。以太网,ATM,令牌环和FDDI等都是一些例子。MAN网络具有更广泛的应用范围。这种网络接口可以用于将公民连接到各种组织。
WAN (Wide Area Network,广域网):一个覆盖一个国家或更大群体的网络。WAN网络也连接了电话连接。互联网是世界上最大的WAN,主要由政府实体用于处理数据和信息。
2️⃣根据拓扑结构分类有:
参考链接🔗
计算机网络的拓扑结构(Network Topology)是指网络中各节点(Node,如计算机、交换机、路由器等设备)的物理或逻辑布局。以下是一些常见的拓扑结构,以及它们的优点和缺点:
总线拓扑(Bus Topology):在这种网络中,所有计算机节点和网络系统都连接到一个单一的传输通道。它的优点包括简化的布局、成本效益以及适用于小型网络。然而,如果主干线失败,整个网络将会瘫痪。此外,它不适合大流量的数据传输,因为这会增加数据碰撞的机会。总线拓扑,信道利用率高,增减节点方便,建网容易,节省线路。缺点是总线型拓扑结构只具备一定程度的负载能力,导致总线长度有限,一条总线上连接的节点数量因此也是有限的。
环形拓扑(Ring Topology):在环形拓扑中,设备形成环形,每个设备都通过点对点连接与其两侧的邻居连接。优点是简化了路径选择的控制,所需电缆长度较短;缺点是由于信息是串行穿过环路中多个节点,当节点过多时,会影响传输效率,延长网络的响应时间;由于环路是封闭的,所以不利于扩充;由于信息传输要通过环路上的每一个节点,因此某个节点发生故障将会导致全网故障。
星型拓扑(Star Topology):在星型拓扑中,所有的节点都直接连接到一个中心节点。如果中心节点失败,整个网络将会瘫痪。然而,星型拓扑的布线成本较高。星型拓扑结构简单,易于管理;部署与维护相对比较容易;网络传输延迟小,误码率较低;网络资源共享能力较差;中央节点负荷较重;通信线路利用率较低。
网状拓扑(Mesh Topology):在网状拓扑中,每个节点都与其他所有节点直接连接。这种拓扑提供了高性能,因为没有数据碰撞。如果一台设备或一条线路失败,其他设备仍然可以继续工作,因此它比其他类型的拓扑更可靠。节点间有多种通信信道,信息传输可选择最佳路径使得延时最小;网络结构复杂,成本较高,不易扩充,不易维护;网络控制机制比较复杂。
树形拓扑(Tree Topology):树形拓扑是星型拓扑和总线拓扑的混合。它有一个根节点,其他所有节点都直接或间接地连接到这个根节点。采用分级的集中控制方式,每条通信线路均可以双向传输,任何一个节点发送的信息都可以传输至整个树型网路中的所有节点,具备一定的容错能力;利于扩展,树型拓扑结构可以比较容易地继续增加其他分支以及子分支;易于隔离故障,出现故障的某个分支可以比较容易地隔离开来。除叶节点及其相连链路以外的任何其他节点或链路出现的故障都将会影响整个网络。
混合拓扑(Hybrid Topology):混合拓扑是两种或多种基本网络拓扑(如星型、环形、总线、网状和树形)的组合。
3️⃣根据通讯模式分类:
单播 (Unicast):这是一种一对一的通信模式。在网络中,交换机和路由器只对数据进行转发,不进行复制。如果有多个客户端需要相同的数据,服务器需要逐一传送,重复多次相同的工作。但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用单播模式。单播可以及时响应客户信息,做到一一对应,但是正式因此带来了一定的流量负担,服务器流量=客户机数量×客户机流量,若客户及数量庞大,则网络负载会很大。
多播 (Multicast):这是一种一对一组的通信模式。也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯。
广播 (Broadcast):这是一种一对所有的通信模式。网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。
4️⃣根据传送方向分类:
单工通信 (Simplex Communication):单工通信只支持信号在一个方向上传输(正向或反向),任何时刻都不能改变信号的传输方向。为保证正确传送数据信号,接收端要对接收的数据进行校验,若校验出错,则通过监控信道发送请求重发的信号。此种方式适用于数据收集系统,如气象数据的收集、电话费的集中计算等。例如,计算机和打印机之间的通信就是单工模式,因为只有计算机向打印机传输数据,而没有相反方向的数据传输。
半双工通信 (Half-duplex Communication):半双工通信允许信号在两个方向上传输,但某一时刻只允许信号在一个信道上单向传输。因此,半双工通信实际上是一种可切换方向的单工通信。此种方式适用于问讯、检索、科学计算等数据通信系统;传统的对讲机使用的就是半双工通信方式。由于对讲机传送及接收使用相同的频率,不允许同时进行。因此一方讲完后,需设法告知另一方讲话结束(例如讲完后加上’OVER’),另一方才知道可以开始讲话。
全双工通信 (Full-duplex Communication):全双工通信允许数据同时在两个方向上传输,即有两个信道,因此允许同时进行双向传输。全双工通信是两个单工通信方式的结合,要求收发双方都有独立的接收和发送能力。全双工通信效率高,控制简单,但造价高。计算机之间的通信是全双工方式。一般的电话、手机也是全双工的系统,因为在讲话时可以听到对方的声音。
5️⃣根据交换方式分类
电路交换 (Circuit Switching):在进行数据传输前,两个结点之间必须先建立一条专用的物理通信路径(由通信双方之间的交换设备和链路逐段连接而成),该路径可能经过许多中间结点。这一路径在整个数据传输期间一直被独占,直到通信结束后才被释放。电路交换的关键点是,在数据传输的过程中,用户始终占用端到端的固定传输带宽。
报文交换 (Message Switching):数据交换的单位是报文,报文携带有源地址,目标地址,数据等信息。报文交换的主要特点是:存储接受到的报文,判断其目标地址以选择路由,最后,在下一跳路由空闲时,将数据转发给下一跳路由。
分组交换 (Packet Switching):同报文交换一样,分组交换也采用存储转发方式,但解决了报文交换中大报文传输的问题。分组交换限制了每次传送的数据块大小的上限,把大的数据块划分为合理的小数据块,再加上一些必要的控制信息(如源地址、目的地址和编号信息等),构成分组(Packet)。网络结点根据控制信息把分组送到下一结点,下一结点接收到分组后,暂时保存并排队等待传输,然后根据分组控制信息选择它的下一个结点,直到到达目的结点。
常见的性能计算指标
速率 (Rate):速率是指连接在计算机网络上的主机在数字信道上传送数据的速率,也称为数据率 (data rate) 或比特率 (bit rate)。速率的单位是 bit/s (比特每秒)。例如,如果平时家里带宽为 600M,其实是指的是 600Mb/s,真实速度其实要在带宽的基础上除以 8:600(Mb/s)/8 = 75M/s。
带宽 (Bandwidth):带宽指网络的通信线路传送数据的能力,即单位时间内从网络中的某一个点到另外一个点所能通过的最高数据率,带宽的单位为 bit/s。例如,对于一个 1Gbit/s 的以太网,意味着其额定速率为 1Gbit/s,那么这个数值也是该以太网的带宽的绝对上限值。
吞吐量 (Throughput):吞吐量表示单位时间内通过某个网络(通信线路、接口)的实际的数据量。吞吐量受制于带宽或者网络的额定速率。例如,对于一个 1Gbit/s 的以太网,意味着其额定速率为 1Gbit/s,那么这个数值也是该以太网的吞吐量的绝对上限值。
时延 (Delay):时延是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。时延是由以下几个不同的部分组成的:发送时延、传播时延、处理时延、排队时延。其中:
发送时延:结点将分组的所有比特推向(传输)链路所需要的时间,即从发送分组的第一个比特算起,到该分组的最后一个比特推向传输链路所需要的时间。也称传输时延。发送时延的计算公式为:发送时延 = 分组长度 (数据长度) / 信道宽度 (发送速率)。
传播时延:电磁波在信道中传播一定的距离需要花费的时间,即一个比特从链路的一端传播到另一端所需要的时间。传播时延的计算公式为:传播时延 = 信道长度(链路长度) / 电磁波在信道中的传播速率。
处理时延:数据在交换结点为存储转发而进行的一些必要的处理所花费的时间。例如:分析分组的首部、从分组中提取数据部分、进行差错检验或查找适当的路由等。
排队时延:分组在进入路由器后要先在输入队列中排队等待处理。因为路由器可能也同时在处理其他链路传过来的数据,所以需要等待。然后终于等到路由器来处理你的数据了,路由器处理完你的数据后,会给你一个转发端口,然后你就拿着这个端口号又在输出队列中排队等待转发,因为等待转发的不止你一个啊,路由器一下会处理很多的数据,这就产生了排队时延。
时延带宽积 (Delay-Bandwidth Product):时延带宽积指传播时延带宽,表示一条链路上传播的所有比特(以比特为单位)。例如,将管道的长度看做链路的传播时延,管道的截面积是链路的带宽,则时延带宽积代表管道的体积,即表示这样的链路可以容纳多少个比特。
往返时延 (RTT, Round-Trip Time):往返时延表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后立即发送确认),总共经历的时延12。
信道利用率 (Channel Utilization):信道利用率指出某信道有百分之几的时间是被利用的(有数据通过)。网络利用率则是全网络的信道利用率的加权平均值。
丢包率 (Packet Loss Rate):丢包率是指在一定的时间范围内,传输过程中丢失的数据包数量占所发送数据包的比率。丢包率与数据包长度以及包发送频率相关。丢包率反映了网络的拥塞情况。无拥塞时路径丢包率为0,轻度拥塞时路径丢包率为1%到4%,严重拥塞时路径丢包率为5%到15%。
OSI模型与TCP/TP参考模型:
OSI参考模型 (Open System Interconnection Reference Model):OSI模型是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架。OSI定义了网络互连的七层模型,包括:
应用层 (Application Layer):为应用程序或用户请求提供各种请求服务。
表示层 (Presentation Layer):数据编码、格式转换、数据加密。
会话层 (Session Layer):创建、管理和维护会话。
传输层 (Transport Layer):数据通信。
网络层 (Network Layer):IP选址及路由选择。
数据链路层 (Data Link Layer):提供介质访问和链路管理。
物理层 (Physical Layer):管理通信设备和网络媒体之间的互联互通。
TCP/IP模型:TCP/IP是一组协议的代名词,它包括许多协议,组成了TCP/IP协议簇。它是把OSI七层模型简化成了四层模型,包括:
应用层 (Application Layer):处理用户与网络应用程序之间的通信。
传输层 (Transport Layer):提供端到端的数据传输服务。
网络层 (Internet Layer):负责数据包的路由和转发。
数据链路层 (Link Layer):管理网络硬件设备和物理媒介之间的通信。
CSMA/CD (带冲突检测的载波侦听多路访问协议):CSMA/CD主要用于有线网络,通过检测碰撞来处理冲突。在以太网(Ethernet)中,CSMA/CD成为现存局域网络结构的绝大多形式,适宜于总线型局域网拓扑结构的随机竞争型媒体访问控制。总线型网络允许同一时刻只有一个节点(Node)发送数据,一旦两个或以上节点同时发送数据,则会发生数据碰撞,数据不能正常发送和接收。CSMA/CD协议就是尽可能保证网络上同时只有一个节点发送数据,减小数据“碰撞”概率。CSMA/CD工作过程包括:发送数据前先侦听信道是否空闲,若空闲则立即发送数据;在发送数据时,边发送边继续侦听;若侦听到冲突,则立即停止发送数据;等待一段随机时间(通过二进制指数回退算法),再重新尝试。
CSMA/CA (带冲突避免的载波侦听多路访问协议):CSMA/CA主要用于无线网络,通过避免碰撞来预防冲突。在无线局域网中,由于无线传输媒体固有的特性及移动性的影响,无线局域网的MAC在差错控制、解决隐藏终端等方面存在应有别于有线局域网。因此,无线局域网采用CSMA/CA协议,其与CSMA/CD最大的不同点在于其采取避免冲突工作方式。CSMA/CA工作过程包括:当发射端希望发送数据时,首先检测介质是否空闲,若是介质为空闲时,送出RTS(Request To Send请求发送),RTS信号包括发射端的地址、接收端的地址、下一笔数据将持续发送的时间等信息;接收端收到RTS信号后,将响应短信号CTS(Clear To Send);发送端收到CTS包后,随即开始发送数据包。
信噪比|香农公式|奈氏准则:
信噪比 (Signal-to-Noise Ratio, SNR):信噪比是科学和工程中所用的一种度量,用于比较所需信号的强度与背景噪声的强度。其定义为信号功率与噪声功率的比率,以分贝(dB)为单位表示。大于比率1:1(高于0分贝)表示信号多于噪声。
香农公式 (Shannon Formula):香农公式是香农(Shannon)提出并严格证明的“在被高斯白噪声干扰的信道中,计算最大信息传送速率C公式”:C=Blog2(1+S/N)
。其中,B是信道带宽(赫兹),S是信道内所传信号的平均功率(瓦),N是信道内部的高斯噪声功率(瓦)
奈氏准则 (Nyquist Criterion):奈氏准则是通信领域中用于衡量信号传输质量的一种标准。奈氏准则规定了在理想情况下,传输信号的峰值信噪比应该大于或等于所需的比特错误率 (BER)所对应的临界值。奈氏准则是指在理想低通(没有噪声、带宽有限)的信道中,极限码元传输率为2WBaud。其中W是理想低通信道的带宽,单位为Hz。 在计算机网络中,Baud(波特)是一个度量单位,用于表示每秒传输的信号翻转次数或波形周期数。它表示了数据信号的变化频率,是衡量数据传输速率的重要指标。在通信系统中,高波特率意味着更快的数据传输速度,可以实现更高的数据吞吐量。例如,1波特表示数字系统每秒传输一个码元。码元是承载信息量的最基本信号单元。如果我们将每个码元看作一个符号,那么波特率就表示每秒钟传输的符号数。
编码(Encoding):编码 (Encoding) 是一种将数据转换为特定格式的过程,以便于在网络中进行有效的传输
不归零编码 (Non-Return-to-Zero, NRZ):在整个码元中,信号电平保持不变的编码方式。高电平代表1,低电平代表0。这是最常见的编码方式(类比数字电路的时序图)
归零编码 (Return-to-Zero, RZ):在一个码元之内,信号电平都要恢复到零的编码方式。每个码元传输后都要归零;每个码元的后半段都是0,前半段表示电平高低。
反向非归零编码 (Non-Return-to-Zero Inverted, NRZI):信号电平的变化表示二进制位的变化,而不是电平本身的状态。信号电平翻转表示0,信号电平不变表示1。
曼彻斯特编码 (Manchester Encoding):将一个码元分成两个相等的间隔,前一个间隔为低电平,后一个间隔为高电平表示码元1;码元0则正好相反1。
差分曼彻斯特编码 (Differential Manchester Encoding):若码元为1,则前半个码元的电平与上一个码元的后半个码元的电平相同,若为0,则相反。
信道复用技术:
FDM (Frequency Division Multiplexing,频分多路复用):FDM是一种将用于传输信道的总带宽划分为若干个子频带(或称子信道),每个子信道可以并行传送一路信号的一种多路复用技术。
TDM (Time-Division Multiplexing,时分多路复用):TDM是一种数字或者模拟(较罕见)的多路复用技术。使用这种技术,两个以上的信号或数据流可以同时在一条通信线路上传输,其表现为同一通信信道的子信道。但在物理上来看,信号还是轮流占用物理信道的。
CDM (Code Division Multiplexing,码分多路复用):CDM是采用不同的编码来区分各路原始信号的一种复用方式。与FDM和TDM不同,它既共享信道的频率,又共享时间。
SDM (Space Division Multiplexing,空分复用):SDM是一种多路复用技术,通过在同一时间,同一频率但在不同的空间路径上发送信号,从而实现多路复用。
零零散散的内容参考:集线器、网桥、交换机、路由器、网关(网关地址)大解析
MAC地址 (Media Access Control Address) 是一种唯一标识网络设备的地址。MAC地址也被称为物理地址、硬件地址或链路地址,由网络设备制造商在生产时写入硬件内部。MAC地址通常由48位的16进制数字组成,分为两部分:前24位是组织唯一标识符 (Organizationally Unique Identifier, OUI),由IEEE分配,用于区分不同的硬件制造商。
后24位是由硬件制造商自行分配的,用于标识该制造商所制造的某个网络产品(如网卡)的系列号。
MAC地址在数据链路层上使用,用于在网络中唯一标识一个网卡。一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。
差错控制是计算机网络中解决数据传输过程中出现的差错问题的一种方法。主要有两类常见的差错控制技术:自动重传请求(Automatic Repeat reQuest,ARQ)和前向纠错(Forward Error Correction,FEC)。
自动重传请求(ARQ):这是一种错误控制方法,用于检测和纠正数据传输中的错误。当接收方检测到错误时,它会发送一个信号给发送方,要求重新发送数据。
前向纠错(FEC):这是一种错误控制方法,它通过在数据中添加冗余信息来纠正错误。这种方法允许接收方检测并纠正数据中的一些错误,而无需重新传输。
帧校验序列(Frame Check Sequence,FCS):这是一种差错控制技术,通常采用循环冗余检验(Cyclic Redundancy Check,CRC)技术。FCS用于检测数据帧中的错误。
循环冗余检验(CRC):这是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的一种信道编码技术,主要用来检测或校验数据传输或者保存后可能出现的错误。
常见的检错码:
注:最终的得到的发送数据就是原始数据拼接上余数(余数长度 == CRC校验码位数)
P2: 网络层🛜
路由器(Router)是一种连接两个或多个网络的硬件设备,在网络间起网关的作用。路由器的主要功能包括:
路由转发 (Routing):路由器根据数据包的目标地址,查询路由表并确定下一跳节点,将数据包转发到正确的输出接口。
路由表管理 (Routing Table Management):路由器维护一个路由表,其中包含了网络拓扑和路由策略的信息。路由表存储了目的网络和相应的下一跳节点之间的映射关系。
路由协议交换 (Routing Protocol Exchange):路由器通过与其他路由器交换路由信息,学习网络的拓扑结构和更新路由表中的路由信息。常见的路由协议包括RIP、OSPF和BGP等。
流量控制和拥塞控制 (Traffic Control and Congestion Control):路由器根据网络的负载情况,对传入的数据包进行流量控制和拥塞控制,以确保网络的稳定性和性能。
网络地址转换 (Network Address Translation, NAT):路由器可以实现网络地址转换,将内部网络使用私有IP地址的数据包转换为外部网络使用公共IP地址的数据包,实现内部网络与外部网络的通信。
IP地址 (Internet Protocol Address) 是一种用于识别发送或接收数据报的设备的一串数字。当一个设备连接到一个网络时,它被分配一个IP地址,作为一个标识符。IP地址允许设备之间相互通信。IP地址的构成包括网络位和主机位,网络位相同的IP地址属于同一网段。子网掩码用来确定IP地址的网络位。与255对应的数字为网络位,与0对应的数字为主机位。一个IP地址必须配一个子网掩码。IP地址的形式为X.X.X.X,其中X的范围是0-255。例如,192.168.1.1是一个合法的IP地址,而256.1.1.1则是错误的形式。在局域网中,所有IP必须在同一网段中才可以互相通信。
IPv4协议 (Internet Protocol Version 4) 是互联网上广泛使用的一种网络协议1。它负责将数据包从源地址传输到目的地址,使得数据能够在不同的计算机和网络之间传输。以下是IPv4协议的主要组成部分:
IPv4分组 (IPv4 Packet):网络层将传输层的数据打包后,如果数据很小,可以称为IP数据报,如果数据过大则进行分片,每一片称为IPv4分组。一个IP分组由首部和数据两部分组成。
IPv4地址 (IPv4 Address):每个连接到因特网上的主机(或路由器)都分配一个在全世界范围是唯一的32位的标识符,即IP地址。无论哪类IP地址,都由网络号和主机号两部分组成。
网络地址转换 (Network Address Translation, NAT):NAT是一种技术,它允许私有(内部)网络中的主机通过一个或多个公共(外部)IP地址进行通信。
子网划分与子网掩码、CIDR (Subnetting and Subnet Mask, CIDR):子网划分是将一个大型网络划分为多个小型网络或子网的过程。子网掩码用于确定IP地址的网络部分和主机部分。CIDR(无类别域间路由)是一种用于对IP地址进行解释的方法,它消除了传统的A类、B类和C类地址方案。(注:要分清PV4 地址中的网络部分和主机部分,管理员必须知道分配给子网的子网掩码。)
地址解析协议 (Address Resolution Protocol, ARP):ARP是一种协议,用于将网络层的IP地址映射到数据链路层的物理地址。
动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP):DHCP是一种网络协议,它允许主机在加入新网络时自动获取IP地址。
网际控制报文协议 (Internet Control Message Protocol, ICMP):ICMP是一种网络层协议,用于在IP主机和路由器之间传递控制消息。
IPv4协议地址分类⬆️,地址范围参考文章
IPv6协议 (Internet Protocol Version 6) 是互联网的网络层的标准协议套件。IPv6旨在解决当前版本的互联网协议套件(称作IPv4)存在的许多问题,包括地址消耗、安全性、自动配置和扩展性等问题。以下是IPv6协议的主要组成部分:
IPv6地址 (IPv6 Address):IPv6地址是一个128位的二进制数,用于标识网络中的设备。IPv6地址可以分为单播地址、多播地址和任播地址。
IPv6数据报 (IPv6 Packet):IPv6数据报由首部和数据两部分组成,用于在网络中传输数据。
IPv6路由 (IPv6 Routing):IPv6路由是根据目标地址将数据报从源节点传输到目标节点的过程。
IPv6自动配置 (IPv6 Autoconfiguration):IPv6支持节点即插即用,即可以将节点插入IPv6网络,让其自动进行配置,无需任何人为干预。
邻居发现 (Neighbor Discovery):邻居发现是一种协议,用于在IPv6网络中发现其他节点的存在。
子网掩码 (Subnet Mask) 是一个应用于TCP/IP网络的32位二进制值。它可以屏蔽掉IP地址中的一部分,从而分离出IP地址中的网络部分与主机部分。子网掩码必须结合IP地址一起使用。子网掩码的格式是一串与IP地址长度相同的32位数字,其左边都是1,右边都是0。通过子网掩码,就可以判断两个IP是否在同一个局域网内部。(简单来说,与IP地址做与运算)
私有网络地址 (Private Network Address) 是一段保留的IP地址,专门为组织机构内部网络(如企业内部、学校等)使用。私有地址主要用于在局域网中进行分配,在Internet上是无效的。这样可以很好地隔离局域网和Internet。
私有IP地址在公网上是不能被识别的,必须通过网络地址转换 (Network Address Translation, NAT)将内部IP地址转换成公网上可用的IP地址,从而实现内部IP地址与外部公网的通信。
根据RFC 1918,私有IP地址分为以下几个范围:
10.0.0.0 - 10.255.255.255 (10.0.0.0/8)
172.16.0.0 - 172.31.255.255 (172.16.0.0/12)
192.168.0.0 - 192.168.255.255 (192.168.0.0/16)
任何在此范围内的IP地址都可以被任何组织或个人在其内部网络中自由使用,而无需向全球互联网注册机构申请。
NAT (Network Address Translation,网络地址转换) 是一种在计算机网络中使用的技术,它可以将本地网络内的私有IP地址转换为公共IP地址,以便通过互联网进行通信。NAT实际上是为解决IPv4地址短缺而开发的技术。
NAT可以分为三种类型:静态NAT、动态NAT和网络地址端口转换NAPT。
静态NAT (Static NAT):静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。
动态NAT (Dynamic NAT):动态转换(亦称NAT pool)是指不建立内部地址和全局地址的一对一的固定对应关系。而通过共享NAT地址池的IP地址动态建立NAT的映射关系。
网络地址端口转换NAPT (Network Address Port Translation):NAPT在进行地址转换的同时还进行端口转换,可以实现多个私网用户共同使用一个公网IP地址上网。
NAT的基本工作原理是,当私有网主机和公共网主机通信的IP包经过NAT网关时,将IP包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。
路由选择算法、RIP、OSPF、BGP协议:
知识点太多了,重点参考这篇文章:路由选择算法总结🔗
P3:传输层🚢:
UDP协议 (User Datagram Protocol) 是一种在计算机网络中使用的协议,它位于OSI模型的传输层。UDP协议使用IP作为底层协议,为应用程序提供一种以最少的协议机制向其他程序发送消息的过程。以下是UDP协议的主要特点:
无连接 (Connectionless):UDP在发送数据前不进行连接,发送结束时也没有连接可以释放,减少了开销和发送数据之前的时延。
尽最大努力交付 (Best Effort Delivery):UDP不保证可靠交付,因此主机不维持复杂的连接状态。
面向报文 (Message-Oriented):发送方的UDP对应用程序交下来的报文,再添加首部后就向下交付IP层。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。
无拥塞控制 (No Congestion Control):很多实时应用(如IP电话、实时视频会议等)要求源主机以恒定的速率发送数据,并且允许网络发生拥塞时丢失一些数据,却不允许数据有太大的时延,UDP正好适合这种要求。
支持一对一、一对多、多对一和多对多的交互通信 (Supports One-to-One, One-to-Many, Many-to-One, and Many-to-Many Interactive Communication)。
首部开销小 (Small Header Overhead):UDP只有8个字节的首部。
TCP协议 (Transmission Control Protocol) 是一种面向连接的、可靠的、基于字节流的传输层通信协议。以下是TCP协议的主要特点:
面向连接 (Connection-Oriented):在数据传输前,TCP会在发送方和接收方之间建立一个虚拟连接。
可靠性 (Reliability):TCP通过三次握手建立连接、滑动窗口机制、拥塞避免算法、流量控制以及超时重传机制等方式,确保数据的可靠传输。
字节流服务 (Byte Stream Service):TCP将应用层交下来的数据流,划分为适当长度的报文段,然后添加首部后就向下交付IP层。
全双工通信 (Full-Duplex Communication):TCP提供的是全双工通信,即通信双方的应用进程在任何时候都能发送数据。
流量控制 (Flow Control):TCP使用滑动窗口协议进行流量控制,以防止发送方发送数据的速度过快,接收方来不及接收12。
拥塞控制 (Congestion Control):TCP使用一种称为AIMD的拥塞控制算法,以防止网络拥塞。
6位标志位:
URG (Urgent Pointer):紧急指针是否有效
ACK (Acknowledgment):确认序号是否有效,标志位为1表示是应答报文,为0则不是应答报文
PSH (Push Function):提示接收端应用程序立刻从 TCP 缓冲区把数据读走
RST (Reset):对方要求重新建立连接;我们把携带 RST 标识的称为 复位报文段
SYN (Synchronize Sequence Numbers):请求建立连接;我们把携带 SYN 标识的称为 同步报文段
FIN (Finish):通知对方,本端要关闭了,我们称携带 FIN 标识的为 结束报文段
‼️面经🔥:TCP协议的三次握手和四次握手🤝
简单来说,建立连接要三次握手🤝,终止连接要四次握手🤝。
端口号 (Port Number) 是用于标识一台计算机中的特定进程所提供的服务。网络中的计算机是通过IP地址来代表其身份的,它只能表示某台特定的计算机,但是一台计算机上可以同时提供很多个服务,如数据库服务、FTP服务、Web服务等,我们就通过端口号来区别相同计算机所提供的这些不同的服务。端口号总数为65535,一般用到的是1~65535,0一般不使用。端口号可以分为以下几类:
系统端口,公共端口 (System Ports, Well-Known Ports):端口号为0~1023之间。这些端口只有系统特许的进程才能使用。
动态端口 (Dynamic Ports):端口号为1024~49151之间。这个一般是你自己安装的一些软件程序有需要,一般这些软件是服务软件的时候会需要,比如mysql这种的。
服务器 (非特权)端口 (Private Ports):端口号为49152~65535。理论上,不应为服务分配这些端口,通常机器从1024开始分配动态端口。
DNS(Domain Name System,域名系统)是互联网的一项核心服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网,而不用记住能够被机器直接读取的IP数串。
- 域名(Domain Name):网络上的一个站点的名称,如 hannirio.asia。
- IP地址(IP Address):互联网上每一个设备的唯一标识,如
192.0.2.1
。 - DNS服务器(DNS Server):存储域名和IP地址映射关系的服务器,当你想访问一个域名时,你的设备会向DNS服务器查询这个域名对应的IP地址。
- 解析(Resolution):将域名转换为对应的IP地址的过程称为解析。
通过DNS,我们可以通过记住易于理解的域名来访问互联网,而不是复杂难记的IP地址。这大大提高了互联网的易用性。
P4:应用层:
应用层常见协议⬇️
HTTP协议(Hypertext Transfer Protocol,超文本传输协议)是互联网的基础协议,用于在客户端和服务器之间传输数据。以下是关于HTTP协议的一些关键概念:
客户端-服务器协议(Client-Server Protocol):HTTP是一种客户端-服务器协议,这意味着请求是由接收方(通常是Web浏览器)发起的。
请求(Requests):客户端发送的消息被称为请求。为了显示一个网页,浏览器发送一个原始请求来获取代表页面的HTML文档。然后,它解析这个文件,生成对应于执行脚本、显示布局信息(CSS)以及页面中包含的子资源(通常是图片和视频)的额外请求。
响应(Responses):服务器作为答案发送的消息被称为响应。
用户代理(User-Agent):用户代理是代表用户行动的任何工具。这个角色主要由Web浏览器执行,但也可能由工程师和Web开发人员使用的程序执行,以调试他们的应用程序。
代理(Proxies):客户端和服务器之间有许多实体,统称为代理,它们执行不同的操作,并充当网关或缓存。
应用层协议(Application Layer Protocol):HTTP是应用层协议,它是通过TCP,或者通过TLS加密的TCP连接发送的,尽管理论上可以使用任何可靠的传输协议。
http协议参考链接(这里面讲的cookie也蛮重要的)
SMTP协议(Simple Mail Transfer Protocol,简单邮件传输协议)是互联网的一种标准,用于发送电子邮件。以下是关于SMTP协议的一些关键概念:
客户端-服务器协议(Client-Server Protocol):SMTP是一种客户端-服务器协议,这意味着请求是由接收方(通常是电子邮件客户端,如Outlook或Apple Mail)发起的。
邮件传输代理(Mail Transfer Agent,MTA):服务器运行一个名为MTA的程序。MTA检查收件人电子邮件地址的域,如果它与发件人的不同,它会查询域名系统(Domain Name System,DNS)以找到收件人的IP地址。
TCP连接(TCP Connection):SMTP使用传输控制协议(Transmission Control Protocol,TCP)作为其传输协议,这意味着首先需要在客户端和服务器之间建立TCP连接。
电子邮件数据传输(Email Data Transfer):客户端向服务器发送一系列命令,这些命令附带有实际的电子邮件内容:电子邮件头(包括其目的地和主题行)、电子邮件正文以及任何附加组件。
连接关闭(Connection Closed):当数据传输完成时,客户端会通知服务器,然后服务器关闭连接。
POP协议(Post Office Protocol,简单邮件传输协议)是互联网的一种标准,用于从邮件服务器检索电子邮件。以下是关于POP协议的一些关键概念:
客户端-服务器协议(Client-Server Protocol):POP是一种客户端-服务器协议,这意味着请求是由接收方(通常是电子邮件客户端,如Outlook或Apple Mail)发起的。
邮件传输代理(Mail Transfer Agent,MTA):服务器运行一个名为MTA的程序。MTA检查收件人电子邮件地址的域,如果它与发件人的不同,它会查询域名系统(Domain Name System,DNS)以找到收件人的IP地址。
TCP连接(TCP Connection):POP使用传输控制协议(Transmission Control Protocol,TCP)作为其传输协议,这意味着首先需要在客户端和服务器之间建立TCP连接。
电子邮件数据传输(Email Data Transfer):客户端向服务器发送一系列命令,这些命令附带有实际的电子邮件内容:电子邮件头(包括其目的地和主题行)、电子邮件正文以及任何附加组件。
连接关闭(Connection Closed):当数据传输完成时,客户端会通知服务器,然后服务器关闭连接。
还有一种是IMAP(Internet Message Access Protocol),用来从本地邮件客户端(如Microsoft Outlook、Outlook Express、Foxmail、Mozilla Thunderbird)访问远程服务器上的邮件。IMAP 协议中客户端和服务器上的邮件保持同步,如果不手动删除邮件,那么服务器上的邮件也不会被删除。IMAP 这种做法可以让用户随时随地去访问服务器上的邮件。
文件传输协议FTP(File Transfer Protocol) :
文件传输协议(FTP,File Transfer Protocol)是一种用于在计算机网络上传输文件的标准协议。以下是关于FTP协议的一些关键概念:
客户端-服务器协议(Client-Server Protocol):FTP是一种客户端-服务器协议,这意味着请求是由接收方(通常是FTP软件)发起的,以连接到FTP服务器,并使用登录凭据进行身份验证,然后向服务器传输文件。
TCP/IP网络(TCP/IP Network):FTP在TCP/IP(传输控制协议/互联网协议)网络上运行,这是一种网络/通信协议,用于在计算机之间传输文件。
FTP服务器(FTP Server):FTP服务器(也称为FTP主机/站点)是存储文件的地方,被授权的用户可以在FTP服务器上接收和传输文件。
FTP客户端(FTP Client):FTP客户端是一种软件,用于连接到FTP服务器,并在用户和服务器之间传输文件。
命令通道和数据通道(Command Channel and Data Channel):在建立FTP连接时,有两个不同的通信通道。第一个被称为命令通道,用于发起指令和响应。另一个被称为数据通道,用于数据的分发。
余下的知识点刷过去问补充☀️