数据通信与网络(二)
如何构建网络协议
这些协议采用分层的结构,每层协议实现特定功能,同时也需要依靠低层协议所提供的服务。
网络协议可以理解为三部分组成:
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),我们需要访问路由器的管理界面并进行相应的设置。 下面是步骤: 连接到路由器: 连接到路由器的管理界面…...

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

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

【Qt 学习笔记】Qt窗口 | 对话框 | 创建自定义对话框
博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ Qt窗口 | 对话框 | 创建自定义对话框 文章编号:Qt 学习笔记…...
# RocketMQ 实战:模拟电商网站场景综合案例(五)
RocketMQ 实战:模拟电商网站场景综合案例(五) 一、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的区别: 优化:Debug版本通常不进行优化,以便更容易调试;Release版本则经过高度优化,以提高性能。调试信息:Debug版本包含详尽的调试信息,如符号信息和源代码映射;Rel…...

DevExpress 控件和库
UI控件和组件 DevExpress WinForms包括以下Windows窗体库和控件: 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: 电气与电子工程师协会,其中IEEE802.3工作小组致力于推进以太网相关标准的制定与完善,其发展主要经过一下三个阶段: 1.诊断/程序更新 2.智驾座舱 3.主干网 二、车载以太网协议(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…...

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

【全开源】Java无人共享棋牌室茶室台球室系统JAVA版本支持微信小程序+微信公众号
无人共享棋牌室系统——棋牌娱乐新体验 🎲引言 随着科技的不断发展,传统棋牌室正逐渐迈向智能化、无人化。今天,我要为大家介绍的就是这款引领潮流的“无人共享棋牌室系统”。它不仅为棋牌爱好者提供了全新的娱乐体验,更在便捷性…...
2024-6-10-zero shot,few shot以及无监督学习之间的关系是什么
Zero-shot learning、few-shot learning和无监督学习都是机器学习中的方法,它们共同的特点是在有限或没有标签数据的情况下进行学习。下面是这三种方法之间的关系和区别: Zero-shot Learning (零样本学习): 零样本学习是在模型训练过程中完全…...

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

Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...

在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...

高考志愿填报管理系统---开发介绍
高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...

实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...