网络世界的脊柱——OSI七层模型

osi · 浏览次数 : 0

小编点评

OSI(开放系统互联)是一个国际标准化组织提出的概念模型,用于描述网络通信的功能划分。它将复杂的网络通信过程分为七个不同的层次,每一层都有其特定的功能和角色。 1. 物理层:负责传输“1”和“0”的地方,如网线、光纤、WiFi信号等。主要关注如何将电信号或光信号从一个地方传到另一个地方。 2. 数据链路层:数据链路层负责把数据打包成一个个“包裹”(帧),然后负责把这些“包裹”送到正确的地方,同时还要确保这些“包裹”在传输过程中不出错。 3. 网络层:负责决定数据包要走哪条路,从发送方到接收方。最重要的概念之一是IP地址,用于在网络中唯一标识设备。 4. 传输层:像是网络通信中的“可靠搬运工”,主要任务是确保数据能够从一个地方安全、完整、准确地搬运到另一个地方。使用端口号来区分不同应用程序的数据。 5. 会话层:在分开的计算机上的两种应用程序之间建立一种虚拟链接,保持应用程序之间的同步,并完成名称识别和安全性的工作。 6. 表示层:数据的表示、压缩和加密。负责协议转换、数据编码和数据压缩。 7. 应用层:用户接口、应用程序。向应用进程展示所有的网络服务,并执行所有动作。 常见的协议有:TCP(传输控制协议)、UDP(用户数据报协议)、IP(互联网协议)、ARP(地址解析协议)、RARP(逆地址解析协议)等。

正文

简介

OSI代表开放系统互联(Open Systems Interconnection),这是国际标准化组织(ISO)提出的一个概念模型,用于描述网络通信的功能划分。简单来说,OSI模型把复杂的网络通信过程分成了七个不同的层次,每一层都有其特定的功能和角色。

每一层都有自己的头数据,在封装和解封的时候需要处理每一层的头部,通常头部定义了发送源和目标的一些信息,比如数据链路层,数据链路层的头部封装了源MAC和目标MAC等信息

物理层

简单点说,物理层就是负责传输“1”和“0”的地方。比如我们家里上网用的网线、光纤、WiFi信号,这些都属于物理层的范畴。它主要管的是“怎么把电信号或者光信号从一个地方传到另一个地方”。所以,网线里传的其实就是一串串的电信号,你可以理解成一堆小电流在网线里“跑步”,这些小电流的组合就形成了数据。

在物理层,我们不用考虑数据是什么,只需要保证这些信号能准确地传输过去。就像我们打电话的时候,电话线传的只是声音的振动,不关心你说的具体内容是什么。所以,物理层的任务就是把这些“振动”准确地传到对方那里,不管这个“振动”是用来干什么的。
WiFi信号其实就是一种电磁波,电脑和路由器通过这些电磁波来传输数据。这里的电磁波就是物理层的“工作工具”。另外,你家里网线插到电脑上,那根网线也是物理层的一部分。再比如光纤宽带,光纤里传输的就是光信号,这也是物理层在工作。

数据链路层

数据链路层就像是网络通信中的“邮递员”。它负责把数据打包成一个个“包裹”(我们叫做“帧”),然后负责把这些“包裹”送到正确的地方,同时还要确保这些“包裹”在传输过程中不出错。

帧概念

想象一下,你要寄一个包裹,你需要把东西装进一个盒子里,写上收件人的地址,然后交给快递员。数据链路层的工作也是类似的,它把数据装进一个“框架”里,这个框架里包括了收件地址(MAC地址)和发送地址,还有一些用于检测错误的东西,就像包裹里的防震材料一样,确保东西安全送达。

MAC地址

数据链路层用的是MAC地址,这有点像每个设备的身份证号码。每个网卡都有一个独一无二的MAC地址,网络中的交换机就是根据这些地址来判断数据应该送到哪里。

交换机

交换机是数据链路层中一个重要的设备。它会根据设备的MAC地址,把数据转发到正确的设备上。可以想象一下交换机是一座大楼里的前台,所有的信件先送到前台,然后前台根据收件人的名字和房间号,把信件分发到各个房间。

网络层

