Linux基础 (十三):计算机网络基础概论

news2024/11/27 4:19:57

一、网络基本概念

1.1 网络

        把独立自主的计算机通过传输介质和网络设备链接起来,就构成一个网络 ,网络是由若干结点和连接这些结点的链路组成,网络中的结点可以是计算机,交换机、 路由器等设备。 网络设备有:交换机、路由器、集线器 传输介质有:双绞线、同轴电缆、光纤。下图是一个简单的网络示意图:

1.2 互联网

         把多个网络连接起来就构成了互联网。目前最大的互联网就是我们常说的因特网。

1.3 IP 地址

 1.3.1 IP地址概念  

          IP 地址就是给因特网上的每一个主机(或路由器)的每一个接口分配的一个在全世界范围内唯一的标识符。IP 地址因其特殊的结构使我们可以在因特网上很方便地进行寻址

1.3.2 IP地址介绍

        IP 地址有分 IPV4 和 IPV6 两种类别格式,IPV4 是类似”A.B.C.D”的格式,它是 32 位 的,用“.”分成四个段,每个段是 8 个位(值为 0-255),用 10 进制表示。IPV6 地址是 128 位,格式类似”XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX”,用“:“分成 8 个 段,每个段 16 个位,用 4 个 16 进制数表示。

Windows平台可使用图像化界面查看:

windows在命令行窗口查看使用命令:ipconfig

Linux在命令行窗口查看使用命令:ifconfig

ip“127.0.0. 1’”代表本主机,是在本主机上进行测试用的。

1.3.3 IP地址的分类

          接下来描述的 IP 地址默认都指的是 IPV4 的地址。为了便于寻址,了解目标主机的位置,每个 IP 地址由网络号和主机号两个部分构成。就像是学校里面为了方便管理,为每个学生分配一个学号,由班级号和在这个班的编号组成,同一个物理网络上所有的主机都使用同一个网络号,只是主机号不同。

  1. A类地址的第一个字节(即网络号)范围是1到127,剩下的三个字节(即主机号)用于标识具体的主机。A类地址适用于大型网络,因为它们可以分配给大量主机。
  2. B类地址的前两个字节(即网络号)用于标识网络,剩下的两个字节(即主机号)用于标识主机。B类地址适用于中型规模的网络。
  3. C类地址的前三个字节(即网络号)用于标识网络,剩下一个字节(即主机号)用于标识主机。C类地址适用于小型网络,因为它们的主机数量相对较少。

1.4 MAC 地址

       MAC 地址(Media Access Control Address,媒体访问控制地址)是用于在网络上唯一标识网络设备的硬件地址它通常由设备的网络接口控制器(NIC)制造商分配,并嵌入到设备的硬件中。标准的 MAC 地址是一个 48 位的标识符,通常表示为 12 位十六进制数,如 "00:1A:2B:3C:4D:5E"。MAC 地址的前24位通常是制造商分配的组织唯一标识符(OUI),后24位是设备的唯一序列号。

1.5 IP地址和MAC地址的关系(面试题)

          有了mac地址还需要ip地址是因为:

  1. IP地址方便寻址
  2. MAC地址无法反应在网络中发生了变化

二、网络分层模型

2.1 网络分层模型的概念(面试题)

        网络分层模型(Network Layered Model)是一种将网络通信功能划分为若干层次的方法,每一层负责特定的任务,且各层之间通过定义良好的接口进行交互。这样的分层设计使得网络系统更易于理解、管理和扩展。最常见的网络分层模型有OSI(开放系统互连)模型和TCP/IP模型。

OSI模型(Open Systems Interconnection Model)

