求翻!!!计算机网络之OSI参考模型的分层结构和TCP/IP协议栈及数据的封装解封过程

分层思想

在学习计算机网络参考模型之前,让我们先了解什么是分层思想分层思想简单来说就是将复杂的流程分解为几个功能相对单一的子过程。

1、OSI参考模型与TCP/IP协议栈的分层结构

1-1、OSI参考模型

OSI(Open System Interconnect),即开放式系统互联。是ISO(国际标准化组织)组织在1985年研究的网络互联模型。

1-2、OSI参考模型的分层结构

OSI参考模型是一个开放式体系结构,将网络分为七层。

在这里插入图片描述

应用层:应用层是OSI参考模型的最高层,是用户与网络的接口。该层通过应用程序来完成网络用户的应用需求,例如在QQ聊天框输入文字。

表示层:表示层处理流经结点的数据编码的表示方式问题,以保证一个系统应用层发出的信息可被另一系统的应用层读出。将接受到的数据翻译成二进制数组的计算机语言,并对数据进行压缩、解压、数据加密和解密等工作。

会话层:会话层主要功能是管理和协调不同主机上各种进程之间的通信(对话),即管理员是否允许不同机器上的用户之间建立对话的关系。

传输层:传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务。

网络层:进行逻辑地址(IP)寻址,实现不同网络之间的路径选择。将上层数据加上源和目的方的逻辑(IP)地址封装成数据包,实现数据从源端到目的端的传输。

数据链路层:数据链路层是为网络层提供服务的,解决两个相邻结点之间的通信问题,将上层数据加上源和目的方的物理地址(MAC)地址封装成数据帧。MAC地址是用来表示网卡中的物理地址(MAC),建立数据链路。

物理层:物理层是OSI参考模型的最低层,它利用传输介质为数据链路层提供物理连接。报文头部和上层数据信息都是由二进制数组成的,物理层将二进制数组成的比特流转换成电信号在网络中传输。

网络层及以下的通信为点对点通信。
传输层的通信为端到端通信。

1-3、TCP/IP参考模型

TCP/IP是传输控制协议/网络互联协议(Transmission Control Protocol/Internet Protocol)的简称。早期的TCP/IP模型是一个四层结构,从下往上依次是网络接口层、互联网层、传输层和应用层。在后来使用过程中,借鉴OSI的七层参考模型,又将网络接口层划分为物理层和数据链路层。

1-4、TCP/IP分层结构及协议

分层 定义的协议
应用层 HTTP、FTP、TFTP、SMTP、SNMP、DNS
传输层 TCP、UDP
网络层 ICMP、IGMP、IP、ARP、RARP
物理层和数据链路层 由底层网络定义的协议

1-5、TCP/IP协议端口及功能

TCP(传输控制协议)协议应用的端口及其协议功能----传输更加稳定可靠
HTTP(超文本传输协议):用于浏览器和Web服务器之间的请求和相应的交互 端口:80

FTP(文件传输协议):用于控制连接FTP服务器 端口:21

DNS(域名系统):用于连接DNS服务器 端口:53

SMTP(简单邮件传输协议):用于发送邮件 端口:25

POP3(邮局协议版本3):用于接收邮件 端口:110

SSH(安全外壳协议):用于计算机之间的远程加密登录 端口:22

UDP(用户数据报协议)协议应用的端口及其协议功能----传输效率更高

TFTP(简单文件传输协议):用于小文件的传输 端口:69

DNS(域名系统):用于解析DNS 端口:53

RPC(远程调用协议):用于远程过程调用 端口:111

SNMP(简单网络管理协议):用于网络设备的管理 端口:161

NTP(网络时间协议):用于网络时间同步 端口:123

IP(网际协议)协议及其功能:

ARP(地址解析协议):用于在局域网中根据IP地址获取物理地址

RARP(逆地址解析协议):用于在局域网中通过ARP表根据物理地址请求IP地址

ICMP(网际控制报文协议):用于验证网络是否通畅

