复试面试复习——计算机网络重点

一、概述

1、解释协议、接口、服务

协议

  • 规则的集合。这些规则规定所交换的数据格式及有关的同步问题。是水平的。
  • 实质:PDU(协议数据单元)+逻辑(信息内容格式+交互逻辑)
  • 基本要素:语义(规定所要完成的功能)+语法(传输数据的格式)+同步(执行各种操作的条件、时序关系等)

接口

  • 同一结点内相邻两层交换信息的连接点,是一个系统内部的规定
  • 每层只能为紧邻的层次之间定义接口,不能跨层定义接口
  • 在典型的接口上,同一结点相邻两层的实体通过服务访问点 (Service Access Point,SAP)进行交互

服务

  • 下层为紧邻的上层提供的功能调用。垂直的。
  • 对等实体在协议的控制下,使得本层能为上一层提供服务,但要实现本层协议还需要使用下一层所提供的服务

2、计算机网络的性能指标

  1. 带宽:通信线路允许通过的信号频带范围
  2. 时延计算
    • 传输时延:分组长度/链路带宽(火车从车头到车尾进入山洞的时间)
    • 传播时延:物理链路长度/介质信号传播速度(火车在山洞里开的时间)
    • 处理时延:数据在交换节点为存储转发而进行的一些必要的处理所花费的时间
    • 排队时延:等待被发送到链路上的时间,取决于路由器的拥塞程度
  3. 时延带宽积:发送端发送的第一个比特即将到达终点时,发送端发送除了多少个比特(时延带宽积 = 传播时延 x 信道带宽
  4. 往返时延(Round-Trip Time,RTT) 从发送端发送数据开始,到接收到接收端的确认总共经历的时延
  5. 吞吐量:单位时间内整个网络传输数据的速率或分组数。一般小于带宽,受限于小的链路
  6. 速率:数字信道上传送数据的速率
  7. 信道利用率有数据通信时间/(有+无)数据通信时间

3、OSI模型、五层协议、TCP/IP模型

在这里插入图片描述

服务层名称作用常见协议
应用层为特定应用程序提供数据传输服务FTP, SMTP, STTP,HTTP
表示层数据压缩、加密以及数据描述
会话层建立及管理会话
传输层主机进程数据段传送TCP,UDP
网络层主机(源目标节点)间分组传送IP,路由协议
链路层相邻网络节点间的数据帧传送PPP,Ethernet
物理层物理机制上的比特传送

区别

  • OSI模型精确定义了服务、协议和接口的概念。而TCP/IP在这三个概念上没有明确的区分
  • OSI参考模型产生在协议发明之前,没有偏向于任何特定的协议。TCP/IP模型正相反,实际上是对已有协议的描述
  • CP/IP模型在设计之初就考虑到了多种异构网的互联问题,并将网际协议(IP)作为一个单独的重要层次
  • OSI参考模型在网络层支持无连接面向连接的通信,但在传输层仅有面向连接的通信。而TCP/IP模型认为可靠性是端到端的问题,因此它在网际层仅有一种无连接的通信模式,但传输层支持无连接和面向连接两种模式。这个不同点常常作为考查点。

二、物理层

1、电路交换、报文交换和分组交换

电路交换

  • 结点间建立专用的物体通信通道,可经过中间多个结点,且在数据传输过程中一直被独占
  • 优点
    • 时延小;有序传输;没有冲突;使用范围广;实时性强;控制简单
  • 缺点
    • 建立连接时间长;线路独占,使用效率低;灵活性差;难以规格化(不同类型、不同规格、不同速率的终端难以相互进行通信)

报文交换目前使用较少,使用分组交换替代

  • 报文携带目标地址、源地址等信息。在交换结点采用存储转发的传输方式
  • 优点
    • 无须建立连接 ;动态分配线路;提高线路利用率;提供多目标服务
  • 缺点
    • 存在转发时延(接收、校验、排队等);对报文大小没有限制,需要有较大的缓存空间


分组交换

  • 同报文交换也采用了存储转发的方式,但是对传输数据的大小作了限制,将大的数据块划分为合理的小数据块,加上必要的控制信息(源地址、目标地址和编号信息等),构成分组。
  • 优点
    • 无建立时延;线路利用率高;简化了存储管理(相对于报文交换);加速传输(两个分组可以并行执行存储和转发操作);减少了出错的概率和重发数据量
  • 缺点
    • 存在传输时延(相对于电路交换) ;需要传输额外的信息量(大约增加了5%~10%),一定程度降低了通信效率,增加处理时间,使控制复杂,时延增加;当采用数据报服务,可能出现失序、丢失或重新分组,采用虚电路,则会增加呼叫建立、虚电路释放的过程

理解这个图就差不多了
在这里插入图片描述

三、数据链路层

1、功能

  • 为网络层提供服务:将源及其中来自网络层的数据传输到目标机器的网络层,有无确认的无连接服务、有确认的无连接服务、有确认的面向连接服务
  • 链路管理:对数据链路层连接的建立、维持和释放进行管理
  • 帧定界、帧同步和透明传输
    • 帧定界:在数据首尾部添加控制信息,可以确定帧的界限
    • 帧同步:接收方应能从接收到的二进制比特流中区分出帧的起始与终止
    • 透明传输:解决数据中恰好和帧界定符相同的比特组合导致丢失后面的数据
  • 流量控制
  • 差错控制

2、流量控制

停止-等待流量控制:发送方每发送一帧,都要等待接收方的应答信号,之后才能发送下一帧
滑动窗口流量控制:在任意时刻,发送方都维持一组连续的允许发送的帧的序号,称为发送窗口;同时接收方也维持一组连续的允许接收帧的序号,称为接收窗口。发送窗口用来对发送方进行流量控制,而发送窗口的大小W代表在还未收到对方确认信息的情况下发送方最多还可以发送多少个数据帧。同理,在接收端设置接收窗口是为了控制可以接收哪些数据帧和不可以接收哪些帧。在接收方,只有收到的数据帧的序号落入接收窗口内时,才允许将该数据帧收下。若接收到的数据帧落在接收窗口之外,则一律将其丢弃。

3、差错控制

检错编码

  1. 奇偶校验码
    • 奇校验码:附加校验元使整个码字中1的个数为奇数
    • 偶校验码:附加校验元使整个码字中1的个数为偶数
  2. 循环冗余码
    • 给定 m m mbit 的帧或报文,发送器生成一个 r r rbit的序列,称为帧校验序列(FCS)。这样形成的帧由 m + r m+r m+r比特组成
      在这里插入图片描述

4. 可靠传输机制

单帧滑动窗口与停止-等待协议

在这里插入图片描述

多帧滑动窗口与后退N帧协议(GBN)

在这里插入图片描述

多帧滑动窗口与选择重传协议(SR)

在这里插入图片描述

四、网络层

1. 网络层功能

  1. 异构网络互联
  2. 路由转发
  3. 拥塞控制

1、数据报和虚电路比较

对接物理层的分组交换

数据报服务虚电路服务
连接建立不需要必须有
目的地址每一个分组都有完整的目的地址仅在建立连接时使用,之后每个分组使用较短的虚电路号
路由选择每个分组独立地进行路由的选择和转发属于同一条虚电路的分组按照同一路由转发
分组顺序不可保证分组的到达顺序保证分组的有序到达
可靠性不保证可靠通信,由用户主机来保证由网络保证
对网络故障的适应性出故障的结点丢失分组,其他分组路径选择发生变化时可以正常传输所有经过故障结点的虚电路均不能正常工作
差错处理和流量控制由用户主机进行流量控制,不保证数据报的可靠性可由分组交换网负责,也可以由用户主机负责

2、拥塞控制

拥塞控制方法

  • 端到端拥塞控制(TCP采用的方法)
    • 没有从网络中得到明确的反馈
    • 从端系统观察到的丢失和延迟推断出拥塞
  • 网络辅助的拥塞控制
    • 路由器给端系统提供反馈
    • 指明发送者应该发送的速率
    • 单bit指示拥塞(SNA, DECbit,TCP/IP ECN, ATM)

具体方法

L a s t B y t e S e n t − L a s t B y t e A C K e d < m i n ( C o n g W i n , R c v W i n ) 大 体 上 : r a t e = C o n g W i n R T T B y t e s / s e c LastByteSent -LastByteACKed < min(CongWin, RcvWin)\\ 大体上:rate = \frac{CongWin}{RTT} Bytes/sec LastByteSentLastByteACKed<min(CongWin,RcvWin):rate=RTTCongWinBytes/sec
CongWin(拥塞窗口,congestion window) : 最大可连续发送的数量(发送窗口大小)
通过丢包来感知拥塞:TCP发送方在丢失事件发生后降低发送速率

机制

  • 慢启动(slow start)
    • 开始连接时 CongWin = 1 MSS
    • 有效带宽将 >> MSS/RTT : 以2的指数方式增加速率知道产生丢失事件或达到阈值
  • 对拥塞事件作出反应
    • 超时事件发生时
      • CongWin立即设置为1个MSS
      • 窗口开始指数增长(进入慢启动),达到阈值(阈值也会下降)后再线性增长
    • 连续收到三个重复确认
      • CongWin 减半+3 (Reno版) ,然后开始线性增长
  • AIMD(Additive Increase Multiplicative Decrease)
    • 乘性递减:发生丢包事件后将拥塞窗口减半
    • 加性递增:每个RTT内如果没有丢失事件发生,拥塞窗口增加一个MSS
      慢开始和拥塞避免算法的实现举例(超时)
      新ssthresh值:24/2=12
      连续收到三个重复确认

3、划分子网

方法:从主机号借用若干个比特作为子网号,剩下的主机位为主机号。

子网掩码:用于标识网络号和主机号,网络号全1,主机号全0

例子
假设现有一个C类网202.115.1.1-202.115.1.254

  1. 划分2个子网、6个子网、14个子网
    2个要借1位,6个借3位,14个借4位
  2. 分30台主机,49台主机
    30<32,所以需要5位;
    49<64,需要6位

对某个子网来说,主机号全0的地址不能用,被用做标识该子网的子网号;主机号全1的也不能用,用于子网的广播。所以能容纳的主机数是 2 N − 2 2^N-2 2N2

传统IP分类问题

  • 一个A类的IP地址,可以有24bit用于分配主机地址,但是用不了那么多,会造成浪费
  • 一个C类的IP地址,只有8bit,可能不够用

4、路由算法

链路状态(LS)选路算法(Dijkstra算法)

经典算法,不作过多解释

  • 时间复杂度 O ( n 2 ) O(n^2) O(n2)
  • 可能产生振荡

距离向量(DV)路由算法

特点

  • 分布式:每个节点都从其直接相连邻居接收信息,进行计算,再将计算结果发布给邻居
  • 迭代:计算过程一直持续到邻居之间无更多信息交换为止
  • 异步:不要求所有节点相互之间步伐一致地操作
  • 自我终结:算法能自行停止

最低费用——Bellman-Ford方程
d x ( y ) = m i n v { c ( x , v ) + d v ( y ) } d_x(y) = min_v\{c(x,v)+d_v(y)\} dx(y)=minv{c(x,v)+dv(y)}

  • d x ( y ) d_x(y) dx(y):节点x到节点y地最低费用路径的费用
  • v v v:节点x的邻居节点
  • c ( x , v ) + d v ( y ) c(x,v)+d_v(y) c(x,v)+dv(y):x经v到节点y的最小的路径费用
  • m i n v min_v minv:从所有经直接相连邻居节点到节点y的费用中选取的最小路径费用

算法步骤

  1. 对每个结点
    • 初始化
    • 更新自己的距离向量
    • 重复执行上一步,直到没有更新的距离向量发出
  2. 节点的距离向量表
    • 每个节点不断向邻居发送其距离向量拷贝
    • 当节点收到邻居发送的新距离向量,先保存,再用B-F公式更新自己的距离向量
    • 若距离向量发生改变,将新距离向量发送给邻居
    • 当距离向量不再变化是,算法终止

LS和DV比较

两者在寻找最低费用的过程中,本质思想是一样的,比较–>更新节点状态–>比较

  • 消息复杂度
    • LS算法:知道网络每条链路的费用,需发送O(nE)个报文;当一条链路的费用变化时,必须通知所有节点
    • DV算法:迭代时,仅在两个直接相连邻居之间交换报文;当链路费用改变时,只有该链路相连的节点的最低费用路径发生改变时,才传播已
      改变的链路费用。
  • 收敛速度
    • LS算法:需要 O ( n E ) O(nE) O(nE)个报文和 O ( n 2 ) O(n^2) O(n2)的搜寻,可能会振荡
    • DV算法:收敛较慢。可能会遇到选路回环,或计数到无穷的问题
  • 健壮性
    • LS算法:路由器向其连接的一条链路广播不正确费用,路由计算基本独立(仅计算自己的转发表),有一定健壮性。
    • DV算法:一个节点可向任意或所有目的节点发布其不正确的最低费用路径,一个节点的计算值会传递给它的邻居,并间接地传递给邻居的邻居。
      一个不正确的计算值会扩散到整个网络。

五、传输层

1. 传输层提供的服务

  1. 传输层提供应用进程之间的通信逻辑
  2. 复用和分用。复用是指发送方不同的应用进程都可使用同一个传输层协议传送数据;分用是指接收方的传输层在剥去报文的首部后能够把这些数据正确交付到目的应用进程。
  3. 对收到的报文进行差错检测(首部和数据部分)
  4. 提供两种不同的传输协议,即面向连接的TCP和无连接的UDP。

2. TCP和UDP及区别

UDP

特点:

  • 不需要建立连接(没有握手)——减少延迟
  • 简单:在收发之间不需要连接状态
  • 很小的数据报头,首部只有8字节,每个字段2字节
  • 没有拥塞控制:UDP能尽可能快的速度传递
  • UDP面向报文
    • 添加首部后向下交付给IP层,去除首部交付上层的应用程序
    • UDP不会合并或拆分报文,一次就发送一个报文

TCP

特点:

  1. TCP是面向连接的传输层协议。
  2. 每条TCP连接只能有两个端点,每条TCP连接只能是点对点的(一对一)。
  3. TCP提供可靠的交付服务,保证传送的数据无差错、不丢失、不重复且有序。
  4. TCP提供全双工通信,允许通信双方的应用进程在任何时候都能发送数据,为此TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据。
    发送缓存用来暂时存放以下数据:①发送应用程序传送给发送方TCP准备发送的数据;②TCP已发送但尚未收到确认的数据。接收缓存用来暂时存放以下数据:①按序到达但尚未被接收应用程序读取的数据;②不按序到达的数据。
  5. TCP是面向字节流的,虽然应用程序和TCP的交互是一次一个数据块(大小不等),但TCP把应用程序交下来的数据仅视为一连串的无结构的字节流。

用户数据报协议 UDP(User Datagram Protocol):无连接的,尽最大可能交付,没有拥塞控制,面向报文对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部,支持一对一、一对多、多对一和多对多的交互通信。

区别

TCPUDP
是否连接面向连接无连接
是否可靠可靠传输(有序,无差错,不丢失,不重复)不可靠
面向字节流的传输,因此它能将信息分割成组,并在接收端将其重组面向数据报的传输,没有分组开销
提供拥塞控制和流量控制机制不提供
只能是点对点的(一对一)支持一对一、一对多、多对一和多对多的交互通信

2、连接管理

在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。

1、第一步:源主机A的TCP向主机B发出连接请求报文段,其首部中的SYN(同步)标志位应置为1,表示想与目标主机B进行通信,并发送一个同步序列号X(例:SEQ=100)进行同步,表明在后面传送数据时的第一个数据字节的序号是X+1(即101)。SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号。

2、第二步:目标主机B的TCP收到连接请求报文段后,如同意,则发回确认。在确认报中应将ACK位和SYN位置1,表示客户端的请求被接受。确认号应为X+1(即为101),同时也为自己选择一个序号Y。

3、第三步:源主机A的TCP收到目标主机B的确认后要向目标主机B给出确认,其ACK置1,确认号为Y+1,而自己的序号为X+1。(TCP的标准规定,SYN置1的报文段要消耗掉一个序号。)

运行客户进程的源主机A的TCP通知上层应用进程,连接已经建立。当源主机A向目标主机B发送第一个数据报文段时,其序号仍为X+1,因为前一个确认报文段并不消耗序号。

当运行服务进程的目标主机B的TCP收到源主机A的确认后,也通知其上层应用进程,连接已经建立。至此建立了一个全双工的连接。

建立连接三次握手

在这里插入图片描述

六、应用层

1. P2P模型

思想:整个网络中的传输内容不再被保存在中心服务器上,每个结点都同时具有下载、上传的功能,其权利和义务都是大体对等

相较于C/S模型,P2P模型的优点主要体现在:

  1. 减轻服务器的计算压力,消除了对服务器的完全依赖,可以将任务分配到各个结点上,因此大大提高了系统效率和资源利用率
  2. 多个客户机之间可以直接共享文档
  3. 可拓展性好,传统服务器有响应和带宽的限制,因此只能接受一定数量的请求
  4. 网络健壮性强,单个结点的失效不会影响其他部分结点

缺点

  1. 在获取服务的同时,还要给其他结点提供服务,因此会占用较多内存,影响整机速度

2. DNS

域名系统,IP地址的域名映射
功能

  • 主机名到ip地址的转换
  • 主机别名:一个主机可以有一个规范主机名和多个主机别名
  • 邮件服务器别名
  • 负载分配:DNS实现冗余服务器:一个IP地址集合可以对应于同一个规范主机名

查询方式

  1. 递归:层层递进直到查到结果再返回
  2. 迭代:查询一次,就将查询结果返回本地DNS服务器
    在这里插入图片描述

3. 输入网址获取页面的过程

  1. 浏览器分析链接指向页面的URL
  2. 浏览器向DNS请求解析域名的IP地址
    1. 浏览器先查找浏览器缓存,如果有域名的IP地址就返回,没有就继续查找
    2. 系统查找系统缓存,如果有域名的IP地址就返回,没有就继续查找
    3. 路由器查找路由器缓存,同上
    4. 如果都没有找到,就从本地域名服务器开始进行DNS查询。本地域名服务器采用迭代的方式,先向根服务器查询,根服务器返回下一次查询的顶级域名服务器的IP地址
    5. 本地服务器向顶级域名服务器查询,顶级域名服务器告诉下一次应查询的权限域名服务器的IP地址
    6. 反复直至到某一级服务器查询到了域名对应的IP地址
    7. 本地域名服务器将结果告诉主机
  3. 主机浏览器获取Web服务器的IP地址后,与服务器建立TCP连接(三次挥手)
    1. 浏览器所在的客户机向服务器发出连接请求报文
    2. 服务器接收报文后,同意建立连接,向客户机发送确认报文
    3. 客户机接收确认报文后再次向服务器发送报文,确认已经收到确认报文
    4. TCP连接建立成功,开始通信
  4. 浏览器发出HTTP请求:GET …
  5. 服务器给出相应反馈,将指定文件发送到浏览器
  6. 浏览器释放TCP连接(四次挥手)
    1. 浏览器所在的主机向服务器发送连接释放报文,然后停止发送数据
    2. 服务器收到确认释放报文后返回确认报文,然后将服务器上未发送的数据发送完
    3. 发送完毕后,向客户机发送连接释放报文
    4. 客户机收到报文后,发出确认,等待一段时间,释放TCP连接
  7. 浏览器渲染页面内容

4. http和https,及其区别

HTTP

  • HTTP是无状态的,也就是说服务器不会记得哪个客户访问过。
  • HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。在实际应用中,通常使用Cookie加载数据库的方式跟踪用户的活动。
  • HTTP采用了TCP作为传输层协议,保证了数据的可靠性。但是HTTP本身是无连接的。
  • HTTP既可以使用非持久连接,也可以使用持久连接(HTTP/1.1支持)
    • 持久连接分流水线方式和非流水线方式。其中非流水线方式客户在收到前一个响应后才能发出下一个请求;对于流水线方式,客户每遇到一个对象引用就立即发出一个请求,因而可会可以逐个连续发出对各个引用对象的请求。
    • HTTP/1.1默认使用

区别

  • HTTPS是HTTP协议的安全版本,HTTP协议的数据传输是明文的,是不安全的,HTTPS使用了SSL/TLS协议进行了加密处理。
  • http和https使用连接方式不同,默认端口也不一样,http是80,https是443。
  • 5
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值