yo!这里是网络入门初识

目录

前言

基本概念

网络

协议

地址

网络传输流程

OSI七层模型

TCP/IP四层(五层)模型

流程图

数据封装&&分用

后记


前言

        对于上一个专栏——Linux操作系统,我们学习了操作系统的基础知识以及基本的系统编程,其中系统编程的学习将在这一专栏中继续展开,结合网络部分知识进入到网络编程阶段。计算机网络在计算机四大件中的重要性不可忽视。首先,计算机网络提供了计算机硬件之间的连接和通信方式,实现了计算机之间的数据传输,使得计算机可以互相交换信息和资源。没有计算机网络,各个计算机硬件将无法进行有效的通信和协作,无法实现资源共享和信息传递。下面我们将初识一下网络入门级知识点,为后面的学习打下一个基础。

基本概念

  • 网络

        无线网&&以太网是计算机网络中常见的网络连接方式。

        无线网是指通过无线技术实现的网络连接。它使用无线信号传输数据,不需要通过有线电缆连接设备。无线网通常使用Wi-Fi技术实现,可以通过无线路由器将互联网连接分享给多个设备,让设备在范围内无线上网。无线网的优势在于灵活性和便利性,用户可以在网络覆盖范围内自由移动,无需被有线连接限制。

        以太网是指使用以太网协议(Ethernet)进行数据传输的有线网络。以太网使用电缆连接设备,常见的是使用双绞线连接设备到交换机或路由器。以太网的传输速度通常较快且稳定,并且可以实现长距离的数据传输。以太网通常用于需要更高传输速度和更稳定连接的场合。

        局域网&&广域网是一个相对而言的概念,如果存在比广域网更大的网络,此时这个广域网也可看做一个较大的局域网。但是,叫一个非常大的网为局域网就非常奇怪,于是广域网和局域网有了以下更为具体的定义。

        局域网(Local Area Network,LAN)是指在小范围内的一组计算机和设备通过通信线缆或无线连接起来的网络。局域网通常用于家庭、办公室、学校等小范围的场所,其主要目的是提供内部资源共享和通信的功能,如共享文件、打印机、互联网连接等。

        广域网(Wide Area Network,WAN)则是指覆盖范围更大、跨越较长距离的网络,通常由多个局域网互相连接组成。广域网可以跨越城市、国家甚至是全球,在不同地点的设备可以通过广域网进行通信和数据交换。广域网通常由运营商提供,使用特定的通信协议和设备进行组网和数据传输。

  • 协议

        日常生活中,协议就是一种约定,网络中的协议也是一样,是在计算机系统中用于传输数据的规则和约定,确保了不同计算机和设备之间的通信能够顺利进行。其实,协议在计算机中本质就是软件可以“分层“的软件,或者说被层状的划分,这是为什么?

        举个例子,两个异地的人打电话,关于通信的协议就必须包括但不限于用什么语言对话(英语or中文,方言or普通话),用什么设备(手机or有线电话)等,“语言层”与“设备层”就需要划分开来,否则某语言与某设备就会捆绑,这其实是不正确的。分层最大的好处就是“封装”,将语言层与设备层封装起来,更换语言与更换设备是完全解耦的,互不影响,不用考虑新语言和通讯设备的更新换代导致通信机制跟着发生变化。在上面这个例子中只有简单的两层,在网络协议中的协议更加复杂更多层次,包括http、tcp、ip等,对应于网络通信过程中的不同阶段。

  • 地址

        IP地址是在ip层中用来标识网络中不同主机的地址,有两个版本——ipv4、ipv6。对于ipv4,ip地址是一个4字节、32位的整数,使用点分十进制的字符串表示,比如192.168.0.1,用点分割的每个数字表示一个字节,范围是0-255。

        MAC地址数据链路层用来识别相连的节点地址,存在于网卡上,MAC地址在网卡出厂时就已存在,无法更改,通常情况下是唯一的。MAC地址长度为48位,6个字节,每个字节用冒号分割,用16进制表示,比如08:00:27:03:fb:19。

        举个容易理解的例子,若西游记中的唐僧是发送的数据,则东土大唐和西天是源ip和目的ip,若唐僧当前在车迟国,下一站是女儿国,则车迟国和女儿国分别是源mac地址和下一站mac地址。

网络传输流程

  • OSI七层模型

        OSI(Open Systems Interconnection开放系统互连)七层网络模型是一种网络协议参考模型,它将计算机网络通信的过程分为七个不同的层次,如下图。每个层次都负责特定的功能和协议,从物理连接到应用程序之间的通信,最主要的功能就是帮助不同类型的主机实现数据传输,但是其既复杂又不实用,真正网络传输数据时用的是TCP/IP四层模型。

  • TCP/IP四层(五层)模型

        TCP/IP网络协议包括许多协议,组成了协议簇,包括(物理层、)数据链路层、网络层、传输层、应用层,每一层都是让其下一层所提供的网络来完成自己的需求。其中物理层考虑的比较少,因此主要被称为四层模型,如下图。

