当前位置: 首页 > news >正文

数据通信与网络(二)

如何构建网络协议

这些协议采用分层的结构,每层协议实现特定功能,同时也需要依靠低层协议所提供的服务。

网络协议可以理解为三部分组成:

1、语法:通信时双方交换数据和控制信息的格式,是对通信时采用的数据结构形式的一种规定。

2、语义:由通信过程的说明构成,它规定了需要发出何种控制信息完成何种动作以及做出何种应答。

3、时序(同步):通信如何发起,再收到一个数据后,下一步要做什么。

HTTP协议是应用层协议,是浏览器和Web服务器通信时使用的协议,当浏览器访问服务器时,会向服务器发出请求报文,报文的语法格式:GET/HTTP/1.1。

“GET”的语义是要获取文件;“/”的含义是指要访问网站的主页;“HTTP1.1”表明浏览器使用的协议是HTTP1.1版本。  

当Web服务器收到请求后,如果主页存在服务器的应答语法格式:HTTP/1.1 200 OK  data data ……。200 是状态码,代表成功;OK是文字说明, data是文件数据。

如果主页不存在,服务器的应答是:HTTP/1.1 404 NOT Found ,告诉浏览器没有找到对应的文件。

不同主机上的同一层次称为对等层

每一层中实现功能的协议元素称为实体,实体既可以是软件,也可以是硬件。

对等层内的实体称为对等实体。

每一层都有特定的功能,使用下一层为它提供的服务,同时也为自己的高层提供服务。

数据传递过程

数据从发送端的最高层开始,层层向下,层层封装,直到发送方的最底层,转换为电磁信号后经过物理链路到达接收端的最底层,再层层向上,层层解封装,最后到达接收方的最高层,整个通信过程是垂直

高层使用了低层的服务,低层向高层提供服务,高层通过低层提供的服务接口访问低层的服务。

数据的传递在概念上可以认为通信是水平的,数据高翔由对等层的一端直接到达了另一端。

通信的目的就是要实现对等层之间的水平通信,虽然事实上水平通信要依赖垂直通信来实现。

协议分层的优点:

1、每个层次都可以单独实现。

2、层次明确也更有利于标准化。

计算机网络体系结构

各个层次的所有协议也被称为协议栈

采用不同体系结构的两个网络之间很难通信

为使所有的网络都能互连互通,国际标准化组织ISO提出了开放系统互连参考模型(Open Systems Interconnection Reference Model,OSI/RM),简称OSI参考模型。

1~3层称为低层功能(LLF):通信传送功能——网络和终端具备的功能

第4~7层称为高层功能(HLF):通信处理功能——终端具备的功能

TCP/IP协议体系

应用层:相当于OSI参考模型的应用层,具体的协议有超文本传输协议(HTTP)、文件传输协议(FTP)等。

运输层: TCP协议:为应用程序提供面向连接的可靠的通信,具有流量控制和拥塞控制的功能。 UDP协议:提供无连接的不可靠通信,但是效率较高。

互联网层:相当于OSI参考模型的网络层,要为数据找到一条正确的路到达目的地,主要的协议是IP。

网络接口层:相当于OSI参考模型的数据链路层和物理层。

TCP/IP的应用层

应用层协议为文件传输、电子邮件、远程登录、网络管理、Web浏览等应用提供了支持。有些协议的名称与以其为基础的应用程序同名。

TCP/IP的传输层

传输层的主要功能:提供进程间可靠的传输服务。

传输层包括TCP和UDP两种传输协议:

TCP是面向连接的传输协议。 在数据传输之前建立连接; 把报文分解为多个段进行传输,在目的站再重新装配这些段; 必要时重新传输没有收到或错误的段,因此它是“可靠”的。

UDP是无连接的传输协议。 在数据传输之前不建立连接; 对发送的段不进行校验和确认,因此它是“不可靠”的; 主要用于请求/应答式的应用和语音、视频应用。

TCP和UDP都用端口(port)号来设别应用层实体,以便准确地把信息提交给上层对应的协议(进程)。

TCP/IP的网络层

主要功能是把数据报通过最佳路径送到目的端。

- 寻址(IP地址)、路由选择、封包/拆包

网络层的核心协议 --- IP,提供了无连接的数据报传输服务(不保证送达,不保证序,不保证无错)

        -传输前不需建立连接

        -提高了传输效率

网络层是网络转发节点(如路由器)上的最高层。

        -网络节点设备不需要传输层和应用层

网际层的其他重要协议:

ICMP(Internet Control Message Protocol)

传递控制信息

        - 可达性测试

        - 传送路由状态信息

        - 超时通知

        - 不可达通知

封装在IP中进行传输

