【计算机网络原理】初识网络原理和一些名词解释​​

˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱
ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客
本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN 如需转载还请通知˶⍤⃝˶​
个人主页:xiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客

系列专栏:xiaoxie的计算机网络学习系列专栏——CSDN博客●'ᴗ'σσணღ
我的目标:"团团等我💪( ◡̀_◡́ ҂)" 

( ⸝⸝⸝›ᴥ‹⸝⸝⸝ )欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​+关注(互三必回)!

目录

​编辑 一.网络初识

1.核心概念

1.局域网 vs 广域网

1.连接方式

2.传输速度

3.IP地址

2.路由器 vs 交换机

1.交换机:

3.IP地址 vs 端口号

1.IP地址:

2.端口号:

4.协议

1.协议分层

 2.协议分层的好处

1.起到了封装的效果

2.解耦合的效果

 5.OSI七层模型 vs TCP / IP 五层/四层 模型

 6.协议的层与层之间是如何配合工作的.

1.封装

1.应用层 

 2.传输层

 3.网络层

4.数据链路层

5.物理层

2.分用 (B)

1.物理层

2.数据链路层

 3.网络层

4.传输层

5.应用层


 一.网络初识

1.核心概念

1.局域网 vs 广域网

  • 局域网 (LAN):范围相对较小,通常局限在一个小的区域内,如办公室、学校、家庭或一个园区内,最大距离一般不超过几千米。局域网的设计目的是为了在近距离内实现高速数据传输和资源共享。
  • 广域网 (WAN):覆盖范围广泛,可以跨越城市、国家乃至全球。广域网连接不同地理位置的局域网,使得这些分散的网络能够相互通信,其距离可以达到数千公里。
1.连接方式
  • 局域网:主要通过以太网线、Wi-Fi 或其他短距离无线技术连接,使用交换机作为中心节点来连接网络中的设备。
  • 广域网:通过路由器将多个局域网连接起来,利用电话线、光纤、卫星、微波等长距离传输技术。
2.传输速度
  • 局域网:由于距离短,通常提供更快的数据传输速率,例如100Mbps至10Gbps或更高。
  • 广域网:由于传输距离远,数据传输速率通常较慢,虽然现代技术如光纤可以提供高速率,但整体上仍不如局域网快。
3.IP地址
  • 局域网:使用私有IP地址空间,可以在不同局域网内部重复使用。通过NAT(网络地址转换)技术访问互联网。
  • 广域网:每台直接连接到广域网的设备都需要一个全局唯一的公有IP地址以便在互联网上识别和通信。

2.路由器 vs 交换机

1.交换机
  • 主要工作在数据链路层(OSI模型的第二层),用于局域网(LAN)内部的设备连接。
  • 通过学习连接设备的MAC地址来进行数据帧的转发,使不同设备之间可以高效地通信。
  • 交换机可以分割冲突域,但传统的交换机不能分割广播域,意味着广播信息会在同一广播域内传播。
  • 适用于构建和管理一个网络内的直接连接,提高局域网内部数据传输速度。

2.路由器

  • 工作在网络层(OSI模型的第三层),不仅连接局域网,还能连接广域网(WAN),实现不同网络之间的通信。
  • 使用IP地址来决定数据包的最佳路径,从而转发到目标网络或设备,支持更复杂的路由策略和过滤功能。
  • 能够分割广播域,防止广播风暴,这对于大型网络管理至关重要。
  • 提供诸如网络地址转换(NAT)、防火墙过滤等高级功能,有助于网络安全和外网访问控制。
  • 通常用在需要连接到互联网或者连接不同子网的场合。

总结来说,交换机专注于提升局域网内部的数据交换效率,而路由器则负责在不同网络之间引导数据包,实现更广泛的网络互连与通信。

3.IP地址 vs 端口号

