Linux 网络基础

news2025/1/11 15:48:35

目录

一.网络

1.重新看待计算机结构

2.几种网络

二.协议

1.协议分层

2.OSI七层模式

3.TCI/IP五层(或四层)模型

三.网络传输

1.网络和操作系统之间的关系

2.网络传输流程图

 3.数据包封装和应用


前言:这一篇大体介绍一下网络的一些基础知识。

一.网络

1.重新看待计算机结构

2.几种网络

独立模式:计算机之间相互独立

网络互联:多台计算机连接在一起,完成数据共享

局域网LAN:计算机数量更多了,通过交换机和路由器连接在一起

广域网WAN:将远隔千里的计算机都连在一起

所谓 "局域网" 和 "广域网" 都只是一个相对的概念。

主机内,"线" 比较短,可能会导致信号干扰

跨主机,"线" 比较长,会导致可靠性降低,效率下降,无法寻找到对方。

        而网络知识的本质,都是因为线变长了。

二.协议

        "协议" 是一种约定

        计算机之间的传输媒介是光信号和电信号. 通过 "频率" 和 "强弱" 来表示 0 和 1 这样的信息. 要想传递各种不同的信息, 就需要约定好双方的数据格式

1.协议分层

 例子:

在这个例子中, 我们的协议只有两层; 但是实际的网络通信会更加复杂, 需要分更多的层次

分层最大的好处在于 "封装" ,例如面向对象例子

软件也是可以分层的,那么为什么软件要分层呢?

① 软件在分层的同时,也把问题进行了归类

② 分层的本质:在软件上解耦

③ 便于工程师进行软件维护

        网络本身的代码就是层状结构的。

        层状结构下的网络协议中的同层协议,都可以认为自己在和对方直接通信,而忽略底层的细节

        同层之间,一定都要有自己的协议

2.OSI七层模式

        ① OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范

        ② 把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机

        ③ OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据输

        ④ 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯

        ⑤ 但是, 它既复杂又不实用,所以这里按照TCP/IP四层模型来介绍

3.TCI/IP五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇

TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求
 

        ① 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.

        ② 数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.

        ③ 网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.

        ④ 传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.

        ⑤ 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层

        物理层这里考虑的比较少. 因此很多时候也可以称为TCP/IP四层模型.

一般而言:

① 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;

② 对于一台路由器, 它实现了从网络层到物理层;

③ 对于一台交换机, 它实现了从数据链路层到物理层;

④ 对于集线器, 它只实现了物理层;

        但是并不绝对. 很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发)

三.网络传输

1.网络和操作系统之间的关系

(1)体系结构直接决定,数据包在主机内进行流动的时候,一定是要进行自顶向下或者自底向上进行流动的。以前的所有IO都是这样的。

(2)同层协议都认为自己在和对方直接通信。(每一层都有自己的协议)

(3)重谈协议时 ---- 计算机的视角,是如何看待协议的?

        ① 体现在代码逻辑上

        ② 体现在数据上

        为了维护协议,一定要在被传输的数据上,新增其它协议数据。

我们把每一层要交付给下一层的数据,给它添加上本层的 "多出来的协议数据" (报头),拼接在原始的开头。 

2.网络传输流程图

        如果两台主机,处于同一个局域网(以太网,一直局域网的标准),那么这两台主机能够直接进行通信吗?

局域网通信的原理

① 每一天主机都要有唯一的标识:该主机对应的MAC地址

② 任何一台主机,在任何时刻,都可以随时发消息 ---- 导致硬碰撞 ---- 无法准确找到对应的消息 ---- 识别到发生了碰撞(碰撞检测) ---- 碰撞避免

        这个以太网站在系统角度,就是临界资源。

MAC地址:用来在局域网中,标定主机的唯一性。

IP地址:用来在广域网(公网),标定主机的唯一性。

从哪里来,到哪里去(IP地址:源IP,目的IP)

上一站从哪里来,下一站要去哪里(MAC地址:源mac地址,目标mac地址【由目的IP决定】)

所有的IP向上的协议,发送和接受主机看到的数据是一模一样的。

网络->IP网络:屏蔽了底层网络的差异

 3.数据包封装和应用

        ① 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)

        ② 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装
(Encapsulation)

        ③ 首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息

        ④ 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理