ARP(Address Resolution Protocal)

为已知的IP地址确定相应的MAC地址

RARP (Reverse Address R二solution Protocal)

为已知的MAC地址确定相应的IP地址

IGMP(Internet Group Management Protocol)

多播组管理

TCP/IP的网络接口层

没有定义任何实际协议,仅定义了网络接口

任何已有的数据链路层协议和物理层协议都可以用来支持TCP/IP

典型的例子:

- Ethernet、Token Ring、HDHL、X.25、ATM

优点:适应性强、灵活

缺点:不能利用已存在的某些有用的功能

- TCP/IP总是认为其下层是不可靠的(尽管可能已经足够可靠)

TCP/IP协议栈

主机和路由器的协议栈

对于端系统(主机和服务器)而言,因为包括具体的网络应用,所以四层协议都具备。

对于通信子网中的分组交换设备(路由器),其作用是转发分组,并不关心高层数据,所以协议栈只包括下两层协议(互联网层和网络接口层)。

OSI参考模型和TCP/IP参考模型比较

相同之处:

1、两者都采用层次型的模型。

2、都以协议栈的概念为基础,且协议栈中的协议是彼此相互独立的。

3、两个模型中各层的功能大体相似。

不同之处:

1、服务、接口和协议这三个概念,OSI非常明确,TCP/IP没有区分三者间的差异。前者的协议隐蔽性比后者好,这有利于协议的更新。

2、OSI是模型在先协议在后,这意味着该模型具有通用性,而TCP/IP模型却相反,模型只有已有协议的一个描述,但未必适合其他的协议栈。

3、两种模型层的数目不同。

4、OSI的网络层同时支持面向连接和无连接服务,但远输层只支持面向连接服务。而TCP/IP的网络层只有一种无连接服务模式,但在远输层同时支持两种服务模式

5、TCP/IP较早就有较好的网络管理。OSI后来才考虑网管问题。

相关文章:

数据通信与网络(二)

如何构建网络协议 这些协议采用分层的结构,每层协议实现特定功能,同时也需要依靠低层协议所提供的服务。 网络协议可以理解为三部分组成: 1、语法:通信时双方交换数据和控制信息的格式,是对通信时采用的数据结构形式…...

DTU为何应用如此广泛?

1.DTU是什么 DTU(数据传输单元)是一种无线终端设备,它的核心功能是将串口数据转换为IP数据或将IP数据转换为串口数据,并通过无线通信网络进行传送。DTU通常内置GPRS模块,能够实现远程数据的实时传输,广泛应用于工业自动化、远程监…...

基于软件在环的飞控机建模仿真

安全关键系统(Safety-Critical System,SCS)是指由于某些行为或组合行为能够引发整体系统失效,继而导致财物损失、人员受伤等严重影响的系统,诸多安全关键领域如航空航天、核电系统、医疗设备、交通运输等领域的系统都属…...

github ssh key的SHA256是什么

github ssh key的SHA256是什么 怎么知道github上自己的公钥指纹和本地的公钥是否一致? 计算方法如下: cat .ssh/id_rsa.pub |awk { print $2 } | # Only the actual key data without prefix or commentsbase64 -d | # decode as base64s…...

HyperBDR新版本上线,自动化容灾兼容再升级!

本次HyperBDR v5.5.0版本新增完成HCS(Huawei Cloud Stack)8.3.x和HCSO(Huawei Cloud Stack Online)自动化对接,另外还突破性完成了Oracle云(块存储模式)的自动化对接。 HyperBDR,云原生业务级别容灾工具。支…...

python学习—合并多个Excel工作簿表格文件

系列文章目录 python学习—合并TXT文本文件 python学习—统计嵌套文件夹内的文件数量并建立索引表格 python学习—查找指定目录下的指定类型文件 python学习—年会不能停,游戏抽签抽奖 python学习—循环语句-控制流 文章目录 系列文章目录功能说明1 准备工作&#…...

如何把路由器设备的LAN口地址为三大私网地址

要将路由器的LAN口地址配置为三大私有IP地址范围之一(10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16),我们需要访问路由器的管理界面并进行相应的设置。 下面是步骤: 连接到路由器: 连接到路由器的管理界面&#xf…...

Java多线程-StampedLock(原子读写锁)

StampedLock 是读写锁的实现,对比 ReentrantReadWriteLock 主要不同是该锁不允许重入,多了乐观读的功能,使用上会更加复杂一些,但是具有更好的性能表现。StampedLock 的状态由版本和读写锁持有计数组成。 获取锁方法返回一个邮戳&…...

(源码)一套医学影像PACS系统源码 医院系统源码 提供数据接收、图像处理、测量、保存、管理、远程医疗和系统参数设置等功能

