【网络】计算机网络基础——计算机网络背景和发展、认识网络协议、OSI七层模型、TCP/IP四层模型、网络的传输

文章目录

  • Linux网络
    • 1. 计算机网络背景和发展
    • 2. 认识网络协议
    • 3. OSI七层模型
      • 3.1 物理层
      • 3.2 数据链路层
      • 3.3 网络层
      • 3.4 传输层
      • 3.5 会话层
      • 3.6 表示层
      • 3.7 应用层
    • 4. TCP/IP四层模型
    • 5. 网络的传输

Linux网络

1. 计算机网络背景和发展

  开始的计算机都是独立模式(计算机之间相互独立)

在这里插入图片描述
  

  由于每台计算机所存储和处理的数据都局限在本地,不同计算机之间难以直接交换和共享数据,所以提出了:网络互联(多台计算机连接在一起, 完成数据共享)。

在这里插入图片描述
  

  网络互联打破了数据的孤立状态,使得不同计算机之间能够高效地交换信息和共享资源,但是需要对网络的管理复杂度增加了,所以又使用了:局域网LAN: (计算机数量更多了, 通过交换机和路由器连接在一起)。

在这里插入图片描述

  

  但是局域网的覆盖范围还是有限,通常只能覆盖一个相对较小的区域,为了让范围在大些,又提出了使用:广域网WAN: (将远隔千里的计算机都连在一起)。

在这里插入图片描述
  

  广域网(WAN)和局域网(LAN)主要有以下区别:

  (1)覆盖范围:

  局域网通常覆盖的区域较小,如一个办公室、一栋楼、一个校园等。

  广域网的覆盖范围则广泛得多,可以跨越城市、国家甚至大洲,连接不同的局域网。
  

  (2)传输速率:

  局域网内的数据传输速率通常较高,一般能达到 100Mbps 甚至更高。

  广域网由于距离远、中间经过的网络节点多,传输速率相对较低。

  

  (3)网络所有权:

  局域网通常为一个组织或个人所拥有和管理。

  广域网则一般由电信运营商等服务提供商建立和运营。

  

  (4)拓扑结构:

  局域网的拓扑结构相对简单,常见的有星型、总线型和环形等。

  广域网的拓扑结构较为复杂,通常是由多个不同的网络通过路由器等设备连接而成。

  

  (5)成本:

  构建和维护局域网的成本相对较低。

  广域网的建设和运营成本较高。

  

  (6)安全性:

  局域网相对更容易控制访问权限和保障数据安全。

  广域网由于范围广、涉及的用户多,数据在传输过程中面临的安全风险较大。

  
  例如,一个公司内部的办公网络就是典型的局域网,而连接不同城市分公司的网络则属于广域网。

  虽然有这么多差别,但其实所谓 “局域网” 和 “广域网” 也只是一个相对的概念。

  

2. 认识网络协议

  “协议” 是一种约定。是计算机网络中进行数据交换和通信所遵循的规则、标准或约定的集合。

  计算机之间的传输媒介是光信号和电信号。通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息。要想传递各种不同的信息,就需要约定好双方的数据格式。

  简单的说:我们让这些不同厂商之间生产的计算机能够相互通信,所有的厂商就要约定一个共同的标准,大家都来遵守这一个共同的标准,这就是网络协议

  

  网络协议特点:

  (1)标准化: 网络协议通常由标准化组织制定和发布,以确保不同厂商生产的设备和软件能够相互兼容和通信。

  (2)分层结构: 常见的网络协议采用分层的架构,如 OSI 模型和 TCP/IP 模型,每一层负责特定的功能,并遵循相应的协议。

  

  网络协议的作用:

  (1)数据封装和解封装:在发送数据时,按照协议将数据进行封装,添加必要的控制信息;接收方则按照协议进行解封装,获取原始数据。

  (2)错误检测和纠正:协议能够检测传输过程中出现的错误,并采取相应的纠正措施。

  (3)流量控制:防止发送方发送数据过快,导致接收方无法及时处理

  

3. OSI七层模型

  OSI七层模型在计算机网络中具有极其重要的地位。

  OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范。

  把网络从逻辑上分为了7层,每一层都有相关、相对应的物理设备,比如路由器,交换机。

  OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输。

  它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。

  通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

在这里插入图片描述

在这里插入图片描述
  
在这里插入图片描述

  

