分布式架构下 网络通信的底层实现原理(一)

什么是通信?

当我们通过浏览器访问一个网址时,一段时间后该网址会渲染出访问的内容,这个过程是怎么实现的呢?

这种通信方式是基于http协议实现的,那么什么是协议?
像一个中国人和一个外国人交流时,一个讲英语另一个讲解中文,肯定是无法正常交流。因此

两个计算机之间要实现数据通信,必须遵循同一种协议

协议的组成

组成一个协议,需要具备三个要素:

  • 语法,就是这一段内容要符合一定的规则和格式。例如,括号要成对,结束要使用分号等。

  • 语义,就是这一段内容要代表某种意义。例如数字减去数字是有意义的,数字减去文本一般来说就没有意义。

  • 时序,就是先干啥,后干啥。例如,可以先加上某个数值,然后再减去某个数值。

 http协议

http协议包含包含几个部分:

  • http请求组成

    • 状态行

    • 请求头

    • 消息主体

  • http响应组成

    • 状态行

    • 响应头

    • 响应正文

 

Http三要素分别是:

  • 语法:http协议的消息体由状态、头部、内容组成。

  • 语义:比如状态,200表示成功,404表示请求路径不存在等,通信双方必须遵循该语义。

  • 时序:组成消息体的三部分的排列顺序,必须要有request,才会产生response。

 http请求结构:

 常用的网络协议

DNS协议、Http协议、SSH协议、TCP协议、FTP协议等,这些都是大家比较常用的协议类型。无论哪种协议,本质上仍然是由协议的三要素组成,只是应用场景不同。

DNS、HTTP、HTTPS 所在的层我们称为应用层。经过应用层封装后,浏览器会将应用层的包交给下一层去完成,通过 socket 编程来实现。下一层是传输层。传输层有两种协议,一种是无连接的协议 UDP,一种是面向连接的协议 TCP。对于通信可靠性要求的场景来说,往往使用 TCP 协议。所谓的面向连接就是,TCP 会保证这个包能够到达目的地。如果不能到达,就会重新发送,直至到达。

TCP/IP通信原理分析

网络模型为什么要分层呢?其实从我们现在的业务分层架构中就不难发现,任何系统一旦变得复杂,就都会采用分层设计。它的主要好处是

  • 实现高内聚低耦合

  • 每一层有自己单一的职责

  • 提高可复用性和降低维护成本

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/439625.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis 配置文件详解

Units 单位 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit,大小写不敏感。 # Redis configuration file example. # # Note that in order to read the configuration file, Redis must be # started with …

无尘抹布在洁净室环境中的作用与重要性

导言: 洁净室环境,特别是在制药、电子和生物技术等行业中,对清洁和卫生的要求极为严格。无尘抹布在维护这些环境的洁净和卫生方面起着至关重要的作用。本文将探讨无尘抹布的重要性以及在洁净室环境中的各种应用。 了解无尘抹布 定义和组成&a…

TensorBoard——Pytorch版使用(附带案例演示)

TensorBoard是一个用于可视化机器学习实验结果的工具,可以帮助我们更好地理解和调试训练过程中的模型。 在PyTorch中,我们可以使用TensorBoardX库来与TensorBoard进行交互。TensorBoardX是一个PyTorch的扩展,它允许我们将PyTorch的训练中的关…

基于Vue的兴趣活动推荐APP的设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术简介 3 1.1 框架 3 1.1.1 Spring MVC 3 1.1.2 Spring框架 3 1.1.3 MyBatis框架 3 1.1.4 VUE框架 3 1.2 开发语言 3 1.2.1 JAVA 3 1.2.2 JavaScript 4 1.3 设计模式 4 1.4 数据库 4 2 可行性分析 5 2.1 社会可行性 5 2.2 经济可行…

Extended Feature Pyramid Network for SmallObject Detection

摘要 各种尺度的特征耦合会削弱小对象的性能,本文中,我们提出了具有超高分辨率金字塔的扩展特征金字塔网络(EFPN ),专门用于小目标检测。具体来说,我们设计了一个新模块,称为特征纹理转移&#…

《Effective Modern C++》- 极精简版 5-14条

本文章属于专栏《业界Cpp进阶建议整理》 继续上篇《Effective Modern C》- 极精简版 1-4条。本文列出《Effective Modern C》的5-14条的个人理解的极精简版本。 Item5、优先考虑auto而非显示类型声明 auto的优势: 强制变量初始化在返回部分场景,会返回一…

释机器学习中的召回率、精确率、准确率

