【Linux】网络基础_1


十、网络基础

1. 协议

“协议” 是一种约定。在网络环境下,主机距离过远时,必定会引发新的问题,比如数据可靠性,主机定位问题,数据传输等问题。为了解决这些问题, 让这些不同计算机之间能够相互顺畅的通信,就需要有人站出来, 约定一个共同的标准, 大家都来遵守, 这就是 网络协议

OSI七层模型和TCP/IP四层模型

在这里插入图片描述
在这里插入图片描述
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范,把网络从逻辑上分为七层,概念非常清楚。但是!,它既复杂又不实用; 所以我们按照 TCP/IP五层(或四层)模型 来讲解。
我们将OSI七层模型中的上三层合并成一个 应用层
在这里插入图片描述
TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

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

由于最底层的物理层我们考虑得比较少,所以将其忽略,于是TCP/IP协议就变成了四层模型。

由上图可发现,网络层次模型很像操作系统的层次模型。其实本质上都是一样的,传输层和网络层都是操作系统的部分,网络其实也是操作系统源代码的一部分。因此,从语言角度来看:协议 本质就是双方都能识别的结构体类型!

网络传输基本流程

数据从一台计算机到另一台计算机需要通过 以太网 (或其他)传输。
在这里插入图片描述

用户想要将数据发送到另一台主机上,数据无法直接传输,数据必须从本主机的应用层开始,自上而下 经过物理层(网卡),然后经过 以太网 传输到另一台电脑的物理层,在 自下而上 到达对面主机的应用层。移动过程跟大写的 U 一样。

报文与封装

报文是在网络中传输的数据单元,是数据在网络中的一种封装格式。用户打算发送的消息,在经过本主机每一层的时候,每层协议都会给从上一层发下来的数据中加上一节 协议报头 。这个过程叫做 封装 。最后将层层封装后的数据报文通过网络传输到接收方主机上时,上述过程将逆向进行。报文会被每层协议 逐层解封
在这里插入图片描述


未完待续

相关推荐

  1. Linux篇:网络基础1

    2024-07-21 12:46:03       38 阅读
  2. 3_1 Linux网络基础

    2024-07-21 12:46:03       27 阅读
  3. 计算机网络——网络基础1

    2024-07-21 12:46:03       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-21 12:46:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-21 12:46:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-21 12:46:03       45 阅读
  4. Python语言-面向对象

    2024-07-21 12:46:03       55 阅读

热门阅读

  1. 【AI原理解析】—粒子群(PSO)原理

    2024-07-21 12:46:03       14 阅读
  2. 门控循环单元(GRU)及其预测和分类Python实现

    2024-07-21 12:46:03       16 阅读
  3. 【日常介绍】—pycharm2024.1变化

    2024-07-21 12:46:03       20 阅读
  4. 如何使用C++中的字符串类(如std::string)

    2024-07-21 12:46:03       15 阅读
  5. Ubuntu 20安装JDK17和MySQL8.0

    2024-07-21 12:46:03       16 阅读
  6. OpenJudge | 约瑟夫问题

    2024-07-21 12:46:03       14 阅读
  7. 在Jupyter Notebook中进行大数据分析:集成Apache Spark

    2024-07-21 12:46:03       16 阅读