Skip to content

3.1 Web协议

3.1.1 网络协议

分类协议
应用层DHCP HTTP HTTPS RTMP P2P DNS GTP RPC
传输层UDP TCP
网络层ICMP IP OSPF BGP IPSec GRE
链路层ARP VLAN STP
物理层网络跳线

3.1.2 OSI模型与TCP/IP模型

OSI模型

  1. 应用层:负责解决业务问题
  2. 表示层:负责把网络中的消息转换成应用层可以读取的消息
  3. 会话层:负责建立会话、握手、维持连接、关闭
  4. 传输层:负责解决进程与进程之间的通信,例如TCP保证报文的可达性和流量的控制
  5. 网络层:负责解决广域网(Internet)中主机之间数据的传递
  6. 数据链路层:负责局域网中根据MAC地址连接的相应的交换机/路由器进行报文的转发
  7. 物理层:物理传输介质

分层模型的优点在于当前层只需要考虑与其相邻层的对接交互,即每一层只为其之上的层服务,并使用在其之下的层所提供的服务,而不需要考虑其相邻层之外的其他层做了什么。分层模型的缺点在于不同层之间数据交互需要耗费更多的时间,从而影响网络性能。

3.1.3 web构架的关键属性:

  • 性能:影响高可用的关键因素
  • 可伸缩性:支持部署可以互相交互的大量组件
  • 简单性:易理解、易实现、易验证
  • 可见性:对两个组件间的交互进行监视或者仲裁的能力。如缓存、分层设计等
  • 可移植性:在不同的环境下运行的能力
  • 可靠性:出现部分故障时对整体的影响程度
  • 可修改性:对系统做出修改的难易程度,由可进化型、可定制性、可扩展性、可配置性、可重用性构成

3.1.4 五种架构风格:

  • 数据流风格 Data-flow Styles

优点:简单性、可进化性、可扩展性、可配置性、可重用性

  • 复制风格 Replication Styles

优点:用户可察觉的性能、可伸缩性,网络效率、可靠性也可以得到提升

  • 分层风格 Hierarchical Styles

优点:简单性、可进化性、可伸缩性

  • 移动代码风格 Mobile Code Styles

优点:可移植性、可扩展性、网络效率

  • 点对点风格 Peer-to-Peer Styles

优点:可进化性、可重用性、可扩展性、可配置性

TIP

抓包工具:Wireshark、Fiddler、Charles、Proxyman