网络体系结构概述

目录

  • 1. OSI/RM参考模型
    • 1.1. 物理层
    • 1.2. 数据链路层
    • 1.3. 网络层
    • 1.4. 传输层
    • 1.5. 会话层
    • 1.6. 表示层
    • 1.7. 应用层
  • 2. TCP/IP参考模型
  • 3. 理解OSI七层模型

网络体系结构是线代网络技术的整体蓝图。

1. OSI/RM参考模型

开放互联参考模型(Open System Interconnection/Reference Model,OSI/RM)

  • 诞生:由国际化标准组织(International Organization for Standardization,ISO) 于1979年提出,1983年形成OSI/RM正式文件——ISO 7498标准
  • 应用:一种作为解决主机之间的网络通讯的宏观分析参考模型,数据的传输流程如下图。是一个逻辑上的定义,一个规范,它把网络从逻辑上分为了7层。

OSI/RM模型的设计逻辑:

  • 一种分层的体系结构,每一个开放系统都是由一些连续的子系统组成(逻辑上),N+1层的实体功能依赖N层的实体提供出来的功能接口(SAP)来实现。
    • 实体:软件元素(进程)或硬件元素(IO芯片)等。
    • SAP(Service Accessing Point):实体提供的功能接口。
    • 实体与SAP的关系:一个实体可以提供多个SAP,但是一个SAP只能由一个实体提供且最多被一个实体调用。
    • 对等实体:同一层级的实体。

封装: 数据在从高层向低层传送的过程中,每层都对接收到的原始数据添加信息,通常是附加一个报头和报尾。

网络协议: 网络中的数据交换建立的一系列规则、标准或约定。是控制两个或多个对等实体进行通信的集合。

  • 组成:
    • 语法:数据与控制信息的结构或形式。
    • 语义:根据需要发出哪种控制信息、依据情况完成哪种动作以及做出哪种响应。
    • 时序关系:同步,事件实现顺序的详细说明。

服务原语: 上层使用下层实体的服务需要经过与下层交换一些命令,这就是服务原语。

服务数据单元(Service Data Unit,SDU): 层与层之间交换的数据的单位。

PDU(Protocol Data Unit): 协议数据单元,同层实体间传送的数据单位。

1.1. 物理层

物理层(Physical Layer):

  • 简述:物理上实现两台主机间数据传输一层。
  • 概念:为数据链路层实体提供建立、传输、释放所必须的物理连接,并提供透明的比特流传输,数据单位是比特(bit,01),构建在物理传输介质和硬件设备连接之上。
  • 物理层协议定义的特性:
    • 机械特性: 规定接口的外形、大小、引脚数和排列、固定位置。
    • 电气特性: 规定接口电缆上各条线路出现的电压范围。
    • 功能特性: 指明某条线上出现某一电平的电压表示何种意义。
    • 规程特性: 指明各种事件出现的顺序。
  • DTE和DCE:
    • 数据终端设备(Data Terminal Equipment,DTE): 具有一定数据处理能力的数据收发设备,如路由器、PC。不提供时钟
    • 数据通信设备(Data Communication Equipment,DCE): 在DTE和传输线路之间提供信号转换、编码,并负责建立、保持、释放通信链路的连接的设备,如CSU/DSU、NT1、广域交换机。提供时钟

1.2. 数据链路层

数据链路层(Data Link Layer):

  • 简述:将物理传输转为逻辑传输的传输线路。
  • 概念:将比特封装成,并通过交换机进行MAC寻址转发,具有流量控制的功能。
  • 功能:
    • 链路的建立、拆除和分离:数据传输的介质可以是长期的,但实体之间的连接是有有效期的。在有效期内,两实体间可以进行n次数据通信,但每次通信都需要经历链路的建立、通信和关闭的过程。
    • 帧定界和帧同步:采用的传输协议不同,帧的规格也不通,所以需要这个功能。
    • 顺序控制:对帧的收发顺序进行控制。
    • 差错检测、恢复:多用方阵码校验和循环码校验来检查误码,帧丢失用序号检测,通过反馈重发来恢复。
    • 链路标识、流量/拥塞控制。
  • LLC和MAC
    • 逻辑链路控制(Logical Link Control):只在使用IEEE 802.3格式才使用。
    • 介质访问控制(Media Access Control):以太帧。

