【Linux】计算机网络的背景和协议分层

文章目录

  • 网络发展
  • 协议
    • 何为协议
    • 网络协议
    • 协议分层
    • OSI七层模型
    • TCP/IP五层模型(四层)
  • 基本通信流程
  • mac地址和ip地址
  • 网络通信本质

网络发展

从一开始计算机作为一台台单机使用,到现在网络飞速发展,从局域网Lan建立起局域网,到广域网Wan将远隔千里的电脑联系在一起,网络极大的促进了社会的发展和人类之间的交流,自从同一台主机进程间相互通信开始,网络的出现就是必然的。

协议

何为协议

何为协议,顾名思义,协议是双方都要遵守的 “约定” ,而在计算机的世界里,数据都是光电信号,用01表示强弱,要想传递好各种各样的信息,就要约定好对应的格式

举个简单的例子,在现代社会我们使用纸币交易,而在古代我们使用银子交易,这些交易方式其实就是“协议”

网络协议

为什么要有网络协议?
1、计算机硬件设备很多,都是由不同的厂商生产
2、计算机操作系统也很多。

为了让这么多厂商生产出来这么多产品能够相互的流畅的通信,自然就需要一套标准让大家都要遵守,在这种要求下,网络协议就自然诞生咯

协议分层

协议为什么要分层?我们先来看一下网络传输带来的问题:

1、首先,网络传输是长距离传输,容易出现数据异常的问题,比如丢失。
2、其次,网络中主机数量非常庞大,如何定位一台主机。
3、然后,如何进行数据转发、路径选择
4、最后,选择好路径,又要如何在硬件上传输

为什么会带来这么多问题? 很简单,数据传输的距离变长了而已。
这些问题是有上下关系的,比如定位问题解决后,如何数据转发路径选择?选择好路径又如何在硬件上传输?

基于这样的特点,网络被设计为高内聚、低耦合的 层状结构 ,这样每一层都只关注自己同层的功能,使用下一层的接口,任何一层出现问题,都不会直接影响另外一层。

高内聚:把相关的问题放在一起,设计出解决方案
低耦合:按照不同的功能,设计不同的模块

OSI七层模型

在这样的要求下,第一个网络标准协议模型就制定出来了,该模型非常完善的制定了网络中的各个层的功能,在真正设计的时候,由于有些层与应用高度相关,因此我们重点来学习另一个模型

在这里插入图片描述

在这里插入图片描述

TCP/IP五层模型(四层)

