计算机网络|知识点总结

1. 计算机网络概述

1.1. 基本术语

结点(node):网络中的结点可以是计算机,集线器,交换机或路由器等。

链路(link):从一个结点到另一个结点的一段物理线路。中间没有任何其他交点。

主机(host):连接在因特网上的计算机。

ISP(Internet Service Provider):因特网服务提供者(提供商)。

ISP (Internet Service Provider) Definition

IXP(Internet eXchange Point):互联网交换点 IXP 的主要作用就是允许两个网络直接相连并交换分组,而不需要再通过第三个网络来转发分组。

IXP Traffic Levels During the Stratos Skydive — RIPE Labs

广域网 WAN(Wide Area Network) :任务是通过长距离运送主机发送的数据。

城域网 MAN(Metropolitan Area Network):用来将多个局域网进行互连。

局域网 LAN(Local Area Network) : 学校或企业大多拥有多个互连的局域网。

MAN & WMAN | Red de área metropolitana, Redes informaticas, Par trenzado

个人区域网 PAN(Personal Area Network):在个人工作的地方把属于个人使用的电子设备用无线技术连接起来的网络 。

Lightbox

分组(packet):因特网中传送的数据单元。由首部header和数据段组成。分组又称为包,首部可称为包头。

存储转发(store and forward):路由器收到一个分组,先检查分组是否正确,并过滤掉冲突包错误。确定包正确后,取出目的地址,通过查找表找到想要发送的输出端口地址,然后将该包发送出去。

带宽(bandwidth):在计算机网络中,表示在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”。常用来表示网络的通信线路所能传送数据的能力。单位是“比特每秒”,记为 b/s。

吞吐量(throughput):表示在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量更经常地用于对现实世界中的网络的一种测量,以便知道实际上到底有多少数据量能够通过网络。吞吐量受网络的带宽或网络的额定速率的限制。

1.2 知识点总结

  1. 分组交换采用存储转发技术,表示把一个报文(要发送的整块数据)分为几个分组后再进行传送。在发送报文之前,先把较长的报文划分成为一个个更小的等长数据段(分片)。在每个数据端的前面加上一些由必要的控制信息组成的首部后,就构成了一个分组。分组是在互联网中传送的数据单元,正是由于分组的头部包含了诸如目的地址和源地址等重要控制信息,每一个分组才能在互联网中独立的选择传输路径,并正确地交付到分组传输的终点。

  2. 路由器是实现分组交换的关键构件,其任务是转发收到的分组,这是网络核心部分最重要的功能。

  3. 互联网按工作方式可划分为边缘部分核心部分主机在网络的边缘部分,其作用是进行信息处理。由大量网络和连接这些网络的路由器组成核心部分,其作用是提供连通性和交换

  4. 计算机通信是计算机中进程(即运行着的程序)之间的通信。计算机网络采用的通信方式是客户-服务器方式(C/S 方式)对等连接方式(P2P 方式)

  5. 客户和服务器都是指通信中所涉及的应用进程。客户是服务请求方,服务器是服务提供方。

  6. 按照作用范围的不同,计算机网络分为广域网 WAN城域网 MAN局域网 LAN个人区域网 PAN

1.3. 重点知识

1.3.1. 网络和互联网的区别

计算机网络(简称网络)把许多计算机连接在一起,而互联网把许多网络连接在一起,是网络的网络。

小写字母i开头的internet(互联网)是通用名词,它泛指由多个计算机网络相互连接而成的网络。在这些网络之间的通信协议(即通信规则)可以是任意的。大写字母I开头的Internet(互联网)是专用名词,它指全球最大的,开放的,由众多网络相互连接而成的特定的互联网,并采用TCP/IP协议作为通信规则,其前身为ARPANET。Internet的推荐译名为因特网,现在一般流行称为互联网。

1.3.2. 计算机网络最常用的性能指标

速率,带宽,吞吐量,时延(发送时延、传播时延、排队时延、处理时延),时延带宽积,往返时间和信道利用率。

网络协议即协议,是为进行网络中的数据交换而建立的规则。计算机网络的各层以及其协议集合,称为网络的体系结构。

image-20230207141135101 image-20230207141022781 image-20230207141328249 image-20230207141732673 image-20230207142916324 image-20230207143211813 image-20230207142331222

1.3.3. 五层体系结构

由应用层,运输层,网络层(网际层),数据链路层,物理层组成。运输层最主要的协议是 TCP 和 UDP 协议,网络层最重要的协议是 IP 协议。

image-20221220193741253
五层体系结构中各层的作用
image-20230214002149014

2. 物理层(Physical Layer)

physical-layer

2.1. 基本术语

数据(data) :运送消息的实体。

信号(signal) :数据的电气的或电磁的表现。或者说信号是适合在传输介质上传输的对象。

码元( code) :在使用时间域(或简称为时域)的波形来表示数字信号时,代表不同离散数值的基本波形。

信道工作方式:单工,半双工,全双工

  1. 单工(simplex ): 只能有一个方向的通信而没有反方向的交互。
  2. 半双工(half duplex ):通信的双方都可以发送信息,但不能双方同时发送(当然也就不能同时接收)。
  3. 全双工(full duplex): 通信的双方可以同时发送和接收信息。
img

失真:失去真实性,主要是指接受到的信号和发送的信号不同,有磨损和衰减。

image-20230206183106126

奈氏准则 : 在任何信道中,码元的传输的效率是有上限的,传输速率超过此上限,就会出现严重的码间串扰问题,使接收端对码元的判决(即识别)成为不可能。

香农定理 :在带宽受限且有噪声的信道中,为了不产生误差,信息的数据传输速率有上限值。

image-20230206184852017

基带信号(baseband signal) : 来自信源的信号。指没有经过调制的数字信号或模拟信号。

