首页 > 其他分享 >网络、模型与封装

网络、模型与封装

时间:2023-07-03 19:23:21浏览次数:38  
标签:封装 模型 网络 tcp 头部 传输层 数据 链路层

一、计算机网络

1.1、什么是网络

将不同设备连接在一起相互分享信息,即称为网络,不同规模,不同称呼。

1.2网络的目的

实现资源共享。

二、计算机网络参考模型

2.1、为什么分层

简单的发一条消息会涉及的多个功能,为便于我们人类理解则需要“分层”来给予明确的功能划分,逐一剖析。

2.1.1、OSI参考模型

七层模型 
应用层 网络服务与最终用户的一个接口
表示层 数据的表示、安全、压缩
会话层 建立、管理、中止会话
传输层 定义传输数据的协议端口号,以及流控和差错校验
网络层 进行逻辑地址寻找,实现不同网络之间的路径选择
数据链路层 建立逻辑连接、进行硬件地址寻址、差错校验等功能
物理层 建立、维护、断开物理连接

2.1.2、TCP/IP模型

image-20230703155003046

2.2、数据封装与解封装

image-20230703161042858

1、应用层: 打包成上层数据,便于机器理解,这里用的是二进制编码数据。

什么是报文,指信息整体,是网络中交换与传输的数据单元。

2、传输层:tcp或udp头部+上层数据

会将上层数据分割成小的数据段

会加上TCP报文头部, 即tcp协议与端口号(协议确定传输规则,端口确定使用的程序)此段信息又可称为数据段。

3、网络层:ip+tcp或udp头部+上层数据

再加上IP头部,即源IP地址、目的IP地址此段信息可称数据包

4、数据链路层:mac头部+ip+tcp或udp头部+上层数据+校验位 再加上MAC头部与数据完整校验,源mac地址与目的mac地址,还有校验,此段信息可称数据帧

5、物理层: 转换成电流

数据解封装则逆推。

2.4数据传输基本概念

1、PDU

PDU,协议数据单元。

传输层数据单元——数据段

网络层数据单元——数据包

数据链路层数据单元——数据帧

物理层数据单元——比特流

2、硬件设备对应五层模型

应用层传输层网络层数据链路层物理层
计算机 防火墙 路由器 交换机 网卡

标签:封装,模型,网络,tcp,头部,传输层,数据,链路层
From: https://www.cnblogs.com/bacolate/p/17523660.html

相关文章

  • CSS(四)盒子模型
    盒子模型boxmodelCSS盒子模型本质上是一个盒子,封装周围的HTML元素。它包括:margin(外边距)、border(边框)、padding(内边距)、content(内容) 弹性盒子模型flexboxfelxbox是CSS3的一种新的布局模式。是为了让页面适应不同的屏幕大小和设备类型,提供了一种更加有效的方式对容器中的......
  • Eolink 全新一代「AI+API」协作管理平台,大模型驱动打造 API 研发管理与自动化测试!
    行业首发!Eolink全新一代「AI+API」协作管理平台,实现「AI+API」结合,大模型驱动打造API研发管理与自动化测试全新体验。Eolink「AI+API」为API带来什么?输入语义化指令即可生成API文档内容;在API文档测试页中可一键生成测试请求数据;可实现圈定API文档范围智能生......
  • 网络编程
    网络架构(B/S架构、C/S架构)网络编程:要基于网络来编写一款B/S或C/S架构的软件。比如之前所写的ATM都是单机版本的,没有接入网络的系统,别人无法访问到。目的:将系统编程基于网络传输的,别人想要使用,必须先将客户端下载到本地电脑上。以登录为例,用户把用户名和密码传到服务端......
  • 《深入探索C++对象模型》- 第二章 - 构造函数语义学 - 笔记
    PDF版本https://www.aliyundrive.com/s/oQJJiJfQmU2......
  • python基础35 网络编程 软件开发架构和七层协议
    软件开发架构网络编程我们要基于网络来编写一款B/S或者C/S架构的软件,比如:ATM,我们写的只是ATM的单机版本,没有接入网络系统,别人无法访问到的目的以ATM为例,现在我们想把之前写的ATM系统编程基于网络传输的,别人如果想用,就必须把客户端下载到本地电脑上,已登录为例,用户把用......
  • Flask 模型表操作 单表
    Flask模型表操作单表classUser(db.Model):#表名__tablename__='tb_user'#字段id=db.Column(db.Integer,primary_key=True,autoincrement=True)#一定要有类型primary_key=True主键autoincrement=True自动增长name......
  • CSS学习笔记2-CSS的继承_层叠_类型和CSS盒子模型
    1CSS属性继承CSS的某些属性具有继承性(Inherited):如果一个属性具备继承性,那么在该元素上设置后,它的后代元素都可以继承这个属性;当然,如果后代元素自己有设置该属性,那么优先使用后代元素自己的属性(不管继承过来的属性权重多高);如何知道一个属性是否具有继承性呢?......
  • 前端封装方法 去掉值为空i字符串的字段
    1.import_from'lodash'2.functionclearEmptyParam(config){ ['data','params'].forEach(item=>{  if(config[item]){   constkeys=Object.keys(config[item])   if(keys.length){    keys.forEach(key=......
  • C# 学习笔记 - 封装
    封装封装可以阻止用户以开发者不希望的方式操纵对象。所有类和结构体的默认受保护级别为“private”,这意味着外部用户无法访问类和结构体的内部成员。受保护级别(ProtectionLevels)Privateprivate级别的成员只能在类的内部被访问,其他类的方法,甚至private级别成员所在类的衍......
  • Flask模型Model-数据迁移
    Flask模型Model-数据迁移数据迁移详细步骤: 1.安装好数据迁移的包flask-sqlalchemy和flask-migrate 2.在exts.py中初始化Migrate和SQLAlchemy 3.在models中定义好模型 4.在views.py中一定要导入models模块 from.modelsimport* 5.配置好数据库(sqlite3或MySQL) 6.执......