网络 (基础概念, OSI 七层模型, TCP/IP 五层模型)

网络互连

网络互连: 将多台计算机连接在一起, 完成数据共享
数据共享的本质是网络数据传输, 即计算机之间通过网络来传输数, 也叫做网络通信

根据网络互连的规模不同, 将网络划分为局域网广域网
注意: 局域网和广域网是相对的概念

局域网LAN

又称内网, 局域网和局域网之间在没有连接的情况下, 无法通信

局域网组建网络 (组网) 的方式有多种:

  1. 基于网线直连
  2. 基于集线器组建
  3. 基于交换机组建
  4. 基于交换机和路由器组建 (二层交换机,三层路由)

广域网WAN

通过路由器, 将多个局域网连接起来, 就形成了广域网
如果属于全球化的公共型广域网, 则称为互联网

IP, 端口号

IP 和 端口号用于定位在网络世界(局域网/广域网)中的位置
IP 用于标识网络主机, 网络设备的地址, 即一台设备的网络地址

  • IP 地址是一个32位的二进制数
    eg: 01100100.00000100.00000101.00000001
    通常以点分十进制的形式表示:
    eg: 100.4.5.1

端口号用于定位一台主机上的某个进程

  • 端口号范围: 0~65535 (2^16 个)
  • 其中有个概念叫知名端口号: 0~1023
    他们被一些常用软件: QQ, 微信, 浏览器 … 占用
    所以如果你要指定某个端口的使用, 最好设定在 1024~65535 的范围内

注意:
一个端口号只能绑定一个进程(一个端口号不能同时被多个进程使用)
但是一个进程可以绑定多个端口号
(比如开一个"QQ游戏软件", 里面有一堆游戏: 妈祖,象棋 …
“QQ游戏软件” 是一个进程,里面的每个单独的游戏占用一个端口
么一个进程就绑定了多个端口)

网络协议

网络协议: 网络通信警告的所有网络设备都必须共同遵守的一组约定, 规则.
通常由三要素组成:

  1. 语法: 数据和控制信息的结构或格式
  2. 语义: 请求和响应的格式
  3. 时序: 事件实现顺序的详细说明

协议最终体现为网络上的数据包的格式

网络协议的作用:
由于存在无数种数据格式: 二进制, 文本, 光信号, 电信号 …
网络协议用来规定通信过程中, 使用什么类型的数据, 用什么方式请求, 用什么类型响应 等等
所以协议就是一组约定,规则, 即大家共同遵守的秩序

五元组

在 TCP/IP 之中, 使用五元组来标识一个网络通信:

  1. 源IP: 标识源主机
  2. 目的IP: 标识目的主机
  3. 源端口: 标识通信中源主机中的发送数据的进程
  4. 目的端口: 标识通信中目的主机中接收数据的进程
  5. 协议号: 标识通信双发约定好的 数据格式 (你发二进制的内容, 我接受二进制的内容, 别你发了二进制形式内容, 我以字符格式接收)

协议分层

将网络协议分成几个部分, 每个部分专门处理某些内容

协议分层的作用:

  • 对于使用者来说, 不必关注提供方是如何实现的, 只需要使用接口即可
  • 对于提供方来说, 利用封装的特性, 隐藏实现细节, 只需要开放接口即可

不同分层之间, 上层应用调用下层接口, 下层接口实现上层应用

协议分层有两个常见划分模型: OSI 七层模型, TCP/IP 五层模型(或者有的地方也说是四层模型)

OSI 七层网络模型

这是只存在于教科书上的网络分层模型(没被真正实现, 只是提出了这样一种七层划分的概念)

该图片源自百度搜索

应用层: 针对特定应用的协议 (微信, 网页, 邮件 …)
表示层: 设备固有数据格式和网络标准 数据格式的转换
会话层: 通信管理. 负责建立和断开通信连接
传输层: 管理两个节点之间的数据传输, 即 端到端的数据传输 (节点: 网络通信中所有的设备, 主机, 路由, 交换机 …)
网络层: 地址管理和路由选择 (路径选择)
数据链路层: 互连设备之间传送和识别数据帧, 点到点之间的数据传输
物理层: 比特流(0/1)和电子信号之间的转换, 负责光 / 电信号的转换及数据传输

