初识网络基础《网络七层模型详解》

article/2025/10/8 21:27:43

坚持原创输出,点击蓝字关注我吧

5d709d322f8a11d7639cd357f69b8ffb.png
图片来自网络

目录

  • 一、初识网络基础

  • 二、网络七层模型详解

    • 1.物理层

    • 2.数据链路层

    • 3.网络层

    • 4.传输层

    • 5.会话层

    • 6.表示层

    • 7.应用层

  • 三、总结

一、初识网络基础

其实网络刚刚开始发展的时候,它并没有这么一个复杂的模型,它最开始只有一层。随着网络的发展,网络上的功能越来越复杂,单一的网络结构就不能再满足人们的需求了。

所以呢,人们就开始对网络进行分层。让每一层都执行工作,各司其职,来实现网络上复杂的工作流程。

发展下来就出现了2个非常重要的模型:OSI七层模型、TCP/IP四层协议栈。这两个模型所定义出来的层级,工作都差不太多。

「OSI七层模型:」 是ISO组织在1985年研究的网络互联模型。

「目的:」 刚开始提出来只是为了实现2台机器的互联,怎么实现互联?

提出了一个统一的规范,两台机器使用统一的一个规范标准进行通信。可以把范围扩大,可以实现很多台机器的「互联」

形成了互联网最早的形态。「互联网」的形态其实就是这个时候提出来的。所有的网络活动基本上都在这七层中间来实现的。

在浏览器里输入百度的网址,按下回车就返回了百度的页面,这个过程就基本都可以在OSI七层模型中找到每一层的实现历程。

为了详细知道,输入百度网址返回一个页面,这个过程具体怎么实现的,就需要详细了解下这七层分别做什么样的工作。

二、网络七层模型详解

1.物理层

1.1实现两台机器互联,机器和机器之间如何通信?

最开始的需求是把两台机器联接起来,让它们通信。物理层就根据这个需求运用而生。

物理层实现了什么功能呢?

它提供了肉眼可见的物理介质,比如网线(双胶线)、光纤、无线电波,这些都可以实现机器之间的基本连接。

1.2机器间的通信是以什么样的形式存在呢?

像这样的一个信息在物理介质里面其实就是一个计算机语言,比如说:0101二进制的一个形式存在。

在专业名词里这个二进制也叫做电信号(比特流)。物理层的出现能够让两台电脑通过物理介质发送比特流了。

比特流还是0101这样一个机器的语言,这种0101的比特流其实是一个没有什么意义的一个数据。怎么让它变成一个有意义的数据呢?

2.数据链路层

针对这个需求,就产生了数据链路层。对无意义的比特流进行分组,这些0101的二进制的电信号,对这些二进制以8个为一组。8位一组形成了一个字节,这样的一个数据被它进行分组之后,然后根据这个分组,依次按顺序发送数据。

2.1这样的数据就会变成一个有特殊意义,上面层级能够认识的数据,这就是数据链路层实现的第一个需求。

虽然数据变成机器间可以认识的一个有意义的数据,但是机器收到这个数据怎么知道这个数据是发给我的呢?

2.2怎么确认这个数据是发给我的呢?网络中是怎么去定义这个事情?

数据链路层定义了mac地址。机器都有一个网卡,(电脑-以太网-适配器-详细信息,可以看到无线网卡的物理地址,其实就是每一块网卡的独有的地址,理解成这个网卡的身份证)。mac地址是唯一的,mac地址就是标识这台机器的物理地址,现在如果电脑a发给电脑b一个信息,需要带上mac地址。

就像寄信,寄信的时候需要写寄件人的地址和收件人的地址。

对应物理网卡,物理网卡其实也有个原mac地址,把自己mac地址带上,也会带上收件人的地址(目的地址),就知道我要发给谁并告诉对方是谁发的,方便对方给我回信。

那它就知道应该向谁去回复。这个就是通过mac地址解决的。

2.3数据链路层的数据格式:帧。

通过数据链路层,计算机之间可以正常传数据包,但是现在有2个主机,一个主机a,主机f,两台主机间通信,但是中间隔着bcde主机,它们两个不是直接连接的机器,它们两个怎么实现直接通信呢?

如果两个主机离得特别远,中间可以实现通信的路径有很多条,怎么选择最近的路径通信呢?

数据链路层通过mac地址识别对方主机和自身的主机,怎么知道对方的mac地址?

3.网络层

3.1第一个解决怎么知道对方的mac地址?

定义了一个协议:arp的协议,实现的功能就是做地址解析,通过ip地址去知晓对方的mac地址。

3.2第二个需求:主机a和主机f之间隔着很多别的主机,两个主机可能不在一个子网里面,就没办法直接通信。去判断它们两个是否在一个子网,怎么判断?

定义了一个协议:ip协议去判断发送者和接收者是否在同一个子网,怎么发送数据。

3.3路径很多,怎么选择最优的路径?

网络层同样定义了一组协议,就是路由协议

一组路由协议:静态路由协议,动态路由协议(rip,ospf,bgp协议)。这些都是常用的动态路由协议。