带通(频带)信号(bandpass signal) :把基带信号经过载波调制后,把信号的频率范围搬移到较高的频段以便在信道中传输(即仅在一段频率范围内能够通过信道),这里调制过后的信号就是带通信号。

调制(modulation ) : 对信号源的信息进行处理后加到载波信号上,使其变为适合在信道传输的形式的过程。

信噪比(signal-to-noise ratio ) : 指信号的平均功率和噪声的平均功率之比,记为 S/N。信噪比(dB)=10*log10(S/N)。

信道复用(channel multiplexing ) :指多个用户共享同一个信道。(并不一定是同时)。

image-20221220194936124

比特率(bit rate ) :单位时间(每秒)内传送的比特数。

波特率(baud rate) :单位时间载波调制状态改变的次数。针对数据信号对载波的调制速率。

复用(multiplexing) :共享信道的方法。

2.2. 知识点总结

  1. 物理层的主要任务就是确定与传输媒体接口有关的一些特性,如机械特性,电气特性,功能特性,过程特性。

    image-20230207152757930
  2. 一个数据通信系统可划分为三大部分,即源系统,传输系统,目的系统。源系统包括源点(或源站,信源)和发送器,目的系统包括接收器和终点。

  3. 通信的目的是传送消息。如话音,文字,图像等都是消息,数据是运送消息的实体。信号则是数据的电器或电磁的表现。

  4. 根据信号中代表消息的参数的取值方式不同,信号可分为模拟信号(或连续信号)和数字信号(或离散信号)。在使用时间域(简称时域)的波形表示数字信号时,代表不同离散数值的基本波形称为码元。

  5. 根据双方信息交互的方式,通信可划分为单向通信(或单工通信),双向交替通信(或半双工通信),双向同时通信(全双工通信)。

  6. 来自信源的信号称为基带信号。信号要在信道上传输就要经过调制。调制有基带调制带通调制之分。最基本的带通调制方法有调幅,调频和调相。还有更复杂的调制方法,如正交振幅调制。

  7. 要提高数据在信道上的传递速率,可以使用更好的传输媒体,或使用先进的调制技术。但数据传输速率不可能任意被提高。

  8. 传输媒体可分为两大类,即导引型传输媒体(双绞线,同轴电缆,光纤)和非导引型传输媒体(无线,红外,大气激光)。

2.3. 重点知识

物理层主要做的事情就是 透明地传送比特流。也可以将物理层的主要任务描述为确定与传输媒体的接口的一些特性,即:机械特性(接口所用接线器的一些物理属性如形状尺寸),电气特性(接口电缆的各条线上出现的电压的范围),功能特性(某条线上出现的某一电平的电压的意义),过程特性(对于不同功能能的各种可能事件的出现顺序)。

物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。 现有的计算机网络中的硬件设备和传输媒体的种类非常繁多,而且通信手段也有许多不同的方式。物理层的作用正是尽可能地屏蔽掉这些传输媒体和通信手段的差异,使物理层上面的数据链路层感觉不到这些差异,这样就可以使数据链路层只考虑完成本层的协议和服务,而不必考虑网络的具体传输媒体和通信手段是什么。

2.3.2. 几种常用的信道复用技术

频分复用(FDM) :所有用户在同样的时间占用不同的带宽资源。

image-20221220214851674

时分复用(TDM) :所有用户在不同的时间占用同样的频带宽度(分时不分频)。

image-20221220214814742

统计时分复用 (Statistic TDM) :改进的时分复用,能够明显提高信道的利用率。

码分复用(CDM) : 用户使用经过特殊挑选的不同码型,因此各用户之间不会造成干扰。这种系统发送的信号有很强的抗干扰能力,其频谱类似于白噪声,不易被敌人发现。

波分复用( WDM) :波分复用就是光的频分复用。

2.3.3. 码分多址CDMA及计算

在CDMA系统中,发送端用互不相干、相互正交(准正交)的地址去调制所要发送的信号,接收端则利用码型的正交性通过地址从混合的信号中选出相应信号。其中接收端收到的混合信号是各个站发送的码片序列之和。

接收端用相同的码片序列进行规格化内积,就可以将不属于本码片序列的其他信号全部去除,只接受本码片序列所携带的信息。(即使多用户同时通信时,其信号电压会相互叠加或抵消。)

\[S \cdot T=\frac{1}{m} \sum_{i=1}^m S_i T_i \]

用发送端每个站的码片序列依次对混合信号进行规格化内积:

  • 结果为+1,说明这个站发送比特1
  • 结果为-1,说明这个站发送比特0
  • 结果为0,说明这个站没有发送信息

例题:

共有 4 个站进行码分多址CDMA通信。四个站的码片序列为:
A: \((-1-1-1+1+1-1+1+1)\)
B: \((-1-1+1-1+1+1+1-1)\)
C: \((-1+1-1+1+1+1-1-1)\)
D: \((-1+1-1-1-1-1+1-1)\)
现收到这样的码片序列: \((-1+1-3+1-1-3+1+1)\) 。问哪个站发送了数据? 发送数据的站发送的是 1 还是 0 ?

解答:
A:\(1/8(1-1+3+1-1+3+1+1)=1\) ,表示A站发送的信息是1。
B:\(1/8(1-1-3-1-1-3+1-1)=-1\),表示B站发送的信息是0。
C:\(1/8(1+1+3+1-1-3-1-1)= 0\),表示收到的码片序列与C全部正交,那么A站点没有发送数据。
D:\(1/8(1+1+3-1+1+3+1-1)=1\),表示D站发送的信息为1。

data-link-layer

3.1. 基本术语

链路(link) :一个结点到相邻结点的一段物理链路。

数据链路(data link) :把实现控制数据运输的协议的硬件和软件加到链路上就构成了数据链路。