TCP/IP是一组协议的代名词,他们共同组成了TCP/IP协议族

  • 1、物理层 :负责光电信号的传递方式 物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器工作在物理层
  • 2、数据链路层:负责设备之间的数据帧的传送和识别。冲突检测(自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机工作在数据链路层.
  • 3、网络层:负责地址管理和路由选择。在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器工作在网路层.
  • 4、传输层:负责两台主机间的数据传输。
  • 5、应用层:负责应用程序间的数据传输。比如Http协议、SMTP(电子邮件传输)、FTP(文本传输协议)、Telnet(网络远程访问协议)

同层协议都要有两个功能:
1、报头要和有效载荷分离
2、报头必须支持将有效载荷交付给上层哪个具体协议(TCP?UDP?)

封装:报头+有效载荷 —>发送给下一层
分用:将二者分开,并将有效载荷交予上一层
在这里插入图片描述

基本通信流程

根据冯诺依曼体系结构,操作系统是计算机软件和硬件的管理者,要使用网卡这个硬件设备,就需要使用操作系统提供的接口,这也就注定了网络一定会贯穿操作系统,而传输层和网络层正是被设计进了操作系统里,操作系统可以有很多种,但是网络只能有一种。

如果不那么做,有人使用ip,有人不用,会直接无法通信。

跨网段的传输基本流程如图,中间要经过一个或多个路由器,路由器一定是级联至少两个子网的,路由器工作在IP层,而正是通过这样的方式,IP层屏蔽了底层子网之间的差异,可以说,IP是整个网络世界的基石!这样印证了那句话:在计算机设计哲学里,任何一个问题都可以在之间添加一层软件层。

在这里插入图片描述

mac地址和ip地址

在网络传输里通常会有两个地址,即mac地址和ip地址,通俗点来讲,目的ip地址就是最终目标,而目的mac地址决定下一站去哪里。即目的ip是不变的,而目的mac地址是一直在变化的。

需要注意的是,mac地址是全球唯一的,每一台网络设备都要有自己唯一的mac地址!而ip地址则是一台主机在公网内的唯一标识。

网络通信本质

理解本质之前,我们先要想一个问题:网络通信是两个主机在通信吗?

对,也不对,网络通信不单单是两台主机在通信,在主机接收到对方的数据后,要向上交付,交给对应的进程来处理,而网络通信的本质就是进程间通信。

暴漏自己的进程pid是不理智的,因此使用端口号来代替pid,一个进程可以绑定多个端口号,但一个端口号不可以被多个进程绑定!

我们把这种通过[源ip,源端口 + 目的ip,目的端口]的通信方式称为socket通信,即套接字通信。

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

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

相关文章

Vue3 第四节 自定义hook函数以及组合式API

1.自定义hook函数 2.toRef和toRefs 3.shallowRef和shallowReactive 4.readonly和shallowReadonly 5.toRaw和markRaw 6.customref 一.自定义hook函数 ① 本质是一个函数,把setup函数中使用的Composition API 进行了封装,类似于vue2.x中的mixin 自定义hook函数…

TCP和UDP

目录 TCP和UDP是什么? TCP和UDP有什么区别? 三次握手和四次挥手 TCP维护可靠的通信方式 拥塞控制 滑动窗口的原理 什么是粘包以及粘包的原因 粘包的处理方式 TCP和UDP使用场景 TCP和UDP是什么? TCP: 传输控制协议(TCP&am…

Maven介绍-下载-安装-使用-基础知识

Maven介绍-下载-安装-使用-基础知识 Maven的进阶高级用法可查看这篇文章: Maven分模块-继承-聚合-私服的高级用法 文章目录 Maven介绍-下载-安装-使用-基础知识01. Maven1.1 初识Maven1.1.1 什么是Maven1.1.2 Maven的作用 02. Maven概述2.1 Maven介绍2.2 Maven模型…

postgresql|数据库|MySQL数据库向postgresql数据库迁移的工具pgloader的部署和初步使用

前言: MySQL数据库和postgresql数据库之间的差异并不多,这里的差异指的是对SQL语言的支持两者并不大,但底层的东西差异是非常多的,例如,MySQL的innodb引擎概念,数据库用户管理,这些和postgresq…

【设计模式】-建造者模式

Java建造者模式:创建复杂对象的灵活构建者 在软件开发中,我们经常遇到需要创建一个复杂对象的情况。如果使用传统的构造函数进行对象创建,可能会导致构造函数参数过多,难以管理和维护。建造者模式(Builder Pattern&am…

使用eXosip+ffmpeg、ffplay命令行实现sip客户端

文章目录 前言一、关键实现1、主要流程2、解决端口冲突(1)、出现原因(2)、解决方法 3、解析sdp(1)、定义实体(2)、解析视频(3)、解析音频 4、命令行推拉流&am…

Ctfshow web入门 XXE 模板注入篇 web373-web378 详细题解 全

CTFshow XXE web373 学习资料: (梭哈~) https://www.cnblogs.com/20175211lyz/p/11413335.html https://www.cnblogs.com/zhaijiahui/p/9147595.html https://www.cnblogs.com/r00tuser/p/7255939.html https://mp.weixin.qq.com/s?__bizMz…

stable diffusion(1): webui的本地部署(windows)

一、前言 是的,现在是202308月份了,网上已经有很多打包好的工具,或者直接进一个web就能用SD的功能,但是我们作为程序员,就应该去躺坑,这样做也是为了能够有更多自主操作的空间。 像其他AI一样&#xff0c…

【类和对象】基础知识

目录 一、类的定义 定义方式一&#xff1a;定义与声明都在类中 定义方式二&#xff1a;定义与声明分离 二、类的实例化&&类对象存储方式 类的实例化 类对象存储模式 三、this指针 一、类的定义 定义方式一&#xff1a;定义与声明都在类中 #include<iostream&…

进阶:Docker容器管理工具——Docker-Compose使用

文章目录 前言Compose大杀器编排服务 1、docker-compose安装curl方式安装增加可执行权限查看版本 2、Docker-compose.yaml命令3、 docker-compose实战4、Docker网络路由docker的跨主机网络路由**问题由来**:方案两台机分别配置路由表ip_forward配置 总结 前言 容器的管理工具&…

AI一键生成短视频

AI一键生成推文短视频 阅读时长&#xff1a;10分钟 本文内容&#xff1a; 结合开源AI&#xff0c;一键生成短视频发布到常见的某音&#xff0c;某手平台&#xff0c;狠狠赚一笔 前置知识&#xff1a; 1.基本的 python 编程知识 2.chatGPT 使用过 3.stable diffution 使用过 成果…

开关电源控制--bode图相角裕量的选择

什么是相角裕量 在Bode图中&#xff0c;相角裕量是指系统的相位裕量&#xff0c;用于评估系统的稳定性和频率响应特性。 Bode图是一种常用的频率响应图&#xff0c;将系统的增益和相位随频率变化的情况绘制出来。在Bode图中&#xff0c;相角裕量表示系统的相位与-180度&#…

Python web实战之Django的文件上传和处理详解

概要 关键词&#xff1a;Python Web开发、Django、文件上传、文件处理 今天分享一下Django的文件上传和处理。 1. 上传文件的基本原理 在开始深入讲解Django的文件上传和处理之前&#xff0c;先了解一下文件上传的基本原理。当用户选择要上传的文件后&#xff0c;该文件会被发…

Node.js-http模块服务端请求与响应操作,请求报文与响应报文

简单案例创建HTTP服务端&#xff1a; // 导入 http 模块 const http require("http"); // 创建服务对象 const server http.createServer((request, response) > {// 设置编码格式&#xff0c;解决中文乱码问题response.setHeader("content-type", &…

20天突破英语四级高频词汇——第②天

2&#xfeff;0天突破英语四级高频词汇~第2天加油(ง •_•)ง&#x1f4aa; &#x1f433;博主&#xff1a;命运之光 &#x1f308;专栏&#xff1a;英语四级高频词汇速记 &#x1f30c;博主的其他文章&#xff1a;点击进入博主的主页 目录 2&#xfeff;0天突破英语四级高…

绿盾用户使用看图软件每次都需要把图片解密之后才能打开查看,怎么才能不用这么麻烦打开就能看

环境: Win10专业版 绿盾控制台7.0 看图软件FastStone Image Viewer 问题描述: 绿盾用户使用看图软件FastStone Image Viewer每次都需要把图片解密之后才能打开查看,怎么才能不用这么麻烦打开就能看,用户说每次都需要把图片解密之后才能使用,实在是影响效率 解决方案…

0140 数据链路层2

目录 3.数据链路层 3.6局域网 3.7广域网 3.8数据链路层设备 部分习题 3.数据链路层 3.6局域网 3.7广域网 3.8数据链路层设备 部分习题 1.如果使用5类UTP来设计一个覆盖范围为200m的10BASE-T以太网&#xff0c;需要采用的设备是&#xff08;&#xff09; A.放大器 …

租赁类小程序定制开发|租赁管理系统源码|免押租赁系统开发

随着互联网的发展&#xff0c;小程序成为了一种重要的移动应用开发方式。租赁小程序作为其中的一种类型&#xff0c;可以为很多行业提供便利和创新。下面我们将介绍一些适合开发租赁小程序的行业。   房屋租赁行业&#xff1a;租房小程序可以帮助房东和租户快速找到合适的租赁…

Synchronized同步锁的优化方法 待完工

Synchronized 和后来出的这个lock锁的区别 在并发编程中&#xff0c;多个线程访问同一个共享资源时&#xff0c;我们必须考虑如何维护数据的原子性。在 JDK1.5 之前&#xff0c;Java 是依靠 Synchronized 关键字实现锁功能来做到这点的。Synchronized 是 JVM 实现的一种内置锁…

element表格+表单+表单验证结合运用

目录​​​​​​​ 一、结果展示 二、实现代码 一、结果展示 1、图片 2、描述 table中放form表单&#xff0c;放输入框或下拉框或多选框等&#xff1b; 点击添加按钮&#xff0c;首先验证表单&#xff0c;如果存在没填的就验证提醒&#xff0c;都填了就向下添加一行表单表…