3.1 物理层

  物理层是 OSI 七层模型中的最底层,它是整个网络通信的基础。

  物理层主要负责在物理介质上传输未经处理的比特流,也就是 0 和 1 的电信号或光信号。

  其主要功能包括:

  定义了物理连接的特性,如连接器的类型、插头的规格、线缆的类型(如双绞线、同轴电缆、光纤等)以及接口的机械和电气特性。

  规定了信号的传输模式,包括模拟信号和数字信号的传输方式,以及信号的编码和解码方式。

  确定了数据传输的速率和带宽。

  

  物理层的技术标准和规范非常多样化,以适应不同的应用场景和需求。例如:

  在以太网中,常用的物理层标准有 10BASE-T(使用双绞线,传输速率为 10 Mbps)、100BASE-TX(双绞线,100 Mbps)等。

  在无线通信中,如 Wi-Fi 技术,物理层规定了不同的频段、调制方式和传输功率等。

  物理层的性能直接影响到整个网络的通信质量和效率。如果物理层出现问题,如线缆损坏、信号干扰等,将导致数据传输错误或中断。

  
在这里插入图片描述

  

3.2 数据链路层

  数据链路层在 OSI 七层模型中位于物理层之上。它主要负责将物理层传输的比特流组合成帧,并进行差错检测和纠正,以在相邻节点之间可靠地传输数据。

  其关键功能包括:

  帧的封装与解封装: 将网络层传来的数据加上帧头和帧尾,封装成帧。接收方则进行相反的操作,解封装出原始数据。

  差错控制: 通过使用循环冗余校验(CRC)等技术检测和纠正帧传输过程中产生的错误。

  流量控制: 协调发送方和接收方的传输速率,防止接收方缓冲区溢出。

  介质访问控制(MAC):在共享介质的网络中,确定节点何时能够访问介质进行数据传输,例如以太网中的 CSMA/CD 协议。

  

  数据链路层的常见协议有:

  以太网协议:这是应用最广泛的数据链路层协议之一。

  PPP(Point-to-Point Protocol,点到点协议):常用于拨号连接和专线连接。

  举例来说,当您通过以太网发送一份文件时,数据链路层会将文件分割成多个帧,并为每个帧添加控制信息。在接收端,数据链路层会检查帧是否有错误,如果有错误会请求重传,确保数据的正确传输。

  

在这里插入图片描述

  

3.3 网络层

  网络层处于 OSI 七层模型中的第三层,它的主要职责是负责数据包的路由和转发,以实现不同网络之间的通信。

  网络层的关键功能包括:

  逻辑寻址: 为网络中的设备分配逻辑地址(如 IP 地址),以便识别和定位网络中的节点。

  路由选择: 根据路由表和特定的路由算法,确定数据包从源节点到目标节点的最佳路径。

  数据包的分段与重组: 当数据包的大小超过网络链路的最大传输单元(MTU)时,网络层负责将数据包分段,在目标节点再进行重组。

  **拥塞控制:**监测网络的拥塞情况,并采取相应的措施来缓解拥塞,例如调整发送速率。

  

  网络层的核心协议是 IP 协议(Internet Protocol),此外还包括 ICMP(Internet Control Message Protocol,互联网控制报文协议)、IGMP(Internet Group Management Protocol,互联网组管理协议)等。

  例如,当您发送一封电子邮件从北京到纽约,网络层会根据目标地址和网络的拓扑结构,选择一系列的路由器和链路,将数据包逐步转发到目的地。

  

在这里插入图片描述
  

  认识IP地址

  IP协议有两个版本,IPv4和IPv6。

  IP地址是在IP协议中,用来标识网络中不同主机的地址。

  对于IPv4来说,IP地址是一个4字节,32位的整数。

  我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节,范围是 0 - 255。

  

  认识MAC地址:

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

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

  在网卡出厂时就确定了, 不能修改。 mac地址通常是唯一的(虚拟机中的mac地址不是真实的mac地址,可能会冲突,也有些网卡支持用户配置mac地址)。

  