循环冗余检验 CRC(Cyclic Redundancy Check) :为了保证数据传输的可靠性,CRC 是数据链路层广泛使用的一种检错技术。

帧(frame) :一个数据链路层的传输单元,由一个数据链路层首部和其携带的封包所组成协议数据单元。

MTU(Maximum Transfer Unit ) :最大传送单元。帧的数据部分的的长度上限。

误码率 BER(Bit Error Rate ) :在一段时间内,传输错误的比特占所传输比特总数的比率。

PPP(Point-to-Point Protocol ) :点对点协议。即用户计算机和 ISP 进行通信时所使用的数据链路层协议。以下是 PPP 帧的示意图:

网桥(bridge) :一种用于数据链路层实现中继,连接两个或多个局域网的网络互连设备。

交换机(switch ) :广义的来说,交换机指的是一种通信系统中完成信息交换的设备。这里工作在数据链路层的交换机指的是交换式集线器,其实质是一个多接口的网桥。

3.2. 知识点总结

  1. 链路是从一个结点到相邻节点的一段物理链路,数据链路则在链路的基础上增加了一些必要的硬件(如网络适配器)和软件(如协议的实现)。

  2. 数据链路层传输的协议数据单元是帧。

  3. 局域网的优点是:具有广播功能,从一个站点可方便地访问全网;便于系统的扩展和逐渐演变;提高了系统的可靠性,可用性和生存性。

  4. 计算机与外接局域网通信需要通过通信适配器(或网络适配器),它又称为网络接口卡或网卡。计算器的MAC地址就在适配器的 ROM 中

  5. 以太网采用的无连接的工作方式,对发送的数据帧不进行编号,也不要求对方发回确认。目的站收到有差错帧就把它丢掉,其他什么也不做。

  6. 以太网的适配器具有过滤功能,它只接收单播帧,广播帧和多播帧。

3.3. 重点知识

3.3.1. 使用点对点信道的数据链路层

点对点协议PPP

点对点协议PPP是数据链路层使用最多的一种协议,它的特点是:简单,只检测差错而不去纠正差错,不使用序号,也不进行流量控制,可同时支持多种网络层协议。PPPoE是为宽带上网的主机使用的链路层协议。

PPP协议组成

(1)一个将IP数据报封装到串行链路的方法。

(2)一个用来建立、配置和测试数据链路连接的链路控制协议LCP

(3)一套网络控制协议NCP,其中的每个协议支持不同的网络层协议。

各字段的意义

PPP的帧首部有四个字段,尾部有两个字段。

image-20230207160228949
  1. A和C分别表示地址字段和控制字段,为固定值,不承载任何信息。

  2. 当协议字段为0x0021时,PPP帧的信息字段就是IP数据报,若为0xC021时,则是PPP链路控制协议LCP的数据,0x8021表示网络层的控制数据。

  3. 尾部的第一个字段是使用CRC的帧检验序列FCS。

字节填充

信息字段出现和标志字段一样的比特(0x7E)时,需要使用一些措施解决。

PPP使用异步传输时,转义字符定为0x7D,并使用字节填充。

(1)将信息字段的0x7E(标志字段)转为2字节序列(0x7D,0x5E)

(2)将信息字段的0x7D(转义字符)转为2字节序列(0x7D,0x5D)

(3)若信息段出现ASCII控制字符,则其前面加入0x7D,并改变该字符的编码。比如0x03变为(0x7D,0x23)

零比特填充

PPP协议在同步传输时,使用零比特填充来解决透明传输的问题。

在发送端,扫描整个信息段,只要发现5个连续的1,就在5个1后面插入0,这可以保证整个信息段不会出现6个连续的1。接收端收到一个帧时,先找到标志字段F以确定帧边界,接着对比特流进行扫描,如果发现连续的5个1,就把5个1后面的0删除,以此还原原来的信息段。  

PPP协议的工作状态

(1)用户拨号接入ISP后,就建立了一条从用户个人电脑到ISP的物理连接

(2)用户个人电脑向ISP发送一系列的链路控制协议LCP分组(封装成多个PPP帧),以便建立LCP连接

(3)之后进行网络层配置。网络控制协议NCP给新接入的用户个人电脑分配一个临时的IP地址。

(4)当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。

image-20230214000001094

3.3.2. 使用广播信道的数据链路层

局域网的数据链路层

局域网的特点:网络为一个单位所有,地理范围小,站点数目有限。

局域网有如下优点:

(1)具有广播功能,一个站点可以方便的访问整个网络

(2)便于系统的扩展和逐渐演变

(3)提高了系统的可靠性、可用性和生存性

以太网

现在把局域网简称为“以太网”,以太网包含MAC(媒体接入控制)和LLC(逻辑链路控制)两个子层,如今的以太网只有MAC,不再考虑LLC。

媒体接入控制

共享信道需要考虑如何使多用户能够合理地共享通信媒体资源。技术上有两个方法:

image-20230207161422823
适配器

适配器包含处理器和存储器。适配器和局域网以电缆等通过串行传输数据,和计算机通过主板的I/O并行传输数据。故适配器的主要功能是进行串行数据和并行数据的转换。网络速率和计算机总线速率并不相同,因此需要适配器将数据暂时缓存在存储器中。适配器接收到有差错的帧时并不通知CPU,只有正确帧时才通知CPU,并交付给协议栈中的网络层。

注意:计算机的硬件地址存储在适配器的ROM,IP地址存储在计算机的存储器中。

CSMA/CD协议(载波监听多点接入/碰撞检测)

以太网采用的协议是具有冲突检测的载波监听多点接入 CSMA/CD。协议的特点是:以太网上的各站点平等的争用以太网信道。发送前先监听,边发送边监听,一旦发现总线上出现了碰撞,就立即停止发送。然后按照退避算法等待一段随机时间后再次发送。

