当前位置: 首页 > news >正文

计算机网络(三)——局域网和广域网

一、局域网

       特点:覆盖较小的地理范围;具有较低的时延和误码率;使用双绞线、同轴电缆、光纤传输,传输效率高;局域网内各节点之间采用以帧为单位的数据传输;支持单播、广播和多播(单播指点对点通信,广播指点对全部通信,多播指点对一部分通信)。

    1.有线局域网(以太网)

       目前在使用的以太网一种是以双绞线为传输介质的交换机以太网,中间采用交换机连接,在物理和逻辑上都是星型拓扑,支持全双工或半双工通信(全双工指双方可以同时向对方发送数据,半双工指可以向对方发送数据但不能同时发送);在半双工模式下会使用CSMA/CD协议来进行介质访问控制,全双工模式下由于允许同时发送数据,所以不需要介质访问控制。

       另一种是使用光纤为传输介质的以太网,光纤通常用于中继器、交换机、集线器之间的传输,不会直接连接设备。这种以太网通常在两个节点中至少使用两条光纤来实现全双工通信,因此不需要介质访问控制。

        在以太网中使用曼彻斯特编码的数字信号传输数据。

        以太网适配器:设备通过以太网适配器与外界以太网进行连接,包括ROM和RAM芯片,ROM存储了在一台网上的一个全球唯一的MAC物理地址,RAM用作帧缓冲,设备和外界网络收发消息的滑动窗口机制就是在这里面进行的。

    2.无线局域网(WiFi/802.11)

       WiFi为星型结构,各个设备连接的是无线接入点AP,AP负责和网络通信,然后将数据传输给各个设备。采用CSMA/CA协议实现介质访问控制。

        在无线网中使用电磁波的模拟信号传输数据。

       无线网络适配器:用于和外界无线局域网连接,也包括ROM和RAM芯片,ROM存储了在无线局域网中的一个全球唯一的MAC物理地址,RAM用作帧缓冲。

    3.虚拟局域网VLAN

        实现VLAN技术的三种方式:

        ①通过将交换机上每个接口的编号划分给不同的VLAN来实现。如果使用这种方式,那么无法保证一个VLAN中的设备不能访问另一个VLAN中的设备:由于VID只和接口编号绑定,可以通过将设备接入不同的接口来接入不同的VLAN。

       ②通过将MAC地址划分到不同VLAN来实现。这种方式直接将设备的MAC地址和VID进行绑定,由于MAC地址是唯一的,所以设备不会改变它所处的VLAN。

       ③通过将IP地址划分到不同VLAN来实现。在一个局域网中每台设备都有自己的IP地址,通过IP地址与VID绑定就可以划分VLAN了。这种方式还可以让VLAN跨越不同的局域网,即不同局域网下的设备可以同属于一个VLAN。因为用到了IP地址,所以使用这种方式需要交换机能够实现网络层的一些功能。

       标准以太网帧:包括6个字节的目的地址、源地址,2个字节要指明这个帧需要网络层的哪个协议处理,然后是数据部分,最后是4个字节的校验码。

       802.1Q帧:会在源地址和协议之间加上一个4字节的VLAN标签,其中前2个字节是固定的值,用于标明这个帧是802.1Q帧,后面的4个比特没有实际意义可以随便添加,最后的12个比特则是VID。

二、广域网

       特点:通常跨接很大的地理范围,主要使用分组交换技术实现资源共享。

       PPP协议和HDLC协议是广域网中数据链路层的两个协议。PPP协议和HDLC协议都只支持全双工链路,都可以实现透明传输,都会进行差错检测,但都不纠错。

       PPP协议是面向字节的,有两个字节的协议字段,没有序号和确认机制,是不可靠的;HDLC协议是面向比特的,没有协议字段,有编号和确认机制,是可靠的。