3.4 传输层

  传输层处于 OSI 七层模型的第四层,它起着承上启下的关键作用,为上层的应用层提供端到端的数据传输服务。

  传输层的主要功能包括:

  服务质量的定义: 根据应用程序的需求,提供不同质量的传输服务,如可靠的面向连接服务(TCP)或不可靠的无连接服务(UDP)。

  端口号的分配: 通过端口号来标识不同的应用程序或进程,使多个应用程序能够同时共享网络连接。

  分段与重组: 如果应用层传来的数据过大,传输层会将其分割成较小的段,并在接收端进行重组。

  流量控制: 通过调整发送方的发送速率,确保接收方不会因为数据接收过快而缓冲区溢出。

  差错控制: 对传输的数据进行差错检测,对于出错的数据进行重传。

  

  常见的传输层协议有 TCP(Transmission Control Protocol,传输控制协议) UDP(User Datagram Protocol,用户数据报协议)。

  TCP 提供可靠的、面向连接的、带有流量控制和拥塞控制的传输服务。 例如,在文件传输、电子邮件等对数据准确性要求高的应用中通常使用 TCP。

  UDP 则提供不可靠的、无连接的、快速但尽力而为的数据传输服务。 像实时视频流、在线游戏等对实时性要求高而对少量数据丢失不太敏感的应用常使用 UDP。

  

  举例来说,当您在浏览器中访问一个网站时,浏览器与服务器之间的通信就是通过传输层来完成的。传输层根据应用的需求选择合适的协议,并确保数据能够准确、有序地在两端之间传输。

  传输层的有效工作使得各种应用能够在网络上稳定、高效地运行,满足了不同应用对数据传输的多样化需求。

  

在这里插入图片描述

  

3.5 会话层

  会话层处于 OSI 七层模型的第五层,它主要负责在通信双方之间建立、管理和终止会话。

  会话层的主要功能包括:

  会话建立和维护: 在通信双方之间建立连接,并在通信过程中保持会话的活跃状态。

  会话同步: 确保会话过程中数据的有序传输和完整性,处理因网络故障等原因导致的数据丢失或乱序问题。

  令牌管理: 控制会话双方对共享资源的访问权限,避免冲突。

  活动管理: 协调和管理会话中的各种活动,如数据交换、远程操作等。

  

  会话层的作用在一些复杂的通信场景中尤为重要。例如,在远程数据库访问中,会话层确保了多个查询和操作的有序进行,并在网络中断后能够恢复会话状态,保证数据的一致性和完整性。

  然而,在实际的网络通信中,会话层的功能在很多情况下被整合到了应用层或传输层中,其独立性相对较弱。

  

3.6 表示层

  表示层位于 OSI 七层模型的第六层,主要负责处理数据的表示方式、格式转换、加密和解密等。

  其重要功能包括:

  数据格式转换: 将来自应用层的数据转换为适合网络传输的格式,或者将接收到的数据转换为应用层能够理解的格式。例如,将不同计算机系统中的字符编码进行转换。

  数据压缩与解压缩: 减少数据的冗余,提高传输效率。

  数据加密与解密: 对敏感数据进行加密,以保证数据在网络传输中的安全性,在接收端再进行解密。

  语法选择:根据不同的应用需求选择合适的语法表示。

  

  表示层的作用在以下场景中较为明显:

  比如,当一个图像文件从一台计算机发送到另一台计算机时,发送方的表示层会将图像数据进行压缩和编码,使其适合在网络中传输;接收方的表示层则进行解压缩和解码,还原出原始的图像数据。

  在现代网络通信中,由于很多表示层的功能已经被集成到应用程序中,或者通过特定的应用协议来实现,所以表示层的独立性不像其他层那么突出。

  

3.7 应用层

  应用层是 OSI 七层模型中的最高层,它直接与用户和应用程序交互,为用户提供各种网络服务。

  应用层的主要功能包括:

  提供用户接口: 使得用户能够与网络进行交互,例如通过图形界面、命令行等方式。

  识别和定义通信对象: 确定通信的目标和所需的服务。

  

  应用程序服务:包含了各种各样的网络应用和服务,如网页浏览(HTTP)、电子邮件(SMTP、POP3 等)、文件传输(FTP)、远程登录(Telnet)、域名系统(DNS)等。

  应用层的特点和重要性体现在以下几个方面:

  多样性: 涵盖了众多不同类型和功能的应用,满足了用户在工作、学习、娱乐等方面的各种需求。

  与用户需求紧密结合: 直接响应和满足用户的具体业务需求和操作习惯。

  不断发展和创新: 随着技术的进步和用户需求的变化,新的应用和服务不断涌现。

  举例来说,当您在浏览器中输入网址访问网站时,应用层的 HTTP 协议负责与服务器进行通信,获取网页内容并展示在您的屏幕上。又比如,您使用电子邮件客户端发送邮件时,SMTP 协议在应用层发挥作用,将邮件从您的计算机发送到收件人的邮件服务器。