1.3. 网络层

网络层(Network Layer):

  • 概念:传输的数据是(IP),根据IP进行路由转发从而找到目标主机。
  • 功能:
    • 路由选择
    • 中继、激活和终止网络连接。
    • 链路复用。
    • 差错检测和恢复。
    • 流量/拥塞控制。

1.4. 传输层

传输层(Transport Layer):

  • 概念:传输的数据是(port),通过端口寻址,实现了服务进程到服务进程之间的消息交流。传输层负责两个节点之间的传输,包括可靠传输(TCP)和不可靠传输(UDP)。
  • 功能:
    • 端到端的数据传输
    • 数据分段、传输和组装。
    • 差错控制、流量/拥塞控制。

1.5. 会话层

会话层(Session Layer):

  • 概念:允许不同主机上的用户建立会话(各种服务:对话控制、令牌控制、同步功能)。
  • 建立和释放会话的步骤:
    • 将会话地址映射为传输层地址。
    • 进行数据传输。
    • 释放链接。

1.6. 表示层

表示层(Presentation Layer):

  • 概念:不同计算机之中的数据表达方式可能不同,表示层则负责统一标准转换(编码、解码、加密、解密、压缩)。比如:完成EBCDIC码(大型计算机)和ASCII码(PC)的转换。
  • 功能:
    • 数据语法转换、语法表示、数据加密解密、数据压缩解压。

1.7. 应用层

应用层(Application Layer):

  • 概念:两个应用进程之间的交互(HTTP、HTTPS),最接近用户的那层,向应用程序提供服务,这些服务按照提供的特性分组,并成为服务元素(CASE、SAFE)。

2. TCP/IP参考模型

OSI/RM与TCP/IP模型的对比:

OSI是标准,但过于复杂,不实用,因此诞生了TCP/IP四层协议,经过实践后发现数据链路层拆分为数据链路层和物理层更为合适,所以出现了五层模型。

应用层(Application Layer): 该层与OSI的应用层、表示层、会话层相对应。

传输层(Transport Layer): 允许两台主机上的对等实体进行对话,该层定义了两个端到端协议——TCP和UDP。

网络层/网际层(Network Layer): 负责为经过逻辑互联网络路径的数据进行路由选择。

数据链路层/网络接口层(Data Link Layer): 在TCP/IP模型中没有明确规定。

3. 理解OSI七层模型

此章节参考B站视频:互联网数据传输原理 |OSI七层网络参考模型,讲得不错。

应用层: 两个应用进程之间的交互(HTTP、HTTPS),最接近用户的那层。但应用层的Http等协议只是逻辑上联通了各个终端设备,物理上进行信息交流(连通)的是——物理层。

物理层: 计算机能发出去的信息只有0和1(比特,bit),而发出这些比特需要一些媒介,比如:光(光纤)、电(电线)、电磁波。信号发出去之后会经过不同的网络拓扑,此刻便需要中继器、集线器之类的设备。但信号跑到哪台设备是需要定向的,因此需要高级一些的网络模型——数据链路层。

数据链路层(跳到跳): 数据到了这层会被封装成(数据 + MAC地址(物理地址,网卡上的48位/64位地址)),而交换机(二级交换机)就可以通过MAC寻址(MAC广播寻址)。但是仅靠MAC寻址并不明智,如一张网卡销售到了中国另外一张网卡销售到了美国,那就很难通过一个个交换机去找到目标网卡,因此需要IP(逻辑地址)+路由来寻址——网络层。