OSI模型由国际标准化组织(ISO)制定,分为七层,从上到下分别是:

  1. 应用层(Application Layer):提供应用程序与网络之间的接口,支持网络服务(如电子邮件、文件传输等)。
  2. 表示层(Presentation Layer):负责数据格式的转换,包括数据加密、解密和压缩。
  3. 会话层(Session Layer):管理会话的建立、维护和终止。
  4. 传输层(Transport Layer)提供端到端的通信控制,保证数据的可靠传输(如TCP协议)。
  5. 网络层(Network Layer):负责数据包的路由选择和转发(如IP协议)。
  6. 数据链路层(Data Link Layer):提供数据帧的传输,负责物理地址寻址、帧定界和错误检测(如以太网协议)。
  7. 物理层(Physical Layer):负责物理媒介上的比特传输,包括电缆、光纤等传输介质。

TCP/IP模型(Transmission Control Protocol/Internet Protocol Model)

TCP/IP模型是互联网的核心协议,分为四层,从上到下分别是:

  1. 应用层(Application Layer):对应OSI模型的应用层、表示层和会话层,提供高层协议和网络服务(如HTTP、FTP、SMTP等)。
  2. 传输层(Transport Layer):提供主机之间的数据传输服务,常见协议有TCP和UDP。
  3. 网络层(Internet Layer)负责数据包的路由和转发,核心协议是IP
  4. 网络接口层(Network Interface Layer):对应OSI模型的数据链路层和物理层,负责实际的数据传输。

对比和应用

  • 层数:OSI模型有七层,TCP/IP模型有四层。
  • 标准化OSI模型是理论性的参考模型,而TCP/IP模型是实际应用中广泛使用的协议栈。
  • 灵活性:OSI模型的每一层定义明确且独立,有助于理解和设计新的协议。TCP/IP模型更注重实际应用和性能优化。

2.2 为什么要进行分层(面试题)

1. 简化复杂性

          网络通信涉及的功能和操作非常复杂,通过分层可以将复杂的任务分解成较小的、更易于管理和理解的模块。每一层只需关注特定的功能,而不需要了解整个系统的所有细节。

2. 模块化设计

         分层使得网络设计模块化,每一层可以独立开发、测试和修改,而不会影响其他层。这种模块化设计增强了系统的可维护性和可升级性。

3. 标准化

      通过定义各层的功能和接口,网络分层模型为不同厂商和开发者提供了统一的标准,使得不同设备和协议能够互操作。标准化促进了设备和技术的兼容性和互通性。

4. 促进互操作性

       不同厂商和不同技术的设备可以通过遵循相同的分层模型和标准协议进行通信。这种互操作性是互联网能够普及和发展的关键因素之一。

5. 故障隔离

        分层设计有助于故障隔离和问题诊断。当网络通信出现问题时,可以根据分层模型定位到具体层次,从而更迅速地找到并解决问题。

6. 分工明确

        每一层都有其明确的功能和职责,使得开发人员可以专注于特定层次的优化和改进。例如,传输层专注于数据的可靠传输,网络层专注于路由和数据转发。

8. 支持协议栈的实现 

        网络协议栈的实现可以遵循分层模型,通过调用下层提供的服务并向上层提供服务,使得整个协议栈的实现更加系统化和规范化。

2.3 端口号

        端口号(Port Number)是计算机网络中的一个重要概念,它是软件层面的, 用于区分同一台计算机上不同的网络服务和应用(标识一个应用程序(进程),区分数据包到达主机上的哪个进程,每个进程都有一个端口号)。它是一个16位的整数,范围从0到65535。3306 mysql,80 http协议。

工作原理

  • 当一台计算机向另一台计算机发送数据时,数据包中包含源IP地址、目标IP地址、源端口号和目标端口号。
  • 目标计算机使用目标端口号将数据包路由到相应的服务或应用程序。
  • 例如,当你在浏览器中访问一个网站时,浏览器会使用HTTP协议,通过目标端口80发送请求,服务器在端口80上监听并处理该请求。

2.4 数据链路层

     数据链路层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。 在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制,使有差错的物理线路变为无差错的数据 链路,即提供可靠的通过物理介质传输数据的方法。 该层通常又被分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。

  1. MAC 子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的 访问控制;
  2. LLC 子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。