IGMP(网际组管理协议):用于主机与组播路由器之间组播通信

2、数据传输

1-1、数据封装过程

我们目前使用数量最多的聊天软件就是QQ和微信,那么你们知道这些聊天数据是如何在网上进行传输的吗?下面就以TCP/IP五层结构来了解以下数据是如何在网络上进行传输的。
在这里插入图片描述

(1)应用层传输过程:我们所发送的数据里包含图片,视频,字母,文字,音频等等,这些对于计算机来说过于“复杂”,所以在应用层当中,这些数据首先会被“翻译”成计算机懂的语言——二进制编码数据

(2)传输层传输过程:在传输层中,上层(应用层)数据会被分割成小的数据段,这里数据单元称为:数据段,为什么要将数据分为段,因为计算机将我们的数据翻译成二进制编码后,它的数据往往是海量的,一张图片的二进制数可能就会有几百万甚至几千万比特,一次性传输大量数据,一旦网络出现问题而导致数据出错就要重新传输,因此,将数据先分割成小段之后再逐段传输,一旦数据传输出现错误只需要重传这一小段数据即可。接着会为每个分段后的数据封装TCP报文头部,在TCP头部有一个关键的字段信息——端口号,它用于标识上层的协议或应用程序,确保上层应用数据的正常通信。举个例子,比如用QQ发送信息,QQ的端口号是4000,那么接受方一定也要是QQ,不可能是微信接收到,因为微信的端口号不是4000。

(3)网络层传输过程:在网络层,上层(传输层)数据会被新添一个报文头部——IP头部。对于网络层而言,它是看不懂上层数据的(TCP报文头部内容)。注:这里的上层数据包括TCP头部以及应用层数据都属于上层数据
在IP头部中有一个关键的字段信息——IP地址,它是由32位的二进制数组成的,用于表示网络的逻辑地址。在IP头部中包含目标IP地址和源IP地址,在网络传输过程中如路由器,会根据目标IP地址来进行逻辑寻址,找到正确的路径将数据发送到目的端主机。网络层传输的数据单元是:数据包

(4)数据链路层传输过程:在数据链路层中,上层数据会被封装一个MAC头部,其内部有一个关键字段——MAC地址,它由一组48位的二进制数组成。可以把它理解为固化在硬件设备中的物理地址,MAC地址在全球是独一无二的,每个人电脑的MAC地址都不一样,具有唯一性。MAC头部和IP头部功能类似,也是封装着目标的MAC地址和源MAC地址。数据链路层的数据单元为:数据帧。

(5)物理层传输过程:之前所有上层封装的报文头部还有数据信息都是由二进制数组成,在物理层,将这些二进制数组成的比特流转换成电信号在网络中传输。物理层的数据单元为:比特流。

1-2、数据解封过程

数据被封装完毕通过网络传输到接收方后,将会进入一个数据的解封过程,其实就是封装过程的逆过程。在这里插入图片描述
(1)物理层:首先将电信号转换为二进制数,并将数据传输给数据链路层。

(2)数据链路层:查看目标的MAC地址,判断其MAC地址是否与自己的MAC地址相吻合,如果地址吻合,数据的MAC头部将会被拆掉,并将剩余的数据传输给上一层;如果目标的MAC地址与自己的MAC不吻合,对于终端设备来说,它会丢掉数据。

(3)网络层:与数据链路层相类似,首先查看目标的IP地址,判断其IP地址是否与自己的IP相同,相同的话,数据的IP头部也会被拆掉,将数据传输给上一层,如果不吻合,则数据会被丢弃。

(4)传输层:首先要根据TCP头部判断数据段送往哪个应用层协议或者应用程序,然后将之前分段的数据重组,继续发给上层。

(5)应用层:应用层将经过一系列复杂过程将这些二进制编码解码,以还原成发送者所传输的原始信息。

猜你喜欢

转载自blog.csdn.net/lmy51848/article/details/114306108