PACS系统还提供了数据接收、图像处理、测量、保存、管理、远程医疗和系统参数设置等功能。 PACS系统提高了医学影像的利用率和诊疗效率,为医生提供了更加准确和及时的诊断依据。它是医院信息化的必备系统之一,已经成为医学影像管理和传输的重要工具。 P…...

【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框

博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt窗口 | 对话框 | 创建自定义对话框 文章编号:Qt 学习笔记…...

# RocketMQ 实战:模拟电商网站场景综合案例(五)

RocketMQ 实战&#xff1a;模拟电商网站场景综合案例&#xff08;五&#xff09; 一、mybatis 逆向工程使用 4、逆向工程 生成 的 .xml 配置文件。 4.1、生成的 TradeCouponMapper.xml 文件。 <?xml version"1.0" encoding"UTF-8" ?> <!DOC…...

Cesium4Unreal - # 009 直接加载显示shapefile

文章目录 直接加载显示shapefile1 思路2 步骤2.1 下载shapelib2.2 添加依赖模块2.3 创建Actor2.3.1 MyShapeLoaderActor.h2.3.2 MyShapeLoaderActor.cpp2.3 蓝图代码直接加载显示shapefile 1 思路 在Unreal Engine中加载显示shapefile无非就是从shapefile中读取几何数据,并且…...

Release和Debug的区别?Release有什么好处?【面试】

Release和Debug的区别&#xff1a; 优化&#xff1a;Debug版本通常不进行优化&#xff0c;以便更容易调试&#xff1b;Release版本则经过高度优化&#xff0c;以提高性能。调试信息&#xff1a;Debug版本包含详尽的调试信息&#xff0c;如符号信息和源代码映射&#xff1b;Rel…...

DevExpress 控件和库

UI控件和组件 DevExpress WinForms包括以下Windows窗体库和控件&#xff1a; Grids and Editors Data Grid Tree List Vertical Grid Property Grid Gantt Control Data Editors and Simple Controls Office-inspired Ribbon, Bars and Menu Rich Text Editor Scheduler S…...

车载以太网测试

一、车载以太网的发展 IEEE&#xff1a; 电气与电子工程师协会&#xff0c;其中IEEE802.3工作小组致力于推进以太网相关标准的制定与完善&#xff0c;其发展主要经过一下三个阶段: 1.诊断/程序更新 2.智驾座舱 3.主干网 二、车载以太网协议&#xff08;OSI七层模型&#x…...

181.二叉树:验证二叉树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…...

陪诊小程序开发,陪诊师在线接单

近几年&#xff0c;陪诊师成为了一个新兴行业&#xff0c;在科技时代中&#xff0c;陪诊小程序作为互联网下的产物&#xff0c;为陪诊市场带来了更多的便利。 当下生活压力大&#xff0c;老龄化逐渐严重&#xff0c;年轻人很难做到陪同家属看病。此外&#xff0c;就诊中出现了…...

【全开源】Java无人共享棋牌室茶室台球室系统JAVA版本支持微信小程序+微信公众号

无人共享棋牌室系统——棋牌娱乐新体验 &#x1f3b2;引言 随着科技的不断发展&#xff0c;传统棋牌室正逐渐迈向智能化、无人化。今天&#xff0c;我要为大家介绍的就是这款引领潮流的“无人共享棋牌室系统”。它不仅为棋牌爱好者提供了全新的娱乐体验&#xff0c;更在便捷性…...

2024-6-10-zero shot,few shot以及无监督学习之间的关系是什么

Zero-shot learning、few-shot learning和无监督学习都是机器学习中的方法&#xff0c;它们共同的特点是在有限或没有标签数据的情况下进行学习。下面是这三种方法之间的关系和区别&#xff1a; Zero-shot Learning (零样本学习)&#xff1a; 零样本学习是在模型训练过程中完全…...

C语言|十进制数转换任意进制数

将十进制数转换成任意进制数。 思路分析&#xff1a; 先举一个具体的例子&#xff1a;十进制转换为二进制数 1 定义一个数组a[100]&#xff0c;先归0&#xff0c;再存放运算过程中的余数 2 定义变量m, 先存放键盘上输入的十进制数 3 定义变量R 表示几进制数&#xff0c;循环变量…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

JS手写代码篇----使用Promise封装AJAX请求

15、使用Promise封装AJAX请求 promise就有reject和resolve了&#xff0c;就不必写成功和失败的回调函数了 const BASEURL ./手写ajax/test.jsonfunction promiseAjax() {return new Promise((resolve, reject) > {const xhr new XMLHttpRequest();xhr.open("get&quo…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...