网络编程—网络概念

news2025/4/11 7:22:31

目录

1 网络分类

1.1 局域网

1.2 广域网

2 常见网络概念

2.1 交换机

2.2 路由器

2.3 集线器

2.4 IP地址

2.5 端口号

2.6 协议

3 网络协议模型

3.1 OSI七层模型

3.2 TCP/IP五层模型

3.3 每层中常见的协议和作用

3.3.1 应用层

3.3.2 传输层

3.3.3 网络层

3.3.4 数据链路层


1 网络分类

1.1 局域网

        局域网Local Area Network,简称LAN,是一种本地的私有网络(内网),通过网线、交换机、路由器等设备组成的能让主机间进行网络通信的网络结构。

1.2 广域网

        广域网Wide Area Network,简称WAN,是通过路由器把多个局域网组建成大规模网络范围的网络结构。

        局域网和广域网是一对相对的概念,没有明显的主机数量界限之分。即如果把各个城市组建的网络看成局域网,那整个国家把各个城市互联起来,就组成广域网。同时国家组成的网络看成局域网,那么整个世界组成的网络就是广域网(这种情况下就是我们所说的互联网(Internet))。

2 常见网络概念

2.1 交换机

        交换机的出现解决了主机间仅通过网线互联的复杂网络结构和成本高昂的问题,主要用于主机间的数据帧的转发问题。简而言之就是交换机把多台设备组建成局域网。

2.2 路由器

        路由器相信大家都熟悉,有WAN口(一般蓝色,一个口)和LAN口(一般黄色,多个口),WAN口接入外部公网,LAN口实现局域网的主机互联。因此路由器主要是实现不同网络的通信问题,即可以组建广域网。

2.3 集线器

        早期的局域网内主机互联工具,但是功能非常有限,通信通道是独占式,即两个主机通信时,其他主机无法通信。

2.4 IP地址

        网络设备在网络中的地址,因为网络中设备繁多,传输的数据只有知道地址才知道传给哪个设备。常见有IPv4版本(32位二进制数)和IPv6版本(128位二进制数)。

2.5 端口号

        端口号主要用来定位进程,因为数据根据IP地址传入到主机后,主机中的进程同时可能有多个,因此需要通过端口号(0-65535)绑定。不同进程不能同时绑定一个端口号,一个进程能同时绑定多个端口号(比如子进程)

2.6 协议

        如果说IP地址、端口号解决了通信设备和进程的定位问题,物理设备比如网线、无线设备等解决了通信设备的数据传输方式问题(光信号和电信号),那么协议解决的问题就是如何统一数据格式的规范问题(数据如何解析,如何建立传输数据的连接等等),即是一种约定,共同遵守这个约定才能通信。

        协议三要素:语法、语义、时序。语法:数据与控制信息的结构或格式。语义:需要发出何种控制信息,完成何种动作以及做出何种响应。时序:事件实现顺序的详细说明。

        比如在物理设备传输的信号中,如果是光信号,那就约定不同的频率表示不用的信息,高频1,低频0。如果是电信号,那就约定高电平是1,低电平是0。通过这种协议就可以进行二进制编码,从而可以让主机进行识别。

3 网络协议模型

        由于协议种类太多,但是协议之间的作用很多都是相似的,因此对协议进行分层,就有了我们经常听到的OSI七层模型和TCP/IP五层模型。

3.1 OSI七层模型

        OSI七层模型实际上在会话层、表示层和应用层过于复杂,不实用,因此是仅存于理论层面的模型,实际上应用最广泛的是TCP/IP五层模型。

