C++网络编程之网络模型

news2024/11/16 13:52:17

概述

        所谓网络模型,是指一组定义了网络通信功能和行为的规则和标准。这些模型通过将网络通信功能分解成不同的层次,使得网络通信更加模块化,也更易于理解和实施。每一层都有其特定的功能,通过层与层之间的交互,确保数据能够从源端正确无误地传输到目的端。

        网络模型的核心思想是:将复杂的网络通信任务划分为若干个独立的层次,每一层专注于完成特定的功能,并与相邻层进行交互。这样做的好处是每一层可以独立设计、测试和优化,同时降低了系统的复杂度,提高了可维护性和互操作性。

OSI七层模型

        OSI七层模型是由国际标准化组织(ISO)提出的一种网络通信模型,它将网络通信功能分解为七个层次,每个层次都有其特定的功能。OSI七层模型提供了一个标准化的框架,以帮助人们理解和实现网络通信的不同方面。OSI七层模型具体包括:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。下面,我们逐一进行介绍。

        1、物理层

        定义了网络硬件层面的连接标准,包括物理媒介(比如:电缆、光纤)、电气特性(比如:电压水平、信号频率)、机械特性(比如:插头形状、尺寸)以及过程特性(比如:如何建立和断开物理连接)。物理层主要负责原始比特流的传输,即数据的物理传输。

        应用了物理层的设备主要有:双绞线、同轴电缆、光纤、集线器、中继器等。

        2、数据链路层

        负责节点间的数据传输,即在同一物理网络内的设备之间的数据帧传输。数据链路层提供错误检测机制(比如:校验和、循环冗余校验CRC)和错误恢复机制,并负责流量控制,确保数据不会过快地发送而导致接收方无法处理。

        应用了数据链路层的设备主要有:网桥、交换机等。

        3、网络层

        负责路由选择和逻辑寻址,确定数据包从源到目的地的最佳路径。网络层处理IP地址和子网掩码,进行逻辑寻址和路由选择。同时,还提供服务质量选项,比如:优先级和延迟保证。

        应用了网络层的设备主要有:路由器等。

        4、传输层

        提供端到端的通信,确保数据可靠传输。传输层负责建立、维护和终止连接,保证数据的顺序性和完整性。另外,还支持流控和拥塞控制,防止网络拥塞。

        应用了传输层的协议主要有:TCP(传输控制协议)、UDP(用户数据报协议)等。

        5、会话层

        负责建立、管理和终止表示层实体之间的通信会话。会话层提供同步服务,确保数据按正确的顺序传输。

        6、表示层

        用于处理数据的表示形式,比如:加密、解密、压缩、解压缩等。这样,可以确保数据对应用层来说是透明的,即应用层无需关心数据的具体表示形式。

        表示层可参考JPEG、MPEG等编码格式的转换。

        7、应用层

        为应用程序提供网络服务,使应用程序能够访问网络功能。应用层提供应用程序所需的接口,允许应用程序与网络进行交互。

        应用层可参考HTTP、FTP、SMTP、DNS等协议。

        在数据从应用层发送到物理层的过程中,每一层都会对数据进行特定的处理,添加必要的头部信息。而在数据从物理层接收并向上层传递的过程中,则会移除相应的头部信息。我们以Web浏览器向Web服务器请求一个网页为例,来说明数据的封装与解封装过程。

        对于Web浏览器来说,其数据的封装过程如下。

        (1)应用层:生成HTTP请求。

        (2)表示层:可能对HTTP请求进行编码或加密。

        (3)会话层:可能添加会话控制信息。

        (4)传输层:添加TCP头部,形成TCP段。

        (5)网络层:添加IP头部,形成IP数据包。

        (6)数据链路层:添加帧头部(MAC地址),形成帧。

        (7)物理层:将帧转换为比特流,通过网络发送到服务器。

        对于Web服务器来说,其数据的解封装过程如下。

        (1)物理层:接收比特流,重新组装成帧。

        (2)数据链路层:移除帧头部,得到IP数据包。

        (3)网络层:移除IP头部,得到TCP段。

        (4)传输层:移除TCP头部,得到HTTP请求。

        (5)会话层:移除会话控制信息。

        (6)表示层:解码或解密HTTP请求。

        (7)应用层:将HTTP请求传递给Web服务器应用。

        通过上述封装和解封装的过程,数据能够正确地从源端传输到目的端,并确保每一层的数据都能够被正确处理。这种层次化的处理方式,不仅简化了网络通信的设计,还增强了系统的灵活性和可扩展性。为了便于理解整个过程,可以参考下面的流程图。

