CAN学习笔记1:计算机网络

计算机网络

1 概述

计算机网络就是把多种形式的计算机用通信线路连接起来,并使其能够互相进行交换的系统。实际上,计算机网络包括了计算机、各种硬件、各种软件、组成网络的体系结构、网络传输介质和网络通信计数。因此,计算机网络是计算机和通信技术结合的产物。

2 计算机网络体系结构

要想让两台计算机进行通信,必须使他们采用相同的信息交换规则。在计算机网络中,我们把用于规定信息的格式以及如何发送和接收信息等为数据交换而建立的规则、标准和约定称为网络协议。具体来说,一个网络协议主要由以下三个要素组成:

  1. 语法:是指数据与控制信息的结构或格式,语法确定通信双方“如何讲”,定义传输的信息格式,相当于说明语言中语句的格式。
  2. 语义:指需要发出何种控制信息,完成何种动作以及作出何种应答,语义确定通信双方之间“讲什么”,对请求、执行的功能等进行解释,包括识别结果的处理,相当于对一个语句含义的说明。
  3. 同步:事件实现顺序、速度匹配等的详细说明。
    我们将计算机网络的各层次及其协议的集合称为网络的体系结构。

2.1 协议分层

为了减少网络设计的复杂性,绝大多数网络采用分层设计方法。所谓分层设计方法,就是按照信息的流动过程将网络的整体功能分解成一个个的功能层,不同机器上的同等功能之间采用相同的协议,同一机器上的相邻功能层之间通过接口进行信息传递。
协议是不同机器同等层之间的通信约定,而接口是同一机器相邻层之间的通信约定。不同的网络中,分层数量、各层的名称和功能以及协议都各不相同。然而,在所有的网络中,每一层的目的都是向它的上一层提供一定的服务。

2.2 服务类型

服务(Service)这个极普通的术语在计算机网络中无疑是一个极重要的概念。在网络体系结构中,服务就是网络中各层向其相邻上层提供的一组操作,是相邻两层之间的界面。
服务和协议常常被混淆,而实际上两者是截然不同的概念。为此我们再强调一下两者的区别。服务是网络体系结构中各层向他的上层提供的一组原语(操作),尽管服务定义了该层能够代表他的用户完成的操作,但丝毫未涉及这些操作是如何实现的。服务描述两层之间的接口,下层是服务提供者,上层是服务用户,而协议是定义同层对等实体之间交换帧、数据包的格式和意义的一组规则。网络各层实体利用协议来实现他们的服务。只要不改变提供给用户的接口和服务,实体可以随意地改变它们所使用的协议。这样,服务和协议就完全被分离开来。在 OSI 参考模型之前的很多网络都没有把服务从协议中分离出来,造成网络设计的困难。

2.3 ISO/OSI 参考模型

2.3.1 什么是 OSI 模型

OSI(Open System Interconnect),即开放式系统互连。OSI 参考模型是研究如何把开放式系统(即为了与其它系统通信而相互开放的系统)连接起来的标准。

2.3.2 为什么用 OSI 模型

OSI 参考模型将计算机网络分为 7 层,将联网计算机间传输信息的任务划分为 7 个更小、更易于处理的任务组。每一个任务或任务组则被分配到各个 OSI 层、每一层都是独立存在的,因此分配到各层的任务能够独立地执行。
在网络发展的初期,许多研究机构、计算机厂商和公司都大力发展计算机网络。这种自行发展的网络,在体系结构上差异很大,以至于他们之间互不相容,难以相互连接以构成更大的网络系统。为此,国际标准化组织(ISO)提出了开发系统互联参考模型(OSI/RM)。

2.3.3 OSI 七层模型的分层结构