针对前面提到的共享信道的随机接入中会出现的碰撞问题,提出CSMA/CD方案,具体如下:

(1)准备发送:适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧(见后面),放入适配器的缓存。发送前先检测信道。

(2)检测信道:若检测到信道忙,则不停的检测。若检测到信道空闲,并在96比特时间内信道保持空闲(保证帧间最小间隔),就发送这个帧。

(3)发送过称仍不断检测信道。这时会有两种情况:

  1. 发送成功:发送帧期间未检测到碰撞。
  2. 发送失败:发送帧期间检测到碰撞。这时立即停止发送数据,并按规定发送干扰信号。适配器接着执行指数退避算法,等待r倍的512比特时间后,返回到步骤2继续检测信道。但若重传达16次仍不能成功,则停止重传向上报错。

以太网每发送完一帧,一定要把已发送的帧保存,若检测到碰撞,下一次还需要把保存的帧重传一次。

image-20230207161738988 image-20230207162437590 image-20230207173752263 image-20230207173920197
CSMA/CD协议工作流程
image-20230214192820770

3.3.2. 三个基本问题

封装成帧

当数据是由可打印的 ASCII 码组成的文本文件时,帧定界可以使用特殊的帧定界符

控制字符 SOH (Start Of Header) 放在一帧的最前面,表示帧的首部开始。

控制字符 EOT (End Of Transmission) 放在一帧的末尾,表示帧的结束

image-20221221112227870
透明传输

解决方法:字节填充 (byte stuffing) 或字符填充 (character stuffing)。 发送端的数据链路层在数据中出现控制字符 "SOH" 或 “EOT" 的前面揷 入一个转义字符 "ESC" (其十六进制编码是 1B)。
接收端的数据链路层在将数据送往网络层之前删除揷入的转义字符。 如果转义字符也出现在数据当中,那么应在转义字符前面揷入一个转义字符"ESC"。当接收端收到连续的两个转义字符时,就删除其中前面的一个。

image-20221221103507139
差错检测

循环冗余检验 CRC 是一种检错方法,而帧检验序列 FCS(Frame Check Sequence)是添加在数据后面的冗余码

image-20230207154154375

可靠传输与无差错传输

  1. 仅用循环冗余检验 CRC 差错检恻技术只能做到无差错接受 (accept)。即:“凡是接受的帧(即不包括丟弃的帧),我们都能以非常接近于1的概率认为这些帧在传输过程中没有产生差错" 。即 : “凡是接收端数据链路层接受的帧均无差错”。
  2. 要做到 “可靠传输” ( 即发送什么就收到什么 ) 就必须再加上确认和重传机制

例题:

image-20230207154552886

3.3.3. MAC地址

MAC层的硬件地址

又称为物理地址,是固化在适配器中的48位全球唯一地址。

适配器具有过滤功能。适配器从网络收到一个MAC帧后,先用硬件检查MAC帧中的目的地址,如果是发往本站的则收下,否则丢弃。发往本站的帧包含以下三种:

IEEE 规定地址字段的第 1 字节的最低位为 I/G (Individual / Group) 位。

  1. 单站地址:I/G 位 =0。
  2. 组地址 : I/G 位 =1 。组地址用来进行多播。
  3. 广播地址 : 所有 48 位都为 1 ( 全 1 ) 。只能作为目的地址使用。
MAC帧的格式

MAC帧由5个字段构成。第三个字段用来标志上一层使用的是什么协议。当类型是0x0800时,表示上一层使用的是IP数据报。FCS为帧校验序列。MAC帧中并没有指明数据的长度,这是因为数据采用曼彻斯特编码,每个码元之间都有一次电压的转换,因此当电压不再变化时说明到达帧的尾部了。当数据长度小于46时,会填充使其达到46。

img

那么IP层如何知道填充的数据数目呢?IP数据报中包含了数据的长度,因此网络层根据IP数据报指定的数据长度很容易丢弃填充的数据。

在传输媒体上实际传输时,要比MAC帧多8个字节。前7个字节是前同步码,使接收端的适配器在接收MAC帧时能够迅速调整其频率,使其和发送端时钟同步。

下列情况定义为无效的MAC帧:

(1)帧的长度不是整数字节

(2)FCS校验有差错

(3)收到的帧的MAC数据字段长度范围不在46~1500之间

image-20230208145016876 image-20230208145234925

4. 网络层(Network Layer)

network-layer

4.1. 基本术语

虚电路(Virtual Circuit) : 在两个终端设备的逻辑或物理端口之间,通过建立的双向的透明传输通道。虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。

IP(Internet Protocol ) : 网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一,是 TCP/IP 体系结构网际层的核心。配套的有 ARP,RARP,ICMP,IGMP。

ARP(Address Resolution Protocol) : 地址解析协议。地址解析协议 ARP 把 IP 地址解析为硬件地址。

ICMP(Internet Control Message Protocol ) :网际控制报文协议 (ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告)。

子网掩码(subnet mask ) :它是一种用来指明一个 IP 地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合 IP 地址一起使用。

**CIDR( Classless Inter-Domain Routing ) **:无分类域间路由选择 (特点是消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,并使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号)。

默认路由(default route) :当在路由表中查不到能到达目的地址的路由时,路由器选择的路由。默认路由还可以减小路由表所占用的空间和搜索路由表所用的时间。

路由选择算法(Virtual Circuit) :路由选择协议的核心部分。因特网采用自适应的,分层次的路由选择协议。

4.2. 知识点总结

TCP/IP 协议中的网络层向上只提供简单灵活的,无连接的,尽最大努力交付的数据报服务。网络层不提供服务质量的承诺,不保证分组交付的时限所传送的分组可能出错,丢失,重复和失序。进程之间通信的可靠性由运输层负责

