网络初识-相关概念

news2024/9/20 9:37:05

本篇主要介绍关于网络的相关概念~

相关概念

局域网: 把几个电脑连接到一起,或者几台电脑连接到同一个路由器,就能构成局域网,局域网中的电脑可以相互通信。

广域网: 将多个局域网连接起来,就构成了范围更大的广域网。

IP地址: IP地址是描述一台主机,在互联网上所处的位置,IP地址用一个32位整数表示,用点分十进制将32位的整数用点号分成4部分,如: 192.168.1.2,每一部分的范围是0~255。

端口号: 区分当前主机上指定的应用程序(进程),一台主机在使用网络的程序可以有很多个,使用端口号可以区分是哪个程序。端口号是一个两个字节的整数,范围:0~ 65535(0 ~1023有特殊含义)。

协议: 协议是网络通信的基础,也就是发送方和接收方交互数据的规则,协议确定了,双方才能进行有意义的通信。网络上传输的数据一般是:光信号、电信号、电磁波,本质上都是传输二进制数据0和1,网络通信协议需要完成的工作就是约定这些二进制数据都代表什么意思。网络通信是一件非常复杂的事情,通常会把一个协议拆分成很多个小的协议,进行分层,把功能类似的协议放在同一层,上层协议调用下层协议,下层协议服务上层,使用某个协议的时候,不需要关注其他协议是如何实现的,直接用就好了~

封装: 封装是指在传输数据时,将上层协议的数据(如应用层数据)添加到下层协议的数据包中。每一层都向数据添加特定的头部信息,以确保数据能够顺利通过不同的网络设备传输。例如,TCP会将应用层数据封装成段,IP会将段封装成数据包。

分用: 分用是封装的逆过程,即接收数据时,逐层剥离数据的头部信息,直到提取出原始的应用层数据。例如,在接收HTTP响应时,数据会从物理层逐层解析,最终由应用层处理HTTP内容。

客户端: 客户端是指向服务器发起请求的一方,通常是用户的终端设备或应用程序。例如,当用户使用浏览器访问网站时,浏览器就是客户端。

服务器: 服务器是指接收并处理客户端请求的设备或程序。服务器通常提供特定的服务,例如Web服务、数据库服务、文件服务等。例如,网页服务器在接收到客户端的请求后会返回网页内容。

请求: 请求是指客户端向服务器发送的消息,通常包含所需的服务或数据的详细信息。以HTTP为例,浏览器会向服务器发送请求,要求获取某个网页。

响应: 响应是指服务器对客户端请求的答复,通常包含所请求的资源或状态信息。例如,服务器在接收到浏览器的请求后,会返回包含网页内容的HTTP响应。

协议分层有下面两种:

1、OSI七层网络模型:没有被采用的网络模型,只存在于教科书上~

2、TCP/IP五层网络模型:现在最主流的网络协议模型

TCP/IP网络模型的简单理解:

应用层:决定了传输的数据的用处,负责应用程序之间的沟通,这是程序员可以通过网络编程进行干预的

传输层:负责主机之间的数据传输,关注传输的起点和终点

网络层:负责地址管理和路由选择,规划主机之间数据传输的路线

数据链路层:负责设备之间的数据帧传输和识别

物理层:负责电信号、光信号、电磁波等传输方式和传输介质,描述硬件设备所需要什么样的条件。
在这里插入图片描述

数据在网络通信中的整体流程

以QQ发消息为例子,

发送方视角:
1、发送方在输入框中输入“你好”,点击发送,QQ就会把用户输入的内容读取到,构造成一个应用层数据包,数据包的格式是程序员自定义的,例如以下格式:发送方QQ号,接收方QQ号,发送时间,发送的内容。在网络中传输数据需要把这些结构化的数据(比如应用层数据包)转换成二进制字符串,才能传输,而不是直接传输应用层数据包。结构化数据转换成二进制字符串:序列化,二进制字符串转换成结构化数据:反序列化。应用层做的工作就是序列号

2、QQ调用操作系统中的api(传输层给应用层提供的),应用程序把数据包作为api的参数传到传输层的代码部分,相关的代码会把应用层数据包进一步封装成“传输层数据包”,根据传输层中的协议的不同封装成不同的数据包。传输层有很多种协议,最主要的就是TCP和UDP,如果是UDP,会在数据包的前面加上UDP报头