物理层:负责光/电信号的传递方式,集线器和众所周知的调制解调器(猫)就工作在物理层;

数据链路层:负责设备之间的数据帧的传送和识别,交换机工作在这一层;

网络层:负责地址管理和路由选择,比如ip协议,路由器工作在网络层。

传输层:负责两台主机之间的数据传输,比如tcp协议,能够确保数据可靠的从源主机发送到目标主机;

应用层:负责应用程序间沟通,比如http、telnet,网络编程就是针对于应用层。

        一般而言,对于一台主机,操作系统内核实现了从传输层到物理层的内容;对于一台路由器,它实现了从网络层到物理层;对于一台交换机,它实现了从数据链路层到物理层;对于集线器,它只实现了物理层。

  • 流程图

        一个路由器构建一个局域网(网段),在同一网段中的两台主机可以直接通信,通过TCP/IP协议通信的过程流程图如下:

        不同网段的主机进行数据传输,数据从一台主机到另一台主机需要经过一个或多个路由器,传输过程流程图如下:

  • 数据封装&&分用

        ①不同的协议层对数据包有不同的称呼,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在数据链路层叫做帧(frame)

        ②数据在经过每层协议都要加上一个数据首部(header),这个过程称为封装,本质就是添加报头,首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息。

        ③到达目的主机后经过每层协议再剥掉相应的首部,根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理,本质就是去掉包头

        数据在TCP/IP四层网络协议添加或去掉包头的数据报头示意图如下,具体每层协议的报头信息会在对应专题中讲到,这里作初步了解即可。

后记

        针对于基础概念部分,并没有介绍太多,更多概念会在后面的学习中提到并且结合应用场景深入理解。本章重点为大家介绍了数据在网络中传输的流程,包括TCP/IP模型、数据包在不同层之间的交付与分用等。接下来的章节会介绍到socket编程,让大家上手感受一下数据在网络中的传输过程。


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

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

相关文章

setTimeout回调函数 this指向问题