网络层(端到端): 网络层中的数据是包(含有IP)。包在路由器之间根据IP地址进行路由转发,地址管理+路由选择是这一层的核心。通过MAC+IP就可以到达对方的主机,但是还需要找到目标进程,这时候就需要加上端口来寻址了——传输层。

传输层(进程到进程): 传输层中的数据是。通过端口寻址,实现了服务进程到服务进程之间的消息交流。传输层负责两个节点之间的传输,包括可靠传输(TCP)和不可靠传输(UDP)。

会话层: 网站服务会管理和控制登录状态还会负责同步服务——“断电”恢复。

表示层: 不同计算机之中的数据表达方式可能不同,表示层则负责统一标准转换(编码、解码、加密、解密、压缩)。

应用层、表示层、会话层的数据统称为应用数据/应用负载/上层数据/报文

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

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

相关文章

备考ICA----Istio实验12---配置双向TLS Istio Ingress Gateway实验

备考ICA----Istio实验12—配置双向TLS Istio Ingress Gateway实验 本实验部分配置延续上个Istio实验11 1. 重新配置secret 重新配置secret使其带有ca证书可以验证客户端证书是否合法 先删除原有secret,再配置新的secret # 删除原tls类型的secret kubectl -n istio-system d…

数据仓库——事实表

数据仓库基础笔记思维导图已经整理完毕,完整连接为: 数据仓库基础知识笔记思维导图 事实表 事务事实表 事务事实表用于跟踪事件,通过存储事实和与之关联的维度细节,允许单独或聚集地研究行为。粒度稀疏性包含可加事实 无事实的…

【Django开发】0到1美多商城项目md教程第4篇:图形验证码,1. 图形验证码接口设计【附代码文档】

美多商城完整教程(附代码资料)主要内容讲述:欢迎来到美多商城!,项目准备。展示用户注册页面,创建用户模块子应用。用户注册业务实现,用户注册前端逻辑。图形验证码,图形验证码接口设…

Java基础知识总结(32)

