计算机网络笔记:计算机网络体系结构(OSI七层模型、TCP/IP五层协议)

news2024/11/15 22:23:05

计算机网络体系结构

计算机网络是一个复杂的、具有综合性技术的系统,它由计算机系统、通信处理机、通信线路和通信设备、操作系统以及网络协议等组成。为了更好地描述计算机网络结构,使计算机网络系统有条不紊地处理工作,需要定义一种较好的网络体系结构。分层结构就是一种较好地描述网络体系结构的方法。

计算机网络体系结构可以从网络体系结构、网络组织和网络配置三个方面来描述。
● 网络体系结构是从功能上来描述计算机网络。
● 网络组织是从网络的物理结构和网络的实现两方面来描述计算机网络。
● 网络配置是从网络应用方面来描述计算机网络的布局、软硬件和通信线路配置等。

计算机网络体系结构层次划分原则

● 每层功能相对独立。
● 相邻层功能具有一定的依赖关系。
● 对每层要完成的服务及实现过程进行明确规定。
● 对网络中处于不同地区的系统进行相同的层次结构划分。
● 不同系统的同等层具有相同功能(服务)。
● 高层使用低层提供的服务时,不需知道低层服务的具体实现方法。

计算机网络划分层次结构主要优点

● 各层相对独立。层次结构中每一层相对独立,一个层次只需要通过接口使用其下层提供的服务来完成本层功能,并对上一层提供服务。它只需知道下层能够提供哪些服务,而不需知道下层是如何实现这些功能的。
● 简化体系结构设计难度。由于各层相对独立实现某种功能,从而将一个庞大、复杂的大型问题拆解处理,简化问题难度。
● 网络体系的灵活性更好。因为网络结构层次间相对独立,因此,当某一层功能发生变更时,只要上下接口不发生变化,即向上层提供的服务和向下层要求的服务不变,则在更改层之上或之下的层次都不会受到影响。层次间的灵活性保证了每层可以根据自己的需求进行不断改进,而不影响其他层次的设计。
● 结构易于实现和维护。分层结构使得一个庞大系统的实现变得容易,因为整个系统的大问题转化成了若干易于处理的小问题了。

OSI七层模型

  • 应用层

应用层是OSI参考模型的最高层,它是服务于用户,是唯一直接为用户应用进程访问OSI环境提供手段和服务的层次,应用层以下各层通过应用层间接地向应用进程提供服务。因此,应用层向应用进程提供的服务是所有层提供服务的总和。应用层需要识别并保证通信双方的可用性,保证应用程序之间的同步,建立传输错误纠正机制和保证数据完整性控制机制。应用层包含了用户通常需要的各种协议。

  • 表示层

表示层的任务是处理两个通信系统之间交换信息的表示方式。表示层关注的是信息的语法和语义。不同的数据结构必须以相同的一种抽象方式来定义,以实现这些计算机之间的通信。表示层正是用来定义和管理这些抽象的数据结构,主要包括数据格式变换、数据加密和解密、数据压缩与恢复等功能。目前,表示层也没有具体的协议。

  • 会话层

会话层的任务是负责维护两个节点之间会话的建立、管理和终止。会话层允许不同机器上建立用户会话。会话可以提供各种服务,包括对话控制、令牌管理以及同步功能。目前,会话层没有具体的协议。

  • 传输层

传输层的任务是向用户提供一种端到端的服务。传输层是通信体系中关键的一层,因为它实现了向高层屏蔽下层数据通信的全部细节。传输层接收上一层传来的数据,将数据分割成较小的单元,将这些数据单元传送给网络层。传输层自始至终将数据从源端带到目的端。也就是说,源端在传输层利用报文首部和控制信息与目的端的类似程序进行会话,其下面各层通过协议与同等层级进行通信,其通信过程涉及多少路由,传输层并不需知道,也不涉及源端与目的端。

  • 网络层

