浅谈:网络协议及网络连接
事情的起因
怪有意思的。(纯纯唠嗑,不感兴趣的可以跳过)
我们初中,在学期的最后一天换教室,由于我们是十三班,是年级里面的一个“例外”。因为我们其他年级都是12个和10个班级,就我们一个奇数,所以教室一直不是一个正常的。初二和初一两年都是用的一个宽敞的美术教室,风扇空调应有尽有。结果初三,搬到学校的四楼(其他初三都是三楼),一个基本荒废的楼层,但就在校长室旁边......开心......也很热......
总之,空调不好,还闷热,关键是,不连网!!!
本来老师打算让我们看电影来着,结果连不上网,只好让我们看一个预下载好的电影,无聊的要命
正好我也要学习下网络协议,那就写篇博客吧
(用平板编写,排版什么的不咋地)
正经事开始!
网络协议基础
网络协议是一组规则和标准,它们定义了电子设备如何在网络中进行通信。这些协议涵盖了从物理硬件的电气特性到高级应用程序的数据交换等多个层面。理解网络协议的工作原理对于任何从事网络设计、维护或优化的专业人士来说都是至关重要的。
OSI模型和TCP/IP模型
网络协议通常通过两种主要的模型来组织:OSI(开放式系统互连)模型和TCP/IP(传输控制协议/互联网协议)模型。这两种模型都试图简化和标准化网络通信的过程。
OSI模型将网络通信过程分为七层:
1. 物理层:负责传输原始比特流。
2. 数据链路层:确保数据在相邻节点间可靠传
3. 网络层:负责数据包的路由和传输。
4. 传输层:确保数据的端到端传输。
5. 会话层:管理设备间的通信会话。
6. 表示层:处理数据的表示和编码。
7. 应用层:直接为应用程序提供服务。
TCP/IP模型则简化为四层:
1. 网络接口层:类似于OSI模型的物理层和数据链路层。
2. 互联网层:主要使用IP协议进行数据包的路由。
3. 传输层:使用TCP和UDP协议进行数据传输。
4. 应用层:包括所有高级网络应用程序。
网络协议的作用
网络协议的核心作用是确保数据能够在不同的网络设备和系统中正确、高效地传输。它们定义了数据的封装、传输、解封装和处理方式,从而使得不同设备和系统能够无缝地进行通信。例如,TCP协议通过三次握手机制确保数据的可靠传输,而IP协议则负责将数据包从源地址路由到目的地址。
通过这些协议,网络设备能够识别和处理不同类型的数据包,从而实现复杂的网络功能,如数据传输、路由选择、错误检测和恢复等。这些协议的共同目标是提高网络的可靠性、效率和安全性。
作用是确保数据能够在不同的网络设备和系统中正确、高效地传输。它们定义了数据的封装、传输、解封装和处理方式,从而使得不同设备和系统能够无缝地进行通信。例如,TCP协议通过三次握手机制确保数据的可靠传输,而IP协议则负责将数据包从源地址路由到目的地址。
通过这些协议,网络设备能够识别和处理不同类型的数据包,从而实现复杂的网络功能,如数据传输、路由选择、错误检测和恢复等。这些协议的共同目标是提高网络的可靠性、效率和安全性。
网络连接方式
在现代网络通信中,连接方式的选择对于确保数据传输的效率和安全性至关重要。本文将详细探讨有线连接和无线连接的基本原理、设备及其应用场景。
- 有线连接
- 有线连接是通过物理介质(如网线、光纤)将设备连接到网络的方式。这种方式因其稳定性和高带宽而广泛应用于企业和家庭网络中。
- 以太网(Ethernet) 是最常见的有线连接方式之一。它使用RJ-45接口的双绞线或光纤来传输数据。以太网的传输速率可以达到10Gbps甚至更高,适合高速数据传输需求。
- 光纤连接 则通过光纤传输数据,具有极高的传输速率和抗干扰能力。光纤连接常用于长距离传输和数据中心,能够提供高达100Gbps甚至更高的带宽。
- 调制解调器 是另一种重要的有线设备,它将数字信号转换为模拟信号,通过电话线或光纤连接到互联网服务提供商。调制解调器是家庭宽带连接的常见设备。
- 无线连接
- 无线连接通过无线电波传输数据,提供了更大的灵活性和便捷性,尤其是在移动设备和难以布线的环境中。
- Wi-Fi 是最常见的无线连接技术之一。它使用2.4GHz或5GHz频段传输数据,支持多种安全协议如WPA2和WPA3。Wi-Fi的传输速率可以达到数千Mbps,适合家庭和小型办公室使用。
- 蓝牙 是一种短距离无线通信技术,常用于连接耳机、键盘、鼠标等设备。蓝牙5.0及其后续版本提供了更高的传输速率和更低的功耗,使其在物联网设备中越来越受欢迎。
- NFC(近场通信) 是一种非常短距离的无线通信技术,主要用于移动支付和数据传输。NFC的传输距离通常在10厘米以内,传输速率较低,但因其便捷性和安全性而被广泛应用。
- 5G 是最新的无线通信技术,提供了更高的传输速率和更低的延迟。5G不仅适用于智能手机,还为物联网、自动驾驶和远程医疗等新兴技术提供了强大的网络支持。
- 连接方式的选择
- 选择有线还是无线连接方式取决于多种因素,包括传输速率、稳定性、成本和应用场景。有线连接通常提供更高的稳定性和传输速率,但布线复杂且不灵活。无线连接则提供了更大的灵活性和便捷性,但可能会受到干扰和安全风险的影响。
- 在家庭环境中,Wi-Fi是最常见的无线连接方式,而有线连接则用于连接网络存储设备或高性能游戏设备。在企业环境中,有线连接常用于服务器和关键应用,而无线连接则用于移动办公和访客访问。
相关文章:
浅谈:网络协议及网络连接
事情的起因 怪有意思的。(纯纯唠嗑,不感兴趣的可以跳过) 我们初中,在学期的最后一天换教室,由于我们是十三班,是年级里面的一个“例外”。因为我们其他年级都是12个和10个班级,就我们一个奇数…...
websocket-react使用
问题 在一个应用中,如果需要在不同的组件之间共享同一个WebSocket连接,可以采用多种方法来实现。 比如:单例模式、全局变量、react context React上下文(React Context) 如果你使用的是React,可以使用Re…...
【总结】nginx源码编译安装报错./configure: error: SSL modules require the OpenSSL library.
问题现象 源码编译安装nginx时,执行./configure …… --with-http_ssl_module 命令安装https模块,需要用到openssl,由于机器缺少openssl库,报如下错误。 …… checking for openat(), fstatat() ... found checking for getaddr…...
昇思25天学习打卡营第15天|两个分类实验
打卡 目录 打卡 实验1:K近邻算法实现红酒聚类 数据准备 模型构建--计算距离 计算演示 模型预测 实验2:基于MobileNetv2的垃圾分类 任务说明 数据集 参数配置(训练/验证/推理) 数据预处理 MobileNetV2模型搭建 Mobile…...
实践:Redis6.0配置文件解读
详细解读redis配置文件 https://raw.githubusercontent.com/redis/redis/6.2/redis.conf Units 配置数据单位换算关系配置大小单位:当需要内存大小时,可以指定。开头定义了一些基本的度量单位,只支持bytes,不支持bit࿰…...
【Go系列】Go语言的网络服务
承上启下 我们既然知道了Go语言的语法,也了解到了Go语言如何协同工作机制。那么对于这样一款天生支持高并发的语言,它的用武之地自然而然的就是网络服务了。我们今天学学如何使用网络服务。 开始学习 Go语言使用网络服务 在Go语言中,使用网…...
CS110L(Rust)
1.Rust 语法总结 数值类型 有符号整数: i8, i16, i32, i64无符号整数: u8, u16, u32, u64 变量声明 声明变量: let i 0; // 类型推断let n: i32 1; // 显式类型声明 可变变量: let mut n 0; n n 1; 字符串 注意,let s: str "Hello world";…...
免费恢复软件有哪些?电脑免费使用的 5 大数据恢复软件
您是否在发现需要的文件时不小心删除了回收站中的文件?您一定对误操作感到后悔。文件永远消失了吗?还有机会找回它们吗?当然有!您可以查看这篇文章,挑选 5 款功能强大的免费数据恢复软件,用于 Windows 和 M…...
Flink History Server配置
目录 问题复现 History Server配置 HADOOP_CLASSPATH配置 History Server配置 问题修复 启动flink集群 启动Histroty Server 问题复现 在bigdata111上执行如下命令开启socket: nc -lk 9999 如图: 在bigdata111上执行如下命令运行flink应用程序 …...
ASPICE过程改进原则:确保汽车软件开发的卓越性能
"在汽车行业中,软件已经成为驱动创新和增强产品功能的核心要素。然而,随着软件复杂性的增加,确保软件质量、可靠性和性能成为了一项严峻的挑战。ASPICE标准的引入,为汽车软件开发提供了一套全面的过程改进框架,以…...
HDU1005——Number Sequence,HDU1006——Tick and Tick,HDU1007——Quoit Design
目录 HDU1005——Number Sequence 题目描述 超时代码 代码思路 正确代码 代码思路 HDU1006——Tick and Tick 题目描述 运行代码 代码思路 HDU1007——Quoit Design 题目描述 运行代码 代码思路 HDU1005——Number Sequence 题目描述 Problem - 1005 超时代码…...
uniapp form表单校验
公司的一个老项目,又要重新上架,uniapp一套代码,打包生成iOS端发布到App Store,安卓端发布到腾讯应用宝、OPPO、小米、华为、vivo,安卓各大应用市场上架要求不一样,可真麻烦啊 光一个表单校验,…...
构建RSS订阅机器人:观察者模式的实践与创新
在信息爆炸的时代,如何高效地获取和处理信息成为了一个重要的问题。RSS订阅机器人作为一种自动化工具,能够帮助我们从海量信息中筛选出我们感兴趣的内容。 一、RSS 是什么?观察者模式又是什么? RSS订阅机器人是一种能够自动订阅…...
芯片基础 | `wire`类型引发的学习
在Verilog中,wire类型是一种用于连接模块内部或模块之间的信号的数据类型。wire类型用于表示硬件中的物理连线,它可以传输任何类型的值(如0、1、高阻态z等),但它在任何给定的时间点上只能有一个确定的值。 wire类型通…...
如何在AWS上构建Apache DolphinScheduler
引言 随着云计算技术的发展,Amazon Web Services (AWS) 作为一个开放的平台,一直在帮助开发者更好的在云上构建和使用开源软件,同时也与开源社区紧密合作,推动开源项目的发展。 本文主要探讨2024年值得关注的一些开源软件及其在…...
Quartus II 13.1添加新的FPGA器件库
最近需要用到Altera的一款MAX II 系列EPM240的FPGA芯片,所以需要给我的Quartus II 13.1添加新的器件库,在此记录一下过程。 1 下载所需的期间库 进入Inter官网,(Altera已经被Inter收购)https://www.intel.cn/content…...
【html】html的基础知识(面试重点)
一、如何理解HTML语义化 1、思考 A、在没有任何样式的前提下,将代码在浏览器打开,也能够结构清晰的展示出来。标题是标题、段落是段落、列表是列表。 B、便于搜索引擎优化。 2、参考答案 A、让人更容易读懂(增加代码可读性)。 B、…...
Java 网络编程(TCP编程 和 UDP编程)
1. Java 网络编程(TCP编程 和 UDP编程) 文章目录 1. Java 网络编程(TCP编程 和 UDP编程)2. 网络编程的概念3. IP 地址3.1 IP地址相关的:域名与DNS 4. 端口号(port)5. 通信协议5.1 通信协议相关的…...
STM32 | 看门狗+RTC源码解析
点击上方"蓝字"关注我们 作业 1、使用基本定时7,完成一个定时喂狗的程序 01、上节回顾 STM32 | 独立看门狗+RTC时间(第八天)02、定时器头文件 #ifndef __TIM_H#define __TIM_H#include "stm32f4xx.h"void Tim3_Init(void);void Tim7_Init(void);…...
filebeat,kafka,clickhouse,ClickVisual搭建轻量级日志平台
springboot集成链路追踪 springboot版本 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.3</version><relativePath/> <!-- lookup parent from…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:
在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档,…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