在互联网的交付有两种,一是在本网络直接交付不用经过路由器(局域网),另一种是和其他网络的间接交付,至少经过一个路由器,但最后一次一定是直接交付。

地址解析协议 ARP 把 IP 地址解析为硬件地址。ARP 的高速缓存可以大大减少网络上的通信量。因为这样可以使主机下次再与同样地址的主机通信时,可以直接从高速缓存中找到所需要的硬件地址而不需要再去广播方式发送 ARP 请求分组。

网际控制报文协议是 IP 层的协议。ICMP 报文作为 IP 数据报的数据,加上首部后组成 IP 数据报发送出去。使用 ICMP 数据报并不是为了实现可靠传输。ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP 报文的种类有两种 ICMP 差错报告报文和 ICMP 询问报文。

虚拟专用网络 VPN 利用公用的互联网作为本机构专用网之间的通信载体。VPN 内使用互联网的专用地址。一个 VPN 至少要有一个路由器具有合法的全球 IP 地址,这样才能和本系统的另一个 VPN 通过互联网进行通信。所有通过互联网传送的数据都需要加密。

4.3. 重点总结

4.3.1. 虚拟互联网络和两种服务、两个层面的概念

网络层的两种服务
虚电路服务
image-20230211172751901
数据报服务

网络层上不提供可靠传输服务,可靠传输服务由主机的运输层来做的。所谓的TCP/IP中的IP是不保证可靠传输的,而是交给TCP来做的。

image-20230211172918942
网络层的两个层面
image-20221221201244986

4.3.2. 网际协议IP

IP 数据报分为首部和数据两部分。首部的前一部分是固定长度,共20字节,是所有IP数据包必须具有的(源地址,目的地址,总长度等重要地段都固定在首部)。一些长度可变的可选字段固定在首部的后面。IP首部中的生存时间给出了IP数据报在互联网中所能经过的最大路由器数。可防止IP数据报在互联网中无限制的兜圈子。

image-20230211194058179

4.3.3. 网际控制报文协议ICMP

image-20230211195149958

4.3.4. IP地址与MAC地址的关系

image-20221104141039125

不同层次、不同区间使用的源地址和目的地址

  1. 尽管互连在一起的网络的 MAC 地址体系各不相同,但 IP 层抽象的互联网却屏蔽了下层这些很复杂的细节。
  2. 只要我们在网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研 究主机和主机或路由器之间的通信。

4.3.5. 传统分类的IP地址

分类的 IP 地址由网络号字段(指明网络)和主机号字段(指明主机)组成。网络号字段最前面的类别指明 IP 地址的类别。IP 地址是一种分等级的地址结构。IP 地址管理机构分配 IP 地址时只分配网络号,主机号由得到该网络号的单位自行分配。路由器根据目的主机所连接的网络号来转发分组。一个路由器至少连接到两个网络,所以一个路由器至少应当有两个不同的 IP 地址。

image-20221222133838661

4.3.6. 路由选择CIDR

无分类域间路由选择 CIDR 是解决目前 IP 地址紧缺的一个好办法。CIDR 记法把 IP 地址后面加上斜线“/”,然后写上前缀所所占的位数。前缀(或网络前缀用来指明网络),前缀后面的部分是后缀,用来指明主机。CIDR 把前缀都相同的连续的 IP 地址组成一个“CIDR 地址块”,IP 地址分配都以 CIDR 地址块为单位。

例题:

image-20230211233359386

要解决IP地址耗尽的问题,最根本的办法是采用具有更大地址空间的新版本IP协议-IPv6。

4.3.7. 内部网关协议RIP的工作原理

RIP(Routing Information Protocol)协议——路由信息协议,是一种分布式的基于距离向量的路由选择协议,最大的优点是简单。

RIP协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录(距离向量)。RIP协议对距离的定义如下:

(1) 从一路由器到直接连接的网络的距离定义为1。
(2) 从一路由器到非直接连接的网络的距离定义为所经过的路由器数加1。

RIP协议的距离也称为跳数RIP协议允许一条路径最多只能包含15个路由器。因此,距离等于16时即相当于不可达

image preview

上图表示路由器R2的转发表,R2与网络Net2和Net3直接相连,所以距离为1,下一跳不需要经过任何路由器,所以是直接交付。R2到达网络Net1需要经过一个路由器即R1,所以距离为经过的路由器个数加1,即2。所以R2路由器维护的到各个网络的距离向量为(2,1,1,2)。

RIP协议特点

RIP协议是通过每个路由器要不断的和其他路由器交换路由信息,从而达到自治系统中所有节点都得到正确的路由信息。
RIP协议考虑了和哪些路由器交换信息、交换什么信息以及什么时候交换信息这三个问题,RIP协议特点:

(1) 仅和相邻路由器交换信息。

(2) 交换的信息是当前本路由器所知道的全部信息,即自己现在路由表。

(3) 按固定的时间间隔交换信息,如每隔30s或网络拓扑发生变化时。

路由器在刚开始工作时,它的路由表是空的,然后路由器就得出到直接相连的几个网络的距离(这些距离为1),接着每个络器也只是和自己相邻的路由器交换并更新信息。经过若干次交换后,所有路由器都会知道到达本自治系统汇总任何一个网络的最短距离和下一跳地址。

image preview

在上图的自治系统中,假设三个路由器都是刚开始工作,刚开始R1只有到网络1和2的距离信息,R2有网络2和3的距离信息,R3有网络3和4的距离信息。
第一轮交换:R1和R2交换,R2和R3交换,交换后R2从R1得到了到网络1的距离信息,从R3得到了到网络4的距离信息,即第一轮交换后R2得到了到本自治系统所有网络的距离信息。
第二轮交换:同样R1和R2交换,R2和R3交换,由于R2已经包含了所有的信息,所以经过此次交换后,R1和R3也就得到了到本自治系统所有网络的到达信息。

