Linux--网络基础

计算机网络背景

计算机网络背景是一个复杂而丰富的领域,涵盖了从计算机单机模式到网络互联的演变过程,以及网络技术的不断发展和创新。

计算机单机模式和独立发展

在早期,计算机主要以单机模式存在,即每台计算机都是独立的,它们之间无法直接进行通信和数据共享。这种模式下,计算机之间的协同工作非常困难,效率也极低。例如,当多个计算机需要共同完成某项任务时,它们只能通过物理媒介(如光盘、磁带等)来传递数据,这大大限制了计算机的应用范围和效率。

网络互联的兴起与发展

随着计算机技术的不断发展,人们开始意识到将多台计算机连接在一起的重要性。于是,网络互联的概念应运而生。网络互联不仅实现了计算机之间的数据共享和通信,还大大提高了计算机系统的整体性能和效率。

  • 局域网(LAN)的出现
    局域网是指在一个较小区域内(如一个楼层、一栋楼或一个校园)的计算机相互连接形成的网络。它主要使用交换机和路由器等设备进行数据转发和路由选择。
    在这里插入图片描述

  • 广域网(WAN)的扩展
    广域网则是指覆盖多个远距离区域的远程网络。它通常跨越城市、国家甚至全球范围,通过长途通信线路(如光缆、卫星等)将多个局域网连接起来。
    在这里插入图片描述

  • 城域网(MAN)的补充
    城域网是连接整个城市的网络,它比局域网更大但比广域网更小。城域网为城市范围内的计算机提供了高效、稳定的数据传输服务。

互联网的形成与普及

互联网是计算机网络发展的高级阶段,它是一个由全球范围内的众多计算机网络相互连接而成的庞大网络。互联网的形成经历了多个阶段,包括ARPANET的创建、TCP/IP协议的普及以及互联网的商业化等。

  • ARPANET的创建
    ARPANET是美国国防部高级研究计划局在20世纪60年代末创建的第一个分组交换网络。它最初只连接了四台计算机,但为后来的互联网发展奠定了基础。
  • TCP/IP协议的普及
    TCP/IP协议是互联网的核心协议之一,它规定了互联网中数据传输的格式和规则。随着TCP/IP协议的普及和应用,越来越多的计算机和网络开始支持该协议,从而实现了互联网的互连和互通。
  • 互联网的商业化
    随着互联网的不断发展,其商业化进程也逐渐加速。越来越多的公司开始提供互联网接入服务、网站建设服务以及电子商务等应用服务。这些服务的出现不仅丰富了互联网的应用场景和功能,还推动了互联网产业的快速发展。

协议

在计算机网络中,协议是一种“约定”,它规定了数据在网络中传输的方式、格式、顺序以及双方进行通信的交互规则。这些规则确保了不同设备和系统之间能够相互理解和协作,从而实现了信息的有效传递和共享。

协议的作用

  • 确保数据传输的正确性:协议规定了数据的传输格式和顺序,确保了数据在传输过程中不会出现错误或丢失。
  • 提高通信效率:通过规定数据传输的方式和顺序,协议可以优化通信过程,减少不必要的等待和重传,从而提高通信效率。
  • 保障安全性:协议中通常包含安全性的规定,如数据加密、身份认证等,以保障数据传输的安全性。

协议的分类

计算机中的协议可以根据不同的标准进行分类,常见的分类方式包括:

1.按协议的功能分类:

  • 应用层协议:如HTTP(超文本传输协议)、FTP(文件传输协议)、SMTP(简单邮件传输协议)等,这些协议为应用程序提供了网络服务。
  • 传输层协议:如TCP(传输控制协议)和UDP(用户数据报协议),这些协议负责向用户提供端到端的通信服务,实现流量控制和差错控制。
  • 网络层协议:如IP(互联网协议),它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。
  • 数据链路层协议:如以太网协议,它定义了如何在单个链路上传输数据。
  • 物理层协议:定义了数据传输的物理介质和接口标准,如RS-232、USB等。

