一篇文章让你通俗理解OSI七层模型(TCP/IP模型)

如题所述

第1个回答  2022-07-05

OSI有7层,从下到上分别是:

1、物理层 ( Physical layer ): 硬件,有线及无线。例如网线,中间的物理链接可以是光缆、电缆、双绞线、无线电波。中间传的是电信号,即010101...这些二进制位。
2、数据链路层( Data Link layer ) :数据链路层就是来对电信号来做分组的
3、网络层 (Network layer ):网络层定义了一个IP协议
4、传输层( Transport layer): 建立端口到端口的通信
5、会话层 (Session layer):
6、表示层 (Presentation layer):
7、应用层 (Application layer ) : 应用层功能:规定应用程序的数据格式。例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等

在通信主机上完成的功能:应用层,表示层,会话层,传输层
在网络设备上实现的功能:网络层,数据链路层,物理层

现在,你们想象一个这样的场景:你坐在电脑钱,在浏览器里打开百度这个网站。

虽然你并不知情,但其实你就在使用OSI模型。
大体来说,位于OSI第7层的应用程序(这里是浏览器),与第1-4层(合称“网络层”)对话,以便这4层把机器上的应用程序所要的信息从远端的机器上(此处是百度服务器)传输过来。

解释:物理传输、硬件、有线及无线。在杭州的你与温州的朋友聊天,你的电脑要上网,物理层体现是什么?是不是一个网线、有个路由器,温州那边的朋友是不是也要网线和路由器。也就是说计算机与计算机之间的通信,必须要有底层物理层方面的连通,就类似于你打电话,中间是不是必须得连电话线。
中间的物理链接可以是光缆、电缆、双绞线、无线电波。中间传的是电信号,即010101...这些二进制位。

人为的分组再适合不过了,8位一组,发送及接收都按照8位一组来划分。接收到8位为一组的话,那么就可以按照这8位数来做运算。如果没有分组,对方接收的计算机根本就不知道从哪一位开始来做计算,也解析不了收到的数据。写过Socket的同学一定知道,就像Socket发送和接收消息一样,要规定一个传输协议,比如规定前面8位数表示要发送数据的长度,后面代表要发送的实际数据,这样接收方就可以先解析收到的前面的8位、在根据长度解析实际的数据。因此要想让底层的电信号有意义,必须要把底层的电信号做分组。而这分组的工作,就是接下来我们要讲的数据链路层的工作。

我们可以简单的理解为:数据链路层就是来对电信号来做分组的。
一组电信号称之为一个数据包,或者叫做一个“帧”。

head包含:(固定18个字节)

data包含:(最短46字节,最长1500字节)

这就像写信,发送者的地址(源地址)就是你家的地址,接收者地址(目标地址)就是对方的收信地址,你家的路由器就相当于邮局。其实在计算机通信中的源地址和目标地址指的是 mac地址

head中包含的源和目标地址由来:Ethernet规定接入Internet的设备都必须具备网卡,发送端的和接收端的地址便是指网卡的地址,即Mac地址。

每块网卡出厂时都被烧录上一个实际上唯一的Mac地址,长度为48位2进制,通常由12位16进制数表示,(前六位是厂商编码,后六位是流水线号)

有了mac地址以后,计算机就可以通信了。

网络层定义了一个IP协议,

你想,我是这个教室的一个学生,我想找隔壁教室一个叫老王的学生,我也不认识老王,那怎么办,我吼?老王在另外一个教室肯定是听不到的。找教室的负责人,这个教室的负责人就负责和隔壁教室的负责人说话,说我们教室的有个学生要找你们教室的老王。往外传的东西交给负责人就可以了,内部的话上面已经提到,通过广播的方式,对外的东西广播失效。 教室的负责人就是网关,网关即网络关口的意思。

数据链路层中会把网络层的数据包封装到数数据链路层的数据位置,然后再添加上自己的包头,再发给物理层,物理层发给网关,网关再发给对方教室的网关,对方教室的网关收到后在那个教室做广播。

ARP协议的由来:在你找飞哥要片之前,你的先干一件事,想办法知道飞哥的Mac地址。即你的机器必须先发一个ARP包出去,ARP也是靠广播的方式发,ARP发送广播包的方式如下:

局域网中怎么获取对方的Mac地址:

肯定要知道对方的IP地址,这是最基本的,就像你要访问百度,肯定得知道百度的域名,域名就是百度的IP地址。自己的IP可以轻松获得,自己的Mac也轻松获取,目标Mac为12个F,我们叫广播地址,表达的意思是我想要获取这个目标IP地址172.16.10.11的机器的Mac地址。Mac为12个F代表的是一种功能,这个功能就是获取对方的MAC地址,计算机的Mac永远不可能是12个F。假设是在本教室广播,一嗓子吼出去了,所有人开始解包,只有IP地址是172.16.10.11的这个人才会返回他的Mac地址,其他人全部丢弃。发回来源Mac改成飞哥自己的Mac地址,同时把飞哥的Mac地址放在数据部分。

跨网络怎么获取对方的Mac地址:

通过IP地址区分,计算机运算判断出飞哥不在同一个教室,目标IP就变成了网关的IP了。网关的IP在计算机上配死了,可以轻松获取。

这样网关就会把它的Mac地址返回给你,然后正常发包

网关帮你去找飞哥,但对用户来说,我们根本就感觉不到网关的存在。

传输层的由来:网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,

那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。

传输层功能:建立端口到端口的通信

应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式 。

应用层功能:规定应用程序的数据格式。

例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。

参考文章:
https://blog.csdn.net/taotongning/article/details/81352985
https://blog.csdn.net/taotongning/article/details/81450159
https://blog.csdn.net/taotongning/article/details/81390979
https://www.imooc.com/read/54#new_header

da

相似回答