1.IP地址
  • 是互联网协议(IP)用于标识网络中每台设备的唯一地址,如同设备在网络世界中的“门牌号”。
  • 它确保了数据可以从源设备发送到目标设备,无论这两台设备位于世界哪个角落。
  • IP地址分为IPv4(32位,常用点分十进制表示)和IPv6(128位,用冒号分隔的十六进制数表示)两种版本。
  • 每个IP地址包含网络部分和主机部分,帮助路由器判断数据包的传输路径。
2.端口号
  • 是应用层的标识符,用于标识在同一台设备上运行的不同网络服务或应用程序。
  • 它使得数据包在到达目标设备后,能被正确地导向到相应的服务或应用程序,就好比是设备内的“部门编号”。
  • 端口号是16位的数字,范围从0到65535,其中0-1023是系统保留端口,通常分配给标准服务(如HTTP使用80端口,HTTPS使用443端口)。
  • 动态或私有端口范围(大于1023)可用于任意应用程序,以避免端口冲突。

结合IP地址和端口号,形成了所谓的“套接字”(Socket),这是网络通信中用于标示服务访问点的唯一组合,确保了数据能够准确无误地送达互联网上的特定服务或应用程序。

4.协议

简单解释就是,通信的双方互相约定好的一种通信规则,这样的规则就可以称之为协议,它定义了数据如何格式化、如何传输、如何被接收方解析以及如何响应等细节,无论通信的对象有多少个,都互相遵守的规则,同时,注意在通信的时候,必须要有协议,这样即使通信的双方的主机设备不同,硬件不同,应用程序不同,操作系统不同等等,都可以进行通信. 

1.协议分层

进行网络通信是一件非常复杂的事,其中涉及到很多的细节问题,如果你就使用一种网络协议来约定其中所有的细节,这个协议就会十分复杂,所以基于这个理论,就衍生出了协议分层这个概念.所以我们可以把一个复杂的协议分成许多个功能单一的协议,再把这些拆分的协议根据,它们的功能,分类,组织起来.

举一个小栗子:

在大公司中,有许多的员工,以及许多的岗位,那老板该如何去管理他们呢,是不是应该根据不同的层级,上层管理下层,这样老板只需要管理他的下一层即可.这样即使人很多也可以很好的运营这个公司了,简单画个图表示一下

协议分层也是类似的效果,把一堆拆分的协议,按照功能分成不同的层级,每一个层级都有对应的任务/解决的问题,上层协议调用下层协议的功能,下层协议为上层协议提供服务.这种分层使得各部分可以独立设计、开发和故障排查,同时也便于升级和扩展,大大简化了复杂网络系统的管理和维护。即使人员(或设备)众多,通过这样的层级划分,整个系统也能高效有序地运行。

 2.协议分层的好处
1.起到了封装的效果

在协议分层中,每一层都封装了自己的实现细节,只向上一层提供服务。这样,每一层可以独立于其他层进行开发和维护,而不需要关心下层的具体实现

举个小栗子:

想象一下,你买了一台微波炉。你不需要知道微波炉是如何加热食物的,也不需要了解它的内部电路和机械部件是如何工作的。你只需要知道如何设置时间和功率,然后按下启动按钮。这里,微波炉的制造商将复杂的加热机制封装在用户界面后面,用户只需要通过简单的操作界面与之交互。

类比这就像网络协议中的应用层,用户(应用层)不需要了解下层(如传输层、网络层等)是如何工作的,只需要通过提供的接口(如API)来发送和接收数据。 

2.解耦合的效果

协议分层减少系统中各个部分之间的依赖关系,使得系统的一个部分的变化不会影响到其他部分。在协议分层中,由于每一层都独立于其他层工作,因此可以单独修改或替换某一层,而不会影响到整个系统的其他部分。

举个小栗子:

再想象一下,你正在使用一个快递服务来寄送包裹。快递公司可能会更改他们的内部物流流程,比如从使用卡车运输改为使用无人机。作为客户,你不需要关心这些变化,你只需要知道你可以继续使用这项服务来寄送包裹。

