• 协议那些事(一)


    以下单流程为例

    • 当我们在浏览器中输入一串URL https://cn.bing.com/, 浏览器其实只知道名字 cn.bing.com 并不知道具体的地点 不知如何访问 于是通过地址簿去查找
      于是需要了解--地址簿协议

      • 一般使用 DNS
      • 更为精准的则是 HTTPDNS
    • 无论使用哪种协议 最终都会获得一个唯一IP 也就是我们的目标地址 知道了目标地址 浏览器开始打包请求 假设我们发送了一个下单请求
      这里就又要使用--传输协议了

      • 通常使用HTTP协议
      • 但是如果需要加密传输 比如购物请求 我们则使用的是HTTPS协议

      无论使用哪种传输协议 协议都会包含请求内容 通常格式如下

    • DNS/HTTP/HTTPS所在层 既是应用层 请求在应用层被封装成包后 便交由下一层去处理 也就是传输层 这一步通常使用socket编程来实现
      而传输层主要协议有

      • 无连接协议UDP
      • 面向连接协议TCP 【会确认连接 如果没收到确认 则会重复发送( 这里重复发送的不是下单请求 而是连接确认 除非TCP连接断开 浏览器应用层才会重新发送下单请求 )直到收到确认 所以我们通常也称这个为安全连接】

      TCP协议包含两个端口

      • 浏览器监听端口
      • 电商服务器监听端口

      操作系统会根据端口来判断 得到的包应该给哪个进程 于是请求包又被包了一层 如下

    • 这里传输层完成封装后 浏览器便将包交由网络层 网络层使用IP协议 即会标明源IP(客户端IP) 和目标IP(电商服务器IP)
      于是包再次被封装 如下

    操作系统会辨别目标IP是在本地还是外地 如果目标IP在外地 我们则要通过网关 【操作系统启动时就会被DHCP配置Ip地址 以及默认的网关IP】
    那操作系统又是怎么发送消息给网关的呢 则是通过ARP协议 发布消息 网关订阅消息 接到消息后网关会告知操作系统自己的MAC地址

    • MAC地址:MAC地址全球唯一 固化在网卡里 【网卡是硬件 需要软件支持即操作系统识别 识别出来就是一个字符串 于是MAC地址可修改--修改注册表中的记录】
      于是包又被封装了一层 如下

      然后操作系统就将包交给了MAC层 网卡再通过包里网关的MAC地址 找到网关【通常是一个路由器 由一个路由表 决定IP走向】
      网关也不是一下子就跳转到目的地 通常需要几次跳转(通过MAC地址)才能到达 而如何跳转
      则又用到了路由协议
      • OSPF
      • BGP
    • 接着目标服务器终于发现了MAC地址是找自己的 于是取下包的MAC头 交给本机操作系统的网络层 进行IP核对 核对上后就取下包的IP头 交由传输层即TCP层 TCP层会原路回复一个包 表明确认连接
    • 接着网络包就平安到达了TCP层 TCP层中包含目标端口号 而这个端口号 是被电商网站进程监听的 网站监听到下单请求后 再告诉相关进程 比如扣减库存 支付等进程 【进程间的交流可以通过RPC GRPC Webapi】
    • 最后电商网站处理完毕 就会回复一个HTTPS的包 返回给浏览器 告知操作成功

    各层涉及到的主要协议如图

  • 相关阅读:
    PL/SQL Developer保存自定义界面布局
    SQL Server 2008中SQL增强之二:Top新用途
    泛型和集合
    Go语言
    软件架构师培训
    using的几种用法
    【十五分钟Talkshow】如何善用你的.NET开发环境
    心的感谢
    【缅怀妈妈系列诗歌】之四:妈妈,对不起
    PDA开发经验小结 (转共享)
  • 原文地址:https://www.cnblogs.com/Alicia-meng/p/14239698.html
Copyright © 2020-2023  润新知