3、传输层调用 网络层给传输层提供的api,把数据交给网络层。网络层有很多协议,最重要的就是:IPv4协议,也叫IP协议,如果没有特殊说明是IPv6,IP协议默认指的就是IPv4。IP协议会把拿到的数据构造成网络层数据包(添加IP报头),其实封装的本质上其实就是字符串拼接~

4、网络层调用数据链路层的api,把数据交给数据链路层,数据链路层常见的协议:以太网,IP数据包(网络层数据包)进一步封装成以太网数据帧(添加了帧头和帧尾)。

5、在物理层,通过网卡等硬件设备,把上述的二进制数据转换成光信号、电信号、电磁波等,通过网线、光纤等设备传输到接收方。

接收方视角:
1、物理层接收光信号、电信号、电磁波等,把这些信号转换成二进制数据,传给数据链路层。

2、数据链路层中,以太网拿到数据包,对数据包解析,掐头去尾,根据报头信息来判断数据包是丢弃还是转发。如果是转发则把剩下的数据传给网络层。

3、网络层拿到数据链路层中的解析好的数据,去掉报头,根据IP协议对报头进行解析。然后把剩下的数据传给传输层。

4、传输层根据UDP协议,取出UDP报头,对数据进行解析,把剩下的数据传给应用层。

5、应用层把拿来的数据进行反序列化,QQ对数据做逻辑处理,如把消息显示到界面上,播放滴滴声等。

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

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

相关文章

以一种访问权限不允许的方式做了一个访问套接字的尝试

System.Net.Sockets.SocketException: 以一种访问权限不允许的方式做了一个访问套接字的尝试. 近来做的一个net core的网页,突然有这样的一个提示。上网查询之后,有二种可能,1,管理员角色运行VS2022后重新编译一下项目。2&#x…

9.10javaweb项目总结

1.创建吧 这里的话,是用的那个模态背景来写的,就是可以在原有界面上进行创建。目前就只有这些内容,具体一点就是吧吧的分类弄了一下,然后还有待完善,就是贴吧,吧头像的设置,还是有点问题的&…

AutoSar AP平台的SOMEIP文档的理解笔记

1. SOMEIP报文格式 1.1 SOME/IP消息格式:头格式 1.2 SOME/IP头格式:Request ID (Client ID/Session ID) 1.3 SOME/IP头格式:Message Type [8 Bit] and Return Code [8 Bit] 1.4 SOME/IP消息格式的大小端 1.5 SOME/IP消息格式:序列…

揭秘开发者的效率倍增器:编程工具的选择与应用

文章目录 每日一句正能量前言工具介绍功能特点:使用场景:提高工作效率的方式: 效率对比未来趋势后记 每日一句正能量 这推开心窗之人,可以是亲朋好友,也可以是陌客路人,可以是德高望重的哲人名流&#xff0…

Nexpose v6.6.266 for Linux Windows - 漏洞扫描

Nexpose v6.6.266 for Linux & Windows - 漏洞扫描 Rapid7 Vulnerability Management, release Aug 21, 2024 请访问原文链接:https://sysin.org/blog/nexpose-6/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.o…

JavaScript --while案例求一个数字的阶乘

求5*4*3*2*1的值 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-w…

Probabilistic Embeddings for Cross-Modal Retrieval 论文阅读

Probabilistic Embeddings for Cross-Modal Retrieval 论文阅读 Abstract1. Introduction2. Related work3. Method3.1. Building blocks for PCME3.1.1 Joint visual-textual embeddings3.1.2 Probabilistic embeddings for a single modality 3.2. Probabilistic cross-modal…

摩托车加装车载手机充电usb方案/雅马哈USB充电方案开发

长途骑行需要给手机与行车记录仪等设备供电&#xff0c;那么&#xff0c;加装USB充电器就相继在两轮电动车上应用起来了。摩托车加装usb充电方案主要应用于汽车、电动自行车、摩托车、房车、渡轮、游艇等交通工具。提供电动车USB充电器方案/摩托车加装usb充电方案/渡轮加装usb充…

深入理解Java虚拟机:Jvm总结-垃圾收集器与内存分配策略

第三章 垃圾收集器与内存分配策略 3.1 意义 Java堆和方法区具有不确定性&#xff1a;一个接口的多个实现类、一个方法的不同条件分支需要的内存可能不一样。程序运行起来才知道到底会创建什么对象&#xff0c;创建多少个对象。动态分配内存和垃圾回收排查内存泄漏和内存溢出时…