类比:这类似于网络协议中的不同层之间的解耦合。如果你的应用层(比如一个网页浏览器)需要从HTTP切换到HTTPS,这个改变主要发生在应用层和传输层之间,而网络层和数据链路层可以保持不变,因为它们只负责传输数据包,而不关心数据的安全协议

 5.OSI七层模型 vs TCP / IP 五层/四层 模型

  1. 应用层 (Application Layer)

    • 作用:为应用软件提供网络服务。这一层负责处理网络应用程序的具体功能,如电子邮件、文件传输、网页浏览等。
    • 例子:HTTP(网页)、SMTP(邮件)、FTP(文件传输)、DNS(域名解析)。
  2. 传输层 (Transport Layer)

    • 作用:负责在网络中两个节点之间提供可靠的数据传输服务。这一层定义了两个主机间进行会话的规则,如TCP(传输控制协议)提供可靠的连接,而UDP(用户数据报协议)提供较快但不保证可靠性的连接。
    • 例子:TCP(确保数据包顺序和完整性)、UDP(快速但不保证顺序或完整性)。
  3. 网络层 (Network Layer)

    • 作用:负责数据包从源到宿的传递和路由选择。这一层处理数据包在整个互联网中的寻址和路由问题。
    • 例子:IP(互联网协议),负责将数据包从源地址路由到目的地址。
  4. 数据链路层 (Data Link Layer)

    • 作用:在相邻的网络节点之间提供数据传输,处理MAC(媒体访问控制)地址,确保数据在局域网内的可靠传输。
    • 例子:以太网、Wi-Fi,它们定义了如何在物理媒介上编码和传输数据。
  5. 物理层 (Physical Layer)

    • 作用:处理通过物理媒介传输数据的技术细节,如电缆的电气特性、无线信号的传输方式等。
    • 例子:RJ45以太网接口、光纤、无线电波,这些都是物理层关心的传输介质。

每一层都为上一层提供服务,同时依赖下一层来完成其功能。数据在发送时从高层向低层传递,每一层为其添加必要的信息(如头部信息),在接收时则从低层向高层传递,每一层去除对应的头部信息,直至最终到达目标应用程序。这种分层的设计使得网络通信更加模块化,易于理解和维护

注意这里的 TCP / IP 五层/四层 模型 的区别就是是否把物理层和数据链路层看成网络接口层,所以也不好说明哪一个是对的,都记住就好.

 6.协议的层与层之间是如何配合工作的.

总结来说就是上层协议调用下层协议的功能,下层协议为上层协议提供服务,就是一个封装和分用的过程,这里通过一个例子来讲解封装和分用的过程

假如 A 使用 微信 发送信息给 B.我们就通过这个我们日常生活中看似很简单,但其实里面涉及的网络通信原理却十分复杂的过程来讲解封装和分用的过程

1.封装

前提A给B发送"hello" 这个信息,A的账号为 123 B的账号为 456 发送时间为21:00

1.应用层 

这里我们就假定微信的应用层协议(数据的格式)为一个字符串,里面主要存储了四个信息,分别是,发送人账号,接收人账号,发送时间,发送的内容,通过来分割信息,并且在结尾以 \n 为标识

实际上微信的应用层协议肯定更复杂, 这样应用层就把这个数据进行了封装,之后通过调用系统API,把数据传输给传输层.

 2.传输层

传输层接收到应用层传输过来的数据之后,就会根据传输层上的协议对数据进行封装,例如传输层上典型的传输层协议 TCP / UDP 协议 ,这里我们以UDP协议作为传输层的协议.

UDP协议,会给数据添加一个报头将数据分成两部分,一部分为报头,一部分为载荷

其中报头里存储的是UDP的一些属性信息,载荷中就是传输的数据

这样传输层就对数据进行了封装 ,之后通过调用系统API,把数据传输给网络层

 3.网络层

典型的协议 IP协议,通过IP协议对数据进行封装