网络层的任务是通过路由算法为分组选择最适合子网通信的路径,实现网络互连和拥塞控制。路由可以建立在静态表的基础上,也可以采用一种自动更新的方式,以此避免网络中出现的故障组件。路由可以处于高度动态中,这样针对每一个数据报都重新确定路径,反映当前网络的负载情况。网络层的传输单元是分组。

  • 数据链路层

数据链路层的任务是在物理层提供的服务基础上,为实体间的通信建立真正的数据链路连接。发送方将数据拆分成数据帧,顺序地发送这些数据帧。接收方正确接收到发送过来的数据帧之后,向发送方发送一个确认帧,作为回复消息。数据链路层的传输单元为帧,并采用差错控制与流量控制方法,确保数据线路的无差错传输。

  • 物理层

物理层的任务是在一条物理通信线路上传输原始比特。发送方发送1(或0)时,接收方应当接收到1(或0),而不是0(或1)。因此物理层需要考虑的是使用多大的电压来代表1或0,以及接收方采用何种方式来识别发送方的比特数据,从而实现比特流的透明传输,为数据链路层提供数据传输服务。物理层的传输单元为比特。

OSI七层模型与TCP/IP五层协议关系图

在这里插入图片描述

TCP/IP五层协议

  • 应用层(application layer)
    应用层是体系结构中的最高层。应用层的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程间通信和交互的规则。这里的进程(process)就是指主机中正在运行的程序。对于不同的网络应用需要有不同的应用层协议。在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议,等等。我们将应用层交互的数据单元称为报文(message)。

  • 运输层(transport layer)
    运输层的任务就是负责向两个主机中进程之间的通信提供通用的数据传输服务。

运输层主要使用以下两种协议

● 传输控制协议TCP (Transmission Control Protocol)——提供面向连接的、可靠的数据传输服务,其数据传输的单位是报文段(segment)。
● 用户数据报协议 UDP (User Datagram Protocol)——提供无连接的、尽最大努力(best-effort)的数据传输服务(不保证数据传输的可靠性),其数据传输的单位是用户数据报。

  • 网络层(network layer)
    网络层负责为分组交换网上的不同主机提供通信服务。在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组或包(packet)进行传送。在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫作 IP数据报,或简称为数据报(datagram)。

  • 数据链路层(data link layer)
    数据链路层常简称为链路层。我们知道,两台主机之间的数据传输,总是在一段一段的链路上传送的,这就需要使用专门的链路层的协议。在两个相邻结点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧(framing),在两个相邻结点间的链路上传送帧(frame)。每一帧包括数据和必要的控制信息(如同步信息、地址信息、差错控制等)。在接收数据时,控制信息使接收端能够知道一个帧从哪个比特开始和到哪个比特结束。这样,数据链路层在收到一个帧后,就可从中提取出数据部分,上交给网络层。

  • 物理层(physical layer)
    在物理层上所传数据的单位是比特。发送方发送1(或0)时,接收方应当收到1(或0)而不是0(或1)。因此物理层要考虑用多大的电压代表“1”或“0”,以及接收方如何识别出发送方所发送的比特。物理层还要确定连接电缆的插头应当有多少根引脚以及各条引脚应如何连接。当然,解释比特代表的意思,就不是物理层的任务。
    请注意,传递信息所利用的一些物理媒体,如双绞线、同轴电缆、光缆、无线信道等,并不在物理层协议之内而是在物理层协议的下面。因此也有人把物理媒体当作第0层。

数据在各层之间的传递过程

在这里插入图片描述
假定主机1的应用进程AP1向主机2的应用进程AP2传送数据。AP1先将其数据交给本主机的第5层(应用层)。第5层加上必要的控制信息H5就变成了下一层的数据单元。第4层(运输层)收到这个数据单元后,加上本层的控制信息H4,再交给第3层(网络层),成为第3层的数据单元。依此类推。不过到了第2层(数据链路层)后,控制信息被分成两部分,分别加到本层数据单元的首部(H2)和尾部(T2);而第1层(物理层)由于是比特流的传送,所以不再加上控制信息。请注意,传送比特流时应从首部开始传送。

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

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

