网络遗漏知识点整理

网络遗漏知识点整理

IP层的主要功能

  • 分组转发和路由选择

路由器分组转发的主要流程

  • 从数据报的首部提取目的主机的 IP 地址 D,得到目的网络地址 N。
  • 若 N 就是与此路由器直接相连的某个网络地址,则进行直接交付;
  • 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给表中所指明的下一跳路由器;
  • 若路由表中有到达网络 N 的路由,则把数据报传送给路由表中所指明的下一跳路由器;
  • 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;
  • 报告转发分组出错。

网络遗漏知识点整理_第1张图片

路由选择协议

路由选择协议都是自适应的,能随着网络通信量和拓扑结构的变化而自适应地进行调整。

互联网可以划分为许多较小的自治系统 AS,一个 AS 可以使用一种和别的 AS 不同的路由选择协议。

可以把路由选择协议划分为两大类:

  • 自治系统内部的路由选择:RIP 和 OSPF
  • 自治系统间的路由选择:BGP

1. 内部网关协议 RIP

RIP 是一种基于距离向量的路由选择协议。距离是指跳数,直接相连的路由器跳数为 1。跳数最多为 15,超过 15 表示不可达。

RIP 按固定的时间间隔仅和相邻路由器交换自己的路由表,经过若干次交换之后,所有路由器最终会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器地址。

距离向量算法:

  • 对地址为 X 的相邻路由器发来的 RIP 报文,先修改报文中的所有项目,把下一跳字段中的地址改为 X,并把所有的距离字段加 1;
  • 对修改后的 RIP 报文中的每一个项目,进行以下步骤:
  • 若原来的路由表中没有目的网络 N,则把该项目添加到路由表中;
  • 否则:若下一跳路由器地址是 X,则把收到的项目替换原来路由表中的项目;否则:若收到的项目中的距离 d 小于路由表中的距离,则进行更新(例如原始路由表项为 Net2, 5, P,新表项为 Net2, 4, X,则更新);否则什么也不做。
  • 若 3 分钟还没有收到相邻路由器的更新路由表,则把该相邻路由器标为不可达,即把距离置为 16。

RIP 协议实现简单,开销小。但是 RIP 能使用的最大距离为 15,限制了网络的规模。并且当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器。

2. 内部网关协议 OSPF

开放最短路径优先 OSPF,是为了克服 RIP 的缺点而开发出来的。

开放表示 OSPF 不受某一家厂商控制,而是公开发表的;最短路径优先表示使用了 Dijkstra 提出的最短路径算法 SPF。

OSPF 具有以下特点:

  • 向本自治系统中的所有路由器发送信息,这种方法是洪泛法。
  • 发送的信息就是与相邻路由器的链路状态,链路状态包括与哪些路由器相连以及链路的度量,度量用费用、距离、时延、带宽等来表示。
  • 只有当链路状态发生变化时,路由器才会发送信息。

所有路由器都具有全网的拓扑结构图,并且是一致的。相比于 RIP,OSPF 的更新过程收敛的很快。

3. 外部网关协议 BGP

BGP(Border Gateway Protocol,边界网关协议)

AS 之间的路由选择很困难,主要是由于:

  • 互联网规模很大;
  • 各个 AS 内部使用不同的路由选择协议,无法准确定义路径的度量;
  • AS 之间的路由选择必须考虑有关的策略,比如有些 AS 不愿意让其它 AS 经过。

BGP 只能寻找一条比较好的路由,而不是最佳路由。

每个 AS 都必须配置 BGP 发言人,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息。 

网络遗漏知识点整理_第2张图片

可靠传输理论

可靠传输的原理,当出现差错时,可以让发送方重传出现差错的数据,同时在接收方来不及处理收到的数据时,及时告知发送方适当降低发送数据的速度。

出现差错

  • 超时重传 A向B发送数据时,一旦出现差错则B会丢弃该分组或者数据没有传到B,B都不会向A发送分组的确认,可以为每一个分组发送一个超时计时器,如果在超时计时器之前收到了对方的确认,就撤销已设置的计时器,否则就认为该分组丢失了,所以A会重传这个分组

注意三点:

  • 必须暂时保留已发送的分组的副本(为发生超时重传使用),只有在收到对应的确认后才清除暂时保留的分组副本
  • 分组和确认分组必须进行编号,这样才能明确是哪一个发送出去的分组收到了确认,哪一个没有收到确认
  • 超时计时器设置的时间应当比数据在分组传输的平均往返时间更长一些,因为发送出去的分组要经过哪些网络,以及会产生多大的时延都是不确定的

确认丢失和确认迟到

  • 确认丢失:B发送的分组确认丢失了,A在规定的重传时间内没有收到确认,但并不知道是分组出错,丢失或是B的分组确认丢失了,所以A会重传这个分组,这时B会进行一下两个操作

    1. B会丢弃这个重复的分组,不会向上层交付
    2. 向A重新发送确认
  • 确认迟到:B对A的分组确认在规定的重传时间之后才到达,则A会重传这个分组,而B会丢弃这个分组,同时重传分组确认,直到收到分组的确认,而对于迟到的分组确认,A直接丢弃 

网络遗漏知识点整理_第3张图片

以上所说的是自动重传请求ARQ的可靠传输协议

 

连续ARQ协议

目的是为了提高信道的利用率

  • 发送方维持一个发送窗口,发送方没收到一个确认,就把窗口往前移动一个分组的位置
  • 接收方一般采用累积确认的方式,也就是说接收方不必对收到的分组一个个的发送确认,而是对按序到达的最后一个分组发送确认