挺抽象的, 了解就好, 重点是学习我们正在用的 TCP/IP 五层模型

TCP/IP 五层模型

该图来自百度搜索

有的时候也说是 TCP/IP 四层网络模型, 原因是有人认为物理层是硬件相关的操作, 和我们网络通信有什么关系 (不是) , 所以把物理层删掉了, 这里不用太过在意, 知道是怎么回事就好.

这里有个便于记忆的点: TCP/IP 就是把 OSI 七层模型中的表示层和会话层合并到了应用层里 (有些大佬认为这仨层都是和应用相关, 没必要分的那么细 …) (考试的时候我死活记不住表示层和会话层 =^= )

应用层: 负责应用程序间的沟通, eg: HTTP, FTP, Telnet
传输层: 负责两台主机之间的数据传输, eg: TCP, UDP, 保证数据可靠的从源主机发送到目的主机.
网络层: 负责地址管理和路由选择, eg: IP, ICMP, 在IP协议中, 通过 IP 地址标识主机, 并通过路由表来规划两台主机之间的数据传输路线.
数据链路层: 负责设备之间的数据帧的传送和识别. eg: 设备驱动程序及接口卡
物理层 : 负责光/电信号的转换及数据传输.

不好记吧, 总有些取巧的方式 …
先了解几个概念, 网络通信过程中会经过很多设备, 其中的每个设备称为 节点 , 数据从 源主机, 途径许多节点, 发送到目的主机

没找到合适的图, 我自己做了

以微信聊天为例
应用层: 负责源主机和目的主机上的应用程序, 即微信和微信之间的匹配
传输层: 保证源主机和目的主机之间数据传输的可靠性
网络层: 源主机到目的主机之间, 有很多条线路可供网络通信选择, 网络层负责路径规划
数据链路层: 负责相邻节点之间的数据传输
物理层: 数据在设备之间通过光信号(电缆) 传输, 而在设备上以电信号(高低电平 =>01信号) 存储, 物理层负责光/电信号的转换

网络设备所在分层

主机的操作系统内核 实现了从传输层到物理层的内容
路由器 实现了网络层到物理层的内容 (三层路由)
交换机 实现了数据链路层到物理层的内容 (二层交换)
集线器 实现了物理层的内容

此处的路由器和交换机都是指传统意义上的路由器和交换机 (因为目前已经有 四层的路由器 和 三四层的交换机 了, 科技的发展是多么伟大 …)

封装和分用

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

应用层数据通过协议栈发送到网上时, 每层协议都要加上一个数据首部(header), 称为 封装(Encapsulation)
首部信息中包含一些类似于: 首部长度, 载荷长度, 数据类型, 上层使用协议 等等的信息

数据封装成帧后发送到传输介质上, 到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理, 这个过程叫做 分用

数据的封装过程

该图来自百度搜索
数据的分用过程
该图来自百度搜索


IP 地址 (Internet Protocol Adress) 互联网协议地址,又称网际协议地址

作用 : IP 地址时 IP 协议提供的一种统一的地址格式, 它为互联网上的每一个网络和每一台主机分配一个逻辑地址. 依次来屏蔽物理地址的差异.
格式 : 32位二进制数 & 点分十进制
组成 : 网络号 + 主机号


子网掩码

网络号 = 子网掩码 “按位与” IP地址
一般用于判断目的 IP 和本机 IP 是否位于同一网段


MAC 地址 (Media Access Control Address)

用于标识网络设备的硬件物理地址 (用来识别数据链路层中相连的节点)


网络设备及相关技术

集线器

发送到集线器的任何数据, 都会被转发到其他所有端口 (指集线器内部端口)

交换机

内部维护一张 MAC 地址转换符, 该表记录了 MAC 地址与(交换机中的)端口之间的映射. 交换机用于主机和主机间的数据报转发

路由器

作用 :

  • 作为网关
    • 划分公网和局域网
    • 将局域网划分为不同网段的多个子网
  • 路由
    • 路由即能够找出端到端的路线 (主机到主机)

ARP