数据包添加报头的时候,也要考虑未来解包的时候,将自己的有效载荷(去掉报头后的数据包)交付给上层的哪一个协议

① 一般而言,任何报头属性里面,一定要存在一些字段支持,支持进行封装和解包

② 一般而言,任何报头属性里面,一定要存在一些字段支持,支持进行分用

数据分用的过程:

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

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

相关文章

do while语句

上次讲了while语句,这次讲一下do while语句。 do...while 循环是 while 循环的变体。在检查while()条件是否为真之前,该循环首先会执行一次do{}之内的语句,然后在while()内检查条件是否为真,如果条件为真的话,就会重复…

王卫点赞友商?北京快递保卫战,顺丰彰显大格局大气度

当下,随着全面放开,国内新冠疫情到了另一个严峻的拐点时刻,特别是北京,正日益逼近感染高峰期。 作为社会生活的毛细血管,快递物流企业们在当下的新冠疫情大背景下上演了一幕幕的鲜活的画面,快递行业市场新…

如何磁盘格式化?分享格式化U盘的3个方法

格式化可以有效管理硬盘,在一定程度上能保证磁盘的性能和使用寿命。尤其是我们遇到一些情况,必须要把U盘进行格式化才行。那么磁盘格式化怎么操作?遇到无法格式化的情况怎么办?别急,下面有3个关于格式化U盘的方法&…

通信协议综述-第3讲 | ifconfig:最熟悉又陌生的命令行

上一节结尾给你留的一个思考题是,你知道怎么查看 IP 地址吗? 当面试听到这个问题的时候,面试者常常会觉得走错了房间。我面试的是技术岗位啊,怎么问这么简单的问题? 的确,即便没有专业学过计算机的人,只要倒腾过电脑,重装过系统,大多也会知道这个问题的答案:在 Win…

图片跟随鼠标移动效果的抖动问题

场景 图片跟随鼠标移动效果的实现思路&#xff1a; 触发mousemove事件响应时&#xff0c;通过e.offsetX,e.offsetY获取到当前鼠标的位置。再修改图片的css样式中的top, left属性&#xff08;图片采用绝对定位&#xff09;。 代码如下&#xff1a; <div id"angel&quo…

车载TBOX嵌入式设备软件的功能测试

作者 | 李伟 上海控安安全测评中心安全测评部总监 来源 | 鉴源实验室 01 Tbox简介 Tbox(Telematics Box)是汽车座舱系统中的一个ECU&#xff0c;物理外观上是一个方正的盒子&#xff0c;通常会有线束接口、HSD接口、通讯和导航天线接口等。软件上Tbox一般会基于Linux操作系统…

音视频面试涨知识(二)

1.YUV知识点 1.1 为什么要有YUV YUV的亮度信号Y和色度信号U/V是分离的&#xff0c;如果只有Y信号分量而没有U/V分量&#xff0c;这样的图像就是黑白灰度图像&#xff0c;从黑白到彩色的兼容方案。 相对RGB&#xff0c;YUV的最大优点是只占用较小的频宽&#xff0c;RGB需要至少…

EasyPytest测试平台开发日志之系统设计

EasyPytest测试平台&#xff0c;帮你高效管理Pytest测试用例。 EP平台的定位是Pytest测试用例管理平台&#xff0c;80%的自动化用例开发在PyCharm等专业的IDE中进行&#xff0c;20%的用例调度和结果查看就交给EP平台来管理。 EP平台是对teprunner测试平台的一次全新升级&#x…

【设计模式】 工厂模式 (三)

文章目录4.2 工厂模式4.2.1 概述4.2.2 简单工厂模式4.2.2.1 结构4.2.2.2 实现4.2.2.4 优缺点4.2.2.3 扩展4.2.3 工厂方法模式4.2.3.1 概念4.2.3.2 结构4.2.3.3 实现4.2.3.4 优缺点4.2.4 抽象工厂模式4.2.4.1 概念4.2.4.2 结构4.2.4.2 实现4.2.4.3 优缺点4.2.4.4 使用场景4.2.5 …

【电脑使用】硬盘无法引导进入系统,无法退出BIOS