其中IP报头就包含了接收方的IP地址和发送方的地址,同时调用数据链路层的API,也就是网卡,传输到数据链路层中,进行进一步的封装

4.数据链路层

使用以太网协议

将以太网数据帧通过网卡,发送到物理层

5.物理层

 此时的以太网数据帧,本质上就是0/1的二进制数据了,硬件设备,把这些二进制数据转化为,电信号,光信号,电磁波等等,传输给B.

上述过程就是封装,层层对数据进行包装.

2.分用 (B)

1.物理层


收到一系列光电信号,把这些信号转成 0101 二进制数据, 交给 数据链路层


2.数据链路层


按照以太网协议,对数据进行解析(解析报头中的关键信息,为后续的传输/转发打下基础,还需要拿到载荷数据)

解析出来的载荷数据,是要交给上层(网络层) 

 3.网络层

IP 协议拿到了 IP 数据包,按照协议格式进一步解析,解析报头中的关键信息, 取出载荷.

解析出来的载荷数据传输给上一层(传输层)

4.传输层

拿着 UDP 数据包,按照 UDP 格式进一步解析,解析出关键的信息 (要交给哪个端口号对应的进程),以及解析出载荷数据 

 解析出来的载荷数据传输给上一层(应用层)

5.应用层


微信 程序拿到了应用数据包. 根据应用层协议按照自己的协议格式,进行解析,拿到这里的结构化数据, 显示到界面上 ->反序列化.这样B就接收到了A发送的信息了.

注意:

中间的路由器, 交换机,也要进行封装分用.也是上述过程.
只不过,交换机,封装分用到 数据链路层,即可知道下一步如何转发.(工作在数据链路层)
路由器,封装分用到,网络层,即可知道下一步如何转发,(工作在网络层)

同时分用时,操作系统会根据数据包上的报头,了解到封装时各层使用了具体的什么协议,这一点很重要.

以上就是封装分用过程了,我们还可以用网购时商家对快递的包装,和我们拆快递的过程来简单解释一下封装分用的过程

  1. 封装过程: 想象你在网上购买了一件商品,商家需要将商品安全地包装好,以便快递公司能够将它安全地送到你手中。在这个过程中,商家会做以下几步:

    • 商品本身(相当于应用层的数据):这是你要购买的物品,比如一件衣服。
    • 包装(相当于传输层):商家会将衣服放入一个盒子,并确保它不会因为运输途中的颠簸而损坏。如果商家使用的是可靠的快递服务(类似TCP协议),那么他们可能会添加额外的保护层,如泡沫或气泡膜,以确保衣服在运输过程中不会受损。
    • 地址标签(相当于网络层):商家会在盒子上贴上一个标签,上面写着你的地址(目的IP地址)和他们商店的地址(源IP地址),这样快递公司就知道这个包裹应该送往哪里。
    • 运输包装(相当于数据链路层):为了确保包裹在运输过程中的完整性,商家可能还会在外层加上一个防水袋或额外的保护层。
    • 物理运输(相当于物理层):最后,包裹被装上卡车或飞机,通过物理运输方式送到你所在的城市。
  2. 分用过程: 当你收到包裹时,你会执行相反的操作来获取商品,这个过程就是分用:

    • 物理运输(物理层):包裹首先通过卡车或飞机运输到达你所在的城市。
    • 运输包装(数据链路层):快递公司将包裹从运输工具上卸下,并确保包裹在送达前没有受损。
    • 地址标签(网络层):快递公司根据包裹上的地址标签,决定如何将包裹送到你的地址。
    • 拆包装(传输层):你收到包裹后,会拆除最外层的包装,比如防水袋,然后是商家添加的保护层。
    • 取出商品(应用层):最后,你打开盒子,取出你购买的衣服,这时候你得到了原始的商品,即应用层的数据。