应用层是网络通信与用户实际需求的直接接口,是整个网络体系中最贴近用户、最能体现网络价值的一层

  
在这里插入图片描述

  

4. TCP/IP四层模型

  物理层: 负责光/电信号的传递方式。 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层。

  数据链路层: 负责设备之间的数据帧的传送和识别。 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。

  网络层: 负责地址管理和路由选择。 例如在IP协议中, 通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由),路由器(Router)工作在网路层。

  传输层: 负责两台主机之间的数据传输。 如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。

  应用层: 负责应用程序间沟通。如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。

  
在这里插入图片描述

  物理层我们考虑的比较少,因此很多时候也可以称为TCP/IP四层模型。

  一般而言:

  (1)对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容。

  (2)对于一台路由器, 它实现了从网络层到物理层。

  (3)对于一台交换机, 它实现了从数据链路层到物理层。

  (4)对于集线器, 它只实现了物理层。

  但是并不绝对,很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发)。

  

5. 网络的传输

  同一个网段内的两台主机进行文件传输。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  

数据包封装和分用

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

  应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)。

  首部信息中包含了一些类似于首部有多长,,载荷(payload)有多长,上层协议是什么等信息。

  数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理。

  

  下图为数据封装的过程:

在这里插入图片描述

在这里插入图片描述

            

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

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

相关文章

谷歌新的网站索引策略:将来可能不再为您的网站编制索引

10 年前,在 WordPress 上推出新博客的同时,Google 上的内容几乎是即时索引。 搜索引擎试图尽快向用户提供所有信息,这对内容创作者也有利。 然而,随着时间的推移,情况发生了变化,现在谷歌在索引方面变得极…

【解决】ubuntu20.04 root用户无法SSH登陆问题

Ubuntu root用户无法登录的问题通常可以通过修改‌SSH配置文件和系统登录配置来解决。 修改SSH配置文件 sudo vim /etc/ssh/sshd_config 找到 PermitRootLogin 设置,并将其值更改为 yes 以允许root用户通过SSH登录 保存并关闭文件之后,需要重启SSH服务…

用uniapp 及socket.io做一个简单聊天app 2

在这里只有群聊,二个好友聊天,可以认为是建了一个二人的群聊。 const express require(express); const http require(http); const socketIo require(socket.io); const cors require(cors); // 引入 cors 中间件const app express(); const serv…

Leetcode—426. 将二叉搜索树转化为排序的双向链表【中等】Plus