3.2 TCP/IP五层模型

        TCP/IP五层模型把OSI七层模型中的会话层、表示层和应用层统一为应用层。物理层和数据链路层是物理设备和驱动程序的范畴,网络层和传输层是操作系统所负责的,应用层是应用程序所负责的,因此软件开发人员的主要工作就是在应用层进行网络编程。

        封装:像上图一样,数据发送方把数据从上层开始,层层包装成数据包传递给下层的过程就是封装。

        分用:当数据接收方接收到数据后,从下层开始层层拆解其中对应部分的信息的过程就是分用。

        注意:这里讨论的交换机和路由器是传统的2层交换机和3层路由器,随着技术进步,现在已经出现了3层、4层交换机和4层路由器等等。即考虑交换机和路由器的工作场景:交换机工作在数据链路层(封装分用到数据链路层),路由器工作在网络层(封装分用到网络层)。

        分层后,协议的使用方(上层)不需要知道协议是如何实现的,只需要使用协议提供的接口即可;而协议提供方(下层)不需要暴露所有实现细节,只需要提供接口即可。就好像发送方在某层直接把数据发送给接收方对应的层,即实现了封装的特性。

3.3 每层中常见的协议和作用

3.3.1 应用层

        HTTP和HTTPS:采用TCP协议传输,用于在客户端和服务器之间传输超文本数据,通常用于Web浏览器和Web服务器之间的通信,HTTP协议引入加密机制(SSL/TLS)就变成了HTTPS。

        DNS:通常采用UDP传输,地址解析协议,将域名解析为对应的IP地址。

        DHCP:动态主机配置协议,采用UDP作为传输协议,允许服务器向客户端动态分配IP地址和配置信息。

        FTP:采用TCP协议作为传输协议,用于在客户端和服务器之间传输文件,支持上传和下载文件的功能。

        SMTP:采用TCP协议作为传输协议,用于在邮件服务器之间传输电子邮件,负责发送邮件。

        POP3:采用TCP协议作为传输协议,用于从邮件服务器上下载邮件到本地计算机,负责接收邮件。

        SSH:基于TCP,用于远程登录和执行命令,提供了加密的网络连接,保证了通信的安全性。

3.3.2 传输层

        TCP:提供可靠的、面向字节流、有连接的数据传输服务,确保数据的可靠性、顺序性和完整性。TCP适用于对数据传输质量要求较高的场景,如文件传输、网页浏览等。

        UDP:提供无连接的数据传输服务,面向数据报,不保证数据的可靠性,也不保证数据的顺序性和完整性。UDP适用于实时性要求较高、对数据传输质量要求不那么严格的场景,比如音视频传输、在线游戏(地图实时加载出现不完整)等。

3.3.3 网络层

        IP:是互联网中最基本的协议,用于在网络中传输数据包。IP协议定义了数据包的格式、寻址方式和路由选择等信息,是整个互联网的基础。

        RIP:路由信息协议,是基于距离矢量算法的路由协议,利用跳数来作为计量标准。

        OSPF:开放式最短路径优先协议,是一个内部网关协议(自治系统AS)内决策路由,隶属内部网关协议(IGP),故运作于自治系统内部。Dijkstra算法被用来计算最短路径树。两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。

        ICMP:网际控制报文协议,用于在IP网络中传递控制消息和错误信息。ICMP通常用于网络设备之间的通信,如路由器和主机之间的通信,以及用于检测网络连通性和故障诊断。

        BGP:边界网关协议,是一种外部网关协议,与OSPF(计算AS内部最优路由)不同,主要功能是和其他的 BGP 系统交换网络可达信息。网络可达信息包括列出的自治系统(AS)的信息。

        ARP:用于将IP地址映射为MAC地址(物理地址)。ARP协议在局域网内部使用,通过发送ARP请求获取目标设备的MAC地址,从而实现数据包的传输。注意,ARP协议既不属于网络层,又不属于数据链路层,介于两层之间。

3.3.4 数据链路层

        MAC:媒介访问控制协议,负责控制设备如何访问共享的通信介质(如以太网、无线电波等),确保在多台设备共享同一传输媒介时能够有效地进行数据传输,避免冲突、控制流量,并确保数据的有序传递。

        CSMA/CD:载波侦听多路访问/碰撞检测协议,用于以太网,载波侦听:设备首先检测共享信道是否空闲。如果信道是空闲的,设备就可以发送数据。多路访问:所有设备共享同一个传输介质,因此必须协调访问。碰撞检测:在数据发送过程中,设备会继续监听信道。如果发生碰撞(即两个设备同时发送数据),它们会停止传输,并在随机延时后重新尝试发送。

        CSMA/CA:载波侦听多路访问/碰撞避免,用于Wi-Fi(IEEE 802.11)。碰撞避免:如果信道空闲,设备会等待一段时间后再发送数据(称为退避时间),以减少碰撞的概率。竞争和退避算法:使用随机退避算法(如二进制指数退避)来避免设备同时发送数据。当发生碰撞时,设备会随机等待一段时间再重试。