三、补充

       网络适配器(又称网卡)的作用 

       ①负责将数据帧发送到局域网中。将分组封装成数据帧的步骤在有些系统中是通过主机完成的,在有些系统中是通过网络适配器完成的。

       ②负责接收局域网发送过来的帧。如果收到的帧目的地址和自己的MAC地址相同且无差错,就会接收这个帧到RAM的帧缓冲中,然后给主机的CPU发送中断信号,此时CPU会告诉要把这个帧放到主存的哪个位置,然后网络适配器再将这个数据帧放到指定位置;如果收到的帧目的地址和自己的MAC地址不同或者数据有差错则会直接丢弃。

       ③需要根据接入的局域网类型来实现不同的物理层和数据链路层的功能。以太网和无线网的标准是不同的。 

       ④需要实现数据的串并行通信转换。主机和网络适配器之间是利用I/O总线并行通信的,即每次传输多个bit;网络适配器和以太网之间采用串行通信,每次只能传输单个bit。

       串行通信和并行通信的对比

       串行通信使用一条数据线,每次传输单个比特,传输速率较低,信号干扰少,硬件成本低,适合低速长距离传输。

       并行通信使用多条数据线同时发送或接收多个比特,传输速率高,但数据线之间可能会存在信号干扰,硬件成本高,适合高速短距离传输,如图像、视频处理等。

       路由器、交换机、集线器的对比

       路由器工作在网络层,用于连接两个不同的网络;能够隔绝冲突域和广播域,一个终端发送的广播信号只能在自己所处的网络中广播,并不会广播到其他网络上。路由器还支持路径决策,能够选择合适的路线传输数据。路由器之间传输的是IP数据报。路由器为点到点通信。自身包括物理层、数据链路层、网络层,具有IP地址和MAC地址。采用网状等复杂拓扑结构。

       交换机工作在物理链路层,通常用于局域网内的通信;能够过滤短帧和碎片,具有更高的数据转发速率和网络带宽利用率。采用点到点通信。自身包括物理层和数据链路层,具有MAC地址。采用星型等较复杂拓扑结构。对于普通的交换机只能隔绝冲突域,对于支持VLAN的交换机既可以隔绝冲突域,也可以隔绝广播域。

       集线器工作在物理层,负责数据的同步、整型、放大,并会简单地将收到的数据广播给所有端口,没有对数据的差错检查能力,安全性较差。由于集线器只有物理层,所以既没有IP地址也没有MAC地址。采用总线型等简单的拓扑结构。

       同轴电缆仅支持半双工通信,双绞线既支持半双工也支持全双工通信,光纤支持全双工通信

相关文章:

计算机网络(三)——局域网和广域网