注:RIP协议不能在两个网络之间同时使用多条路由,只能有一条最短距离的路由。

距离向量算法

对每一个相邻路由器发送过来的RIP报文,会进行一下步骤:
(1) 路由器R1接收到其相邻路由器R2发送过来的报文,先修改此报文的所有项目:把“下一条”字段中的地址都改为R2,并把所有的“距离”字段的值加1。每个项目都有三个关键字段:到目的网络N,距离是d,下一跳路由器是X

假设R1接收到R2的报文中某一项是:Net2,2,Y,意思是从R2到Net2的距离是2,并且下一步应该走Y路由器,那么对于R1来说,到Net2的最短走法是先到R2,在按照R2的走法,即从R1到Net2的距离是2 + 1 = 3,下一步走R2,即将 Net2,2,Y 下一跳字段改为R2,将距离字段加1。

image preview

(2) 对修改后的RIP报文中的每一项,进行以下步骤:

  1. 若原来的路由表中没有网络N,则把该项目添加到路由表中

还是上例,如果R1路由表中没有到Net2的路由,表明这是新的目的网络,应当加入到自己的路由表中。

  1. 如果R1路由表中已经有目的网络N,这时查看下一跳的地址,如果下一跳地址是R2,则把收到的项目替换原路由表中的项目

这里要替换的原因是:因为网络拓扑可能发生变化或新的节点加入网络,现在接收到的是最新的消息,要以最新的消息为准。

  1. 如果下一跳的地址不是R2,那么如果收到项目中距离小于路由表中的距离,则进行替换,否则什么也不做。

如果收到的项目距离小于路由表中的距离,说明有更短的路径,所有更换为更短的路径,如果比路由表中的路径还长,那么显然不用更新,如果距离相同,也没必要更新。

  1. 若3分钟还没有收到相邻路由器的更新路由表,则把此路由器记为不可达的距离,即把距离设置为16。
  2. 返回

举个例子说明,已经路由器R6有以下的路由表,现在收到相邻的路由器R4发来的更新信息,试更新R6路由表。

image preview

第一步:修改R4发来的更新路由表,将所有的下一跳修改为R4,所有的距离加1,得出下表

image preview

第二步:将上表的每一项和R6路由器的转发表进行对比
(1) 第一行,目的网络为Net1,R6路由器转发表没有这个目的网路,因此需要把这一行添加到转发表。
(2) 第二行,转发表中有Net2,并且下一跳地址就是R4,所以需要更新。
(3) 第三行,转发表有Net3,并且下一跳地址不是R4,但是距离2小于转发表中的距离4,所以也需要更新。

img

5. 运输层(Transport Layer)

transport-layer

5.1. 基本术语

进程(process) :指计算机中正在运行的程序实体。

应用进程互相通信 :一台主机的进程和另一台主机中的一个进程交换数据的过程(另外注意通信真正的端点不是主机而是主机中的进程,也就是说端到端的通信是应用进程之间的通信)。

传输层的复用与分用 :复用指发送方不同的进程都可以通过统一个运输层协议传送数据。分用指接收方的运输层在剥去报文的首部后能把这些数据正确的交付到目的应用进程。

**端口(port) ** :端口的目的是为了确认对方机器是那个进程在于自己进行交互,比如 MSN 和 QQ 的端口不同,如果没有端口就可能出现 QQ 进程和 MSN 交互错误。端口又称协议端口号。

停止等待协议(stop-and-wait) :指发送方每发送完一个分组就停止发送,等待对方确认,在收到确认之后在发送下一个分组。

流量控制 : 就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。

拥塞控制 :防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制所要做的都有一个前提,就是网络能够承受现有的网络负荷。

5.2. 知识点总结

网络层为主机提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信。

运输层提供应用进程之间的逻辑通信,也就是说,运输层之间的通信并不是真正在两个运输层之间直接传输数据。运输层向应用层屏蔽了下面网络的细节(如网络拓补,所采用的路由选择协议等),它使应用进程之间看起来好像两个运输层实体之间有一条端到端的逻辑通信信道。

TCP 报文段的前 20 个字节是固定的,后面有 4n 字节是根据需要增加的选项。因此,TCP 首部的最小长度是 20 字节。

TCP 使用滑动窗口机制。发送窗口里面的序号表示允许发送的序号。发送窗口后沿的后面部分表示已发送且已收到确认,而发送窗口前沿的前面部分表示不允许发送。发送窗口后沿的变化情况有两种可能,即不动(没有收到新的确认)和前移(收到了新的确认)。发送窗口的前沿通常是不断向前移动的。一般来说,我们总是希望数据传输更快一些。但如果发送方把数据发送的过快,接收方就可能来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。

5.3. 重点总结

5.3.1. 运输层的复用与分用功能

复用:应用进程都可以通过运输层再传送到 IP 层(网络层)。

分用:运输层从 IP 层收到发送给应用进程的数据后,必须分别交付给指明的各应用进程。

发送方的复用和接收方的分用

image-20221222132908569

TCP/IP体系的应用层常用协议所使用的运输层熟知端口号

image-20221222133235589

5.3.2. UDP 和 TCP 的区别以及两者的应用场景

Diagram comparing TCP and UDP
UDP(User Datagram Protocol) :用户数据报协议。

UDP 在传送数据之前不需要先建立连接,远地主机在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 确是一种最有效的工作方式。

UDP 的主要特点是:

  1. 无连接
  2. 尽最大努力交付
  3. 面向报文
  4. 无拥塞控制
  5. 支持一对一,一对多,多对一和多对多的交互通信
  6. 首部开销小(只有四个字段:源端口,目的端口,长度和检验和)