相关文章

Python中如何使用os模块和shutil模块处理文件和文件夹

os和shutil都是Python标准库中用于处理文件和文件夹的模块,它们都提供了许多常用的文件和文件夹操作功能,但是它们的使用场景和优势有所不同。 os模块提供了许多操作系统相关的功能,例如打开文件、读取文件、获取文件属性、创建目录、删除文件…

阿里云服务器ECS上安装Redis数据库流程by Alibaba Cloud Linux

阿里云服务器操作系统Alibaba Cloud Linux 2针对Redis应用进行了专项调优,相比社区版操作系统,Redis应用整体性能提升20%以上。Alibaba Cloud Linux 2内置Redis 6.0.5和Redis 3.2.12的yum源,执行sudo yum install命令即可部署Redis 6.0.5和Re…

【Redis—哨兵机制】

概念 当进行主从复制时,如果主节点挂掉了,那么没有主节点来服务客户端的写操作请求了,也没有主节点给从节点进行数据同步了。此时需要进行主从切换(主从节点故障转移),Redis在 2.8 版本以后提供的哨兵&…

海外新闻稿:如何写好英语新闻稿的开头与结尾?

随着全球化的发展,英语已成为一种全球性的语言。在现代社会,英语新闻稿已经成为了各个行业重要的宣传方式。然而,如何写好英语新闻稿的开头与结尾却是一门很深的学问。在本文中,我们将探讨如何写出一个成功的英语新闻稿开头和结尾…

一个前端大佬的十年回顾 | 漫画前端的前世今生

作者:京东科技 胡骏 引言 岁月如梭,十载流年 前端技术,蓬勃向前 HTML,CSS,JavaScript 演绎出璀璨夺目的技术画卷 回到十年前,前端技术就像一名戴着厚重眼镜的书呆子,总是小心翼翼&#xff…

vue 使用 threejs 实现实景看房效果 demo

vue 使用 threejs 实现实景看房效果 demo 关于这个 threejs 实现 VR 看房效果也超级简单,只需要提供一个思路的话就可以了其实,首先需要一个房间结构的贴图,这个贴图网上有,当然找个合适的也不好找,我找了一上午在别人…

大模型商业的搅局者?除了谷歌和微软,你可能忘记了它!

夕小瑶科技说 原创 作者 | 小戏、iven 大模型的商业大戏愈发精彩了,这边是谷歌和 OpenAI 剑拔弩张军备竞赛,那边是各路豪强的大模型应用雪花般的涌来,你方唱罢我登场。 而在这串作为大模型先行者而出现的公司以及研究院的名字中,…

6WINDGate-whitepaper

6WINDGate Witerpaper Author:Once Day Date:2023年4月29日 本文是对6WIND官网文档的整理和翻译,仅供学习和研究之用,原始文章可参考下面文档: 6WINDGate Documentation - 6WIND6WINDGate Modules — 6WINDGate Mod…

万字长文 - Nature 综述系列 - 给生物学家的机器学习指南 3 (人工神经网络)

万字长文 - Nature 综述系列 - 给生物学家的机器学习指南 1 万字长文 - Nature 综述系列 - 给生物学家的机器学习指南 2 (传统机器学习方法如何选择) 人工神经网络 人工神经网络模型得名于这样一个事实,即所拟合的数学模型的形式受到大脑中神…

一个新的ubuntu

1 安装cmake 方法一:现成的教程 ubuntu安装cmake_yuanzhoulvpi的博客-CSDN博客 方法二:自己总结的 安装openssl系统:sudo apt-get install libssl-dev 安装:sudo apt-get install build-essential 以上是防止安装cmake时缺少文…

Ubuntu零基础安装