通过这个例子和上述的微信接收信息的例子,我们可以看到,封装是将数据和必要的控制信息组合在一起,以便安全地在网络中传输。而分用则是接收端将这些数据和控制信息分开,提取出原始数据供应用程序使用。这个过程确保了数据的完整性和正确性,无论数据在网络中经过了多么复杂的路径。

以上就是关于计算机网络的初步认识了,这些知识点虽然比较繁琐,但只要你能够理解下来的话,相信这些知识还是比较容易的,理解这些知识对后续的学习,也会有很大的帮助,同时提醒一句计算机网络在我们今后的工作中是非常常用的,这方面的知识也算是作为一名程序猿的基本功了,基本功不牢,地动山摇,好了就啰嗦这么多,感谢你的阅读,祝你一天愉快.

 

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

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

相关文章

未来办公新方式--智能体与程序完美配合

Agent AI智能体的未来 工作中,有时候我们就像是在不停地踩着缝纫机,重复地做着那些单调乏味的任务,不仅耗时费力,还特别容易出错。可是,咱们现在可是生活在数字化时代啊!这时候,Python编程语言…

docker私有仓库registry

简介 Docker私有仓库的Registry是一个服务,主要用于存储、管理和分发Docker镜像。具体来说,Registry的功能包括: 存储镜像:Registry提供一个集中的地方来存储Docker镜像,包括镜像的层次结构和元数据。 版本控制&…

嵌入式人工智能是一个怎样的概念呢?

嵌入式人工智能将会是未来几年人工智能发展的主要方向之一,并且会伴随着一系列的职位和角色的出现。虽然目前还没有嵌入式人工智能的确切定义,但随着人工智能的不断发展,它势必会延伸到边缘、终端和嵌入式市场。 嵌入式人工智能具有速度快、功…

攻略:大学生三下乡投稿媒体网站和快速方法

作为当代大学生,不仅需要学习和掌握知识,更需要将所学知识运用到实践中,参与各种社会实践活动。其中,“三下乡”活动就是一个非常有意义的社会实践活动。三下乡社会实践活动新闻稿投稿网站有哪些?有哪些方式可以快速投稿呢?今天小编给大家一次讲个明白。 三下乡新…

高效文件管理:一键提取文件名关键字,快速创建对应文件夹

在数字化时代,文件管理成为我们日常工作中不可或缺的一部分。随着文件数量的不断增加,如何高效、有序地管理这些文件成为了许多人的挑战。传统的文件管理方法,如手动创建文件夹和分类文件,不仅耗时耗力,而且容易出错。…

KAN网络

目录 背景知识 什么是神经网络? 神经网络发展史 MP神经元模型 感知机模型 KAN 引言 MLP架构vsKAN架构 从数学定理方面来看: 从算法层面上看: 从实际应用过程看: KAN的架构细节 KAN的准确性 KAN的可解释性 监督学习…

https://是怎么实现的?

默认的网站建设好后都是http访问模式,这种模式对于纯内容类型的网站来说,没有什么问题,但如果受到中间网络劫持会让网站轻易的跳转钓鱼网站,为避免这种情况下发生,所以传统的网站改为https协议,这种协议自己…

MyBatis——在WEB中使用MyBatis(MVC架构模式)