TCP/IP四层模型

        TCP/IP四层模型是一个广泛接受的网络协议栈分层模型,用于描述和实现互联网通信。这个模型将网络通信过程划分为四个层次,每个层次都负责特定的任务,并与其他层次协同工作,以确保数据能够在不同的计算机和网络设备之间准确、高效地传输。TCP/IP四层模型具体包括:链路层、网络层、传输层、应用层。下面,我们逐一进行介绍。

        1、链路层

        负责设备之间的物理连接和数据帧的传输。它处理物理媒介(比如:以太网、Wi-Fi、光纤等)上的信号传输,确保数据在物理链路上正确无误地从一个节点传输到另一个节点。

        链路层的数据单元为:帧(Frame),主要协议有:以太网(Ethernet)、Wi-Fi(IEEE 802.11)、ARP(地址解析协议)、RARP(逆地址解析协议)等。

        2、网络层

        负责数据包的路由和转发,即确定数据从源主机到目的主机的最佳路径。它确保数据包能够跨越多个网络,从源端传输到目的端。

        网络层的数据单元为:数据包(Packet),主要协议有:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、IGMP(Internet Group Management Protocol)等。其中,IP协议是核心,它负责数据包的封装、寻址和路由;ICMP用于发送控制消息,比如:错误报告;IGMP用于多播和广播管理。

        3、传输层

        负责端到端的通信,确保数据在发送方和接收方之间正确、可靠地传输。它提供了两种类型的服务:面向连接的(比如:TCP)、无连接的(比如:UDP)。

        传输层的数据单元为:TCP的段(Segment)和UDP的数据报(Datagram),主要协议有:TCP、UDP等。关于TCP、UDP协议的具体内容,后面的章节会进行详细介绍。

        4、应用层

        是用户与网络的接口,它提供了各种网络服务,比如:文件传输、电子邮件、网页浏览等。应用层协议定义了数据如何被格式化,以及数据如何在网络上进行交换。

        应用层的数据单元为:数据(Data),主要协议有:HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)、POP3(邮局协议版本3)、DNS(域名系统)等。在应用层,数据以用户友好的格式(比如:文本、图片、视频等)存在。但在网络上传输时,这些数据会被封装成适合网络传输的格式。

        可以看到,模型的每一层都负责特定的任务,并通过标准的协议和接口与其他层次进行交互,从而实现了复杂而可靠的网络通信。TCP/IP四层模型为互联网通信提供了一个清晰、高效的架构,使得各种设备和应用程序能够相互通信,共同构成了互联网的基础。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

await命令的用法

正常情况下,await 命令后面是一个 Promise 对象,返回值是该 Promise 对象的结果。如果不是 Promise 对象,就会进行自动转换,使用 Promise.resolve(),就直接返回对应的值 await 命令后面的 Promise 对象如果变为 reject…

方法部分 学习