本文主要介绍setTimeout的回调函数的this指向问题 例子1:回调函数是一个普通函数 setTimeout 的回调函数是一个普通函数,而不是箭头函数,因此它有自己的上下文,this 指向全局对象(在浏览器中是 window 对象&#xff…

挤压激励注意力 SE | Squeeze-and-Excitation Networks

论文名称:《Squeeze-and-Excitation Networks》 论文地址:https://arxiv.org/pdf/1709.01507.pdf 代码地址: https://github.com/hujie-frank/SENet 卷积神经网络 (CNN) 的核心构建块是卷积运算符,它使网络能够通过在每一层的局…

Linux进程基础概念子进程的创建

有着上一节我们对操作系统和冯诺依曼体系结构的理解,本篇我们便可以开始对 Linux 中的进程开始讲解。在本篇中对进程的基本概念进行了简单的介绍,然后通过对描述进程的 PCB,与 Linux 中的 task_struct 的详细讲解,使得对进程的概念…

Android Widget开发代码示例详细说明

因为AppWidgetProvider扩展自BroadcastReceiver, 所以你不能保证回调函数完成调用后,AppWidgetProvider还在继续运行。 a. AppWidgetProvider 的实现 /*** Copyright(C):教育电子有限公司 * Project Name: NineSync* Filename: SynWidgetProvider.java * Author(S…

界面组件DevExpress Blazor UI v23.2 - 网格、工具栏功能全新升级

DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 DevExpress Blazor控件目前已经升级…

数字文旅重塑旅游发展新生态:以数字化转型为契机,推动旅游产业的创新发展,提升旅游服务的智能化、网络化和个性化水平

目录 一、引言 二、数字化转型推动旅游产业创新发展 1、数字化转型提升旅游产业效率 2、数字化转型拓展旅游产业边界 3、数字化转型促进旅游产业可持续发展 三、提升旅游服务智能化、网络化和个性化水平 1、智能化提升旅游服务体验 2、网络化拓宽旅游服务渠道 3、个性…

爬虫的实战应用之短信炸弹playwright现代网页测试工具

不讲废话,先上原理: 短信炸弹,也就是说持续对一个手机进行发送短信,实现的方式就是,利用某些网站的登录 ,注册的时候,发送短信验证码来实现。 如下图,其中有一个id为phone的输入框&a…

配置nodejs的俩小脚本

介绍:共两个脚本。 脚本1,用来配置环境变量,生成环境变量所需的配置信息,然后自己添加到系统环境变量里去 特别注意:该脚本需要放到nodejs目录下面,如果不是,则无法生成环境变量配置文本内容 另…

Java代码审计-flink-streaming-platform-web

前言 项目地址:GitHub - zhp8341/flink-streaming-platform-web: 基于flink的实时流计算web平台 flink-streaming-platform-web是一个将flink封装的一个可视化的、轻量级的flink web客户端系统,用户只需在web 界面进行sql配置就能完成流计算任务。 项目…

【Elasticsearch<一>✈️✈️】简单安装使用以及各种踩坑

目录 🍸前言 🍻一、软件安装(Windows版) 1.1、Elasticsearch 下载 2.1 安装浏览器插件 3.1、安装可视化工具 Kibana 4.1、集成 IK 分词器 🍺二、安装问题 🍹三、测试 IK 分词器 ​🍷 四、章…

Golang | Leetcode Golang题解之第55题跳跃游戏

题目&#xff1a; 题解&#xff1a; // 贪心算法 func canJump(nums []int) bool {cover : 0n : len(nums)-1for i : 0; i < cover; i { // 每次与覆盖值比较cover max(inums[i], cover) //每走一步都将 cover 更新为最大值if cover > n {return true}}return false } …

如何买到“30元以下”的免备案服务器?

对于预算有限的个人和小型企业来说&#xff0c;30 元以下免备案服务器的价格非常亲民。用户可以以极低的成本获得所需的服务器资源&#xff0c;这对创业者、个人开发者、学生和站长来说简直不要太划算&#xff0c;毕竟配置可以升级真不够后面再付费升级也行。 何为“免备案”&…

Android双向认证配置过程

1&#xff08;可以绕过&#xff09;准备过程 为了让这个教程可以一直复用&#xff0c;打算直接写一个双向认证的APP作为素材。 工具&#xff1a; ●protecle&#xff08;签名文件转换&#xff09; ●keytool&#xff08;java自己就有&#xff09; ●openssl&#xff08;apache里…

NLP transformers - 文本分类

Text classification 文章目录 Text classification加载 IMDb 数据集Preprocess 预处理EvaluateTrainInference 本文翻译自&#xff1a;Text classification https://huggingface.co/docs/transformers/tasks/sequence_classification notebook : https://colab.research.googl…

FPGA 以太网概念简单学习

1 MAC和PHY 从硬件的角度来说&#xff0c;以太网接口电路主要由 MAC &#xff08; Media Access Control &#xff09;控制器和物理层接口 PHY&#xff08;Physical Layer &#xff0c; PHY &#xff09;两大部分构成。 MAC 指媒体访问控制子层协议&#xff0c;它和 PHY 接…

创建获利段

事务代码&#xff1a;KE21N BAPI&#xff1a;BAPI_COPAACTUALS_POSTCOSTDATA 前台操作&#xff1a; 表是业务配置的 配置路径&#xff1a; 代码&#xff1a;BAPI不返回生成的凭证号和获利段&#xff0c;需要通过增强或者读表获取 ls_copa_data-record_id 000001.ls_co…

Agent AI智能体在未来,一定与你我密不可分

随着Agent AI智能体的逐渐成熟&#xff0c;人工智能应用的不断深入与拓展&#xff0c;相信在不久的将来&#xff0c;他与你我的生活一定是密不可分的。 目录 ​编辑 1 Agent AI智能体是什么&#xff1f; 2 Agent AI在语言处理方面的能力 2.1 情感分析示例 2.2 文本分类任…

Spring - 5 ( 8000 字 Spring 入门级教程 )

一&#xff1a;Spring IoC&DI 1.1 方法注解 Bean 类注解是添加到某个类上的&#xff0c; 但是存在两个问题: 使用外部包里的类, 没办法添加类注解⼀个类, 需要多个对象, ⽐如多个数据源 这种场景, 我们就需要使用方法注解 Bean 我们先来看方法注解如何使用: public c…

Unity 踩坑记录 Rigidbody 刚体重力失效

playerSetting > physics > Gravity > 设置 Y 的值为负数

前端canvas项目实战——在线图文编辑器(九):逻辑画布

目录 前言一、 效果展示二、 实现步骤1. 调整布局&#xff0c;最大化利用屏幕空间2. 添加逻辑画布3. 添加遮罩4. 居中显示逻辑画布5. 一个容易被忽视的bug点 三、Show u the code后记 前言 上一篇博文中&#xff0c;我们实现了一组通用的功能按钮&#xff1a;复制、删除、锁定…