TCP(Transmission Control Protocol) :传输控制协议。

TCP 提供可靠的、面向连接的服务。在传送数据之前必须先建立连接,数据传送结束后要释放连接。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的,面向连接的传输服务,这一难以避免增加了许多开销,如确认,流量控制,计时器以及连接管理等。这不仅使协议数据单元的首部增大很多,还要占用许多处理机资源。

TCP 的主要特点是:

  1. 每一条 TCP 连接只能有两个端点 (endpoint),每一条 TCP 连接只能是点对点的(一对一)。

  2. TCP 提供可靠交付的服务。

  3. TCP 提供全双工通信。

  4. 面向字节流

    • TCP 中的“流”(stream) 指的是流入或流出进程的字节序列。

    • 虽然应用程序和 TCP 的交互是一次一个数据块,但 TCP 把应用程序交下来的数据看成仅仅是一连串无结构的字节流。

UDP和TCP的对比
image-20221221225151623

5.3.4. 可靠传输的原理

停止等待协议

停止等待协议是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,等待对方确认。在收到确认后再发下一个分组。

  1. 停止等待协议是最简单的可靠传输协议,停止等待就是每发送完一个分组就停止发送,等待对方的确认。在收到确认后再发送下一个分组。若接收方收到重复的分组,就会丢弃该分组,但同时还要向发送方发送确认;
  2. 停止等待协议中主要有4种情况:无差错情况超时重传确认丢失确认迟到
  3. 停止等待协议对信道的利用率不高,因为发送方每发送一个消息,都需要等待确认消息回来,只要确认消息没有正确地到达,就一直等;
(1) 无差错情况
  1. 发送方发送完分组 M1 后就暂停发送,等待 接收方 的确认(ACK)。
  2. 接收方 收到 M1 向 发送方 发送ACK。
  3. 发送方 在收到了对 M1 的确认后,就再发送下一个分组 M2。
(2) 出现差错

两种情况:

  1. 接收方 接收 M1 时检测出了差错,就丢弃 M1,其他什么也不做(不通 知 发送方 收到有差错的分组)。
  2. M1 在传输过程中丢失了,这时 接收方 当然什么都不知道,也什么都不做。

在这两种情况下,接收方 都不会发送任何信息。

超时重传:

  1. 发送方 为每一个已发送的分组设置一个超时计时器。
  2. 发送方 只要在超时计时器到期之前收到了相应的确认,就撤销该超时计时器,继续发送下一个分组 M2 。
  3. 发送方 在超时计时器规定时间内没有收到 接收方 的确认,就认为分组错误或丢失,就重发该分组。
(3) 确认丢失
  1. 接收方 所发送的对 M1 的确认丢失了,那么 A 在设定的超时重传 时间内将不会收到确认,因此 A 在超时计时器到期后重传 M1。

  2. 假定 接收方 正确收到了 A 重传的分组 M1。这时 接收方 应采取两个行动:

    (1) 丢弃这个重复的分组 M1,不向上层交付。

    (2) 向 A 发送确认。

(4) 确认迟到
  1. 对分组 M1 的确认迟到了,因此 发送方 在超时计时器到期后重传 M1。
  2. 接收方 会收到重复的 M1,丢弃重复的 M1,并重传确认分组。
  3. 发送方 会收到重复的确认。对重复的确认的处理:丢弃。
image-20230214222023015
停止等待协议要点
  • 停止等待。发送方每次只发送一个分组。在收到确认后再发送下一个分组。
  • 暂存:在发送完一个分组后,发送方必须暂存已发送的分组的副本,以备重发。
  • 编号。对发送的每个分组和确认都进行编号。
  • 超时重传。发送方为发送的每个分组设置一个超时计时器。若超时计时器超时位收到确认,发送方会自动超时重传分组。
  • 超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些,防止不必要的重传。
  • 简单,但信道利用率太低。
ARQ(自动重传请求)协议

为了提高传输效率,发送方可以不使用低效率的停止等待协议,而是采用流水线传输。流水线传输就是发送方可连续发送多个分组,不必每发完一个分组就停下来等待对方确认。这样可使信道上一直有数据不间断的在传送。这种传输方式可以明显提高信道利用率

连续ARQ协议可以提高信道的利用率。它引入了滑动窗口,通过滑动窗口可以批量发送数据,发送方维持一个发送窗口,凡位于发送窗口内的分组可以连续发送出去,而不需要等待对方确认。接收方一般采用累计确认,对按序到达的最后一个分组发送确认,表明到这个分组为止的所有分组都已经正确收到了。

  1. 发送窗口:发送方维持一个发送窗口,位于发送窗口内的分组都可被连续发送出去,而不需要等待对方的确认。
  2. 发送窗口滑动:发送方每收到一个确认,就把发送窗口向前滑动一个分组的位置。
  3. 累积确认:接收方对按序到达的最后一个分组发送确认,表示:到这个分组为止的所有分组都已正确收到了。
累积确认的优点与缺点

优点
容易实现,即使确认丟失也不必重传。

缺点

不能向发送方反映出接收方已经正确收到的所有分组的信息。

连续 ARQ 协议采用 Go-back-N (回退N)。

Go-back-N (回退N):表示需要再退回来重传已发送过的 N 个分组。

当通信线路质量不好时,连续 ARQ 协议会带来负面的影响。

滑动窗口

滑动窗口(Sliding window)是一种流量控制技术。用于网络数据传输时的流量控制,以避免拥塞的发生。该协议允许发送方在停止并等待确认前发送多个数据分组。由于发送方不必每发一个分组就停下来等待确认。因此该协议可以加速数据的传输。