OSI划分的七个层次由高到低依次为:Application(应用层)、Presentation(表示层)、Session(会话层)、Transport(传输层)、Network(网络层)、DataLink(数据链路层)和Physical(物理层)。
在这里插入图片描述

  1. 应用层
    应用层是网络服务与最终用户的一个接口,是OSI模型中的最高层,是直接面向用户的一层。应用层是人机交互的窗口,通过应用层把人的语言输入到计算机当中去,为网络用户之间的通信提供专用的程序服务。
  2. 表示层
    表示层为在应用过程之间传送的信息提供表示方法的服务。负责将接收到的数据翻译成二进制数组成的计算机语言,主要通过数据格式变化、数据加密与解密、数据压缩与解压等。表示层提供的数据加密服务是重要的网络安全要素,其确保了数据的安全传输,也是各种安全服务最为重视的关键。
  3. 会话层
    会话层用于建立、管理、中止会话。会话层的主要功能是负责维护两个节点之间的传输联接,确保点到点传输不中断,以及管理数据交换等功能。会话层还可以通过对话控制来决定使用何种通信方式,全双工通信或半双工通信。
  4. 传输层
    传输层是计算机通信体系结构中关键一层,传输层定义了传输数据的协议端口号,以及流控和差错校验(两个端之间建立tcp、udp连接,对数据完整性要求高使用tcp,保障数据传输的完整性 ,但是成本比udp高,速度慢,语音视频这类实时采集的数据,没有文件完整性一说,而是采集多少就传输 多少,就用udp)。将上层应用数据分片并加上端口号封装成数据段,或通过对报文头中的端口识别。传输层实现了网络中不同主机上的用户进程之间的数据通信,为用户提供了端到端的服务。传输层起到了承上启下的作用,承接上层软件应用,下启网络数据传输。
  5. 网络层
    网络层是以路由器为最高节点俯瞰网络的关键层,它负责将上层数据加上源和目的方的逻辑(IP)地址封装成数据包,实现数据从源端到目的端的传输。网络层进行逻辑地址寻址,实现不同网络之间的路径选择,这也就是我们所说的网络层的寻址功能。传输层为端到端通信,而网络层以下为点对点通信。
  6. 数据链路层
    数据链路层的主要功能是如何在不可靠的物理线路上进行数据的可靠传输,它完成的是网络中相邻节点之间可靠的数据通信。为了保证数据的可靠传输,发送方把用户数据封装成帧,并按顺序传递各帧。由于物理线路的不可靠,因此发送方发出的数据帧有可能在线路上发生出错或丢失(所谓丢失实际上是数据帧的帧头或帧尾出错),则发送方必须重传这一帧数据,知道这一帧没有错误的到达接受方为止。这样,数据链路层就把一条实际可能出凑的链路转变成对网络层来说好像是不出错的一条链路。
  7. 物理层(Physical Layer)
    物理层的主要功能是完成相邻节点之间原始比特流的传输。物理层协议关心的典型问题是使用什么样的物理信号来表示数据“1” 和“0”。物理层连接报文头部和上层数据信息都是由二进制数组成的,物理层将这些二进制数字组成的比特流转换成电信号在网络中传输。

3 参考资料

  1. OSI参考模型
  2. OSI七层模型

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里Java开发手册~集合处理

1. 【强制】关于 hashCode 和 equals 的处理,遵循如下规则: 1 ) 只要重写 equals ,就必须重写 hashCode 。 2 ) 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断&#xff…

【计算机网络】简易TCP网络小程序

文章目录 1. 简易TCP网络程序1.1 服务端1.1.1 服务端创建套接字1.1.2 服务端绑定1.1.3 服务端监听1.1.4 服务端获取连接1.1.5 服务端处理请求 1.2 客户端1.2.1 客户端创建套接字1.2.2 客户端连接服务器1.2.3 客户端发起请求 1.3 服务器测试1.4 单执行流服务器的弊端 2. 多进程版…

TCP KeepAlive与HTTP Keep-Alive

TCP KeepAlive与HTTP Keep-Alive TCP KeepAliveHTTP Keep-AliveTCP服务器怎么检测客户端断开连接 TCP KeepAlive TCP连接建立之后,如果应用程序或者上层协议一直不发送数据,或者隔很长时间才发送一次数据,那么TCP需要判断是应用程序掉线了还…

【无标题】深圳卫视专访行云创新马洪喜:拥抱AI与云原生,深耕云智一体化创新

人工智能(AI)是引领新一轮科技革命和产业变革的重要驱动力。因此,深圳出台相关行动方案,统筹设立规模1,000亿元的人工智能基金群,引导产业集聚培育企业梯队,积极打造国家新一代人工智能创新发展试验区和国家…

15 文本编辑器vim

15.1 建立文件命令 如果file.txt就是修改这个文件,如果不存在就是新建一个文件。 vim file.txt 使用vim建完文件后,会自动进入文件中。 15.2 切换模式 底部要是显示插入,是编辑模式; 按esc,底部要是空白的&#xff0…

提高业务效率:利用手机号在网状态 API 进行智能筛选

引言 随着科技的不断发展,手机已成为现代人生活中不可或缺的工具。人们通过手机完成通信、娱乐、购物等各种活动,使得手机号成为了一个重要的个人标识。对于企业而言,了解手机号的在网状态对于业务发展和客户管理至关重要。为了提高业务效率…

【Terraform学习】Terraform配置变量(Terraform配置语言学习)

