网络体系结构概述

目录

  • 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. 图形验证码接口设计【附代码文档】

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

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

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

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

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

产品经理的进阶之路

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

《QDebug 2024年3月》

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

Python程序设计 多重循环

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

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

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

Kubernetes(K8s)技术解析

1. K8s简介 Kubernetes(简称K8s)是一个开源的容器编排平台,旨在简化容器化应用程序的部署、扩展和管理。为开发者和运维人员提供了丰富的功能和灵活的解决方案,帮助他们更轻松地构建、部署和管理云原生应用程序。以下是关于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模块 服务器端如何响应(获取)静态资源?

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

算法刷题笔记(3.25-3.29)

算法刷题笔记 3.25-3.29 1. 相同的树2. 二叉树的最近公共祖先3. 二叉搜索树中第K小的元素通过双端队列duque 中序遍历 4. 二叉树的锯齿形层序遍历new LinkedList<Integer>(levelList)双端队列复制 数组需要左右顺序&#xff0c;考虑双端队列 5. 岛屿数量6. 字典序排数&am…

python---基础(一)

文章目录 前言1.对象的基本组成2.变量和常量2.1.变量的声明2.2.常量_链式赋值_系列解包赋值2.2.1.常量是不是真的常量&#xff1f;2.2.2.链式赋值2.2.3.系列解包赋值 3.内置数据类型_基本算数运算符3.1四种内置数据类型3.2.基本运算符3.3.divmod() 前言 这几年&#xff0c;随着…

【Python】——变量名的命名规则

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

Dijkstra堆优化之蓝桥王国

Dijkstra堆优化 Dijkstra算法是一种用于解决单源最短路径问题的算法&#xff0c;即从图中的一个顶点出发到所有其他顶点的最短路径。然而&#xff0c;处理大图时&#xff0c;常规的Dijkstra算法可能会遇到性能问题。这就是Dijkstra的堆优化算法派上用场的地方。在堆优化版本中…

Python 用pygame简简单单实现一个打砖块

# -*- coding: utf-8 -*- # # # Copyright (C) 2024 , Inc. All Rights Reserved # # # Time : 2024/3/30 14:34 # Author : 赫凯 # Email : hekaiiii163.com # File : ballgame.py # Software: PyCharm import math import randomimport pygame import sys#…

OpenHarmony实战开发-如何使用rating组件实现星级打分功能。

介绍 本篇Codelab将引导开发者使用rating组件实现星级打分功能。 相关概念 rating组件&#xff1a;评分条&#xff0c;可根据用户判断进行打分。 环境搭建 软件要求 DevEco Studio版本&#xff1a;DevEco Studio 3.1 Release及以上版本。OpenHarmony SDK版本&#xff1a;A…

linux 一些命令

文章目录 linux 一些命令fdisk 磁盘分区parted 分区文件系统mkfs 格式化文件系统fsck 修复文件系统 mount 挂载swap 交换分区清除linux缓存df du 命令raid 命令基本原理硬raid 和 软raid案例raid 10 故障修复&#xff0c;重启与卸载 lvm逻辑卷技术LVM的使用方式LVM 常见名词解析…

Python爬虫详解:原理、常用库与实战案例

前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff1a;https://www.captainbed.cn/z ChatGPT体验地址 文章目录 前言引言&#xff1a;一、爬虫原理1. HTTP请求与响应过程2. 常用爬虫技术 二、P…

【C++程序员的自我修炼】基础语法篇(二)

风力掀天浪打头 只须一笑不须愁 目录 内联函数 概念&#x1f49e; 性质 ⭐ 不建议变量分离 inline的优劣势 inline的局限性 auto关键字 auto的概念&#x1f49e; auto的使用细则&#x1f49e; auto不能推导的场景 &#x1f49e; auto基于范围的for循环&#x1f49e; 指针空值n…