一、局域网 特点:覆盖较小的地理范围;具有较低的时延和误码率;使用双绞线、同轴电缆、光纤传输,传输效率高;局域网内各节点之间采用以帧为单位的数据传输;支持单播、广播和多播(单播指点对点通信…...

STM32F4分别驱动SN65HVD230和TJA1050进行CAN通信

目录 一、CAN、SN65HVD230DR二、TJA10501、TJA1050 特性2、TJA1050 引脚说明 三、硬件设计1、接线说明2、TJA1050 模块3、SN65HVD230 模块 四、程序设计1、CAN_Init:CAN 外设初始化函数2、CAN_Send_Msg、CAN_Receive_Msg 五、功能展示1、接线图2、CAN 数据收发测试 …...

将光源视角的深度贴图应用于摄像机视角的渲染

将光源视角的深度贴图应用于摄像机视角的渲染是阴影映射(Shadow Mapping)技术的核心步骤之一。这个过程涉及到将摄像机视角下的片段坐标转换到光源视角下,并使用深度贴图来判断这些片段是否处于阴影中。 1. 生成光源视角的深度贴图 首先&…...

docker一键安装脚本(docker安装)

第一种方法一键安装命令 curl -O --url http://luyuanbo79.south.takin.cc/wenjian/docker_install.sh && chmod x docker_install.sh && ./docker_install.sh 备用方法 curl -O --url https://file.gitcode.com/4555247/releases/untagger_0896d4789937405…...

【SY2】Apollo10.0 Cyber基于Writer/Reader的通信方式

实验前提 Apollo10.0已经安装完毕Vscode及相关插件安装完成启动容器并进入在Vscode连接进入到Apollo工作空间下学习资料 部分配置如实验一https://blog.csdn.net/weixin_60062799/article/details/145029669?spm1001.2014.3001.5501 学习资料 Apollo7.0或其他版本可以参…...

【YOLOv8杂草作物目标检测】

YOLOv8杂草目标检测 算法介绍模型和数据集下载 算法介绍 YOLOv8在禾本科杂草目标检测方面有显著的应用和效果。以下是一些关键信息的总结: 农作物幼苗与杂草检测系统:基于YOLOv8深度学习框架,通过2822张图片训练了一个目标检测模型&#xff…...

在Java中实现集合排序

使用字面量的方式创建一个集合 //使用字面量的方式初始化一个List集合List<User> userList Arrays.asList(new User("小A",5),new User("小鑫",18),new User("小昌",8),new User("小鑫",8));注意&#xff1a;使用Arrays.asLis…...

el-descriptions-item使用span占行不生效

需要实现的效果是客户状态单独占满一行 错误代码&#xff1a; <el-descriptions title"基本信息" :column"3"> <el-descriptions-item label"公司电话:">Suzhou</el-descriptions-item><el-descriptions-item label"…...

Android 绘制学习总结

1、刷新率介绍 我们先来理一下基本的概念&#xff1a; 1、60 fps 的意思是说&#xff0c;画面每秒更新 60 次 2、这 60 次更新&#xff0c;是要均匀更新的&#xff0c;不是说一会快&#xff0c;一会慢&#xff0c;那样视觉上也会觉得不流畅 3、每秒 60 次&#xff0c;也就是 1…...

Linux下部署SSM项目

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 Linux部署SSM项目 打包项目 1、修改pom.xml文件&#xff0c;打包方式改为war <packaging>war</packaging>2、idea 通过maven的clean&#xff0c;…...

计算机网络 笔记 数据链路层 2

1,信道划分&#xff1a; (1)时分复用TDM 将时间等分为“TDM帧”&#xff0c;每个TDM帧内部等分为m个时隙&#xff0c;m个用户对应m个时隙 缺点&#xff1a;每个节点只分到了总带宽的1/m,如果有部分的1节点不发出数据&#xff0c;那么就会在这个时间信道被闲置&#xff0c;利用…...

xml简介

目录 基本语法特点及应用场景一个简单示例 xml&#xff08;全称eXtensible Markup Language&#xff09;是一种用于存储和传输数据的标记语言&#xff0c;跨平台并且跨语言&#xff0c;xml内容较多&#xff0c;这篇文章会介绍一些基础的内容。 基本语法 xml文档通常以xml声明开…...

透明部署、旁路逻辑串联的区别

背景 需讨论防火墙到底是串联&#xff0c;还是旁挂。 通常串联指的就是“透明部署”&#xff0c;旁挂指的就是“逻辑串联”。 透明部署&#xff08;串联&#xff09; 也称为透明模式或桥接模式&#xff0c;是一种安全设备的部署方式。在这种模式下&#xff0c;安全设备被串联…...

【网络安全渗透测试零基础入门】之XSS攻击获取用户cookie和用户密码(实战演示)

前言 大家好&#xff0c;我是demon 这是demon给粉丝盆友们整理的网络安全渗透测试入门阶段XSS攻击教程。 本阶段主要讲解XSS攻击获取用户cookie和用户密码。 喜欢的朋友们&#xff0c;记得给晓晓点赞支持和收藏一下&#xff0c;关注我&#xff0c;学习黑客技术。 简介 该…...

c#版本、.net版本、visual studio版本之间的对应关系

最近这几年一直没用过c#开发&#xff0c;都是从事Qt c开发工作&#xff0c;回想一下之前c#还要追溯到2019年&#xff0c;算算时间大概都已过去4&#xff0c;5年了&#xff0c;时间飞快。 2019真是个神奇的数字&#xff0c;vs2019是我用的时间最长的一个IDE&#xff0c;新冠起始…...

熵与交叉熵:从不确定性角度理解 KL 散度

从不确定性减少视角理解KL散度 【 Transformer 系列&#xff0c;故事从 d k \sqrt{d_k} dk​ ​说起】 LLM这么火&#xff0c;Transformer厥功甚伟&#xff0c;某天心血来潮~&#xff0c;再去看看&#xff01; 它长这个样子&#xff1a; 深入浅出 Transformer 看完后&#xff…...

Redis:数据类型

1. 字符串&#xff08;String&#xff09; 简介 概念&#xff1a;这是最简单的数据类型&#xff0c;可以存储字符串、整数或浮点数。特点&#xff1a;支持原子操作&#xff0c;如递增和递减数值。 示例 # 设置一个键值对 SET mykey "Hello, Redis!"# 获取该键的值…...

搭建Node.js后端

从头开始搭建一个Node.js后端&#xff0c;并实现查询历史数据的功能&#xff0c;下面是详细的步骤说明&#xff0c;包括环境配置、项目初始化、代码编写、以及服务器启动。 1. 环境配置 1.1 安装 Node.js 和 npm 首先&#xff0c;你需要在你的电脑上安装 Node.js 和 npm&…...

集合——数据结构

数据结构 就是计算机存储数据的方式。 不同情况下采取不同数据结构会让数据查找&#xff0c;存储更加有效率。 栈...

从CentOS到龙蜥:企业级Linux迁移实践记录(系统安装)

引言&#xff1a; 随着CentOS项目宣布停止维护CentOS 8并转向CentOS Stream&#xff0c;许多企业和组织面临着寻找可靠替代方案的挑战。在这个背景下&#xff0c;龙蜥操作系统&#xff08;OpenAnolis&#xff09;作为一个稳定、高性能且完全兼容的企业级Linux发行版&#xff0…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中&#xff0c;其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下&#xff1a; 初始判断与哈希计算&#xff1a; 首先&#xff0c;putVal 方法会检查当前的 table&#xff08;也就…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释

以Module Federation 插件详为例&#xff0c;Webpack.config.js它可能的配置和含义如下&#xff1a; 前言 Module Federation 的Webpack.config.js核心配置包括&#xff1a; name filename&#xff08;定义应用标识&#xff09; remotes&#xff08;引用远程模块&#xff0…...

数据结构第5章:树和二叉树完全指南(自整理详细图文笔记)

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 原创笔记&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;《数据结构第4章 数组和广义表》…...

如何做好一份技术文档?从规划到实践的完整指南

如何做好一份技术文档&#xff1f;从规划到实践的完整指南 &#x1f31f; 嗨&#xff0c;我是IRpickstars&#xff01; &#x1f30c; 总有一行代码&#xff0c;能点亮万千星辰。 &#x1f50d; 在技术的宇宙中&#xff0c;我愿做永不停歇的探索者。 ✨ 用代码丈量世界&…...

八、【ESP32开发全栈指南:UDP客户端】

1. 环境准备 安装ESP-IDF v4.4 (官方指南)确保Python 3.7 和Git已安装 2. 创建项目 idf.py create-project udp_client cd udp_client3. 完整优化代码 (main/main.c) #include <string.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h&…...

C#学习12——预处理

一、预处理指令&#xff1a; 解释&#xff1a;是在编译前由预处理器执行的命令&#xff0c;用于控制编译过程。这些命令以 # 开头&#xff0c;每行只能有一个预处理指令&#xff0c;且不能包含在方法或类中。 个人理解&#xff1a;就是游戏里面的备战阶段&#xff08;不同对局…...