TCP/IP 协议体系结构中,数据链路层的功能描述为实现网卡接口的网络驱动程序,以 处理数据在物理媒介上的传输,不同的物理网络具有不同的电气特性,网络驱动程序隐藏了这些细节,为上层协议提供了一个统一的接口。这一层主要关注的三个基本问题是:封装成 帧,透明传输和差错检测。

2.5  网络层

       网络层实现数据包的选路和转发。广域网或者说互联网通常使用众多分级的路由器来连接分散的主机或者局域网,因此,通信的两台主机一般不是直接相连的,而是通过多个中间结点(路由器)连接的。网络层的任务就是选择这些中间结点,以确定两台主机之间的通信路径。同时,网络层对上层协议隐藏了网络拓扑连接的细节,使得在传输层和网络应用程序看来,通信的双方是直接相连的。

网络层最核心的协议是 IP 协议(Internet Protocol,因特网协议)。IP 协议根据数据包的目 的 IP 地址来决定何如投递它。

       如果数据包不能直接发送给目标主机,那么 IP 协议就是为它寻找一个合适的下一跳路由器,并将数据包交付给该路由器来转发。多次重复这一过程,数 据包最终到达目标主机,或者由于发送失败而被丢弃。可见,IP 协议使用逐跳的方式确定通信路径。 网络层另外一个重要的协议是 ICMP 协议(因特网控制报文协议)。它是 IP 协议的重要补充,主要用于检测网络连接。

IP 协议为上层协议提供无状态、无连接、不可靠的服务。

  1. 无状态是指通信双方不同步传输数据的状态信息,因此所有 IP 数据报的发送、传输和 接收都是相互独立、没有上下文关系的。这种服务最大的缺点是无法处理乱序和重复的 IP 数据报。虽然 IP 数据报头部提供了一个标识字段用以唯一标识一个 IP 数据报,但它是被用来处理 IP 分片和重组的,而不是用来指示接收顺序的。无状态的优点是简单、高效。无须 为保持通信状态而分配一些内核资源,也无须再每次通信时携带状态信息。
  2. 无连接是指 IP 通信双方都不长久地维持对方的任何信息。这样,上层协议每次发送数据的时候,都必须明确指定对方的 IP 地址。
  3. 不可靠是指 IP 协议不能保证 IP 数据报准确地到达接收端,它只是承诺尽最大努力。

IPV4 头部结构如下:

2.6 传输层

        传输层为两台主机上的应用程序提供端到端的通信。与网络层使用的逐跳通信的方式不 同,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程。

传输层协议主要有三个:TCP 协议、UDP 协议和 SCTP 协议 ,TCP 协议(传输控制协议)为应用层提供可靠的、面向连接的和基于流的服务。

        TCP 协 议使用超时重传、确认应答等方式来确保数据包被正确的发送至目的端,因此 TCP 服务是可靠的。使用 TCP 协议通信的双方必须先建立 TCP 连接,并在内核中为该连接维持一些必 要的数据结构,比如连接状态,读写缓冲区等。当通信结束时,双方必须关闭连接以释放这些内核数据。TCP 服务是基于流的,基于流的数据没有边界(长度)限制,它源源不断地从 通信地一端流入另一端。发送端可以逐个字节地向数据流中写入数据,接收端可以逐个字节地将它们读出。TCP 协议报头:

UDP 协议(用户数据报协议)则与 TCP 协议完全相反,它为应用层提供不可靠、无连接、基于数据报地服务。“不可靠”意味着 UDP 协议无法保证数据从发送端正确地传送到目的端。如果数据在中途丢失,或者目的端通过数据校验发现数据错误而将其丢弃,则 UDP 协议只是简单地通知应用程序发送失败。因此,如果要使 UDP 协议可靠,那么应用程序通常要自己处理数据确认、超时重传等逻辑。UDP 是无连接的,即通信双发不保持一个长久的联系,因此应用程序每次发送数据都要明确指定接收端的地址。基于数据报的服务,是相对基于流的服务而言的。每次 UDP 数据报都有一个长度,接收端必须以该长度为最小单位 将其所有内容一次性读出,否则数据将被截断。 