2.按协议的开放性分类:

  • 开放式协议:如TCP/IP协议族,这些协议是公开的、标准化的,任何厂商都可以按照标准开发支持这些协议的产品。
  • 私有协议:某些厂商为了保持技术领先或实现特定功能,可能会开发自己的私有协议,这些协议通常不公开或只在小范围内使用。

协议的实现

协议的实现通常涉及软件编程和硬件支持两个方面。在软件方面,开发人员需要按照协议规范编写相应的程序代码,以实现协议规定的功能。在硬件方面,则需要提供相应的接口和物理介质来支持协议的运行。

协议的标准化

协议的标准化是计算机网络发展的重要保障。通过制定统一的协议标准,可以确保不同厂商的设备能够相互通信和协作,从而实现网络的互联互通。国际标准化组织(ISO)和互联网工程任务组(IETF)等机构在协议标准化方面发挥了重要作用。

OSI模型

OSI模型,即开放式系统互联(Open Systems Interconnection)模型,是由国际标准化组织(ISO)在1985年研究并提出的网络互连模型。该模型是一个分层的网络通信协议体系结构,它定义了网络互连的七层框架,每一层都完成特定的功能,并将其整合到更高层次的通信过程中。
在这里插入图片描述
OSI模型从低到高依次分为以下七层:

1.物理层(Physical Layer)

  • 主要功能:负责传输数据比特流,即将数据从发送方传输到接收方,通过物理介质(如网线、无线信号等)实现。
  • 传输单位:比特(bit)。
  • 常用设备:集线器、中继器、调制解调器、网线、双绞线、同轴电缆等。

2.数据链路层(Data Link Layer)

  • 主要功能:负责数据包的传输和接收,错误检测和纠正,确保数据的可靠传输。该层将比特组合成字节,再将字节组合成帧,使用链路层地址(如以太网使用MAC地址)来访问介质,并进行差错检测。
  • 传输单位:帧(Frame)。
    重要协议:ISO1745、HDLC(高级数据链路控制)等。
    常用设备:交换机、网卡等。

3.网络层(Network Layer)

  • 主要功能:通过IP地址和路由器实现数据包的传输,负责数据包的寻址和路由选择,实现不同网络之间的通信。
  • 传输单位:数据包(Packet)。
  • 重要协议:IP协议(Internet Protocol)、ICMP(Internet Control Message Protocol)、ARP(Address Resolution Protocol)、RARP(Reverse Address Resolution Protocol)等。
  • 常用设备:路由器。

4.传输层(Transport Layer)

  • 主要功能:提供端到端的可靠数据传输,确保数据包按顺序到达目的地。该层还负责处理差错控制和流量控制等问题。
  • 传输单位:段(Segment)或报文(Message)。
  • 重要协议:TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议)等。

5.会话层(Session Layer)

  • 主要功能:建立、管理和终止会话,确保数据流的正确传输,如会话控制和同步。
  • 传输单位:会话(Session)。

6.表示层(Presentation Layer)

  • 主要功能:处理数据的编码、加密和压缩,确保数据格式的统一和可识别。该层还可以将不同格式的数据进行转换,以便不同系统之间的互操作性。
  • 传输单位:报文(Message)。

7.应用层(Application Layer)

  • 主要功能:为用户提供网络服务,如HTTP(用于网页浏览)、FTP(用于文件传输)、SMTP(用于电子邮件传输)等,完成各种应用程序之间的数据传输。
  • 传输单位:报文(Message)。

OSI模型的特点

分层结构:将整个通信过程划分为七个层次,每个层次都有特定的功能和任务,并通过接口与邻近层次进行通信。这种分层结构使网络设计更加灵活,并且可以独立地对每个层次进行改进和扩展。

模块化设计:每个层次在OSI模型中都是独立的模块,具有特定的功能和接口。这种模块化设计使得网络协议的开发和维护更加容易,同时也方便了协议的替换和升级。