反射 类加载器 当JVM启动时,会形成由3个类加载器组成的初始类加载器层次结构。 Bootstrap ClassLoader:根类加载器。它负责加载Java的核心类。 Extension ClassLoader:扩展类加载器。它负责加载 JRE 的扩展目录(%JAVA_HOME%/jr…

网安基础2-Sniffer的使用与防范

1. 嗅探器sniffer的工作原理 能捕获经过该网络设备的报文,通过分析网络流量,找出关键信息,解决网络问题。 不同于键盘捕获程序,如keylogger利用中断或钩子技术,Sniffer将网络接口置成适当的模式,如杂收。…

【小黑送书—第十八期】>>让工作自动化起来!无所不能的Python(文末送书)

随着我国企业数字化和信息化的深入,企业对办公自动化的效率和灵活性要求越来越高。Python作为一种开源的软件应用开发方式,通过提供强大丰富的库文件包,极大地简化了应用开发过程,降低了技术门槛。Python开发有哪些优势、挑战以及…

搭建vite+vue3项目时遇到的问题

搭建项目(vitevue3) 第一步:先安装开发工具 下载node.js https://nodejs.cn/download/ node自带npm 可通过npm -v /node -v查看npm和node是否安装成功以及版本号 以及查看vue/cli是否安装 第二步:创建项目(使用vite) 下载vite: npm install -g create-vite 创建项目:create-v…

产品经理的进阶之路

点击下载《产品经理的进阶之路》 1. 前言 本文深入剖析了产品经理这一职业从产品专员起步,逐步晋升为产品经理、高级产品经理,直至产品总监的整个职业发展路径。在每个阶段,产品经理都需承担不同的工作职责,展现出独特的职业特点。 2. 产品专员 关键词【产品需求/原型/文…

栈和队列相关

栈的顺序存储结构 #define maxsize 50 typedef int ElemType; typedef struct {ElemType data[maxsize];int top; }SqStack; 顺序栈的基本算法 初始化栈 void InitStack(SqStack *s){s.top-1;return; } 判断栈空 bool IsEmptyStack(SqStack *s){if(s.top-1){return true;…

广度优先搜索(BFS)算法详解

文章目录 广度优先搜索(BFS)算法详解与C实现BFS的工作原理BFS的实现C中BFS的实现 BFS的应用场景注意事项 广度优先搜索(BFS)算法详解与C实现 广度优先搜索(Breadth-First Search,BFS)是一种遍历…

《QDebug 2024年3月》

一、Qt Widgets 问题交流 1. 二、Qt Quick 问题交流 1.Qt5 ApplicationWindow 不能使用父组件 Window 的 transientParent 属性 ApplicationWindow 使用 transientParent 报错: "ApplicationWindow.transientParent" is not available due to compone…

集合框架——Map

双列集合 特点: 双列集合一次需要存一对数据,分别为键和值键不能重复,值可以重复键和值是一一对应的,每个键只能找到自己对应的值键值这个整体 称为:键值对 键值对对象 Entry对象 Map集合的常用方法 public class …

ssm框架配置文件例子

emmm。。。。 就是说&#xff0c;正常ssm的配置文件长啥样&#xff1f; 就最基础的&#xff1f; 贴一下&#xff0c;备忘吧。 第一个&#xff1a;applicationContext.xml <beans xmlns"http://www.springframework.org/schema/beans"xmlns:context"http…

软考 - 系统架构设计师 - 敏捷开发方法

前言 敏捷开发方法是一种以人为核心、迭代、循序渐进的软件开发方法。它强调团队合作、客户需求和适应变化&#xff0c;旨在通过快速迭代和反馈来快速交付高质量的软件产品。 敏捷开发方法的优势在于能够快速响应变化、提高开发效率和质量、增强团队协作和沟通&#xff0c;并降…

Python程序设计 多重循环

教学案例六 多重循环 1.n之内的素数 输入n&#xff0c;显示n之内的所有素数 每行显示10个素数 例如&#xff0c;若输入500&#xff0c;结果如图所示 neval(input()) #代码开始 c 0for i in range(2, n1):for j in range(2, i):if i % j 0:breakelse:c 1print("{:5d}…

四年旅程,一路成长——小雨的创作纪念日

四年旅程&#xff0c;一路成长——小雨的创作纪念日 收到来信&#xff0c;回顾与再开始回首起点&#xff0c;初探技术世界持续前行&#xff0c;从坚持到自信今日之感&#xff0c;持续分享与感恩【3.19故事对话】我一定可以&#xff01;“新”认知状态变化感受复盘 朝着未来&…

Kubernetes(K8s)技术解析

1. K8s简介 Kubernetes&#xff08;简称K8s&#xff09;是一个开源的容器编排平台&#xff0c;旨在简化容器化应用程序的部署、扩展和管理。为开发者和运维人员提供了丰富的功能和灵活的解决方案&#xff0c;帮助他们更轻松地构建、部署和管理云原生应用程序。以下是关于Kubern…

C# OpenCvSharp-HoughCircles(霍夫圆检测) 简单计数

目录 效果 项目 代码 下载 效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using O…

http模块 服务器端如何响应(获取)静态资源?

一、静态资源与动态资源介绍&#xff1a; &#xff08;1&#xff09;静态资源 内容长时间不改变的资源。eg&#xff1a;图片、视频、css js html文件、字体文件... &#xff08;2&#xff09;动态资源 内容经常更新的资源。eg&#xff1a;百度首页、淘宝搜索列表... 二、服…

vue3从精通到入门7:ref系列

Vue 3 的 Ref 是一个集合&#xff0c;包括多个与响应式引用相关的功能&#xff0c;这些功能共同构成了 Vue 3 响应式系统的重要组成部分。以下是更全面的介绍&#xff1a; 1.ref ref 接受一个内部值并返回一个响应式且可变的 ref 对象。这个对象具有一个 .value 属性&#xf…