FLBOOK一款强大的样本册制作工具

​在数字化时代&#xff0c;样本册的制作与展示已成为企业宣传和业务拓展的重要手段。一款强大的样本册制作工具&#xff0c;不仅能帮助企业高效地打造精美的样本册&#xff0c;还能提升企业的专业形象和市场竞争力。今天&#xff0c;我要向大家介绍一款名为FLBOOK的样本册制作…

【银河麒麟高级服务器操作系统】虚拟机服务器执行systemctl提示timeout——分析全过程及处理建议

了解更多银河麒麟操作系统全新产品&#xff0c;请点击访问 麒麟软件产品专区&#xff1a;https://product.kylinos.cn 开发者专区&#xff1a;https://developer.kylinos.cn 文档中心&#xff1a;https://documentkylinos.cn 现象描述 产品信息 产品名称 银河麒麟高级服务…

【Python报错已解决】 raise JSONDecodeError(“Expecting value“, s, err.value) from None

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一&#xff1a;确保JSON字符串完整2.2 …

vue 使用vue-quill-editor 富文本添加源码模式,查看源码功能和表格功能

今天接到个需求&#xff0c;在富文本中增加查看源码和增加表格功能&#xff0c;感觉这种功能手拿把掐&#xff0c;但是奈于平时沉迷于移动端有段时间没写pc了&#xff0c;看了下官方感觉一个头两个大&#xff0c;于是在茫茫文档中各种借鉴&#xff08;抄袭&#xff09;完成了功…

练习:基于TCP协议实现一个网盘系统

一. 题目介绍 请基于TCP协议实现一个网盘系统&#xff0c;包含客户端、服务端&#xff0c;各自需求如下&#xff1a; - 客户端 - 用户注册&#xff0c;注册成功之后&#xff0c;在服务端的指定目录下为此用户创建一个文件夹&#xff0c;该文件夹下以后存储当前用户的数据&…

【python因果推断库15】使用 sci-kit learn 模型进行回归断点分析

目录 导入数据 线性模型和主效应模型 线性模型、主效应模型和交互作用模型 使用bandwidth from sklearn.gaussian_process import GaussianProcessRegressor from sklearn.gaussian_process.kernels import ExpSineSquared, WhiteKernel from sklearn.linear_model import …

存储课程学习笔记5_iouring的练习(io_uring,rust_echo_bench,fio)

我们知道&#xff0c;在处理大量高并发网络时&#xff0c;一般考虑并发&#xff0c;以及设计对应的方案&#xff08;比如select,poll,epoll&#xff09;等。 那么如果频繁进行文件或者磁盘的操作&#xff0c;如何考虑性能和并发&#xff0c;这里就可以考虑用到io_uring。 0&a…

C语言深入理解指针二(15)

文章目录 前言一、指针变量类型的意义指针的解引用指针-整数void*指针 二、const修饰指针const修饰变量 三、指针运算指针-整数指针-指针指针比较大小 四、野指针野指针成因如何规避野指针 总结 前言 本节课开始上点有意思的内容了&#xff01; 一、指针变量类型的意义 指针的…

Spark 集群进行 ETL 的架构介绍

一 什么是ETL ETL&#xff08;extract提取、transform转换、load加载&#xff09;。ETL负责将分散的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后&#xff0c;进行清洗、转换、集成&#xff0c;最后加载到数据仓库或数据集市中&#xff0c;成为联机分析…

论文速读|通过 SERL 算法优化轻量级双足机器人结构

论文地址&#xff1a;https://arxiv.org/pdf/2408.15632 这篇论文展示了SERL算法在双足机器人结构参数设计中的有效性&#xff0c;提供了推进该领域的重要见解。通过结合强化学习运动控制策略和进化算法&#xff0c;SERL算法成功识别出在指定设计空间内最能满足任务要求的结构…

GO语言性能分析

Go语言基准测试与pprof工具性能分析详解 在现代软件开发中&#xff0c;性能优化是一个重要的环节。Go语言提供了强大的工具来进行基准测试和性能分析&#xff0c;其中 testing 包用于基准测试&#xff0c;而 pprof 工具用于性能分析。本文将详细讲解如何使用这些工具来进行性能…