2.7 应用层

        应用层负责处理应用程序的逻辑。

三 、网络应用程序通信流程

      如下图,应用程序 A 要将数据”hello” 传给网络上另外一台主机上的应用程序 B, 数 据“hello”从应用层发送给传输层后,传输层在数据前面加上 tcp 协议或 udp 协议的报头, 将整条报文发给网络层,网络层添加自己的 IP 报头,再将整条数据发送给数据链路层。数据链路层将数据封装成能在网络中独立传输的数据单元,即数据帧。封装好的数据帧通过网络传输到另一台主机,然后再从下层依次拆包,将数据部分送往应用层。应用程序 B 就得到 了数据”hello”。

四、网路通信协议

       一组网络规则的集合,在特定的场景下,使用某一个协议,在网路的不同层,就会有不同的协议,重点介绍传输层的tcp协议和udp协议

  1. tcp协议:为应用层提供可靠的、面向连接的和基于流的服务
  2. udp协议:与tcp协议完全相反,它为应用层提供不可靠、无连接、基于数据报的服务

       至此,已经讲解完毕!篇幅较长,慢慢消化,以上就是全部内容!请务必掌握,创作不易,欢迎大家点赞加关注评论,您的支持是我前进最大的动力!下期再见!

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

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

相关文章

跨域、JSONP、CORS、Spring、Spring Security解决方案

概述 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。跨域是浏览器(如Chrome浏览器基于JS V8引擎,可以简单理解为JS解释器)的一种同源安全策略,是浏览器单方面限制脚本的跨域访问。因此,仅有…

Chrome浏览器书签同步不及时怎么办?两种方法帮你解决!

👨‍🎓博主简介 🏅CSDN博客专家   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入&#xff01…

Elasticsearch 认证模拟题 - 17

这两道题目非常具有代表性,分别是跨集群复制和跨集群检索,需要相应的 许可 这里在虚拟机上搭建集群完成这两道题目,这里补充一下 elasticsearch 和 kibana 的配置文件 # elasticsearch.yml cluster.name: cluster2 node.name: cluster2-node…

一定要了解的 WordPress 数据库中默认 12 个表

WordPressan 安装的时候会有 12 张默认的数据表,每张表的数据都包含了 WordPress 不同的功能。看看这些表的结构,你能很容易的了解网站不同的部分都是存在哪里的。目前,默认的 WordPress 安装会创建如下的数据表。 注意:每张表名前面的 wp_ 是你在安装过程中选择的数据库前…

新书推荐:2.2.4 第11练:消息循环