2024每日刷题(148) Leetcode—426. 将二叉搜索树转化为排序的双向链表 实现代码 /* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node() {}Node(int _val) {val _val;left NULL;right NULL;}Node(int _val, Nod…

R包:plot1cell单细胞可视化包

介绍 plot1cell是用于单细胞数据seurat数据对象的可视化包。 安装 ## You might need to install the dependencies below if they are not available in your R library. bioc.packages <- c("biomaRt","GenomeInfoDb","EnsDb.Hsapiens.v86&qu…

无人机之起飞前准备

一、检查无人机状态 1、确保无人机的电池充满电或有足够的电量&#xff1b; 2、检查螺旋桨是否安装牢固&#xff0c;没有损坏&#xff1b; 3、确认无人机的固件是最新版本&#xff0c;以保证拥有最新的功能和修正。 二、选择合适的起飞地点 1、避免在人群密集或有障碍物的…

MySQL:增删改查、临时表、授权相关示例

目录 概念 数据完整性 主键 数据类型 精确数字 近似数字 字符串 二进制字符串 日期和时间 MySQL常用语句示例 SQL结构化查询语言 显示所有数据库 显示所有表 查看指定表的结构 查询指定表的所有列 创建一个数据库 创建表和列 插入数据记录 查询数据记录 修…

C++ Map Set的模拟实现

C Map Set的模拟实现 文章目录 前言一、Map 和 Set是什么&#xff1f;1.Set2.Map 二、困难点困难一、set和map中值的类型不同困难二、Map和Set中值不可修改困难三、红黑树中迭代器的和--1.2.- - 困难四、map中[ ] 运算符重载的实现1.修改红黑树以及Map和Set中insert的返回值1.修…

Three.js投射光线实现三维物体交互

<template><div id"webgl"></div> </template><script setup> import * as THREE from three //导入轨道控制器 import { OrbitControls } from three/examples/jsm/controls/OrbitControls // 导入 dat.gui import { GUI } from thre…

k8s v1.30 完整安装过程及CNI安装过程总结

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G技术研究。 博客内容主要围绕…

【ffmpeg命令入门】添加水印

文章目录 前言什么是水印&#xff1f;为什么要添加水印&#xff1f;ffmpeg添加水印添加图片水印添加文字水印基本使用方法drawtext的参数 总结 前言 在视频制作和编辑的过程中&#xff0c;添加水印是一个常见且重要的步骤。水印不仅可以保护版权&#xff0c;还能用于品牌宣传和…

使用LLaMA-Factory对Llama3-8B-Chinese-Chat进行微调

文章目录 模型及数据&#xff1a;模型下载数据 LLaMA-Factory启动拉取代码启动webui 模型训练数据导入数据预览设置模型路径配置参数及参数的保存开始训练 过程观察加载模型、对话模型导出、再次加载 模型及数据&#xff1a; 模型下载 使用基于中文数据训练过的 LLaMA3 8B 模…

同步状态的广播事件

定向活动广播 你可以直接将事件从一个状态广播到另一个状态&#xff0c;以同步同一图表中的并行&#xff08;AND&#xff09;状态。以下规则适用&#xff1a; 在事件广播期间&#xff0c;接收状态必须处于活动状态。 一个图表中的操作无法将事件广播到另一个图表的状态。 与无定…

大坝安全监测设备有哪些主要功能?

推荐型号&#xff1a;TH-WY1】大坝安全监测设备的主要功能包括以下几个方面&#xff1a; 1. **实时监测大坝的各项物理参数**&#xff1a;包括应变、位移、水位、流量等<sup>1</sup><sup>2</sup>。 2. **数据处理和分析**&#xff1a;对监测数据进行处…

[Javascript】前端面试基础3【每日学习并更新10】

Web开发中会话跟踪的方法有那些 cookiesessionurl重写隐藏inputip地址 JS基本数据类型 String&#xff1a;用于表示文本数据。Number&#xff1a;用于表示数值&#xff0c;包括整数和浮点数。BigInt&#xff1a;用于表示任意精度的整数。Boolean&#xff1a;用于表示逻辑值…

【React1】React概述、基本使用、脚手架、JSX、组件

文章目录 1. React基础1.1 React 概述1.1.1 什么是React1.1.2 React 的特点声明式基于组件学习一次,随处使用1.2 React 的基本使用1.2.1 React的安装1.2.2 React的使用1.2.3 React常用方法说明React.createElement()ReactDOM.render()1.3 React 脚手架的使用1.3.1 React 脚手架…

c生万物系列(封装)

为了对c语言进行封装&#xff0c;笔者参考了lw_oopc等开源库&#xff0c;决定使用宏对结构体进行封装。 先说一下大致思想&#xff1a;通过宏&#xff0c;结构体和文件来实现封装。 大概步骤&#xff1a;抽象出类-> 使用lw_oopc库进行封装->定义接口封装底层实现 ->…

【常见开源库的二次开发】基于openssl的加密与解密——SHA算法源码解析(六)

目录 一、SHA-1算法分析&#xff1a; 1.1 Merkle Tree可信树 1.2 源码实现&#xff1a; 1.3 哈希计算功能 1.4 两种算法的区别&#xff1a; 1.4.1 目的 1.4.2 实现机制 1.4.3 输出 1.4.4 应用场景&#xff1a; 1.4 运行演示&#xff1a; 二、SHA-2算法分析&#xff1a; 2.1哈…

责任链模式的应用与解析

目录 责任链模式责任链模式结构责任链模式适用场景责任链模式优缺点练手题目题目描述输入描述输出描述题解 责任链模式 责任链模式&#xff0c;亦称职责链模式、命令链&#xff0c;是一种行为设计模式&#xff0c;允许你将请求沿着处理者链进行发送。收到请求后&#xff0c;每…

26.8 Django多表操作

1. 表关系 表关系在数据库中指的是表与表之间的连接和依赖关系. 这种关系定义了数据如何在不同的表之间进行交互和关联, 是实现数据一致性和完整性的重要手段.1.1 关系分类 多表关系在数据库中通常分为以下几种类型: * 1. 一对一(One-to-One)关系: 在数据库中, 这种关系通常通…