前言 因为想要给自己的笔记本添置装备&#xff0c;于是想着把老电脑上的固态拆下来&#xff0c;但是考虑到老电脑虽然不常用&#xff0c;但还是偶尔会用&#xff0c;不能是瘫痪状态&#xff0c;于是想把我之前淘到的一个机械硬盘换上去&#xff0c;结果发现无法引导进入系统&am…

【JavaEE】HTTP(Part1 含面试题)

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录前言一、HTTP协议抓包工具协议总格式&#xff08;重要&#xff01;&#xff01;&#xff09;二、HTTP协议中的细节【HTTP请求】【HTTP中的“方法”】【GET】&#xff1a;最常用的HTTP请求【POST】【认识请求“报头”…

SecureBridge Alexandria Release 2和iOS 15的支持

SecureBridge Alexandria Release 2和iOS 15的支持 添加了对Embarcadero RAD Studio 11 Alexandria Release 2的支持。 增加了对Apple iOS模拟器ARM 64位目标平台的支持。 增加了对Lazarus 2.2.2的支持。 添加了对Apple iOS 15的支持。 增加了对Android 12的支持。 SSH、SFTP、…

ubuntu 安装 colmap

目录 一、安装colmap 二、报错解决 三、安装成功 四、colmap使用教程 一、安装colmap 参考安装&#xff1a;​​​​​​​chttps://blog.csdn.net/weixin_46132232/article/details/124211233 官方&#xff1a;COLMAP 官方information 二、报错解决 2.1 在安装colmap的…

HashMap源码解析

HashMap源码解析 基础入门 什么是哈希 核心理论&#xff1a;Hash 也称散列、哈希&#xff0c;对应的英文都是 Hash。基本原理就是把任意长度的输入&#xff0c;通过Hash算法变为固定长度输出。 这个映射的规则就是对应的 Hash 算法&#xff0c;而原始数据映射后的二进制串就…

飞桨VisualDL本地运行问题

最近参加了百度飞桨的基于深度学习的自然语言处理 免费AI课程&#xff0c;有一道作业题是要利用飞桨提供的可视化工具VisualDL查看词向量降维效果。由于安全方面的原因&#xff0c;AI Studio中的可视化服务无法使用了。当按照作业步骤&#xff0c;生成日志文件后&#xff1a; 添…

Vue3+Element-ul学生管理系统(项目实战)

Vue3Element-ul学生管理系统(项目实战) 要发奋做一个可爱的人。不埋怨谁&#xff0c;不嘲笑谁&#xff0c;也不羡慕谁&#xff0c;阳光下灿烂&#xff0c;风雨中奔跑&#xff0c;做自我的梦&#xff0c;走自我的路&#xff01; 看本项目的前提自己学过Vue2Vue3Elementui组件库 …

Python学习笔记-操作数据库

记述python中关于数据库的基本操作。 一、数据库编程接口 1.连接对象 数据库连接对象&#xff08;Connection Object&#xff09;提供获取数据库游标对象、回滚事物的方法&#xff0c;以及连接、关闭数据库连接。 1.1 获取连接对象 使用connect()方法获得连接对象&#xf…

STM32F4 | 定时器中断实验

文章目录一、STM32F429 通用定时器简介二、硬件设计三、软件设计四、实验现象五、STM32CubeMX 配置定时器更新中断功能这一章介绍如何使用 STM32F429 的通用定时器&#xff0c; STM32F429 的定时器功能十分强大&#xff0c;有 TIME1 和 TIME8 等高级定时器&#xff0c;也有 …

从外包到拿下阿里 offer,这 2 年 5 个月 13 天到底发生了什么?

开篇介绍 个人背景&#xff1a; 不说太多废话&#xff0c;但起码要让你先对我有一个基本的了解。本人毕业于浙江某二本院校&#xff0c;算是科班出身&#xff0c;毕业后就进了一家外包公司做开发&#xff0c;当然不是阿里的外包&#xff0c;具体什么公司就不透露了&#xff0…

机器学习100天(一):001 开发环境搭建

机器学习实战需要编写代码,选择一个好的 IDE 能大大提高我们的开发效率。基于 Python 的广泛使用,我们给大家介绍当前最流行的机器学习开发工具包:Anaconda。 一、为什么选择 Anaconda 我们知道 Python 是人工智能的首选语言。为了更好、更方便地使用 Python 来编写机器学…