/*------------------------------------------------------------------------ 011 编程达人win32 API每日一练 第11个例子GetMessage.c:消息循环 MSG结构 GetMessage函数 TranslateMessage函数:将虚拟键消息转换为字符消息 DispatchMessage函数…

【微信小程序】事件分类以及阻止事件冒泡

在微信小程序中,事件分为冒泡事件和非冒泡事件两大类,它们的区别在于事件是否能从原始触发组件开始,向父级组件传播(即“冒泡”)。 冒泡事件:当一个组件上的事件被触发后,不仅当前组件会接收到这…

cisco packet tracer 8.2.2 (思科模拟器) ospf路由协议

1 实验拓扑图 2 配置路由器和交换机 #sw1 en config t hostname sw1 ip routing int vlan 2 ip address 192.168.2.1 255.255.255.0 exit int vlan 3 ip address 192.168.3.1 255.255.255.0 exit int gigabitEthernet 1/0/1 switchport access vlan 2 exit int gigabitEthe…

012-Linux逻辑卷管理(LVM)

前言 安装 Linux 操作系统时遇到的⼀个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间; 基本的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小。随着 Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户…

[C++初阶]string类的详解

一、string类的模拟实现 上面已经对string类进行了简单的介绍,大家只要能够正常使用即可。在面试中,面试官总喜欢让我们来模拟实现string类,最主要是实现string类的构造、拷贝构造、赋值运算符重载以及析构函数。大家看下以下string类的实现是…

深度学习-CPGNet部署

1、导出onnx提示以下警告 问题: 原因: 模型是torch1.8导出的,对应的onnx版本是11,但是onnx是torch1.12生成的,对应的onnx版本是16。 解决方法: 将onnx.export函数的属性从opset_version16改成opset_version…

【数据结构】查找(顺序查找、二分查找、索引顺序查找、二叉排序树、平衡排序树、B树、B+树、哈希表)

目录 数据结构——查找何为查找1. 查找表2. 关键字3. 查找方法效果评价指标——平均查找长度ASL(Average Search Length) 静态查找表1.顺序查找2.二分查找二分查找判定树 3.静态查找表—索引顺序表的查找索引顺序查找表的算法原理: 动态查找树表1. 二叉排序树2. 二叉…

7种方法教你如何解决msvcp140_1.dll丢失问题,一键修复dll丢失问题

msvcp140_1.dll 是 Microsoft Visual C 2015 Redistributable 的一部分,它提供了运行时所需的 C 标准库的实现。这个 DLL 文件对于依赖 Visual C 2015 编译的应用程序至关重要,因为它包含了程序运行时所必需的函数和资源。 作用 运行时支持&#xff1a…

点击一张图片,到最后渲染到屏幕,都经历了哪些流程?

文章目录 图像的表示在iOS设备上 图像的表示 位图(bitmap)是一种常见的图像表示方式,它通过记录图像中每个像素的颜色信息来表示整张图片。以下是位图表示图片的基本原理: 像素网格: 位图将图像分解成一个网格&…

【数据结构】十一、图的应用:Prime算法、Dijkstra算法和拓扑排序

目录 一、最小生成树(Prime算法) 1)概念 2)最小生成树的应用 3)最小生成树的创建 4)代码实现 五、最短路径 1)Dijkstra算法 Question: 六、拓扑排序 1)概念 2&…

机器学习--线性模型和非线性模型的区别?哪些模型是线性模型,哪些模型是非线性模型?

文章目录 引言线性模型和非线性模型的区别线性模型非线性模型 总结线性模型非线性模型 引言 在机器学习和统计学领域,模型的选择直接影响到预测的准确性和计算的效率。根据输入特征与输出变量之间关系的复杂程度,模型可以分为线性模型和非线性模型。线性…

【SpringBoot + Vue 尚庭公寓实战】根据类型查询标签列表接口实现(五)

【SpringBoot Vue 尚庭公寓实战】根据类型查询标签列表接口实现(五) 文章目录 【SpringBoot Vue 尚庭公寓实战】根据类型查询标签列表接口实现(五)1、查看接口2、进行开发 1、查看接口 启动项目 访问:http://localho…

《软件定义安全》之一:SDN和NFV:下一代网络的变革

第1章 SDN和NFV:下一代网络的变革 1.什么是SDN和NFV 1.1 SDN/NFV的体系结构 SDN SDN的体系结构可以分为3层: 基础设施层由经过资源抽象的网络设备组成,仅实现网络转发等数据平面的功能,不包含或仅包含有限的控制平面的功能。…

【Redis学习笔记05】Jedis客户端(中)

Jedis客户端 1. 命令 1.1 String类型 1.1.1 常见命令 SET命令 语法:SET key value [EX seconds | PX milliseconds] [NX|XX] 说明:将string类型的value值设置到指定key中,如果之前该key存在,则会覆盖原先的值,原先…

有什么借助伦敦金行情软件才能做的技术分析方法吗?

现在伦敦金交易都可以在网上去完成,这样我们就必须借助伦敦金行情软件。由于科学技术的发展,现在的伦敦金行情软件不光提供交易买卖的功能,它还有图表分析、时间周期选择等等各种各样的功能,这样丰富了我们的分析手段。那么下面我…