【Linux 网络编程】OSI 七层模型初识、网络传输的流程、IP地址和MAC地址!

文章目录

      • 1. OSI七层模型
      • 2. TCP/IP五层(或四层)模型
      • 3. 网络传输基本流程
    • 🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧
      • 4. 以太网通信
      • 5. IP地址 和 MAC地址的理解

1. OSI七层模型

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

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

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

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

  • 🍎但是, 它 但是, 它既复杂又不实用; 所以我们按照TCP/IP四层模型来讲解;

在这里插入图片描述
在这里插入图片描述



2. TCP/IP五层(或四层)模型

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

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

🍎 物理层我们考虑的比较少,因此很多时候也可以称为 TCP/IP四层模型。

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

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

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

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

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

注意:❗应用层、表示层、会话层这三层同意看成 应用层进行理解。
在这里插入图片描述



  • 对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;
    对于一台路由器, 它实现了从网络层到物理层;
    对于一台交换机, 它实现了从数据链路层到物理层;
    对于集线器, 它只实现了物理层;

  • 五层模型与操作系统的关系
    🐧 传输层、网络层 属于 Linux 内核中的模块。
    在这里插入图片描述

3. 网络传输基本流程

  • 网络通信的基本示意图:
    在这里插入图片描述

🐧① 网络协议的层状结构中,每一层都有协议。

🐧② 报文 = 报头 + 有效载荷。

🐧③ 每层都要添加相应的 报头

🐧④ 封装的时候一定要考虑到后面怎么解包

在这里插入图片描述


  • 🍎 Ⅰ、同一个网段内的两台主机进行文件传输.
  • 避免抓包:在应用层加密
    在这里插入图片描述

  • 🍎 Ⅱ、两台计算机通过 TCP/IP协议通讯的过程如下:

在这里插入图片描述

🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧

在这里插入图片描述


  • 🍎 Ⅲ、跨网段的主机的文件传输. 数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器
    在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 想想 我们用手机 和 电脑 都可以看 B 站 (手机和电脑区别这么大,还是可以连接同一个网络进行访问 B 站,说明底层的细节已经被处理)

  • MAC 地址的使命:在局域网中,从 A主机送到 B主机,使命结束,然后在路由器中更换令牌环的mac地址。

  • 路由器是工作在网络层的。

在这里插入图片描述