协议标准化:OSI模型对网络通信的每个层次都定义了特定的协议,这些协议是经过国际标准化组织(ISO)标准化的。标准化的协议确保了不同厂商之间的互操作性,使得网络设备和系统能够正常地进行通信。

独立性:每个层次在OSI模型中都是相互独立的,层次之间的变化不会对其他层次产生影响。这种独立性使得网络的设计更加灵活,可以针对不同的需求进行定制和优化。

TCP/IP模型

TCP/IP模型,全称为TCP/IP参考模型(TCP/IP reference model),是计算机网络的祖父ARPANET和其后继的因特网使用的参考模型。它是一组用于实现网络互连的通信协议,Internet网络体系结构以TCP/IP为核心。

从上到下依次为:应用层、传输层、网络层(也称为主机到主机层或网际层)、物理层(链路层,有时也包含物理层)。这一模型与OSI(开放式系统互联)参考模型相比更为简洁。
在这里插入图片描述

TCP/IP模型OSI模型
层次结构四层七层
定义方式先有协议集然后建立模型在协议开发前设计
通用性不适用于非TCP/IP网络具有通用性
复杂性相对简单层次过多,划分意义不大但增加了复杂性
抽象能力较低,功能描述和实现细节混在一起高,适合描述各种网络

这个模型将在之后大量会运用到。

TCP/IP协议

TCP/IP协议(Transmission Control Protocol/Internet Protocol)是互联网的核心协议套件,它定义了电子设备如何连入因特网以及数据如何在它们之间传输的标准。TCP/IP协议并非指单个协议,而是由一系列协议组成的协议族,这些协议共同工作以确保数据的可靠传输。

TCP(传输控制协议)

TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP通过三次握手过程建立连接,确保数据包的顺序、完整性和正确性。TCP通过流量控制、拥塞控制等机制来避免网络拥塞,确保数据传输的可靠性。TCP适用于对可靠性要求较高的应用场景,如文件传输、网页浏览等。

IP(互联网协议)

IP是TCP/IP协议族中的网络层协议,它负责将数据包从源主机传输到目的主机。IP协议定义了数据包的格式、寻址方式和路由机制。IP地址是互联网中设备的唯一标识,通过IP地址,数据包可以在全球范围内的网络中传输。IP协议提供的是无连接的、不可靠的服务,它不保证数据包的顺序、完整性和正确性,这些功能由更高层的协议(如TCP)来实现

MAC地址

  • MAC 地址用来识别数据链路层中相连的节点;

  • 长度为 48 位, 及 6 个字节. 一般用 16 进制数字加上冒号的形式来表示(例如:08:00:27:03:fb:19)

  • • 在网卡出厂时就确定了, 不能修改. mac 地址通常是唯一的。

IP地址

IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。它是IP协议提供的一种统一的地址格式,为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

功能

  • 设备识别和寻址:用于识别和定位连接到网络上的设备,包括个人计算机、服务器、智能手机、路由器等。
  • 数据路由:主要用于数据在网络中的传递。当一个设备通过互联网发送数据时,数据包会根据目标IP地址进行路由,路由器负责将数据从源IP地址发送到目标IP地址对应的设备。
  • 网络通信:是实现网络通信的基础。网络中的设备可以通过IP地址相互通信,交换数据、发送请求和应答等。

类型与分类

IP地址有多种类型,主要根据版本和用途进行分类:

1.按版本分类:

  • IPv4:目前广泛使用的IP地址标准,由四个十进制数(每个数的取值范围为0-255)组成,以“.”分隔,例如192.168.0.1。IPv4地址空间有限,预计将在未来被耗尽。
  • IPv6:下一代IP地址标准,由八组四位十六进制数(每个数的取值范围为0-FFFF)组成,以“:”分隔,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334。IPv6旨在解决IPv4地址空间不足的问题,提供几乎无限制的地址空间。

