NodeJs 面试题 2022.6

???
???
???????????????(要知道对好事的称颂过于夸大,也会招来人们的反感轻蔑和嫉妒。——培根)
???
???
????????????????

Http七层协议工作原理,都有哪些状态码,分别是什么意思

  • 为什么需要协议/p>

    • 如果苹果,三星,华为都是自己的协议,那么就只能和自己通信,所以就弄一个标准化的协议,所有人来实现,这样所有人就能互通了
  • 四层协议关系

    • 应用层:http协议,邮件服务协议
    • 传输层:TCP协议
      • SYN 建立连接
      • FIN 关闭连接
      • ACK 响应连接
      • PSH DATA数据传输
      • RST 连接重置
    • 络层:IP协议
    • 数据链路层:以太 协议
  • 端口 范围0-65535,1024之前不允许用

  • 物理层

    • 过去:通过家里的猫来连接 线实现电脑间的通信,这个就属于物理层
    • 现在:连接无线 ,属于无线讯 ,也是物理层
    • 连接上之后传递010101的电路信
  • 数据链路层

    • 是给电路信 分配规则的,过去每个公司都有自己的电路信 规则。
    • 后来出现了以太 协议,将电信 归纳成一个数据包,也叫一个帧。
      • 每一帧都分成两部分,标头head和数据data
      • 标头head包含了一些说明信息,比如发送者mac地址,接收者mac地址和数据类型等
    • 而电路信 的通信又依赖 卡,利用电脑间的 卡进行通信
      • 以太 协议规定 卡包含mac地址,mac地址是 卡的唯一标识,全球唯一
        • 12个16进制的数字表示mac地址
        • 前6个16进制数字是厂商编
      • 后6个16进制数字是 卡流水
        • windows使用ipconfig命令查看mac地址 物理地址 比如7C-67-A2-20-AB-5C
        • linux使用ifconfig -a命令查看mac地址
      • 所以以太 传递数据包就必须指定接收者的mac地址才能进行传输
      • 以太 协议如何根据 卡进行通信的
        • 局域 情况下,也叫子
          • 在以太 内一个数据包的发送,会先广播给局域 的所有电脑设备 卡,然后每台电脑都从数据包中取出接收者的mac地址和自己的mac地址进行对比,如果是一样的,则说明是给自己发送的数据包才进行处理,否则就丢弃数据包
        • 如何知道哪些电脑在当前局域 内呢
          • 这就需要依靠 络层来支持了
            • 请看下面的 络层
  • 络层

    • 络层里有ip协议,ip协议定以的地址就是ip地址。ip地址理由ipv4和ipv6两种类型,目前广泛使用的是ipv4,是由32个二进制数字组成,但一般由4个十进制数字来表示,范围是0.0.0.0到255.255.255.255
    • 每台电脑都有一个ip地址,前24位(前3位十进制数字)代表 络,后8位(最后1个十进制数字)代表了主机,如果几台电脑是一个子 的,那么前3位十进制的数字就是一样的
      • 比如开虚拟机或者连接的都是同一个 线,无线 ,则电脑的ip地址分别是192.168.0.180,192.168.0.181,192.168.0.182,192.168.0.183,可以看出192.168.0这三位数字是一样的就证明大家是一个子 的,最后一个数字就是主机编
      • 但上面的描述不是百分百准备,需要将子 掩码进行二进制运算才可以真正对比出是不是属于同一个子 内
        • 比如192.168.0.180和192.168.0.181 通过二进制运算后的结果分别式
        • 11000000.10101000.0.10110100
        • 11000000.10101000.0.10110101
        • 然后判断前三位 如果相同则证明是一个子
        • 最后一位表示主机编
        • 所以通过子 掩码就可以确定局域 下的电脑,然后就可以互相通信了
        • 但如果不在一个子 内如何通信呢
        • 所以这就需要路由器
    • 路由器 也成为 关
      • 可以把多个子 给串联起来
      • 根据以太坊协议, 卡间只能在子 内进行通信,但要和其他 卡进行通信,就可以把包发给交换机,交换机再把包进行广播,路由器(路由器也有mac地址)上的 卡收到后判断是不是自己的,是自己的话,再通过交换用以太坊协议进行广播分发
      • 所以以太 要和多个子 进行通讯,就需要交换机和路由器
      • ARP协议
        • 一个局域 内的机器会互相给对方发送自己的mac地址,所以当一个机器要发送数据包时,就可以知道其他电脑的mac地址了
    • 交换机,一种工作在数据链路成的设备, 关是工作在 络层
    • 总结:子 间的机器如何通信,在数据包中写上对方的mac地址,通过交换机用以太坊协议进行广播。如果是跨子 通信,在包里写上目标和路由器的mac地址,路由器再根据目标地址通过交换机进行广播,一直持续找到最终mac地址为止
    • LAN 局域
    • WAN 广域
    • WLAN 无线局域
    • 但同一个电脑下运行着qq,微信,视频等软件,怎么区分数据包是发给这个ip下的哪一个服务呢么就需要有一个端口的概念来进行区分,所以这也是为什么端口要唯一的原因。
    • 那么如何将数据包发到某一个ip的某一个端口上就需要TCP协议了
  • 传输层

    • TCP协议简述

      • 存在长连接和短连接

        • 短链接

          • TCP短连接:client向server发起连接请求,server接到请求,然后双方建立连接。client向server发送消息,server回应client,然后一次请求就完成了。这时候双方任意都可以发起close操作,不过一般都是client先发起close操作。上述可知,短连接一般只会在 client/server间传递一次请求操作。

            短连接的优点是:管理起来比较简单,存在的连接都是有用的连接,不需要额外的控制手段

        • 长连接 keepalive

          • TCP长连接的情况:client向server发起连接,server接受cli

            声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月26日
下一篇 2022年5月26日

相关推荐