下篇文章:

网络编程—Socket套接字(UDP)https://blog.csdn.net/sniper_fandc/article/details/146923670?fromshare=blogdetail&sharetype=blogdetail&sharerId=146923670&sharerefer=PC&sharesource=sniper_fandc&sharefrom=from_link

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

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

相关文章

SELinux

一、selinux技术详解 SELinux 概述 SELinux,即 Security-Enhanced Linux,意为安全强化的 Linux,由美国国家安全局(NSA)主导开发。开发初衷是防止系统资源被误用。在 Linux 系统中,系统资源的访问均通过程…

ES6对函数参数的新设计

ES6 对函数参数进行了新的设计,主要添加了默认参数、不定参数和扩展参数: 不定参数和扩展参数可以认为恰好是相反的两个模式,不定参数是使用数组来表示多个参数,扩展参数则是将多个参数映射到一个数组。 需要注意:不定…

LLaMA Factory微调后的大模型在vLLM框架中对齐对话模版

LLaMA Factory微调后的大模型Chat对话效果,与该模型使用vLLM推理架构中的对话效果,可能会出现不一致的情况。 下图是LLaMA Factory中的Chat的对话 下图是vLLM中的对话效果。 模型回答不稳定:有一半是对的,有一半是无关的。 1、未…

群体智能优化算法-鹈鹕优化算法(Pelican Optimization Algorithm, POA,含Matlab源代码)

摘要 鹈鹕优化算法(Pelican Optimization Algorithm, POA)是一种灵感来自自然界鹈鹕觅食行为的元启发式优化算法。POA 模拟鹈鹕捕食的两个主要阶段:探索阶段和开发阶段。通过模拟鹈鹕追捕猎物的动态行为,该算法在全局探索和局部开…

在 Blazor 中使用 Chart.js 快速创建数据可视化图表

前言 BlazorChartjs 是一个在 Blazor 中使用 Chart.js 的库(支持Blazor WebAssembly和Blazor Server两种模式),它提供了简单易用的组件来帮助开发者快速集成数据可视化图表到他们的 Blazor 应用程序中。本文我们将一起来学习一下在 Blazor 中…

SQL server 2022和SSMS的使用案例1

一,案例讲解 二,实战讲解 实战环境 你需要确保你已经安装完成SQL Server 2022 和SSMS 20.2 管理面板。点此跳转至安装教程 SQL Server2022Windows11 专业工作站SSMS20.2 1,连接数据库 打开SSMS,连接数据库。 正常连接示意图&…

GO语言学习(14)GO并发编程

目录 🌈前言 1.goroutine🌟 2.GMP模型🌟 2.1 GMP的由来☀️ 2.2 什么是GMP☀️ 3.channel 🌟 3.1 通道声明与数据传输💥 3.2 通道关闭 💥 3.3 通道遍历 💥 3.4 Select语句 &#x1f4…

【Audio开发二】Android原生音量曲线调整说明

一,客制化需求 客户方对于音量加减键从静音到最大音量十五个档位区域的音量变化趋势有定制化需求。 二,音量曲线调试流程 Android根据不同的音频流类型定义不同的曲线,曲线文件存放在/vendor/etc/audio_policy_volumes.xml或者default_volu…

spring-security原理与应用系列:HttpSecurity.filters

目录 AnyRequestMatcher WebSecurityConfig HttpSecurity AbstractInterceptUrlConfigurer AbstractAuthenticationProcessingFilter 类图 在前面的文章《spring-security原理与应用系列:securityFilterChainBuilders》中,我们遗留了一个问题&…

JVM生产环境问题定位与解决实战(六):总结篇——问题定位思路与工具选择策略