方法是程序中最小的执行单元 方法的定义调用 public static void 方法名(){ 方法体 } 写在main方法外面,在main函数里面直接调用带参数:public static void 方法名(int num1 , int num2&am…

计算机的错误计算(一百零三)

摘要 探讨 的计算精度问题。 从计算机的错误计算(九十九)知, 在IEEE 754-2019的列表中,并且定义域是实数域。但是,截止撰写本节内容时,本文作者仍未找到内置了该函数的语言或编译器。 例1. 已知 计算…

Vue3:shallowRef与shallowReactive

目录 一.shallowRef 和 shallowReactive 1.shallowRef 2.shallowReactive 二.ref 和 reactive 1. ref 2. reactive 三.各自使用场景 1.shallowRef 2.shallowReactive 3.ref 4.reactive 四.shallowRef 使用 五.shallowReactive使用 六.效果 一.shallowRef 和 shal…

Redis 分布式缓存服务(集群)

作者:程序那点事儿 日期:2023/11/17 13:05 准备6台虚拟机,ip分别是 192.168.10.101 192.168.10.102 192.168.10.103 192.168.10.104 192.168.10.105 192.168.10.106 创建6个节点 mkdir -p /usr/local/cluster/redis-node1 #对应192.168.10.…

【html网页制作】旅游风景主题网页制作含css动画及js特效(8页面附效果源码)

HTMLCSS旅游风景主题旅游网页制作 🍔涉及知识🥤写在前面🍧一、网页主题🌳二、网页效果菜单切换效果PageA、整体页Page1、首页Page2、旅行趣事页Page3、旅行美景页Page4、旅行指南页Page5、旅行视频页Page6、留言页Page7、西湖简介…

玩手机数据集 8201张玩手机的照片,有对应的xml和txt文件,可以用于yolo训练

玩手机数据集 8201张玩手机的照片,有对应的xml和txt文件,可以用于yolo训练 玩手机数据集(Phone Usage Detection Dataset) 数据集概述 该数据集专为检测人们使用手机的行为设计,旨在帮助研究人员和工程师开发高效的…

openai最新o1上线(2024年09月12日)

gpt-4o-2024-08-06输出文本价格 10美元/M o1-preview输出价格 60美元/M https://lmarena.ai/?leaderboard 数字9.11和9.8谁大些 人工智能学习网站 https://chat.xutongbao.top/

240924-Windows映射网络驱动器的方法

在Windows上加载网络盘(映射网络驱动器)可以通过以下步骤完成: 方法一:通过文件资源管理器 打开文件资源管理器: 可以按 Win E 打开,或者直接点击任务栏上的文件资源管理器图标。 点击“此电脑”&#x…

macOS与Ubuntu虚拟机使用SSH文件互传

1.ubuntu配置: 安装openssh服务: sudo apt-get install openssh-server -y 查看服务启动状态: systemctl status ssh 2.macOS使用scp连接ubuntu并发送文件 查看ubuntu IP : ifconfigmacOS终端连接ubuntu : sc

Linux入门学习:进程概念

文章目录 1. 什么是进程?1.1 基本概念1.2 task_struct 2. 组织进程3. 查看进程3.1 父进程与子进程3.2 fork创建子进程3.3 kill3.4 /proc 1. 什么是进程? 1.1 基本概念 在课本的概念中,进程程序的一个执行实例,正在执行的程序。其…

『功能项目』3D模型动态UI显示【76】

本章项目成果展示 我们打开上一篇75主角属性值显示的项目, 本章要做的事情是将3D模型动态显示在主角属性展示界面 首先创建RawImage 调整尺寸 创建文件夹:RenderTexture 创建 Render Texture 创建Camera 在场景中放置一个主角预制体删除所有组件 清空标…

LVGL第一篇-了解lvgl显示原理以及使用C++移植

一、引言 在当今嵌入式系统与图形界面开发的广阔领域中,轻量级图形库 LVGL(Light and Versatile Graphics Library)恰似一颗璀璨耀眼的明星,正日益受到开发者们的热烈推崇与追逐。它以小巧精致之姿、高效卓越之能以及丰富多元之功…

计算机毕业设计之:宠物互助平台的微信小程序系统(源码+文档+讲解)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

读构建可扩展分布式系统:方法与实践14流处理系统

1. 流处理系统 1.1. 时间就是金钱 1.1.1. 从数据中提取有价值的知识和获得洞见的速度越快,就能越快地响应系统所观察的世界的变化 1.1.2. 信用卡欺诈检测 1.1.3. 网络安全中异常网络流量的捕获 1.1.4. 在支持GPS的驾驶应用程序中进行的实时路线规划 1.1.5. 社交…

函数计算 FC:首发 GPU 极速模式,更弹性、更降本

函数计算 FC 作为轻量灵活、事件驱动的全托管计算服务,一直以来以弹得更快、粒度更细、成本更低为广大开发者与企业客户所青睐。 2024 云栖大会上,函数计算 FC 为 AI 加码,首发 GPU 极速模式, 让 GPU 可以更弹性、更便宜。 阿里云…

【车联网安全】车端知识调研

一、CAN总线: 1、定义: CAN 总线相当于汽车的神经网络,连接车内各控制系统,其通信采用广播机制,各连接部件均可收发控制消息,通信效率高,可确保通信实时性。当前市场上的汽车至少拥有一个CAN网络&#xff0…

Java集合(下)

Map(重要) HashMap和Hashtable的区别 线程是否安全: HashMap 是非线程安全的,Hashtable 是线程安全的,因为 Hashtable 内部的方法基本都经过synchronized 修饰。(如果你要保证线程安全的话就使用 ConcurrentHashMap …

也遇到过 PIL Image “image file is truncated“的问题

背景前言 属于活久见系列,最近工作上遇了该问题! 背景:前端 APP使用 Android CameraX 的接口,拍摄并上传图片,然后 Python后端服务对图片裁剪与压缩处理。后端服务处理图片时有遇到image file is truncated的情况。还…

Spring AOP实现原理-动态代理

目录 代理的基础概念 示例1:静态代理(场景:客户通过中介租房东的房子) 示例2:JDK动态代理实现房东、中介出租房屋 示例3:CGLib动态代理实现房东出租房屋 示例4:观察Spring IOC容器中代理对象…