【Linux】:网络协议

news/2025/2/21 18:50:00/

朋友们、伙计们,我们又见面了,本期来给大家带来网络协议相关的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成!

C 语 言 专 栏:C语言:从入门到精通

数据结构专栏:数据结构

个  人  主  页 :stackY、

C + + 专 栏   :C++

Linux 专 栏  :Linux

目录

1. 网络发展

2. 协议

2.1 为什么要有协议

2.2 协议

3. 网络协议

3.1 网络通信的问题 

3.2 网络的解决方案 -- 网络层状结构

3.2.1 OSI七层模型

3.2.2 TCP/IP五层(或四层)模型 

3.3 网络协议栈和OS

4. 重谈协议


1. 网络发展

独立模式:计算机之间相互独立;

网络互联: 多台计算机连接在一起, 完成数据共享;

局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起;

广域网WAN: 将远隔千里的计算机都连在一起。

所谓 "局域网" 和 "广域网" 只是一个相对的概念. 比如,我们有 "天朝特色" 的广域网, 也可以看做一个比较大的局域网。

2. 协议

所谓的协议,其实就是一种“约定”

2.1 为什么要有协议

我们的计算机是遵循冯诺依曼体系结构的,磁盘、显示器、键盘等,这些硬件设备是通过总线连接在一起的,所以这些硬件之间可以直接通信,所以单台的机器也可以看做是一个网络结构。

但是两个设备如果要进行网络通信,两个设备不可能总是像计算机硬件这样离得比较近,还能用线连接在一起,此时如果距离变长,那么通信起来会有什么问题呢?

  • ① 如果发送的数据丢失(丢包)怎么办?
  • ② 既然距离变长了,如何定位到目标机器?
  • ③ 如何保证我们的数据,在经历了无数个设备之后,还能准确无误的将数据推送到目标机器?

所以,就需要有一种协议,俗话说就是双方约定一下。

就好比你和父母亲每个月通过电话联系时,又不想支付话费,那么就可以约定,铃声响一下就表示你没钱了,响两下就用来报平安,如果大于两声就表示需要父母接电话了,也就是类似于这种约定才可以在网络通信时讲数据准确无误的推送给对方。

2.2 协议

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

  • 计算机生产厂商有很多;
  • 计算机操作系统, 也有很多;
  • 计算机网络硬件设备,还是有很多;
  • 如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要有人站出来, 约定一个共同的标准,大家都来遵守,这就是 网络协议;

3. 网络协议

网络一定要能保证不同的机器都要能无障碍的接入互联网,所以就需要定制全面的网络协议,这种协议是编码实现的协议。

3.1 网络通信的问题 

网络中会有许多机器,我们从一个主机发送给另一个主机的数据,是一个个机器走的,由于通信的距离变长,那么就会出现许多的问题:

  • ① 怎么保证先把数据交给下一跳主机;
  • ② 转发的过程中,如果进行定位以及路径的选择;
  • ③ 如果报文在转发时出现错误又或者是丢失。

 这三点其实就是如何将数据可靠的从A送到B,这个问题是通过协议来解决的,说白了网络就是由很多协议构成! 

  • ④ 当数据送达时,还要解决如何使用数据的问题。

3.2 网络的解决方案 -- 网络层状结构

为什么要是一种层状结构呢?

就比如我们打电话,打电话时,我们是通过用户向一个电话发送数据,然后又传输到另一个电话,电话之间传输的过程我们不需要考虑,我们只需要知道我向电话发送的数据没有问题就好了。

  

分层最大的好处在于 "封装" ,就比如面向对象的例子;
通过层状结构可以完成软件的解耦合,便于对软件的维护(更新、替换、优化等)。

3.2.1 OSI七层模型

  • OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
  • 网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
  • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;

  
但是, 它既复杂又不实用;所以我们按照TCP/IP四层模型来理解。

3.2.2 TCP/IP五层(或四层)模型 

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 物理层: 负责光/电信号的传递方式。如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层。
  • 数据链路层: 负责设备之间的数据帧的传送和识别。 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准。 交换机(Switch)工作在数据链路层。
  • 网络层: 负责地址管理和路由选择。 例如在IP协议中, 通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层。
  • 传输层: 负责两台主机之间的数据传输。 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机。
  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 我们的网络编程主要就是针对应用层

  

物理层我们考虑的比较少。因此很多时候也可以称为 TCP/IP四层模型。
我们再回归上面网络通信的问题:

  

通过TCP/IP协议栈就可以解决网络通信的问题。