本文已收录于《JVM生产环境问题定位与解决实战》专栏,完整系列见文末目录 引言 在前五篇文章中,我们深入探讨了JVM生产环境问题定位与解决的实战技巧,从基础的jps、jmap、jstat、jstack、jcmd等工具,到JConsole、VisualVM、MAT的…

并行治理机制对比:Polkadot、Ethereum 与 NEAR

治理是任何去中心化网络的基础。它塑造了社区如何发展、如何为创新提供资金、如何应对挑战以及如何随着时间的推移建立信任。随着 Web3 的不断发展,决定这些生态系统如何做出决策的治理模型也在不断发展。 在最近的一集的【The Decentralized Mic】中, Polkadot 汇…

TDengine tar.gz和docker两种方式安装和卸载

下载地址 3.1.1.0 Linux版本 安装包 下载地址 3.1.1.0 docker 镜像 下载地址 3.1.1.0 Window客户端 1. 将文件上传至服务器后解压 tar -zxvf TDengine-server-3.1.1.0-Linux-x64.tar.gz 2. tar.gz安装 解压文件后,进入相应子目录,执行其中的 install.…

【STM32设计】基于STM32的智能门禁管理系统(指纹+密码+刷卡+蜂鸣器报警)(代码+资料+论文)

本课题为基于单片机的智能门禁系统,整个系统由AS608指纹识别模块,矩阵键盘,STM32F103单片机,OLED液晶,RFID识别模块,继电器,蜂鸣器等构成,在使用时,用户可以录入新的指纹…

java知识梳理(二)

一.lambda表达式 作用:Lambda 表达式在 Java 8 引入,主要用于简化匿名内部类的写法,特别是在函数式编程场景中,比如 函数式接口、流式 API(Streams)、并发编程等。它让 Java 代码更简洁、可读性更强&#x…

鸿蒙Flutter实战:20. Flutter集成高德地图,同层渲染

本文以同层渲染为例,介绍如何集成高德地图 完整代码见 Flutter 鸿蒙版 Demo 概述 Dart 侧 核心代码如下,通过 OhosView 来承载原生视图 OhosView(viewType: com.shaohushuo.app/customView,onPlatformViewCreated: _onPlatformViewCreated,creation…

AI辅助下基于ArcGIS Pro的SWAT模型全流程高效建模实践与深度进阶应用

目前,流域水资源和水生态问题逐渐成为制约社会经济和环境可持续发展的重要因素。SWAT模型是一种基于物理机制的分布式流域水文与生态模拟模型,能够对流域的水循环过程、污染物迁移等过程进行精细模拟和量化分析。SWAT模型目前广泛应用于流域水文过程研究…

尚语翻译图册翻译|专业图册翻译|北京专业翻译公司推荐|专业文件翻译报价

内容概要 尚语翻译公司聚焦多语种产品图册翻译的竞价推广服务,通过行业垂直化运营构建差异化竞争力。其核心服务覆盖机械制造、医疗器械、电子元件三大领域,依托ISO 17100认证的翻译流程和Trados术语管理系统,实现技术文档的精准转化。为提升…

LeetCode 解题思路 30(Hot 100)

解题思路: 递归参数: 生成括号的对数 n、结果集 result、当前路径 path、左括号数 open、右括号数 close。递归过程: 当当前路径 path 的长度等于 n * 2 时,说明已经生成有效括号,加入结果集。若左括号数小于 n&…

Java EE(18)——网络原理——应用层HTTP协议

一.初识HTTP协议 HTTP(HyperText Transfer Protocol,超文本传输协议)是用于在客户端(如浏览器)和服务器之间传输超媒体文档(如HTML)的应用层协议。 HTTP协议发展至今发布了多个版本,其中1.0,1.…

强大而易用的JSON在线处理工具

强大而易用的JSON在线处理工具:程序员的得力助手 在当今的软件开发世界中,JSON(JavaScript Object Notation)已经成为了数据交换的通用语言。无论是前端还是后端开发,我们都经常需要处理、验证和转换JSON数据。今天&a…