2.按用途分类:

  • 公有IP地址:在公共互联网上唯一标识一个设备或网络的IP地址,可以直接被其他设备访问。通常由互联网服务提供商(ISP)分配。
  • 私有IP地址:在局域网中使用的特定地址范围,不被路由器转发到公共互联网,用于内部通信。常见的私有IP地址范围包括IPv4的10.0.0.0-10.255.255.255、172.16.0.0-172.31.255.255和192.168.0.0-192.168.255.255等。
  • 静态IP地址:在网络中固定分配给一个设备的IP地址,不会随着设备重新连接网络而改变。通常用于需要长期稳定连接的设备,如服务器。
  • 动态IP地址:在网络中临时分配给一个设备的IP地址,可以随着设备重新连接网络而改变。由DHCP(Dynamic Host Configuration Protocol)服务器分配,通常用于普通用户终端设备。

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

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

相关文章

STL—string类—模拟实现

STL—string类—模拟实现 熟悉了string的结构和各自接口的使用之后,现在就要尝试去模拟实现string类 这个string类为了避免和我们库里的string类冲突,因此我们需要定义一个自己的命名空间 namespace wzf {class string{public://成员函数private://成…

json将列表字典等转字符串,然后解析又转回来

在 Python 中使用 json 模块来方便地在数据和 JSON 格式字符串之间进行转换,以便进行数据的存储、传输或与其他支持 JSON 格式的系统进行交互。 JSON 字符串通过 json.loads() 函数转换为 Python 对象。 pthon对象通过json.dumps()转为字符串 import jsonstr_list…

前端JS特效第44集:JS动态波浪文字动画显示特效

JS动态波浪文字动画显示特效&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下(全部代码在文章末尾)&#xff1a; <!DOCTYPE html> <html lang"zh"> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compat…

台风预警新选择:太阳能LED宣传信号杆

台风预警新选择&#xff1a;太阳能LED宣传信号杆 以下是对台风灾害的严重性、传统预警方式的不足以及太阳能台风预警宣传信号杆的出现和优势等方面进行分析和归纳&#xff1a; 一、台风灾害的严重性 台风作为一种强烈的自然灾害&#xff0c;给沿海地区带来了极大的威胁。台风…

springboot 日期格式化全局LocalDateTime

springboot 默认使用ObjectMapper(jackson)操作对象的序列化和反序列化 分析 从springboot:3.2.1 web 项目序列化响应体的过程中分析日期格式化问题&#xff08;左侧是请求处理流程&#xff0c;右侧是在流程中使用的一些对象的来源&#xff09; ObjectMapper与JsonSerialize…

Spring Security 授权

基于request的授权 HttpSecurity 权限配置 Beanpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception {http.authorizeHttpRequests(authorize -> {authorize// 放行请求:针对含有 admin 权限的用户放行 /user/get 接口.requestMatchers("/us…

国内外API平台对比:RapidAPI、聚合数据、API云市场、幂简集成

随着人工智能技术的飞速发展&#xff0c;AI已经成为推动各行各业创新和转型的重要力量。在这个过程中&#xff0c;API&#xff08;应用程序编程接口&#xff09;扮演着至关重要的角色。API不仅使得软件组件之间的交互变得简单快捷&#xff0c;还为开发者提供了一种快速融合AI技…

大数据架构对比记录

Lambda架构 -维护两套项目&#xff0c;开发和维护成本高 -两套链路&#xff0c;数据容易不一致 -数据计算成本大&#xff08;例如原定每小时计算一次&#xff0c;但有额外新需求需要计算两点半-三点半之间数据&#xff0c;则需要重新计算&#xff09; Kappa -过于依赖kafka消…

从PyTorch官方的一篇教程说开去(1 - 初心)

原文在此&#xff0c;喜欢读原汁原味的可以自行去跟&#xff0c;这是一个非常经典和有学习意义的例子&#xff0c;在此向老爷子们致敬 - https://pytorch.org/tutorials/intermediate/reinforcement_q_learning.html 开源文化好是好&#xff0c;但是“公地的悲哀”这点避不开…

【信号频率估计】MVDR算法及MATLAB仿真

目录 一、MVDR算法1.1 简介1.2 原理1.3 特点1.3.1 优点1.3.2 缺点 二、算法应用实例2.1 信号的频率估计2.2 MATLAB仿真代码 三、参考文献 一、MVDR算法 1.1 简介 最小方差无失真响应&#xff08;Mininum Variance Distortionless Response&#xff0c;MVDR&#xff09;算法最…

XLPR车牌自动识别开发包

XLPR SDK适用于为各种应用增加车牌自动识别能力&#xff0c;支持多个区域检测&#xff0c;支持车牌颜色和号码输出&#xff0c;提供Web API和 原生API。官方下载地址&#xff1a;XLPR车牌识别开发包。 XLPR主要由三个主要部分构成&#xff1a;D-Net、R-NET和C-Net&#xff0c;…

基于Java的疫情防控期间某村外出务工人员信息管理系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;Java MySQL 工具&#xff1a;Eclipse、MySQL环境配置工具 系统展示 首页 用户管理界面 行程分析…

【Python游戏】编程开发贪吃蛇游戏(第一期)

本文收录于 《一起学Python趣味编程》专栏&#xff0c;从零基础开始&#xff0c;分享一些Python编程知识&#xff0c;欢迎关注&#xff0c;谢谢&#xff01; 文章目录 一、前言二、贪吃蛇游戏开发简介2.1 贪吃蛇游戏规则2.2 贪吃蛇游戏开发步骤 三、贪吃蛇游戏开发实战四、总结…

昇思25天学习打卡营第03天|数据集 Dataset

数据集是深度学习的灵魂&#xff0c;就像做饭需要好的食材一样&#xff0c;没有高质量的数据&#xff0c;再牛的模型也训练不出来。而MindSpore的数据集处理真的很方便&#xff0c;就像是一个强大的厨房&#xff0c;提供了各种工具和食材。通过这个教程&#xff0c;我学会了怎么…

活用 localStorage

我维护的这款工具 https://editor.yunwow.cn/ 已经帮我写了 7 篇文章了&#xff0c; 用起来很顺手&#xff0c;因此我打算再给它升级下让它更方便&#xff0c;我决定要给它加个本地缓存功能。我给它提的要求是&#xff1a; 1. 至少能缓存 5 篇文章 2. 能有选择的加载模板 3…

VBA技术资料MF172:UDF向任何单元格添加数据验证

我给VBA的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套&#xff0c;分为初级、中级、高级三大部分&#xff0c;教程是对VBA的系统讲解&#…

线性表的链式存储结构————双链表(java)

线性表的链式存储结构————双链表&#xff08;java&#xff09; 文章目录 线性表的链式存储结构————双链表&#xff08;java&#xff09;双链表双链表的创建插入数据元素头插法尾插法 求链表的长度输出双链表删除双链表中的指定元素总代码运行效果用Java内部类实现双链表…

在组件中显示tuku的照片

一、问题 &#xff08;1&#xff09;错误&#xff1a;域名前面一定要加http://要不然会报错 &#xff08;2&#xff09;在使用 defineModel传值时一定要动态绑定&#xff0c;要不然图片不显示 &#xff08;3&#xff09;改完后在商品列表中显示图片信息必须 在显示的图片中取…

基于天地图使用Leaflet.js进行WebGIS开发实战

目录 前言 一、天地图的key 1、创建应用 2、调用限制策略 注&#xff1a; &#xff08;1&#xff09;日服务调用超量会暂时拒绝访问&#xff0c;次日自动开启&#xff1b; &#xff08;2&#xff09;如果服务调用过程中存在数据爬取或者下载行为&#xff0c;服务调用会被自…

ssh -D 选项用于动态(Dynamic)端口转发

举例实现不同ssh连接功能目录 一、功能简介 -D 支持 SOCKS5 协议&#xff0c;可以同时转发 TCP 和 UDP 报文 二、原理介绍 假设拥有三台主机&#xff0c;具体环境如下&#xff1a; 1. 主机 A&#xff1a;本地主机&#xff0c;即 SSH 客户 所在的主机&#xff0c;IP&#xff1…