【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 地址在改变;

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

uni-app基础框架搭建(vue3+ts+vite)

1.基础准备 uni-app官网uni-app,uniCloud,serverless,环境安装,创建uni-app,自定义模板,国内特殊情况,更新依赖到指定版本,运行、发布uni-app,运行并发布快应用,运行并发布快应用(webview),运行并发布快应用(webview)-华为,cli创建项目和HBuilderX可视化界面创https://uniapp.…

人大金仓数据库报sys_user表字段不存在的问题

目录 一.问题: 二.原因 三.解决方法: 一.问题: 公司的一个项目从oracle切换到人大金仓之后,突然报了一个sys_user里面的字段不存在。 二.原因 检查了很多次确信sys_user表没问题,查了相应的文档之后发现原来人大金…

企业数字化转型的主要方面有哪些?

本人研究企业数字化转型10余年,为企业软件选型、数字化提供咨询服务!目前重点研究低代码数字化转型玩法,力争为各行各业探索出一条最具性价比的数字化方式。 关于“企业数字化转型包括哪些方面”这个问题,咱先来看个例子哈~ 比如…

前端将xlsx转成json

第一种方式,用js方式 1.1先安装插件 万事都离不开插件的支持首先要安装两个插件 1.2. 安装xlsx cnpm install xlsx --save注:这块我用的cnpm,原生的是npm,因为镜像的问题安装了cnpm,至于怎么装网上一搜一大堆 1.3安…

正则表达式运用

已经写了表达式,下一步就是匹配字符串得到结果 使用matcher的源码(匹配)普通方法,find(寻找)合适的代码,看字符串是否匹配成功 是否可以匹配上 匹配么,匹配就留下,fin…

代码随想录算法训练营第二十五天| 216. 组合总和 III、17. 电话号码的字母组合

[LeetCode] 216. 组合总和 III [LeetCode] 216. 组合总和 III 文章解释 [LeetCode] 216. 组合总和 III 视频解释 题目: 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该…

kafka学习笔记 @by_TWJ

目录 1. 消息重复消费怎么解决1.1. 确保相同的消息不会被重复发送(消费幂等性)1.2. 消息去重1.3. 消息重试机制1.4. kafka怎么保证消息的顺序性1.4.1. 利用分区的特征:1.4.2. 解决办法:1.4.3. 分区分配策略1.4.3.1. RangeAssignor (每组(Topi…

实用商务口语:“企业文化”用英语怎么说?柯桥学英语去银泰

企业文化是指企业员工共有的一套观念、信念、价值和价值行为准则,以及由此导致的行为模式。 英文可以说:enterprise / company / corporate culture。 情景对话练习01 A:Your company made a lot of achievements last year; how do you make it? 你们…

Windows系统没有Hyper-v的解决方法

在控制面板-程序-启用或关闭Windows功能下找不到Hyper-v节点 Windows10解决方法: 解决办法 1.将下面命令复制到文本文档中,并将文档重命名Hyper.cmd pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt …

数据结构———链表

链表是经常用到的一种基础数据结构,接下来我们讲讲链表。 链表: 特点: 链表可分为有头/无头链表,循环/无环,双向/单向链表,每个链表节点都包含一个数据和下一个链表节点的地址。 每个链表节点都指向下一…

0基础学习区块链技术——去中心化

大纲 去验证的中心化验证者如何验证验证者为什么要去传播 去确认的中心化去存储的中心化 “去中心化”是区块链技术的核心。那么我们该如何理解这个概念呢? 我们可以假想在一次现实转账中,有哪些“中心化”的行为: 判断余额是否足够。即判断…

SAP Build引言

前言 SAP Build 似乎是一个整合了很多低代码或无代码产品的平台,最早的时候应该都是各自分开的几个产品,近年合并到一块上了SAP Build平台 现在看官网的介绍应该是有三四个产品被集成进来了,分别是SAP IRPA,SAP Workflow&#xf…

怎么将图片里不需要的地方裁减掉?四种超好用的裁剪图片方法!

怎么将图片里不需要的地方裁减掉?在这个数字化时代,我们所处的世界变得更加多姿多彩,各种类型的图片不断涌现,从社交媒体上的自拍照到专业摄影师的作品,图片已经成为我们日常生活中不可或缺的一部分,然而&a…

docker网络详解

1. 网络模式 1.1 网络结构 当安装Docker以后,会自动创建三个网络。可以使用docker network ls命令列出这些网络。 $ docker network ls NETWORK ID NAME DRIVER SCOPE 440aefe8afa3 bridge bridge local aa8d6325580f host host …

flutter封装日历选择器(单日选择)

简单封装: 引入库:table_calendar import package:generated/l10n.dart; import package:jade/utils/JadeColors.dart; import package:jade/utils/Utils.dart; import package:util/easy_loading_util.dart; import package:flutter/material.dart; im…

低情商高情商的职场较量!有效职场沟通的技巧~

🔸你是否曾经在工作中遇到沟通障碍,导致项目进展缓慢,情绪受挫? 🔸你是否渴望与同事建立更加紧密的关系,共同实现团队目标? 🔸你是否想要在职场上展现更自信、高效的沟通能力&…

Python限制输入的数范围

在编程过程中,尤其是处理用户输入时,常常需要确保输入的数值在预期的范围内。这对于提高程序的鲁棒性和用户体验至关重要。本文将介绍如何使用Python限制用户输入的数值范围,并提供相应的代码示例和配图以帮助理解。 一、基础方法&#xff1…

5-Django项目--分页与搜索(资产页面)

目录 views/asset_data.py asset_data/asset_data.html 搜索与分页笔记: 搜索 整数搜索 字符串搜索 分页 views/asset_data.py # -*- coding:utf-8 -*- from django.shortcuts import render, redirect, HttpResponse from django.utils.safestring import mark_safe f…

从零开始:如何用Electron将chatgpt-plus.top 打包成EXE文件

文章目录 从零开始:如何用Electron将chatgpt-plus.top 打包成EXE文件准备工作:Node.js和npm国内镜像加速下载初始化你的Electron项目创建你的Electron应用运行你的Electron应用为你的应用设置图标打包成EXE文件结语 从零开始:如何用Electron将…

Linux系统安装APITable详细流程与远程访问本地平台数据分析

文章目录 前言1. 部署APITable2. cpolar的安装和注册3. 配置APITable公网访问地址4. 固定APITable公网地址 💡推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击跳转到网站】 前言 v…