网络层就像是“导航系统”。它负责决定数据包要走哪条路,从发送方到接收方。这个过程叫做“路由选择”。网络层最重要的概念之一就是IP地址。你可以把IP地址想象成网络中的“地址”,每个设备都有一个唯一的IP地址,就像每栋房子都有一个唯一的门牌号一样。当你在网上发信息,数据包就像邮件一样,要根据IP地址找到收件人。

路由器

在网络层中,有一个重要的设备叫做路由器。路由器的作用就像是高速公路上的路标,指引数据包从一台设备走到另一台设备。如果有多条路可以到达目的地,路由器会选择最快的一条。这就像你开车时,GPS会帮你选择最短时间到达目的地的路线一样。

数据包

在网络层,数据被称为数据包。数据包包含了发送地址和接收地址,就像邮寄包裹上的寄件人和收件人地址。网络层负责把这些数据包从发送方的IP地址送到接收方的IP地址,中间可能经过很多路由器,就像包裹在寄送过程中经过很多中转站一样。

数据包分组和重组

因为网络中的数据传输效率问题,有时候一个大的数据会被分成多个小的数据包传输。网络层负责把这些小数据包分开发送,到达目的地后再重新组合起来,就像拼图一样。

网络层的重要性

网络层在网络通信中起着至关重要的作用。它确保数据能够找到最优路径,从一个设备传输到另一个设备。如果没有网络层,我们的数据就像没有导航系统的车辆,很容易迷路,无法到达目的地。

传输层

传输层就像是网络通信中的“可靠搬运工”。它的主要任务是确保数据能够从一个地方安全、完整、准确地搬运到另一个地方。

端口

传输层有一个很重要的概念叫做端口号。你可以把端口号理解为“房间号”。在一个IP地址下,端口号帮助确定具体是哪一个应用程序要接收数据。比如你的电脑有一个IP地址,但你同时在用浏览器上网、用QQ聊天、用邮件客户端收邮件,这些应用程序通过不同的端口号来区分接收到的数据。端口范围0-65535,0-1023为系统占用端口

TCP和UDP

在传输层中,有两个主要的协议,分别是TCP(传输控制协议)和UDP(用户数据报协议)。这两个协议就像是两种不同的搬运工,有着不同的工作方式。

TCP

TCP可以理解为“讲究的搬运工”。它在搬运数据时非常仔细,确保每一块数据都能准确无误地送到目的地。如果在搬运过程中有任何数据丢失或者出错,它会重新搬运。这就像你寄包裹时选择了带有追踪和保险的快递服务,确保包裹安全送达。
一个TCP连接通常经历以下几个阶段:
建立连接(SYN-SYN/ACK):客户端发送SYN包,服务器回应SYN-ACK包,客户端再发送ACK包,完成三次握手。
数据传输:双方开始交换数据。
断开连接(FIN-ACK):当一方准备结束连接时,发送FIN包,对方回应ACK包,然后等待对方也发送FIN包。
等待关闭(TIME-WAIT):在双方发送完FIN包并确认对方已接收后,发起关闭的一方进入Time-Wait状态。

UDP

UDP可以理解为“随意的搬运工”。它在搬运数据时不做过多检查,直接把数据发出去,不管对方有没有收到、有没有出错。这样做的好处是速度快,缺点是可靠性低。它就像你寄包裹时选择了普通的平信,没有追踪和保险,只能祈祷包裹顺利到达。
UDP适用于那些对速度要求高、对可靠性要求不那么高的应用,比如视频直播、在线游戏等。

会话层

话的建立和结束,在分开的计算机上的两种应用程序之间建立一种虚拟链接,这种虚拟链接称为会话(session)。会话层通过在数据流中设置检查点而保持应用程序之间的同步。允许应用程序进行通信的名称识别和安全性的工作就由会话层完成。

表示层

数据的表示、压缩和加密。定义由应用程序用来交换数据的格式,该层负责协议转换、数据编码和数据压缩。转发程序在该层进行服务操作。

应用层

用户接口、应用程序。 应用层向应用进程展示所有的网络服务。当一个应用进程访问网络时,通过该层执行所有的动作。

常见协议

总结


如果你对网络通信有更多的疑问或者感兴趣的话题,欢迎在评论区留言

与网络世界的脊柱——OSI七层模型相似的内容:

网络世界的脊柱——OSI七层模型

简介 OSI代表开放系统互联(Open Systems Interconnection),这是国际标准化组织(ISO)提出的一个概念模型,用于描述网络通信的功能划分。简单来说,OSI模型把复杂的网络通信过程分成了七个不同的层次,每一层都有其特定的功能和角色。 每一层都有自己的头数据,在封装和解封的时

实例讲解看nsenter带你“上帝视角”看网络

摘要:本文重点关注进入目标进程的“网络ns”视角,即站在「容器中的进程视角」看待容器里面的网络世界,并在那个视角中执行命令。 本文分享自华为云社区《《跟唐老师学习云网络》 - nsenter魔法棒》,作者:tsjsdbd 。 有时候Docker容器中缺少需要的软件。比如 curl,wget,ifco

Performance API不完全使用指北

本教程解释了如何使用Performance API来记录真实用户访问你的应用程序的统计数据。 使用浏览器的DevTools来评估web应用性能是很有用的,但要复现现实世界的使用情况并不容易。因为人们在不同地点使用不同的设备、浏览器和网络,都会有不同的体验。 Performance API介绍 Per

图数据挖掘:幂律分布和无标度网络

我们发现,现实世界许多网络的节点度分布与幂函数乘正比。事实上,航空网络的度分布常常满足幂律分布;而高速公路网络的度分布则常常满足泊松分布(指数族分布的一种),其均值为平均度。幂律分布就是一种典型的重尾分布(就像我们前面所展示的节点度高度倾斜)。但需要注意的是,正态分布和指数分布不是重尾分布。

图数据挖掘:小世界网络模型和分散式搜索

哈佛大学心理学教授斯坦利·米尔格拉(Stanley Milgram)早在1967年就做过一次连锁实验,他将一些信件交给自愿的参加者,要求他们通过自己的熟人将信传到信封上指明的收信人手里。他发现,296封信件中有64封最终送到了目标人物手中。而在成功传递的信件中,平均只需要5次转发,就能够到达目标。也就是说,在社会网络中,任意两个人之间的“距离”是6。这就是所谓的六度分隔理论,也称小世界现象。尽管他

Web3开发者技术选型:前端视角(next.js)

引言 在现代Web开发的世界中,Web3技术的兴起为前端开发者开辟了新的可能性。Web3技术主要指的是建立在区块链基础上的分布式网络,使用户能够通过智能合约和去中心化应用(DApps)直接交互,而无需传统的中介机构。为了有效地开发Web3应用,前端开发者需要掌握一些关键的技术和工具,其中Next.j

使用ChatGPT自动构建知识图谱

1.概述 本文将探讨利用OpenAI的gpt-3.5-turbo从原始文本构建知识图谱,通过LLM和RAG技术实现文本生成、问答和特定领域知识的高效提取,以获得有价值的洞察。在开始前,我们需要明确一些关键概念。 2.内容 2.1 什么是知识图谱? 知识图谱是一种语义网络,它表示和连接现实世界中的实体

TCP协议的秘密武器:流量控制与拥塞控制

本文将深入探讨TCP协议的关键机制,包括流量控制和拥塞控制,以解密其在网络数据传输中的作用。通过了解TCP协议的工作原理,我们可以更好地理解网络通信的稳定性和可靠性,为我们的网络体验提供更安全、高效的保障。无论您是网络爱好者、技术从业者还是普通用户,本文将为您揭开TCP协议的神秘面纱,带您进入网络传输的奇妙世界。

Scaling Memcache at Facebook

Memcached 是一种众所周知的、简单的内存缓存解决方案。本文描述了 Facebook 如何利用 memcached 作为构建块来构造和扩展一个分布式键值存储支持世界上最大的社交网络。 1.Introduction 一个社交网络(FB)的基础架构通常需要以下 允许实时通信(近似,允许一定的延迟)

[转帖]实现 10 倍应用性能提升的 10 个技巧

https://my.oschina.net/u/5246775/blog/5981861 Web 应用性能优化迫在眉睫。线上经济活动份额不断增长,发达世界的互联网经济已占经济总量的 5% 以上(请参见下文的互联网统计数据来源)。在这个始终在线、超级互联的现代世界,用户的期望已经今非昔比。如果您的网