Ubuntu零基础安装 首先我们需要安装VM,再安装ubuntu。 1、安装VM 进入VM官网 VM官网地址 选择下载试用版 下载Windows版本 下载完成后,点击安装包进行安装 至此就安装完毕了。 桌面会出现VM的图标。 点击打开,弹出如下画面: …

基于Springboot的旅游网管理系统后台

目录 一. 🦁 研究背景及意义二. 🦁 技术栈系列及主要功能Ⅰ. 技术栈Ⅱ. 主要功能 三. 🦁 项目搭建Ⅰ. 后端模块Ⅱ. 前端模块 四. 🦁 主要实现过程Ⅰ. 认证和授权1. SpringSecurity配置类2. 自定义逻辑认证 Ⅱ. 富文本编辑器——wa…

边无际CEO陈永立:让ChatGPT通过物联网看到世界

如何利用ChatGPT及其插件,将AI与物联网设备相连? 通过Shifu Plugin获取摄像头的实时画面 我们都认识到,ChatGPT引发了一连串的技术变革。作为一个对AI和物联网技术充满热情的开发者,获得ChatGPT插件的早期访问权限,是…

Table 表格 + Pagination 分页

<el-table>属性 v-loading 加载动画 data 显示的数据 border 是否带有纵向边框 fit 列的宽度是否自撑开 highlight-current-row 是否要高亮当前行 row-style 行的 style 的回调方法&#xff0c;也可以使用一个固定的 Object 为所有行设置一样的 Style…

Android - 深色主题

一、简介 我们一直以来使用的操作系统都是以浅色主题为主的&#xff0c;这种主题模式在白天或者是光线充足的 情况下使用起来没有任何问题&#xff0c;可是在夜晚灯光关闭的情况下使用就会显得非常刺眼。 于是&#xff0c;许多应用程序为了能够让用户在光线昏暗的环境下更加舒…

mysql使用innodb引擎,请简述mysql索引的最左前缀如何优化orderby语句。

关键点 如果排序字段不在索引列上&#xff0c;filesort有两种算法&#xff1a; mysql就要启动双路排序和单路排序无过滤不索引order by非最左 filesort顺序错 filesort方向反 filesort 答案 首先要对sql进行分析检查必要的查询字段&#xff0c;过滤字段&#xff0c;排序字段…

JeecgBoot免费低代码平台—多租户SAAS解决方案

JeecgBoot免费低代码平台&#xff0c;提供一键切换多租户模式机制&#xff01;快速实现全系统的saas租户方案&#xff0c;通过租户ID进行数据隔离。 租户设计思路 1、开启全系统租户隔离 开启方法 将 org.jeecg.config.mybatis.MybatisPlusSaasConfig#OPEN_SYSTEM_TENANT_CO…

Selenium:浏览器及鼠标、键盘事件

目录 一、控制浏览器 二、鼠标事件 三、键盘事件 一、控制浏览器 webdriver主要提供操作页面上各种元素的方法&#xff0c;但它也提供操作浏览器的一些方法&#xff0c;例如控制浏览器大小、前进和后退等。 1、控制浏览器窗口大小 1 # 控制浏览器大小 2 from selenium imp…

2023哪款蓝牙耳机性价比高?200左右高性价比蓝牙耳机推荐

现如今的蓝牙耳机越来越多&#xff0c;人们在选择时不免纠结&#xff0c;不知道选什么蓝牙耳机比较好&#xff1f;针对这个问题&#xff0c;我来给大家推荐几款性价比高的蓝牙耳机&#xff0c;一起来看看吧。 一、南卡小音舱Lite2蓝牙耳机 参考价&#xff1a;299 蓝牙版本&am…

常见提高SQL执行效率示例

1、减少与数据库的交互&#xff1a; 当传参是一个list集合时&#xff0c;通过遍历查询数据库会造成数据库压力过大&#xff0c;这样查询效率就比较低&#xff0c;应该减少与数据库的交互来提高查询效率&#xff1a;(这里的objId为“ljydl”,"ljtpfl") QueryWrapper&…