配置变量 实验步骤 创建 EC2 IAM 角色 导航到IAM 在左侧菜单中,单击角色 。单击创建角色该按钮以创建新的 IAM 角色。 在创建角色部分,为角色选择可信实体类型: AWS 服务 使用案例:EC2 单击下一步 添加权限:现在&#xff0c…

细讲TCP三次握手四次挥手(一)

计算机网络体系结构 在计算机网络的基本概念中,分层次的体系结构是最基本的。计算机网络体系结构的抽象概念较多,在学习时要多思考。这些概念对后面的学习很有帮助。 网络协议是什么? 在计算机网络要做到有条不紊地交换数据,就必…

【数学】差分数组(一维差分)

一.简介 差分数组是指对一个一维数组进行差分操作得到的新数组。差分操作是指计算原数组中相邻元素之间的差异,并将这些差异作为新数组的元素。 具体而言,对于一个长度为n的一维数组x,其差分数组diff的第i个元素可以通过以下公式计算得到&am…

linux NDK交叉编译rtmp 与 ffmpeg+rtmp交叉编译(v7a,v8a) 完成流程

最近在学RTMP,记录一下完成的编译流程 我是mac 电脑,但是mac上编译一直通过不了,后来才换到服务器上编译, 其实mac也能编译,只是最开始踩到坑里面了… 这里记录一下linux编译完整流程 环境: NDK: android-ndk-r17cFfmpeg: ffmpeg4.2.2 (高版本也可以编译)system: mac 1. …

云原生架构

1. 何为云原生? 很多IT业内小伙伴会经常听到这个名词,那么什么是云原生呢?云原生是在云计算环境中构建、部署和管理现代应用程序的软件方法。 当今时代,众多企业希望构建高度可扩展、灵活且有弹性的应用程序,以便能够快…

数据链路层是如何传递数据的

数据链路层是如何传递数据的 数据链路层功能概述封装成帧透明传输差错控制 数据链路层功能概述 数据链路层的主要作用就是加强物理层传输原始比特流的功能。其负责将物理层提供的可能出错的物理连接,改造成逻辑上无差错的数据链路。 数据链路层包括三个基本问题&a…

Matlab的SimuLink对FS32K144编程--SPI通讯控制12bitDAC输出

​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ 1、硬件介绍,DAC芯片:AD5328BRUZ DAC_SPI_SCK----PTD0(SPI1) DAC_SPI_DIN----PTE0(SPI1)单片…

【Vuvuzela 声音去噪算法】基于流行的频谱减法技术的声音去噪算法研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

[BSidesCF 2020]Had a bad day1

进入环境,一上来就是一段激励的话,没有啥特别的,源码中也没有看见啥有用的提示 但主要是有,参数的传递,加上前面的index.php,想到了PHP伪协议,或许我们可以直接查看一下隐藏源码 报错了&#xf…

【Linux进程】进程控制(下) {进程程序替换:程序替换的工作原理,程序替换函数exec*,简单的命令行解释器}

四、进程程序替换 之前用fork创建子进程后,父子进程执行同一个程序的不同代码段。 如何使子进程执行另一个不同的程序呢?子进程需要进行程序替换! 程序替换,就是通过特定的接口,将磁盘上一个全新的程序(包…

OBS 迁移--华为云

一、创建迁移i任务 1. 登录管理控制台。 2. 单击管理控制台左上角的 在下拉框中选择区域。 3. 单击“ 服务列表 ”,选择“ 迁移 > 对象存储迁移服务 OMS ”,进入“ 对象存储迁移服务 ”页面。 4. 单击页面右上角“ 创建迁移任务 ”。 5. 仔细阅读…

Verilog语法学习——LV4_移位运算与乘法

LV4_移位运算与乘法 题目来源于牛客网 [牛客网在线编程_Verilog篇_Verilog快速入门 (nowcoder.com)](https://www.nowcoder.com/exam/oj?page1&tabVerilog篇&topicId301) 题目 题目描述: 已知d为一个8位数,请在每个时钟周期分别输出该数乘1/…

Python爬取IP归属地信息及各个地区天气信息

一、实现样式 二、核心点 1、语言:Python、HTML,CSS 2、python web框架 Flask 3、三方库:requests、xpath 4、爬取网站:https://ip138.com/ 5、文档结构 三、代码 ipquery.py import requests from lxml import etree # 请求…

了解Unity编辑器之组件篇Miscellaneous(九)

一、Aim Constraint:是一种动画约束,用于使一个对象朝向另一个对象或一个指定的矢量方向 Activate按钮:用于激活或停用Aim Constraint。当Aim Constraint处于激活状态时,其约束效果将应用于目标对象。 Zero按钮:用于将…