TCP的可靠传输

  • TCP 使用超时重传来实现可靠传输:如果一个已经发送的报文段在超时时间内没有收到确认,那么就重传这个报文段。

TCP流量控制

流量控制是为了控制发送方发送速率,保证接收方来得及接收。

接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将窗口字段设置为 0,则发送方不能发送数据。

TCP拥塞控制

所谓拥塞控制就是防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不至于过载。

  • 如果网络出现拥塞,分组将会丢失,此时发送方会继续重传,从而导致网络拥塞程度更高。因此当出现拥塞时,应当控制发送方的速率。这一点和流量控制很像,但是出发点不同。流量控制是为了让接收方能来得及接收,而拥塞控制是为了降低整个网络的拥塞程度。
  • 拥塞控制是全局性的过程,涉及所有的主机,所有的路由器以及与降低网络传输性能有关的所有因素。
  • 而流量控制往往指点对点通信量的控制,是个端到端的问题。流量控制只是抑制发送方发送数据的速率,以便使接收端来得及接收。 

网络遗漏知识点整理_第4张图片

  • TCP 主要通过四种算法来进行拥塞控制:慢开始、拥塞避免、快重传、快恢复。

发送方需要维护一个叫做拥塞窗口(cwnd)的状态变量,注意拥塞窗口与发送方窗口的区别:拥塞窗口只是一个状态变量,实际决定发送方能发送多少数据的是发送方窗口。发送窗口的值一般是接收窗口和拥塞窗口的最小值

慢开始与拥塞避免

  • 发送的最初执行慢开始,令 cwnd=1,发送方只能发送 1 个报文段;当每收到一个对新报文段的确认后,将 cwnd 加1,因此之后发送方能够发送的报文段数量为:2、4、8 ...

  • 注意到慢开始每个轮次都将 cwnd 加倍,这样会让 cwnd 增长速度非常快,从而使得发送方发送的速度增长速度过快,网络拥塞的可能也就更高。设置一个慢开始门限 ssthresh,当 cwnd >= ssthresh 时,进入拥塞避免,每个轮次只将 cwnd 加 1。

如果出现了超时,很可能是网络发生拥塞了(表现形式就是没有按时收到确认),则令 ssthresh = cwnd/2,然后重新执行慢开始。

网络遗漏知识点整理_第5张图片

快重传与快恢复

  • 快重传要求接收方每收到一个失序的报文段就立即发出重复确认(为的是让发送方及时知道有报文段没有到达对方),一旦收到三个重复确认,立即重传这个对方尚未收到的报文段,而不必继续等待为该报文段设置的超时计时器到时再重传,发送方尽早重传未被确认的报文段,可以使网络吞吐量显著提高。
  • 在接收方,要求每次接收到报文段都应该对最后一个已收到的有序报文段进行确认。例如已经接收到 M1 和 M2,此时收到 M4,应当发送对 M2 的确认。
  • 在发送方,如果收到三个重复确认,那么可以知道下一个报文段丢失,此时执行快重传,立即重传下一个报文段。例如收到三个 M2,则 M3 丢失,立即重传 M3。
  • 在这种情况下,只是丢失个别报文段,而不是网络拥塞。(否则,也不会有好几个报文段连续到达接收方)因此执行快恢复,令 ssthresh = cwnd/2 ,cwnd = ssthresh,注意到此时直接进入拥塞避免。
  • 慢开始和快恢复的快慢指的是 cwnd 的设定值,而不是 cwnd 的增长速率。慢开始 cwnd 设定为 1,而快恢复 cwnd 设定为 ssthresh。 

网络遗漏知识点整理_第6张图片

应用层协议

DNS协议

从输入网址到获得页面的整个过程

  • 在阿里面经对应题目处的记录

ftp协议——文件传送协议

FTP 使用 TCP 进行连接,它需要两个连接来传送一个文件:

  • 控制连接:服务器以打开端口号 21 等待客户端的连接,客户端主动建立连接后,使用这个连接将客户端的命令传送给服务器,并传回服务器的应答。
  • 数据连接:用来传送一个文件。

根据数据连接是否是服务器端主动建立,FTP 有主动和被动两种模式:

  • 主动模式:服务器端主动建立数据连接,其中服务器端的端口号为 20,客户端的端口号随机,但是必须大于 1024,因为 0~1023 是熟知端口号。

  • 被动模式:客户端主动建立数据连接,其中客户端的端口号由客户端自己指定,服务器端的端口号随机。

主动模式要求客户端开放端口号给服务器端,需要去配置客户端的防火墙。被动模式只需要服务器端开放端口号即可,无需客户端配置防火墙。但是被动模式会导致服务器端的安全性减弱,因为开放了过多的端口号。

电子邮件协议

一个电子邮件系统由三部分组成:用户代理、邮件服务器以及邮件协议。

邮件协议包含发送协议和读取协议,发送协议常用 SMTP,读取协议常用 POP3 和 IMAP。

  • POP3

POP3 的特点是只要用户从服务器上读取了邮件,就把该邮件删除。

  • IMAP

IMAP 协议中客户端和服务器上的邮件保持同步,如果不去手动删除邮件,那么服务器上的邮件也不会被删除。IMAP 这种做法可以让用户随时随地去访问服务器上的邮件。

  • SMTP

SMTP 只能发送 ASCII 码,而互联网邮件扩充 MIME 可以发送二进制文件。MIME 并没有改动或者取代 SMTP,而是增加邮件主体的结构,定义了非 ASCII 码的编码规则。

常用端口

网络遗漏知识点整理_第7张图片

你可能感兴趣的:(网络)