ARP 协议 : 介于网络层和数据链路层之间的协议. ARP 协议建立了 IP 地址 和 MAC 地址的映射关系
ARP 寻址 : 在数据链路层, 寻找下一路设别 MAC 地址的过程, 称为 ARP 寻址
ARP 缓存表 : 记录了 IP 地址和 MAC 地址的对应关系. 主机和路由中均有各自的 ARP 缓存表


冲突域 (基于物理层)

主机之间通过网络设备 (集线器, 交换机)的物理端口, 网线相连时, 多个主机在同一时刻同时发送数据报. 如果存在冲突, 则该网络范围为一个冲突域 (碰撞域)

  • 集线器的所有端口, 为一个冲突域
  • 交换机可分割冲突域. 分割后, 一个端口为一个冲突域

广播域 (基于数据链路层)

广播是指某个网络中的主机, 同时向网络中的其他主机发送数据, 这个数据所能传播到的范围即为广播域

  • 集线器的所有端口为一个广播域
  • 一个交换机为一个广播域
  • 路由器可以隔离广播域, 其划分的一个网段为一个广播域

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

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

相关文章

jmeter 指定QPS压测接口

文章目录 jmeter 指定QPS压测接口更换语言为中文创建测试任务新建线程组右键线程组,新建http request,填写要你要压测的接口地址、参数如果需要自定义请求头,添加一个Http头信息管理器要查看结果和QPS统计数据,给上门的http请求添…

16.C++常用的算法_算数生成算法

文章目录 遍历算法1. accumulate()代码工程运行结果 2. fill()代码工程运行结果 遍历算法 1. accumulate() 代码工程 第三个参数为累加的起始值&#xff0c;如果没有特殊需求写0即可; 需要注意包含头文件#include<numeric>#define _CRT_SECURE_NO_WARNINGS #include&l…

探索早期投资的奥秘:符文(Runes)生态系统的崛起

随着加密市场的迅速发展&#xff0c;投资者们对早期项目的关注越来越高。在这个充满变数和机遇的领域里&#xff0c;抢占先机意味着可能获得巨大的回报。符文&#xff08;Runes&#xff09;生态系统作为近期备受瞩目的项目之一&#xff0c;引发了众多投资者的兴趣。本文将深入探…

A Neural Span-Based Continual Named Entity Recognition Model

《A Neural Span-Based Continual Named Entity Recognition Model》------------AAAI’23 论文链接&#xff1a;https://arxiv.org/abs/2302.12200 代码&#xff1a;https://github.com/Qznan/SpanKL 当前问题&#xff1a; 1.现有的NER模型在适应新的实体类型时往往表现不佳…

漏洞发生时,企业应该怎么做?

2021年&#xff0c;相关法律法规的完善极大促进了中国网络安全行业的发展&#xff0c;基于企业稳定运营、安全运营的原则&#xff0c;越来越多的领域投入到企业安全合规的建设中来。但现状是&#xff0c;随着安全建设的不断深入&#xff0c;各项出台的法规、政策并不一定能充分…

Python 异常处理与日志记录

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 异常处理是任何编程语言中的重要组成部分&#xff0c;Python 也不例外。Python 提供了丰富的…

解读无源 PoE 交换机:最佳选择比较指南

了解无源 PoE 交换机的复杂性可能是一项艰巨的任务。本文作为帮助您解码这些技术设备的综合指南。在这里&#xff0c;我们将详细比较各种无源 PoE 交换机、它们的独特特性以及它们的最佳使用案例。本指南重点关注客观事实&#xff0c;旨在为您提供必要的知识&#xff0c;以便在…

牛客周赛 Round 40(A,B,C,D,E,F)

比赛链接 官方讲解 这场简单&#xff0c;没考什么算法&#xff0c;感觉有点水。D是个分组01背包&#xff0c;01背包的一点小拓展&#xff0c;没写过的可以看看&#xff0c;这个分类以及这个题目本身都是很板的。E感觉就是排名放高了导致没人敢写&#xff0c;本质上是个找规律…

aardio - 【库】图片转字符画

库文件及例程下载&#xff1a;https://aardio.online/thread-261.htm

