内容源自视频:https://www.youtube.com/watch?v=vv4y_uOneC0,
对视频https://www.bilibili.com/video/BV1qJ411J7Tt?t=671中提供的汉化进行了人为修正
仅供学习使用,请勿用在其他用途,侵删
OSI模型定义并用于理解数据在计算机网络中如何从一台计算机转移到另一台计算机。
计算机网络最基本的形式是:两台计算机通过网线和连接器连接,在网卡的帮助下共享数据,形成一个网络系统。
为了完成不同计算机或网络或架构之间的成功通信,国际标准化组织(ISO,1984)提出了OSI七层模型。
OSI网络模型分为七层:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层
应用层由网络应用程序使用(使用互联网的计算机应用)。在应用层中包含几十种协议,这些协议可以活跃在一个应用层上,为各种网络服务提供基础功能,比如:文件传输(FTP)、网上冲浪(HTTP/S)、电子邮件(SMTP)、虚拟终端(Telnet)等
表示层从应用层接收数据,这些数据主要是以字符和数字的形式出现。表示层对这些数据进行以下处理:
会话层对两个会话进程的建立、维持和结束进行协调和管理,对数据的交换进行管理。
会话层使用 API(应用程序编程接口) 为不同的应用提供服务。例如:NetBIOS(网络基本输入输出系统)允许不同计算机上的应用程序相互通信。
在会话或者连接建立连接之前,服务器执行身份验证”服务,对身份进行验证。在用户信息被发送到服务器之后,计算机和服务器之间的连接被建立。
如果身份验证成功,将检查用户授权,用来确认对文件的访问权限;如果身份验证失败
如果身份验证失败,用户则会被告知无权访问此页面。
会话层会对下载的文件进行跟踪。例如网页包含的文本和图像等,这些文本和图像作为单独的文件存储在Web服务器上。当在Web浏览器中请求网站时,Web浏览器将打开与Web服务器之间的单独对话,来下载这些文本和图像文件。
这些文件以数据包的形式接收,因为一个文件会被分为多个数据包发送,会话层确定数据包是属于哪个文件。
会话层还确定这些数据包将去往何处,在这个例子中,接收到的数据包将发送到Web浏览器。因此会话层对会话管理很有帮助。
网络浏览器会执行应用层,表示层,会话层的所有功能,这也是TCP/IP五层模型出现的原因
传输层通过分段、流量控制、差错控制来保证通信的可靠性,另外还提供面向有链接和无连接的传输。
分段:传输层将从会话层接收到的数据划分为较小的数据单元 – – 段(segment)。每个段包含一个源端口号、目的端口号和序列号。这些信息保证引导每个段传向正确的应用程序,并保证段可以在接收端正确的重新组合成文件
流量控制:用于保证传输的最大速率。例如,一个移动设备连接到一个服务器,服务器的传输速率为100Mbps,而移动设备处理数据的速率是10Mbps。当移动设备从服务器下载数据,在刚开始,服务器以50Mbps的速度发送数据,高于移动设备的传输速度。此时移动设备可以通过传输层告知服务器端将数据传输速率降到10Mbps,这样就不会造成数据丢失。再例如,服务器传输数据的速率是5Mbps,移动设备就会告知服务器将传输速率提高至10Mbps,从而保证移动设备的性能。
差错控制:如果传输过程中有数据损坏或者丢失,传输层会使用自动重传重新传输丢失或损坏的数据。传输层在每一个数据段中添加一个校验和(checksum),用来找出所接收端接收到的错误的数据段。
面向连接传输和无连接传输:传输层主要包含两种协议,TCP(Transmission Control Protocol,传输控制协议)和UDP (User Datagram Protocol,用户数据报协议)。传输层提供两种服务:面向连接的传输和面向无连接的传输。
面向连接的传输通过TCP实现,面向无连接的传输通过UDP来传输。
UDP的传输速度比TCP要快,因为UDP协议不会反馈信息是否正确的传输,而TCP会给出反馈,因此在数据传输出现错误时,使用TCP会重新传输数据。
使用UDP时,是否接收到所有的数据并不重要。例如,流媒体电影、歌曲、游戏、IP语音、TFTP、DNS等。
TCP应用于数据必须完全传递的场合。例如万维网、电子邮件、FTP等
传输层将数据段传输给网络层,网络层将这些数据从一个网络的计算机传输到另一个网络的计算机。网络层的数据单元称为数据包。
数据链路层从网络层接收数据包,数据包包含发送方和接收方的IP地址。
寻址方式有两种:逻辑寻址和物理寻址。逻辑寻址在网络层完成,发送方IP地址和接收方IP地址加入数据段形成数据包。物理寻址在数据链路层完成,发送方和接收方的MAC地址加入数据包中形成数据帧。
MAC地址是由计算机制造商嵌入到计算机网卡的十二位字母数字号码,每台计算机拥有的MAC地址是唯一的。数据链路层中的数据单元称为“帧”。数据链路层作为软件嵌入到计算机的网卡中,并提供经由本地介质将数据从一台计算机传输到另一台计算机的方法。本地介质包括铜线,光纤或无线信号。
数据链路层拥有两个基本功能 :它允许上层使用帧之类的技术访问通讯介质以及控制数据如何通过传输介质投放和接收(介质访问控制、错误监测)
介质访问:
考虑两台不同的主机,一台笔记本电脑和一台台式机,这两台主机连接到不同的网络,使用网络层IP协议来相互通信。在本例中,台式机通过网线连接到路由器R1,笔记本电脑通过无线网连接到路由器R2,路由器R1和R2通过一些方式连接到其他地方。
现在台式机向笔记本电脑发送一些数据。首先数据通过连接台式机和路由器R1的传输介质,数据链路层向每个IP数据包的头和尾增添一些信息形成数据帧。路由器R1接收到这个数据帧之后,会将帧解封取得其中的IP数据包,通过数据包中的IP地址找到发送的路径之后,再次添加信息封装成为数据帧,通过最优的路径发送到路由器R2。R2接收到数据帧后解封装,通过IP数据包的IP地址找到请求数据的笔记本电脑后,将数据包再次封装成为无线数据链路帧发送。在笔记本电脑接收到数据帧之后,解封装帧取得IP数据包发送到网络层,最终应用层将接收到数据之后,通过应用层协议将接收到的数据显示在计算机的屏幕上。
因此,网络层或更高级的层能够在数据链路层的帮助下传输数据,即数据链路层向OSI模型中的更高层级提供了对介质的访问。
控制介质上数据的接收与投放
用于获取介质中的数据帧的技术称为介质访问控制。连接在公共传输介质上的设备可能有多个,如果同一介质上连接的多个设备同时发送数据,这些数据可能会发生冲突,导致产生一个没有人可以理解的无用信息。为了避免发生冲突,数据链路层会监视传输介质何时是空闲的,这时设备就可以向接收方传递信息,这就是所谓的CSMA(载波侦听多路访问)技术。因此,数据链路层以及介质访问方法控制着数据的传输。
需要传输的数据从应用层分割形成的数据段,到传输层的数据包,到数据链路层的数据帧,再到现在的物理层,是一种二进制序列。物理层可以将这些二进制序列转换成信号并在传输介质上传输。这些信号可以是铜缆上的电信号,光缆上的光信号或空气中的无线电信号,信号的类型取决于设备之间的传输介质的类型。
在接收端,物理层将接收到的信号,转换成为二进制信号,向数据链路层传输。之后数据链路层将数据帧解封装,将数据包向上传递,最终传递到应用层,在显示器上显示接收到信息
(20220511更新)
参考文章: 计算机网络面试突击
OSI七层模型提出出于标准化的考虑, 模型结构比较复杂, 部分功能冗余.
为了面相市场, 提出了TCP/IP参考模型, 实现较为容易.
TCP/IP模型分为四个层次: 应用层, 传输层, 网络互联层和网络访问层.
将OSI参考模型中的应用层, 表示层和会话层的功能合并, 通过不同的应用层协议为不同的应用提供服务.
OSI参考模型中的传输层, 为上层提供端到端的通信服务, 主要包含传输控制协议(TCP)和用户数据报协议(UDP).
OSI参考模型中的网络层, 主要负责相同或不同网络中的主机的网络通信.
IP协议提供的主要功能是:寻址和分段. 寻址通过数据包提供的IP地址选择到目的地的传输路径,
除了IP协议之外, 网络互联层还提供: 互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)
OSI参考模型中的物理层和数据链路层, 负责监视数据在主机和网络之间的交换.