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

news2024/10/7 10:15:44

网络互连

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

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

局域网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 缓存表


冲突域 (基于物理层)

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

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

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

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

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

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

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

相关文章

CCS项目持续集成

​ 因工作需要,用户提出希望可以做ccs项目的持续集成,及代码提交后能够自动编译并提交到svn。调研过jenkins之后发现重新手写更有性价比,所以肝了几晚终于搞出来了,现在分享出来。 ​ 先交代背景: 1. 代码分两部分&am…

谷粒商城实战(017 业务-单点登录)

Java项目《谷粒商城》架构师级Java项目实战,对标阿里P6-P7,全网最强 总时长 104:45:00 共408P 此文章包含第231p-第p235的内容 介绍 单点登录(Single Sign-On,SSO)是一种身份验证服务,允许用户使用一组凭…

程序猿成长之路之数据挖掘篇——朴素贝叶斯

朴素贝叶斯是数据挖掘分类的基础,本篇文章将介绍一下朴素贝叶斯算法 情景再现 以挑选西瓜为例,西瓜的色泽、瓜蒂、敲响声音、触感、脐部等特征都会影响到西瓜的好坏。那么我们怎么样可以挑选出一个好的西瓜呢? 分析过程 既然挑选西瓜有多个…

【七】jmeter5.5+influxdb2.0+prometheus+grafana

参考文章:https://blog.csdn.net/wenxingchen/article/details/126892890 https://blog.csdn.net/Zuo19960127/article/details/119726652 https://blog.csdn.net/shnu_cdk/article/details/132182858 promethus参考 由于自己下载的是infuldb2.0,所以按照…

【视频异常检测】Open-Vocabulary Video Anomaly Detection 论文阅读

Open-Vocabulary Video Anomaly Detection 论文阅读 AbstractMethod3.1. Overall Framework3.2. Temporal Adapter Module3.3. Semantic Knowledge Injection Module3.4. Novel Anomaly Synthesis Module3.5. Objective Functions3.5.1 Training stage without pseudo anomaly …

【webrtc】Chrome和Firefox在SDP协商过程中,针对localhost的不同处理

内网下chrome端webrtc协商失败 现象 我有一个webrtc服务器在局域网内,使用chrome浏览器访问时,发现webrtc在做媒体协商时失败。 具体表现是,在交换sdp后,ice的状态是oniceconnectionstatechange: failed 但是换成Firefox浏览器…

【Linux】文件目录及路径表示

1. Linux目录结构 在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。 /etc: 这个是系统中的配置文件,如果更改了该目录下的某个文件可能会导致系统不能启动。 /bin, /sbin, /usr/bin, /usr…

黄金行情下跌有投资机会吗?

尽管黄金价格的波动常常引起投资者的高度关注,但行情的下跌未必只是警讯,亦可能蕴藏着某些难得的投资机会。总之,答案是肯定的——在黄金行情下跌时,依旧有适宜的投资机会,只是这需要投资者具备相应的应对知识和策略。…

是德软件89600 RFID使用笔记

文章目录 1、进入RFID软件:2、RFID软件解调设置项3、如何查看一段指令数据 本文是日常工作的笔记分享。 lauch VSA(矢量频谱分析)后会出现以下界面: 当然这是因为频谱仪的输入有信号才显示如下: 否则就显示频谱仪的噪…

【书生浦语第二期实战营学习笔记作业(七)】

课程文档:https://github.com/InternLM/Tutorial/blob/camp2/opencompass/readme.md 课程作业:https://github.com/InternLM/Tutorial/blob/camp2/opencompass/homework.md OpenCompass 大模型评测实战 1. 大模型的评测1.1 大模型评测如何促进发展1.2 大…

WebSocket的原理、作用、常见注解和生命周期的简单介绍,附带SpringBoot示例

文章目录 WebSocket是什么WebSocket的原理WebSocket的作用全双工和半双工客户端【浏览器】API服务端 【Java】APIWebSocket的生命周期WebSocket的常见注解SpringBoot简单代码示例 WebSocket是什么 WebSocket是一种 通信协议 ,它在 客户端和服务器之间建立了一个双向…

线性代数 --- 矩阵的对角化以及矩阵的n次幂

矩阵的对角化以及矩阵的n次幂 (特征向量与特征值的应用) 前言: 在上一篇文章中,我记录了学习矩阵的特征向量和特征值的学习笔记,所关注的是那些矩阵A作用于向量x后,方向不发生改变的x(仅有尺度的缩放)。线…

跟着野火从零开始手搓emWin(1)初识emWin

PS:在嵌入式领域,本人认为QT的应用范围和性能几乎吊打市面上所有的GUI工具。但是本人之所以学习emWin,是因为自己有些微不足道的小想法,需要通过它来实现。但是QT有点吃硬件的配置,为了MCU专门发行的QT我又懒得去弄&am…

mac电脑搭建vue项目(下篇)

第三步:安装npm (1)执行以下命令安装cnpm淘宝镜像 sudo npm install -g cnpm --registryhttps://registry.npmmirror.com (2)执行命令cnpm -v查看版本信息,结果说找不到cnpm命令 (3&#xff…

智慧校园:大数据助力校情分析

随着信息技术的快速发展,数据信息资源以井喷的姿态涌现。数据信息的大量涌现给人们带来丰富的数据信息资源,但面对海量的信息资源时,加大了人们对有效信息资源获取的难度,数据挖掘技术正是这一背景下的产物,基于数据挖…

【003_音频开发_基础篇_Linux进程通信(20种你了解几种?)】

003_音频开发_基础篇_Linux进程通信(20种你了解几种?) 文章目录 003_音频开发_基础篇_Linux进程通信(20种你了解几种?)创作背景Linux 进程通信类型fork() 函数fork() 输出 2 次fork() 输出 8 次fork() 返回值fork() 创建子进程 方…

elasticsearch-8.1.0安装记录

目录 零、版本说明一、安装二、使用客户端访问 零、版本说明 centos [rootnode1 ~]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core)elasticsearch elasticsearch-8.1.0-linux-x86_64一、安装 systemctl stop firewalld.servicesystemctl disable firewal…

【国产替代】航空电子通信总线航空电子通信总线产品为MIL-STD-1553和ARINC 429等协议提供原生支持

航空电子通信总线 航空电子通信总线产品为MIL-STD-1553和ARINC 429等协议提供原生支持。这些产品用于进行航空电子应用所需的开发、生产和系统测试。 PXIe,2通道PXI ARINC-664接口模块 AIM ARINC-664具有板载处理器,可自动处理所有与协议相关的活动&…

python绘图时渐变的处理——以一个扇形图的渐变为例

python绘图时渐变的处理——以一个扇形图的渐变为例 使用matplotlib绘制扇形的圆环 from matplotlib.patches import Wedge wedgeWedge((0,0),1,0,60,width0.3,colorred) wedge.set_edgecolor(k) fig,axplt.subplots(1,1) ax.add_patch(wedge) # 设置坐标轴的比例 plt.axis(e…

DaPy:实现数据分析与处理

DaPy:实现数据分析与处理 DaPy是一个用于数据分析和处理的Python库,它提供了一系列强大的工具和功能,使开发者能够高效地进行数据清洗、转换和分析。本文将深入解析DaPy库的特点、功能以及使用示例,帮助读者了解如何利用DaPy库处理…