3.3 网络协议栈和OS

网络协议栈和操作系统的关系是非常密切的(一体的)

在OS中,用户要想访问系统的硬件资源,就需要调用系统调用从而贯穿整个操作系统进行访问,如果将OS和网络协议栈结合在一起来看的话:

所以在网络角度来说,用户要使用网络,就要贯穿整个网络协议栈,本质就是要使用OS,所以就需要有网络的系统调用接口,以及一些网络库等。

如果有多个OS需要进行网络通信,即使是不同的OS,但是网络协议栈是一样的,可以进行通信,虽然是不同的系统,但是对于网络的系统调用接口是大同小异的。

不同的机器可能会收到许多报文,那么要不要对这些报文进行管理呢?当然是需要的,所以先描述、再组织,所以对于报文的管理就变成了对链表、队列的增删查改,所谓的这个网络协议栈 本质就是对这样的数据结构进行增删查改。        

4. 重谈协议

协议通常是用结构化字段表征的,这个结构化字段定义的对象,我们叫做协议报头(双方都认识的结构字段)当一个主机向另外一个主机发送报文时,对报头的这种类型都认识,这就是一种约定。

协议就好比我们在网上买东西时,我们收到的不仅仅有我们买的快递,还有一个快递单,其实快递单本身就是一种约定,就是一种协议,此时的快递单就是一种报头。


http://www.ppmy.cn/news/1572684.html

相关文章

【16】思科AireOS:创建使用 LWA 认证的 WLAN

1. 概述 LWA(Local Web Authentication)是一种基于 Web 认证的方式,允许无线客户端在连接 WLAN 后,使用 Web 认证页面进行身份验证。该方法适用于访客网络或需要身份认证的场景。 本指南详细介绍如何在 Cisco AireOS 无线控制器(WLC)上配置 LWA 认证的 WLAN,并确保认证…

内容中台驱动企业数字化内容管理高效协同架构

内容概要 在数字化转型加速的背景下,企业对内容管理的需求从单一存储向全链路协同演进。内容中台作为核心支撑架构,通过统一的内容资源池与智能化管理工具,重塑了内容生产、存储、分发及迭代的流程。其核心价值在于打破部门壁垒,…

AI大模型(DeepSeek)科研应用、论文写作、数据分析与AI绘图学习

【介绍】 在人工智能浪潮中,2024年12月中国公司研发的 DeepSeek 横空出世以惊艳全球的姿态,成为 AI领域不可忽视的力量!DeepSeek 完全开源,可本地部署,无使用限制,保护用户隐私。其次,其性能强大&#xff…

【数据结构-红黑树】

文章目录 红黑树红黑树介绍红黑树的五个基本性质红黑树的平衡原理红黑树的操作红黑树的操作 代码实现节点实现插入和查询操作 红黑树 红黑树介绍 红黑树(Red-Black Tree)是一种自平衡的二叉查找树(Binary Search Tree, BST)&…

常用架构图:业务架构、产品架构、系统架构、数据架构、技术架构、应用架构、功能架构及信息架构

文章目录 引言常见的架构图I 业务架构图-案例模块功能说明1. 用户界面层 (UI)2. 应用服务层3. 数据管理层4. 基础设施层业务流程图示例技术实现II 功能架构图 -案例功能模块说明1. 船舶监控模块2. 报警管理模块3. 应急响应模块4. 通信管理模块5. 数据分析模块数据管理层基础设施…

python 爬虫教程 0 基础入门 一份较为全面的爬虫python学习方向

文章目录 前言一、Python 爬虫简介二、环境搭建1. 下载 Python2. 安装 Python3. 安装必要的库 三、一个简单的爬虫示例四、应对网站反爬机制五、深入学习方向 前言 以下是一份较为全面的 Python 爬虫教程,涵盖基础知识、环境搭建、简单示例、反爬应对及深入学习方向…

使用Java爬虫获取京东JD.item_sku API接口数据

在电商领域,商品的SKU(Stock Keeping Unit)信息是运营和管理的关键数据。SKU信息包括商品的规格、价格、库存等,对于商家的库存管理、定价策略和市场分析至关重要。京东作为国内领先的电商平台,提供了丰富的API接口&am…

tcp传输协议机制

强关联博客:TCP协议报头及各个字段的作用-CSDN博客 目录 ​编辑 一. 三次握手建立连接 1、字段 2、三次握手过程 1. 第一次握手:客户端发送 SYN 报文 2、第二次握手:服务器回应 SYN-ACK 报文 3.第三次握手:客户端发送 AC…