一、在 Web 应用中使用 MyBatis 项目目录结构 pojo package org.qiu.bank.pojo;/*** 账户类,封装账户数据* author 秋玄* version 1.0* package org.qiu.bank.pojo* date 2022-09-27-20:31* since 1.0*/ public class Account {private Long id;private String …

Logit Standardization in Knowledge Distillation 知识蒸馏中的logit标准化

摘要 知识蒸馏涉及使用基于共享温度的softmax函数将软标签从教师转移到学生。然而,教师和学生之间共享温度的假设意味着他们的logits在logit范围和方差方面必须精确匹配。这种副作用限制了学生的表现,考虑到他们之间的能力差异,以及教师天生…

农业生产中,土壤墒情的监测方法有哪些?

农业是人类的生命之源,而土壤墒情则是农业生产的基础。我们应该倍加珍惜土地资源,合理利用水资源,努力创造出更加宜人的生长环境。让每一滴水都能为农作物带来生机,让每一寸土地都能孕育丰收。这样才能实现农业可持续发展的目标&a…

存内计算加速大模型——REM-CiM的RGB-事件融合多模态类比计算内存(CiM)技术

本文为大模型&存内计算融合专题的首篇文章,我们将以这篇名为《REM-CiM: Attentional RGB-Event Fusion Multi-modal Analog CiM for Area/Energy-efficient Edge Object Detection during both Day and Night》为例[1],探讨其在文中提到的多模态大模…

护眼台灯和普通台灯差别很大吗?专业护眼灯品牌有哪些?

随着科技的不断演进,台灯的设计也日益脱胎换骨,从曾经的笨重造型转变为如今轻盈雅致的外观。它们的功能同样经历了多样化的革新,变得更加人性化和便捷。作为学习、阅读和办公环境中不可或缺的照明工具,台灯所提供的光线舒适度至关…

LazyDiffusion:革新交互式图像编辑的扩散模型

Adobe Research和特拉维夫大学的研究人员联合开发了一种名为LazyDiffusion的新型扩散变换器,它能够高效地生成部分图像更新,特别适用于交互式图像编辑。该模型通过创新的编码器-解码器架构,显著提升了图像编辑的效率,同时保持了与…

QML 本地存储(Setting,sqlite)

Qt hello - 专注于Qt的技术分享平台 QML 原生的储存方有两种: 1,Settings 跟QWidget 中的QSettings 一样,可以简单的存储一些配置。 2,Sqlite sqlite数据库。可以存储一些复杂的数据。 一,Settings 我们以一个按钮的位…

鸿蒙DevEco Studio 4.1 Release-模拟器启动方式错误

软件版本:DevEco Studio 4.1 Release 报错提示: 没有权限查看处理指导 Size on Disk 显示1.0MB 尝试方案(统统无效): 1、“windows虚拟机监控程序平台”、"虚拟机平台"已开启 启用CPU虚拟化 2、C…

DIY可视化软件环境准备

DIY官网可视化工具做好的可视化拖拽开发工具无须编程、零代码基础、所见即所得设计工具支持轻松在线可视化导出微信小程序、支付宝小程序、头条小程序、H5、WebApp、UNIAPP等源码 支持组件库,高颜值,卡片,列表,轮播图,导航栏,按钮,标签,表单,单选,复选,下拉选择,多层选择,级联选…

【大华可见光摄像头】ffmpeg获取视频流并下载mp4 报错‘subtype‘ 不是内部或外部命令,也不是可运行的程序

我现在要通过ffmpeg获取大华摄像头视频流并下载成mp4,但我在cmd窗口运行下面命令的时候,发现报错: D:\Java\ffmpeg\ffmpeg-master-latest-win64-gpl\bin\ffmpeg.exe -y -i rtsp://admin:123xxx.xxx.xxx.xxx/cam/realmonitor?channel1&s…

Qt Tab键切换焦点顺序:setTabOrder()

使用这个方法setTabOrder(),设置使得焦点的顺序从前到后依次是: ui->lineEdit》 ui->lineEdit_2》ui->lineEdit_3 》ui->lineEdit_4 焦点先在ui->lineEdit上,当按下Tab键时,焦点跑到ui->lineEdit_2上。。。按…

通过颜色学习css

文章目录 1.生成html2.添加css链接3.将h1标签text-align元素4.添加div标签4.1、为类marker添加元素4.2、添加两个新的div标签4.3、修改div标签的类型并修改css元素4.4、为类container添加元素4.5、以数字形式添加颜色4.5、container添加padding属性4.6、组合css中的颜色属性4.7…

【Matlab】Matlab之美,抓紧来膜拜大神的创星之作(附2024Matlab教程+代码)

软件介绍 MATLAB是一款商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分,可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序…