TCP 中采用滑动窗口来进行传输控制,滑动窗口的大小意味着接收方还有多大的缓冲区可以用于接收数据。发送方可以通过滑动窗口的大小来确定应该发送多少字节的数据。当滑动窗口为 0 时,发送方一般不能再发送数据报;但有两种情况除外,一种情况是可以发送紧急数据,例如,允许用户终止在远端机上的运行进程。另一种情况是发送方可以发送一个 1 字节的数据报来通知接收方重新声明它希望接收的下一字节及发送方的滑动窗口大小。

TCP协议的可靠传输
  • TCP的可靠传输基于连续ARQ协议
  • TCP的滑动窗口以字节为单位

窗口的大小表示窗口里面的字节都是可以发送的,在窗口左边的表示已经确认的字节序号,右边属于不允许发送的字节序号;23代表对方期待收到的下一个字节。

假如说窗口里七个字节都已经发送出去,但是没有收到确认,那么可用窗口就为0。

image-20221222144917867

例题:

image-20230212110904687
重传时间的确定

超时计时器的重传时间应当比数据在分组传输的平均往返时间更长一些,防止不必要的重传。

选择确认 SACK

选择重传需要指定需要重传的字节,这里的字节是指需要重传的字节边界,例如1000~1500这一段里的500个字节丢失,需要重传,那么就会把1000和1500这两个数字存入TCP的选项里;

因为TCP的报文一次传输是传输多个字节,而不是一个字节,在丢失的情况下,其实丢失的是整个TCP报文,对于整个TCP报文都丢失的情况下,在报文里的一整段字节流都是丢失的。

5.3.6. TCP 的三次握手,四次挥手机制

image-20230212111119825

运输连接的三个阶段,即:连接建立,数据传送和连接释放。

主动发起 TCP 连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫做服务器。TCP 连接采用三报文握手机制。服务器要确认用户的连接请求,然后客户要对服务器的确认进行确认。

image-20230213232230124

TCP 的连接释放采用四报文握手机制。任何一方都可以在数据传送结束后发出连接释放的通知,待对方确认后进入半关闭状态。当另一方也没有数据再发送时,则发送连接释放通知,对方确认后就完全关闭了 TCP 连接。

image-20230214235314025
为什么要三次握手?

在只有两次"握手"的情形下,假设Client想跟Server建立连接,但是却因为中途连接请求的数据报丢失了,故Client端不得不重新发送一遍;这个时候Server端仅收到一个连接请求,因此可以正常的建立连接。但是,有时候Client端重新发送请求不是因为数据报丢失了,而是有可能数据传输过程因为网络并发量很大在某结点被阻塞了,这种情形下Server端将先后收到2次请求,并持续等待两个Client请求向他发送数据...问题就在这里,Client端实际上只有一次请求,而Server端却有2个响应,极端的情况可能由于Client端多次重新发送请求数据而导致Server端最后建立了N多个响应在等待,因而造成极大的资源浪费。

为什么要四次挥手?

试想一下,假如现在你是客户端你想断开跟Server的所有连接该怎么做?第一步,你自己先停止向Server端发送数据,并等待Server的回复。但事情还没有完,虽然你自身不往Server发送数据了,但是因为你们之前已经建立好平等的连接了,所以此时他也有主动权向你发送数据;故Server端还得终止主动向你发送数据,并等待你的确认。

6. 应用层(Application Layer)

application-layer

6.1. 基本术语

域名系统(DNS) :域名系统(DNS,Domain Name System)将人类可读的域名 (例如,www.baidu.com) 转换为机器可读的 IP 地址 (例如,220.181.38.148)。我们可以将其理解为专为互联网设计的电话薄。

img

文件传输协议(FTP) :FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于 Internet 上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的 FTP 应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在 FTP 的使用当中,用户经常遇到两个概念:“下载”(Download)和"上传"(Upload)。 "下载"文件就是从远程主机拷贝文件至自己的计算机上;"上传"文件就是将文件从自己的计算机中拷贝至远程主机上。用 Internet 语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

img

简单文件传输协议(TFTP) :TFTP(Trivial File Transfer Protocol,简单文件传输协议)是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。

万维网(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)计算机科学实验室成立。万维网联盟的创建者是万维网的发明者蒂姆·伯纳斯-李。万维网并不等同互联网,万维网只是互联网所能提供的服务其中之一,是靠着互联网运行的一项服务。

万维网的大致工作工程:

Two circles representing client and server. An arrow labelled request is going from client to server, and an arrow labelled responses is going from server to client

统一资源定位符(URL) :统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的 URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

超文本传输协议(HTTP) :超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的 WWW 文件都必须遵守这个标准。设计 HTTP 最初的目的是为了提供一种发布和接收 HTML 页面的方法。1960 年美国人 Ted Nelson 构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了 HTTP 超文本传输协议标准架构的发展根基。

HTTP 协议的本质就是一种浏览器与服务器之间约定好的通信格式。HTTP 的原理如下图所示:

image-20230212112448412

6.2. 知识点总结

  1. 文件传输协议(FTP)使用 TCP 可靠的运输服务。FTP 使用客户服务器方式。一个 FTP 服务器进程可以同时为多个用户提供服务。在进进行文件传输时,FTP 的客户和服务器之间要先建立两个并行的 TCP 连接:控制连接和数据连接。实际用于传输文件的是数据连接。

  2. 万维网客户程序与服务器之间进行交互使用的协议是超文本传输协议 HTTP。HTTP 使用 TCP 连接进行可靠传输。但 HTTP 本身是无连接、无状态的。HTTP/1.1 协议使用了持续连接(分为非流水线方式和流水线方式)

6.3. 重点总结

6.3.1. 域名解析DNS的过程

image-20221222135619623
posted @ 2023-02-12 18:30  Weltㅤ  阅读(773)  评论(2编辑  收藏  举报