这三个需求都是网络层给大家解决的问题。网络层是最关键的一层,实现的功能特别多。

数据包在网络里可以正常发送了,如果发送的数据特别的多或者单个数据包特别大,在网络中传输需要很长的时间,中间的网络中断了,怎么才能保证重传?

如果重传,怎么确定数据包完整且正确?

4.传输层

实现的第一个功能,对发送的数据进行一个封装。

通过tcp协议udp协议封装的。这2个协议对数据包进行封装后,让数据包一个一个按顺序依次发送。

这样封装能够保证数据包是完整且准确的。还有一个功能,就是两台主机,都是用两个应用进行通信(例如两个人qq聊天)。

所以,怎么判断我的电脑上的qq发送给你的,你就是用qq回应的呢?

我的电脑上不止一个应用程序,那我怎么判断你是用qq接收数据而不是用别的呢?

也是通过传输层实现,定义了端口的概念,实现应用程序的寻找。

当数据包到达传输层后,会有一个端口,然后呢,我们的应用程序通过端口寻找到对应的程序,就去发给对应程序进行数据处理。

5.会话层

如果数据特别大,中断需要重传,是不是不应该重头开始传,应该断点续传,就由会话层实现的。

会话层:从校验点继续恢复数据进行重传。这个功能对网络上的数据传输很重要(大文件传输)。

实现了自动收发包的功能以及自动寻址的功能。

6.表示层

计算机有很多的操作系统:windows/mac/linux系统

各种系统间的语法不一样的。不同系统间进行通信的话,这个就是表示层的工作了。

其实就是一个翻译的工作,提供一种公共语言,让不同系统间可以进行通信。

表示层和会话层没有定义协议的功能,所以没有定义协议。

7.应用层

有了6个层级的工作,都是为了应用层服务的。

用户在浏览器访问百度界面,属于应用层的操作。

数据已经从一个主机上的应用传到另一个主机上的应用了,这样一个基本的功能是可以实现的。

但是数据包从底层传上来,只有物理层的时候进行了一个组装,在数据链路层形成了一个字节流。

上面层级并没有重新进行一个数据的组装,到了上面依然是一个字节流的格式,不好被应用识别和操作。

所以应用层通过定义了各种应用协议来规范一个数据的格式。

比如最熟悉的http协议,https协议,ftp协议,dns协议,tftp协议,smtp协议。这些都是应用层定义来规范数据的格式,方便系统、软件、程序进行识别和操作。

以上就是七层模型的工作流程。

三、总结

掌握网络基础知识是为了应对面试、进入公司遇到搭建测试环境或调试测试环境的时候需要用到网络基础知识。这是测试工程师需要掌握的必备技能。


8a86020c10864e5d619de523a6da449d.png

公众号「清菡软件测试」首发,更多原创文章:清菡软件测试148+原创文章,欢迎关注、交流,禁止第三方擅自转载。如有转载,请标明出处。


http://chatgpt.dhexx.cn/article/yjQniX2t.shtml

相关文章

【算力网络】算力网络的技术创新——网络基础设施关键技术