4. 以太网通信

  • 🍎以太网通信:可以理解为老师在教室给学生上课,当老师发出一个消息(叫张三回答问题的时候),此时其实全班都接收到了这个消息,但是只有张三站起来了。
    在这里插入图片描述

  • 🍎 以太网发生数据碰撞

  • 在局域网中一下有很多垃圾信息,例如:(M1 --> M10,M2 --> M3, M4 --> M2),一下这么多主机相互发送消息,一定会发生数据碰撞的。

  • 局域网任何时刻只有一台主机在发送消息

  • 交换机:减少在局域网中的数据碰撞(组织垃圾信息进一步扩散),划分碰撞域

  • 如何看待局域网允许一个主机向局域网中投递数据,局域网共享资源 — 互斥访问 — 多台主机共享的资源 – (本质:主机背后其实是进程在访问网络,保证数据的一致性

  • 局域网之间的通信:每台主机都有一个 48 位的 Mac 地址。

在这里插入图片描述

5. IP地址 和 MAC地址的理解

  • 🍎 我们该如何理解呢?

🐧 我们可以理解成我们要从 辽宁 出发去 云南 旅游,辽宁可以理解成为(原IP),云南可以理解成为目的IP,去云南肯定要经过陕西、四川等地,这些途径的地方都在改变,可以把它理解成为 MAC地址。


  • IP地址可以标志主机全网的唯一性!
    原 IP 和 目的 IP(一直不变),MAC 地址在改变;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Golang | Leetcode Golang题解之第127题单词接龙

题目: 题解: func ladderLength(beginWord string, endWord string, wordList []string) int {wordId : map[string]int{}graph : [][]int{}addWord : func(word string) int {id, has : wordId[word]if !has {id len(wordId)wordId[word] idgraph a…

Flink系列三:Flink架构、独立集群搭建及Flink on YARN模式详解

一、Flink架构 Flink 是一个分布式系统,需要有效分配和管理计算资源才能执行流应用程序。它集成了所有常见的集群资源管理器,例如Hadoop yarn,但也可以设置作为独立集群甚至库运行。 Flink 集群剖析 Flink 运行时由两种类型的进程组成&…

数据分析常用模型合集(一)AARRR模型和漏斗模型

准备把常用的数据分析模型,像什么AARRR,RFM之类的,逐个全部写一下; 最好能带点案例和代码,搞一个小合集。 最终达到完全不懂的人,看完就能知道得差不多; 数据分析常用模型合集(二…

TiDB-从0到1-分布式存储

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCC 一、TiDB-DML语句执行流程(增删改) DML流程概要 1、协议验证 用户连接到TiDB Server后首先工作的是Protocol Layer模块,该模块会对用…

FuTalk设计周刊-Vol.046

# AI漫谈 热点捕手 1、Stable Diffusion 可以生成透明的 PNG 图片了 用 SD 直接生成透明的 PNG 图片,也可以直接生成带有透明度分层的图片,LayerDiffusion 使得大型已经过预训练的潜在扩散模型(latent diffusion model)能够创造…

docker学习--最详细的docker run 各子命令解释与应用

文章目录 docker run应用docker run -it那怎样才能退出容器而不用容器关闭呢 docker run -d-p-P--name docker run 容器运行命令 docker run 常见的子命令及其含义 -i 交互式,和-t一起使用 -t 打开一个终端 -d 后台运行 -p/-P 暴露容器中的服务端口 –name 指定容…

计算机组成原理----浮点数的表示和运算

目录 一.浮点数的表示 1.浮点数的作用和基本原理 2.浮点数的规格化 3.浮点数的表示范围 二.IEEE 754标准 三.浮点数的加减运算 1.加减运算 2.强制类型转换 一.浮点数的表示 1.浮点数的作用和基本原理 定点数在字节数固定的情况下,能表示的数字是很有限的&…

C++ | Leetcode C++题解之第128题最长连续序列

题目&#xff1a; 题解&#xff1a; class Solution { public:int longestConsecutive(vector<int>& nums) {unordered_set<int> num_set;for (const int& num : nums) {num_set.insert(num);}int longestStreak 0;for (const int& num : num_set) {…

SAP PP学习笔记15 - MTS(Make-to-Stock) 按库存生产(策略11,策略30)

上一章学习了MTS&#xff08;Make-to-Stock&#xff09;按库存生产&#xff08;策略10&#xff09;。 SAP PP学习笔记14 - MTS&#xff08;Make-to-Stock) 按库存生产&#xff08;策略10&#xff09;&#xff0c;以及生产计划的概要-CSDN博客 本章继续讲MTS&#xff08;Make-t…

Prism 入门01,基础

Prism 框架是支持多平台的一种MVVM框架(Model-View-ViewModel) 除了具备一些基础的属性通知绑定,命令操作,消息聚合器等功能外。还具备一些强大的功能:例如,区域,导航,会话服务,模块注入等特性。 一.如何在WPF 项目中使用Prism 框架 1.打开Visual Studio 2022,选择创…

Java | Leetcode Java题解之第128题最长连续序列

题目&#xff1a; 题解&#xff1a; class Solution {public int longestConsecutive(int[] nums) {Set<Integer> num_set new HashSet<Integer>();for (int num : nums) {num_set.add(num);}int longestStreak 0;for (int num : num_set) {if (!num_set.contai…

边缘计算的AI小板——OrangePi AI Pro

简介 OrangePi AI Pro是一款基于Allwinner H6处理器的嵌入式AI计算设备&#xff0c;适用于物联网和边缘计算。它具有强大的性能、低功耗、多接口和小尺寸。 本文分为三个部分&#xff1a; 一、对该板进行简单的开箱介绍。 二、 将SD卡中的系统迁移到由于该板支持SD卡、SSD…

Python代码关系图生成,帮助快速熟悉一个项目

一、静态代码关系图 工具1、pyreverse pyreverse 是一个由 Logilab 开发的 Python 工具&#xff0c;它能够自动生成 UML (统一建模语言) 类图&#xff0c;这些类图基于 Python 源代码。pyreverse 可以分析 Python 代码&#xff0c;并从中提取出类、模块、函数、方法和它们之间…

Java项目:94 springboot大学城水电管理系统

作者主页&#xff1a;源码空间codegym 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 本管理系统有管理员和用户。 本大学城水电管理系统管理员功能有个人中心&#xff0c;用户管理&#xff0c;领用设备管理&#xff0c;消耗设备…

docker和docker-compose的安装

docker的安装 1.安装 curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun2.设置开机自启动 systemctl start docker #启动docker systemctl enable docker3.配置阿里云镜像 不配置镜像的话&#xff0c;进行 docker pull 等操作会比较慢。进入阿里云&…

【MySQL】聊聊order by 是如何排序的

CREATE TABLE t (id int(11) NOT NULL,city varchar(16) NOT NULL,name varchar(16) NOT NULL,age int(11) NOT NULL,addr varchar(128) DEFAULT NULL,PRIMARY KEY (id),KEY city (city) ) ENGINEInnoDB;构建一个表结构&#xff0c;以及数据。 本篇主要来分析下order by是如何进…

SpringBoot 定时任务+Quartz

1、分部解释2、整体代码 前言&#xff1a; 1、定时任务技术&#xff1a; JDK 的 Timer&#xff0c; 定义多个定时任务&#xff0c;其中某个任务出现异常&#xff0c;当时整个定时任务终止。Spring Task &#xff0c; 不支持 持久化与分布式部署&#xff0c;所有任务是单线程执行…

【RPG Maker MV 仿新仙剑 战斗场景UI (九)】

RPG Maker MV 仿新仙剑 战斗场景UI 九 前言角色战斗精灵精灵图设置攻击 战斗背景图 前言 前段天研究并完成了主角人物行走图部分的开发&#xff0c;完成了对应的8方向行走&#xff0c;及精灵的展示。现在开始重新回到战斗场景的开发中&#xff0c;回顾下&#xff0c;已完成功能…

植物大战僵尸杂交版(最新版)

杂交版1.0文件链接 链接&#xff1a;https://pan.baidu.com/s/1Ew6iTg0_d_Ut8N9_18KGLw 提取码&#xff1a;yspa 杂交版2.0文件链接 链接:https://pan.baidu.com/s/1tuchowb4C_oNT6EpqSvr_w?pwdy2fz 提取码:y2fz

如何解决游戏行业DDOS攻击问题

随着网络游戏行业的迅速发展&#xff0c;网络游戏问题也不可忽视&#xff0c;特别是目前网络攻击频发&#xff0c;DDoS攻击的简单化以及普及化&#xff0c;对游戏来说存在非常大的安全威胁。 随着受攻击对象的范围在不断地拓展&#xff0c;网络游戏这种这种新型并且有着丰厚利…