精确率和召回率又被叫做查准率和查全率,可以通过P-R图进行表示 如何理解P-R(精确率-召回率)曲线呢?或者说这些曲线是根据什么变化呢? 以逻辑回归举例,其输出值是0-1之间的数字。因此,如果我们想要判断用户的好坏&…

如何做好【沟通】管理

目录 管理的定义 管理的四大职能: 四共团队: 领导力: 沟通的四种类型听、说、读、写(计划、报告) 沟通四原则 思维框架:结构树报告 管理的定义 彼得.德鲁克:管理通过他人去完成任务的学…

基于java SSM图书管理系统简单版设计和实现

基于java SSM图书管理系统简单版设计和实现 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系…

c++ 11 新特性 不同数据类型之间转换函数之const_cast

一.不同数据类型之间转换函数const_cast介绍 const_cast是C11中引入的一种类型转换操作符,用于修改类型的const或volatile属性。const_cast的主要用途是移除对象的常量性,它是唯一具有此能力的C风格的转型操作符。在C11中,const_cast可以完成…

Linux安装,配置,启动HBase

Linux安装,配置,启动HBase 一、HBase安装,配置 1、下载HBase安装包 Hbase官方下载地址: http://archive.apache.org/dist/hbase 选择相应的版本点击下载,这里以2.3.5为例 # linux可以通过wget命令下载 wget https://archive…

如何解决Firefox提示“此网站可能不支持TLS1.2协议”的问题 错误代码:SSL_ERROR_UNSUPPORTED_VERSION

1.问题描述 当你在Firefox浏览器中访问一个网站时,可能会遇到这样的提示:   之后,不停地刷新或 重新输入,怎么也访问不进去?? 2.解决步骤 按照以下步骤操作,可以降低Firefox对TLS版本的要求…

HEUFT电源维修x-ray发生器维修HBE211226

HEUFT电源维修x-ray发生器维修HBE211253;海富HEUFT在线液位检测X射线发生器维修,不限型型号系列。 德国海富推出HEUFT在线液位检测装置,满瓶检测系统HEUFT有着强大的功能,它的模块机构能整合很多程序,并依据不同的产品及其包装特性,照相技术,高频技术或X-ray技术。…

[eslint error] ‘v-model‘ should be on a new line.

错误详情 错误原因 此问题是由于.eslintrc.js文件中的vue/max-attributes-per-line配置错误产生的 esline默认要求属性单独开一行 错误解决 所以解决的方法有两个一个是遵从eslint默认规则让属性新开一行,能解决问题 但是我不喜欢看这样子的代码,所以我只好去改掉eslint的规…

声强和能量及其praat操作

强度、声压、能量、功率 这是我们在电学和声学等领域较常见到的词汇,但有时候可能会搞混淆,所以再整理一下。 强度(intensity) 强度,也叫做声强(Sound intensity)。《声学基础》中对于声强的…

Unity 关节:铰链、弹簧、固定、物理材质:摩檫力、 特效:拖尾、

组件-物理-关节:铰链(类似门轴) 自动动作、多少力可以将其断开、 弹簧可以连接另一个刚体(拖动即可) 固定一般是等待一个断裂力,造成四分五裂的效果。 物理材质 设置摩檫力,则可以创造冰面的…

K8S之实现业务的金丝雀发布

如何实现金丝雀发布 金丝雀发布简介优缺点在k8s中实现金丝雀发布 金丝雀发布简介 金丝雀发布的由来:17 世纪,英国矿井工人发现,金丝雀对瓦斯这种气体十分敏感。空气中哪怕有极其微量的瓦斯,金丝雀也会停止歌唱;当瓦斯…

redis缓存(穿透, 雪崩, 击穿, 数据不一致, 数据并发竞争 ), 分布式锁(watch乐观锁, setnx, redission)

redis的watch缓存机制 WATCH 机制原理: WATCH 机制:使用 WATCH 监视一个或多个 key , 跟踪 key 的 value 修改情况,如果有key 的 value 值在事务 EXEC 执行之前被修改了,整个事务被取消。EXEC 返回提示信息,表示 事务已…

蓝桥杯——矩形拼接

矩形拼接 题目分析 对于一个矩形而言,我可以把它横着放,而可以把它竖着放,比如下图, 3个矩形的拼接情况可以通过在纸上画图模拟出来,情况有以下三种 ​ 图1 图3是4条边,即四边形。观察一下什么时候会是四…

邮件api有哪些作用?使用API发邮件的方法?

邮件api接口发信的流程?如何使用邮件API发送邮件? 在现代的数字化社会,电子邮件成为了人们日常生活和工作中不可或缺的一部分。为了提高邮件处理的效率和自动化程度,邮件API的应用越来越广泛。那么,邮件API究竟有哪些…