本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客内容主要围绕: 5G协议讲解 算力网络讲解(云计算,边缘计算…

计算机网络基础知识框架

前言 计算机网络基础 该是程序猿需掌握的知识,但往往会被忽略今天,我将献上一份详细 & 清晰的计算机网络基础 学习指南,涵盖 TCP / UDP协议、Http协议、Socket等,希望你们会喜欢。 目录 示意图 1. 计算机网络体系结构 1.1 简介…

python网络基础

python网络基础 1. 前言1.1 拓扑图1.2 三个问题 2. IP2.1 概念2.2 组成2.3 分类2.4 私有IP和私有IP2.4.1 共有IP2.4.2 私有IP 2.5 子网掩码 3. 网络端口3.1 前言3.2 注意 4. 网络协议4.1 前言4.2 四层模型 1. 前言 1.1 拓扑图 1.2 三个问题 IP windows中查看: ipco…

网络基础--搭建一个简单的网络

文章目录 前言一、配置路由器二、配置服务器三、电脑开启dhcp服务总结 前言 这里用的是华为的模拟器ENSP来完成这个实验。 华为的模拟器中PC不能访问服务器,也就是说不能访问网页,所以用Client。 要求:所有电脑自动获取ip地址—dhcp服务&am…

神经网络基础知识

一、课程来源: 深度之眼神经网络基础知识 二、主要内容: 主要分为三个部分,分别是 1.神经网络基础与多层感知机:基础知识、激活函数、反向传播、损失函数、权值初始化和正则化 2.卷积神经网络:统治图像领域的神经…

计算机网络基础知识

计算机网络 上帝视角 如上图就是一张简单的计算机网络,那么什么是计算机网络呢? 百度百科的定义: 网络是由若干节点和连接这些节点的链路构成,表示诸多对象及其相互联系。 在我看来计算机网络通俗地讲就是通过传输介质将分布在…

【Kubernetes】容器网络基础

文章目录 一、前言二、Kubernetes 容器网络基础2.1 容器网络基础知识回顾2.2 Kubernetes 容器网络概览2.3 CNI 插件介绍2.3.1 使用 CNI 插件创建并连接容器网络的操作步骤 三、Kubernetes 容器网络模型3.1 容器网络模型简介3.2 容器网络模型实现3.3 容器网络模型与 CNI 插件的关…

数通基础-网络基础知识

OSI参考模型 OSI 概念 Open System Interconnect开放系统互连参考模型,是由ISO(国际标准化组织)定义的。它是个灵活的、稳健的和可互操作的模型,并不是协议,而是一个伟大的模型。常用来分析和设计网络体系结构。​ O…

计算机网络基础 (一) —— 概念、组成、功能、分类

1、基本概念 1.1、计算机网络的概念 网络包含了计算机网络: 概念 1.2、计算机功能 1.3、计算机网络组成 1.4、计算机网络的分类 1.5、标准化工作的相关组织 1.6、速率相关的性能指标 1.6.1、速率 数据是1个比特1个比特的传递的,下图中将10个数字传送给…

计算机网络基础知识大全

🏆作者简介:哪吒,CSDN2022博客之星Top1、CSDN2021博客之星Top2、多届新星计划导师✌、博客专家💪 ,专注Java硬核干货分享,立志做到Java赛道全网Top N。 🏆本文收录于,Java基础教程系…

浅谈网络基础架构

浅谈网络基础架构 背景看一次网络请求主要过程1.URL解析2.DNS解析解析顺序服务器层次划分 3.建立TCP连接HTTP请求为什么要用TCP协议建立连接?TCP 三次握手 4.服务器处理请求5.浏览器接受响应6.渲染页面 部署架构总览结构组成相关术语 负载均衡(LB/SLB&am…

网络基础知识详解(图解版)

网络基础知识详解(图解版) 1.网络协议: 我们用手机连接上网的时候,会用到许多网络协议。从手机连接 WiFi 开始,使用的是 802.11 (即 WLAN )协议; 手机自动获取网络配置,使用的是 DHCP 协议。 这…

网络知识(入门)

目录 二、基本网络通信原理 网络基础概念:IP地址 IP地址的格式: 由什么来决定网络位的长度? 三、IP地址如何配置 如何看自己电脑IP地址? 另一种命令式查看 手机地址如何查看 IP地址如何配置 疑问:为什么没有配…

网络基础知识

Net Basic 一、网络分层 1. OSI七层模型 物理层:确保原始数据在各种物理媒介上的传输。 有两个重要设备:中继器(放大器)和集线器 数据链路层:为网络层提供数据传输服务;基本数据单位是帧;以太…

【网络入门】详解常用的基础网络知识(面试笔试常考内容)

目录 1、概述 2、OSI七层模型和TCP/IP四层模型 3、数据进入TCP/IP协议栈时的封装过程 4、端口的概念 5、TCP建立连接时的三次握手 5.1、TCP头的构成 5.2、三次握手的流程说明 5.3、为什么必须使用三次握手,不能用两次握手去建立连接 5.4、SYN包攻击简介 …

面试官都震惊,你这网络基础可以啊!

目录 网络1.对网络的基础认识<1>.组网方式<2>.OSI七层模型<3>.TCP/IP五层&#xff08;四层模型&#xff09;<4>.对封装分用的理解 2.网络数据传输<1>局域网(1)认识IP和MAC(2)网络数据传输的特性(3)网络数据传输流程1)网络互联的方式2).局域网交换…

用matlab做bp神经网络预测,matlab神经网络怎么预测

1、请问MATLAB中神经网络预测结果应该怎么看&#xff1f;求大神解答 从图中Neural Network可以看出&#xff0c;你的网络结构是两个隐含层&#xff0c;2-3-1-1结构的网络&#xff0c;算法是traindm&#xff0c;显示出来的误差变化为均方误差值mse。经过482次迭代循环完成训练&…

matlab神经网络应用设计,神经网络及其matlab实现

Matlab里的神经网络是什么意思啊&#xff0c;我是新手&#xff0c;谁能简单通俗地解释下啊&#xff1f;谢谢了&#xff01;&#xff01;&#xff01; 。 所谓神经网络算法顾名思义是模拟生物神经网络而产生的一种算法&#xff0c;首先需要用一些已知的数据输入到神经网络中&a…

matlab神经网络训练方法,matlab神经网络模型导出

1、MATLAB神经网络中&#xff0c;多次训练后NET怎么保存&#xff1f; 它不过是个结构体&#xff0c;你在当前变量那个框框里找到它->右击->保存为.mat&#xff0c;下次用的时候点load再加载回来就成了&#xff08;以上操作亦可用 save load 命令在代码里实现&#xff09…

人工神经网络matlab代码,matlab神经网络30例代码

如何在matlab中建立多层bp神经网络 当你用newff的时候&#xff0c;里面有一个参数可以控制层数&#xff0c;比如说&#xff1a;P [0 1 2 3 4 5 6 7 8 9 10];T [0 1 2 3 4 3 2 1 2 3 4];net newff(P,T,5); %这样表示有1个隐藏层&#xff0c;里面那个5表示神经元的个数net n…