• 计算机网络——第五章网络层笔记(5)


    网络地址翻译(NAT)

    Private IP address:不可路由的地址、也可用于广域网链路上

    NAT:net address translate 

    私有IP地址和公有IP地址之间的转换。

    PAT:port address translate

    将多个私有IP地址影射到同一个公有IP地址的不同端口。使用网络地址

    使用网络地址转换带来的问题

    1、违背了IP的结构模型-每个IP地址唯一地标识了一台机器

    2、将互联网改变成了“面向连接”的网络,NAT转换器维护着连接的状态,-旦它崩溃,连接也没有了。

    3、违背了最基本的协议分层原则。

    4、如果传输层不是采用TCP或UDP,而是采用了其它的协议,NAT将不再工作。

    5、有些应用会在payload中插入IP地址,然后接收方会提取出该IP地址并使用,但是NAT转换器对此一无所知,导致该类应用不再有效。

    6、NAT让一个IP地址可以承载61,440 (65536-4096) 个私人地址(超载,PAT)。

    互联网控制协议(ICMP)

    引入ICMP的原因:IP分组传送不可靠,可能遭遇各种问题。

    ICMP消息封装IP分组中。

    如丢包,可能发生拥塞、延迟、抖动等。

    ping工作的原理

    1、使用ping命令时,将向目的站点发送一个ICMP回声请求报文。

    2、 如目的站点接收感到该报文,必须向源站点发回一个ICMP回声应答报文,源站点接收应答报文,则认为目的站点是可达的,否则认为不可达。

    ping 127.0.0.1               测试TCP/IP是否正常工作

    ping  本机IP地址           网络设备是否正确

    ping  默认网关               检查对外连接的路由器

    ping  IP                           检查与某台设备的畅通情况

    ping   www.scut.edu.cn   检查DNS设置

    ping -a IP地址                  执行DNS反向查询

    tracert命令

    1、tracert过程是通过ICMP数据报超时报文来得到一张途经的路由器列表。

    2、源主机向目的主机发一个IP报文,并置TTL为1,到达第一个路由器时,TTL减1,为0,则该路由器回发一个ICMP数据报超时报文,源主机取出路由器的IP地址即为途经的第一个路由端口地址。

    3、接着源主机再向目的主机发第二个IP报文,并置TTL为2,然后再发第三个、第四个IP数据报,....直 至到达目的主机。

    4、但互联网的运行环境状态是动态的,每次路径的选择有可能不一致,所以,只有在相对较稳定(相对变化缓慢)的网络中,tracert才有意义。

    Tracerroute原理图示

     MTU:最大数据包大小(单位:字节)

    地址解析协议(ARP)

    Address Resolution Protocol

     

     ARP工作改进:

    1、缓存ARP结果。

    2、在ARP请求中包括源机的IP-to-MAC地址的映射。

    3、每台机器在启动的时候,广播它的IP-MAC地址对。

    免费ARP

    1、当一台主机启动时,发送要给一个免费ARP, (如果意外收到- -个应答,即是IP地址发生了冲突)。

    2、当一个接口(interface) 的配置发生了改变,会发送一个免费ARP

    缺省网关(代理ARP)

    1、当源设备需要的目的地址与自己不在同一个网络时,如果源达到目的,当路由器在这种方式下使用时,称为缺省网关。

    2、缺省网关是与源设备所处的网段相连的路由器接口上的IP地址。

    什么是ARP表

    1、为了减少ARP请求的次数,每个设备拥有自己的ARP表,包括路由器。

    2、储存在存储器(RAM) 中,自动维护。 (掉电消失)

    维护方法:

    1、通过广播ARP请求中的源设备信息添加更新表

    2、利用自己的ARP请求之应答信息来添加、更新表

    3、删除超过一定时限的信息。

    拥塞控制

    定义:当一个子网或子网的一部分出现太多分组抖动时候,网络的性能急剧下降。

    产生原因:

    1、输入流量大于输出线路的容量。

    2、慢速的处理器也可能引起拥塞,如线路容量充足,但处理器来不及处理。

    3、线路容量和处理器能力需要平衡。

    拥塞控制的通用原则

    1、开环

    试图用良好的设计来解决问题,本质是从一开始就保证问题 不会发生;开环决策制定不考虑网络的当前状态。

    2、闭环

    建立在反馈环路的概念上,分三个步骤:

     监视系统,检测何时何地发生了拥塞

     把这些信息传递到能够采取行动的地方

     调整系统的运行,以改正问题

    发生拥塞的现象

     因为缺乏缓存空间而丢弃的分组百分比

     平均队列长度

     超时和重传的分组数

     平均分组延迟

     分组延迟的标准方差

    发生拥塞的根源:负载>资源

    1、增加资源。

    方法:

         在某些点之间使用更多的通道增加带宽(广深)

          把流量分散到多条路径

          启用空闲或备份的路由器  

    2、降低负载。

    方法:

           拒绝为某些用户提供服务

           给某些用户的服务降低等级

           让用户更有预见性地安排他们的需求

    数据报子网中的拥塞控制

    通过路由器监听,每条线路和一个实变量u关联在一起(1-10)之间,超出则对应线路进入警告“warning”状态,每个新到达的分组都将被检查它的输出线路是否处于警告状态。

    警告状态的处理措施

    1、The Warning Bit(警告位): 分组头部中的一个特殊的位,该位被复制到下一个确认分组中,被传回源,源机会监视设置了警告位的分组的比例,相应地调整它的发送速度。

    2、Choke Packets(抑制分组): 路由器给源机发回一个抑制分组,并在抑制分组中指明原分组的目标地址,当源机收到抑制分组后,它会以某种百分比减少它发向该目标的流量。在一段固定的时间内,源机会忽略同样一个目标的抑制分组 ,过了这段时间,会继续侦听有无新的抑制分组,如果没有源机,将增加流量。

    3、负载丢弃(载荷脱落):

                 随机丢弃(random)

                 丢弃新到达的 (葡萄酒策略,适合文件传输类)

                 丢弃早到达的分组 (牛奶策略,适合多媒体类)

                 丢弃不太重要的( less important )分组

    流量整形

    目的:调节数据传输的平均速率(和突发数据流),可以减少拥塞。

    算法

          漏桶(leaky bucket)

          令牌桶(token bucket)

          其它:资源预留、准入控制、分组调度等 

    漏桶算法

    1、每个主机连接到网络的接口中都有一个漏桶,即一个优先长度的内部队列。

    2、当桶中有分组的时候,输出速率是恒定的,当桶空的时候, 输出速率是0。

    3、当一个分组到达满的桶的时候,分组将被丢弃(满则溢)。

    3、每个时钟嘀嗒( tick ),仅允许一个分组或固定数量的分组发送出去。

    目的:主机内用户进程产生的分组流往往是一个不稳定的流,漏桶可以让它输出到网络时变成一个稳定流,抹平了突发尖峰,极大地减 少了发生拥塞的机会

    令牌桶算法

    1、令牌桶允许突发,但是最大突发受制于令牌桶容量的限制 。

    2、当桶满的时候,令牌桶算法丢掉的是令牌(不是分组)。

    计算公式:

    B+RS=MS

    S=B/(M-R)

    注:突发时间: S 秒 ,令牌桶容量: B字节 ,令牌到达的速率: R 字节/秒 , 最大输出速率: M 字节/秒。

    例题:

    一个10Mb/s的网上有一台由令牌捅控制的主机,令牌桶以2Mb/s的 速率填充。假定令牌桶有20Mb的容积。

    (1)问主机能以10Mb/s全速发送数据的最大可能的时间是多少?

    (2)主机能以10Mb/s全速发送数据的最大数据量是多少?

     

  • 相关阅读:
    vue中的h函数与JSX语法
    接口测试场景:怎么实现登录之后,需要进行昵称修改?
    ESP32的BLE使用学习
    避开大坑:win10-CPU版(64位)环境下安装Anaconoda和tensorflow,亲测成功
    微信小程序--》从模块小程序项目案例23.10.09
    深度剖析 Apache EventMesh 云原生分布式事件驱动架构
    【JAVA springframework.http】如何发送HTTP请求
    深度、广度优先遍历(邻接表)
    flink 基于flink-sql-connector-elasticsearch6二次开发思路
    【聚类】K-Means聚类
  • 原文地址:https://blog.csdn.net/m0_51273315/article/details/127943126