PyCharm 中的特殊标记

再使用 PyCharm 开发 Python 项目的时候&#xff0c;经常会有一些特殊的标记&#xff0c;有些是编辑器提示的代码规范&#xff0c;有些则为了方便查找而自定义的标记。 我在之前写过一些关于异常捕获的文章&#xff1a;Python3 PyCharm 捕获异常报 Too broad exception clause…

苹果手机怎么换行?分享3个换行小窍门

“晕&#xff01;第一次使用苹果手机&#xff0c;还有很多功能不懂&#xff0c;比如我在手机上打字怎么换行&#xff1f;我在键盘上找了很久&#xff0c;还是没有找到。” “为什么在发消息用苹果手机自带键盘没有换行键&#xff1f;我该怎么快速换行&#xff1f;求方法&#…

重学java 19.面向对象 继承 上

走不出的那段阴霾&#xff0c;很多时候只不过是&#xff0c;我们把它当成了唯一 —— 24.4.22 面向对象整体知识导向&#xff1a; 知识梳理&#xff1a; 1.知道继承的好处 2.会使用继承 3.继承之后成员变量和成员方法的访问特点 4.方法的重写&#xff0c;知道方法重写的使用场景…

sprinboot+人大金仓配置

1. .yml 配置 spring:datasource:type: com.alibaba.druid.pool.DruidDataSource#driverClassName: dm.jdbc.driver.DmDriver## todo 人大金仓driverClassName: com.kingbase8.Driverdruid:## todo 人大金仓master:url: jdbc:kingbase8://111.111.111.111:54321/dbname?cu…

helpdesk桌面运维常见问题解决

helpdesk是一套帮助IT团队管理IT工单生命周期、自动化日常工作、优化工作流程的软件或软件集合&#xff0c;它可以帮助IT团队提高生产力、降低成本、改善服务水平和客户体验。 在现代企业中&#xff0c;helpdesk桌面运维是一项至关重要的工作&#xff0c;helpdesk团队负责处理员…

虚拟信用卡是什么,可以用来开亚马逊店铺吗?

虚拟信用卡是什么&#xff1f; 虚拟信用卡就是一组由银行随机生成的数字的虚拟卡&#xff0c;使用起来方便快捷&#xff0c;对于个人而言保守自己的隐私&#xff0c;并且下卡快&#xff0c;即开即用 可以用来开亚马逊店铺吗&#xff1f; 可以&#xff0c;因为市场的需求很多…

面试官:在原生input上面使用v-model和组件上面使用有什么区别?

前言 还是上一篇面试官&#xff1a;来说说vue3是怎么处理内置的v-for、v-model等指令&#xff1f; 文章的那个粉丝&#xff0c;面试官接着问了他另外一个v-model的问题。 面试官&#xff1a;vue3的v-model都用过吧&#xff0c;来讲讲。 粉丝&#xff1a;v-model其实就是一个语…

储能展-CBTC-2024上海储能技术展会共话储能高质量发展

2024-CBTC上海国际储能技术展会 展会时间&#xff1a;7月24-26日 展会地址&#xff1a;上海&#xff08;虹桥&#xff09;国家会展中心 主办单位&#xff1a;湖南省电池产业协会/ 中国设备管理协会 /沪粤储能产业联盟/ 深圳国际投融资商会 国际氢能投融资与发展联…

Qt Debug模式下应用程序输出界面乱码【已解决】

Qt Debug模式下应用程序输出乱码 一、问题描述二、解决方法三、相关测试 一、问题描述 源码为utf-8编码. Qt Creator在Debug模式下运行程序&#xff0c;下方应用程序输出界面显示乱码. 但正常运行无乱码&#xff1a; 二、解决方法 尝试修改文件编码、执行编码无果… 可参考…

Python从0到100(十四):高级函数及函数使用进阶

前言&#xff1a; 零基础学Python&#xff1a;Python从0到100最新最全教程。 想做这件事情很久了&#xff0c;这次我更新了自己所写过的所有博客&#xff0c;汇集成了Python从0到100&#xff0c;共一百节课&#xff0c;帮助大家一个月时间里从零基础到学习Python基础语法、Pyth…