计算机网络参考模型---OSI参考模型与TCP/IP协议簇

前言

学习计算机的都应该了解,计算机网络中有2个重要的参考模型始终是绕不过去的,那就是OSI 参考模型和TCP/IP参考模型,计算机网络中的各种服务都是通过这2个模型进行搭建的,下面就通过我的笔记揭开它们的神秘面纱。

一、OSI七层参考模型

1.OSI简介

国际标准化组织(ISO)1984年颁布了开放系统互连(OSI)参考模型。一个开放式体系结构将架构分为七层。

分层 功能
应用层 网络服务于最终用户的一个接口
表示层 数据的表示、安全、压缩
会话层 建立、管理、终止会话
传输层 定义传输数据的协议端口号、以及流控和差错校验
网络层 进行逻辑地址寻址,实现不同网络之间的路径选择
数据链路层 建立逻辑连接、进行硬件地址寻址、差错校验等功能
物理层 建立、维护、断开物理连接

2.OSI参考模型各层的功能

1)应用层:人机交互的窗口,是把人的语言输入到计算机当中;例如在QQ的对话窗口输入字符以及对方发过来的信息。
2)表示层:将收到的数据翻译成二进制数组成的计算机语言,并对数据进行压缩和解压,数据加密等工作。
3)会话层:管理是否允许不同机器之间建立会话连接关系,该关系属于软件层面。
4)传输层:将上层应用数据分片加上端口号封装成数据段,或通过对报文头中的端口识别,实现网络中不同主机上的用户进程之间数据通信,有承上启下的作用。
5)网络层:将上层数据加上源和目的方的逻辑地址(IP)封装成数据包,实现数据从源端到目的端的传输。
6:)数据链路层:将上层数据加上源和目的方的物理地址(MAC)封装成数据帧,MAC地址是用来标识网卡的物理地址,建立数据链路;当发现数据错误时,可以重传数据帧。
7)物理层:报文头部和上层数据信息都是由二进制数组成的,物理层将这些二进制数字组成的比特流转换成电信号在网络传输。此层面属于硬件层面。
*注:网络层及以下的通信为点对点通信(主机与主机间);传输层的通信为端到端通信(程序与程序间)

二、TCP/IP协议簇

1.TCP/IP

TCP/IP(transmission control /Internet protocol 传输控制协议/网络互联协议)早期的TCP/IP模型是一个四层结构网络接口层网络层传输层应用层后期5层结构将网络接口层分为物理层和数据链路层。下图为TCP/IP模型和OSI模型的对比:计算机网络参考模型---OSI参考模型与TCP/IP协议簇
1)应用层:HTTP、FTP、TFTP、SMTP、SNMP、DNS
2)传输层:TCP(可靠)、UDP(不可靠)
3)网络层:IP、ARP、RARP、ICMP、IGMP
4)物理层和数据链路层:由底层网络定义的协议。IEEE 802.3有线局域网(以太网)标准,即有线网络;IEEE 802.11无线局域网标准,即无线网络。

2.常用的网络协议

TCP(传输控制协议)协议应用的端口及其协议功能----传输更加稳定可靠

端口 名称 作用
80 HTTP(超文本传输协议) 用于浏览器和Web服务器之间的请求和响应的交互
21 FTP (文件传输协议) 用于控制连接FTP服务器
53 DNS(域名系统) 用于连接DNS服务器
25 SMTP(简单邮件传输协议) 用于发送邮件
110 POP3(邮局协议版本3) 用于接收邮件
22 SSH(安全外壳协议) 用于计算机之间的远程加密登录

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

端口 名称 作用
69 TFTP (简单文件传输协议) 用于小文件的传输
53 DNS(域名系统) 用于解析DNS
111 RPC(远程调用协议) 用于远程过程调用
161 SNMP(简单网络管理协议) 用于网络设备的管理
123 NTP(网络时间协议) 用于网络时间同步

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

名称 作用
ARP(地址解析协议) 用于在局域网中根据IP地址获取物理地址
RARP(逆地址解析协议) 用于在局域网中通过ARP表根据物理地址请求IP地址
ICMP(网际控制报文协议) 用于验证网络是否畅通
IGMP(网际组管理协议) 用于主机与组播路由器之间组播通信

三、数据封装和解封装

1.数据封装过程

1)应用层传输过程
在应用层,数据被“翻译”为网络世界使用的语言——二进制编码数据。大家可以试想一 下,人们需要通过计算机传输数据的形式千变万化、各式各样,有字母、数字、汉字、图片、声音等。这些信息对于单一通过弱电流传输的计算机来说太过于“复杂”,因此这些人类方便识别的信息被应用层通过各种特殊的编码过程转换成二进制数据。这就是上面所描述的“翻译”过程,也是应用层在网络数据传输过程中最为核心的贡献。
2)传输层传输过程
在传输层,上层数据被分割成小的数据段,并为每个分段后的数据封装TCP报文头部。 应用层将人们需要传输的信息转换成计算机能够识别的二进制数据后,这些数据往往都是海量的。例如,一张高清晰的图片转换成二进制数据可能会有几百万位甚至几千万位,如此庞大的数据一次性传输的话,一旦网络出现问题而导致数据出错就要重新传输,数据量过大会加大出错的概率,最终可能会导致网络资源耗尽。因此,将数据先分割成小段再逐段传输, 一旦出现数据传输错误只需重传这一小段数据即可。在TCP头部有一个关键的字段信息——端口号,它用于标识上层的协议或应用程序,确保上层应用数据的正常通信。计算机是可以多进程并发运行的,比如当计算机在通过QQ发送信息的同时也可以通过IE浏览器浏览右边主机的Web页面,对于右边的主机就必须弄清楚左边主机发送的数据要对哪个应用程序实施通信。但是对于传输层而言,它是不可能看懂应用层传输具体数据的内容的,因此只能借助一种标识来确定接收到的数据对应的应用程序,这种标识就是端口号。
3)网络层传输过程
在网络层,上层数据被封装上新的报文头部——IP头部。值得注意的是,这里所说的上层数据包括 TCP 头部,也就是说,这里的上层是指传输层。对于网络层而言,它是“看不懂”TCP报文头部中内容的,在它看来,无论是应用层的应用数据,还是TCP头部信息都属于上层数据。在IP头部中有一个关键的字段信息——IP地址,它是由一组32位的二进制数组成的,用于标识网络的逻辑地址。回想刚才寄信的例子,我们在信封上填写对方的详细地址和本地的详细地址,以保证收件人能够顺利收到信件。在网络层的传输过程与其很类似,在IP头部中包含目标IP地址和源IP地址,在网络传输过程中的一些中间设备,如路由器,会根据目标IP地址来逻辑寻址,找到正确的路径将数据转发到目的端。如果中间的路由设备发现目标的IP地址根本是不可能到达的,它将会把该消息传回发送端主机,因此在网络层需要同时封装目标IP和源IP。
4)数据链路层传输过程
在数据链路层,上层数据被封装一个 MAC 头部,其内部有一个关键的字段信息——MAC地址,它由一组48位的二进制数组成。在目前阶段,我们先把它理解为固化在硬件设备中的物理地址,具有全球唯一性。例如,之前讲解的网卡就有属于自己的唯一的MAC地址。和IP头部类似,在MAC头部也同时封装着目标MAC地址和源MAC地址。其实,二层封装还涉及尾部的封装,但今天就说一下头部的封装。
5)物理层传输过程
无论在之前哪一层封装的报文头部还是上层数据信息都是由二进制数组成的,在物理层,将这些二进制数字组成的比特流转换成电信号在网络中传输。
计算机网络参考模型---OSI参考模型与TCP/IP协议簇

2.数据解封装过程

看完数据封装再看这个是不是特别简单?
其实解封装就是把TCP报文头部摘掉,这里就不在详细说明。
计算机网络参考模型---OSI参考模型与TCP/IP协议簇

3.PDU

对于 OSI 参考模型而言,每一层都是通过 PDU(Protocol Data Unit,协议数据单元) 来进行通信的;而对于 TCP/IP 五层结构,也可以沿用这个概念。

分层 传输数据单元
传输层 数据段
网络层 数据包
数据链路层 数据帧
物理层 比特流(Bits)

计算机网络参考模型---OSI参考模型与TCP/IP协议簇

4.设备与层的对应关系

常见的设备属于哪一层并没有严格的定义或是官方的 RFC 文档说明,但是了解网络设备属于哪一层对于学习具有很好的指导意义。设备属于哪一层要看这个设备主要工作在哪一层,如图所示便是设备与层的对应关系。
计算机网络参考模型---OSI参考模型与TCP/IP协议簇

5.各层间完整通信如下

如下图所示,数据在传输过程中不断地进行着封装和解封装的过程,中间设备属于哪一层就在哪一层对数据进行相关的处理,以实现设备的主要功能。也正因如此,我们称 TCP/IP 五层模型为“参考”模型,参考这五层模型可以帮助我们很好地研究网络中的设备及设备工作过程中遵守的协议。具体的封装与解封装已在上面描述,这里就不在解说了。

计算机网络参考模型---OSI参考模型与TCP/IP协议簇

总结

在现网中我们一般采用TCP/IP协议来定义网络,因为OSI七成模型过于将每一层的实现功能和价值抽离出来,虽然很细,但不适用;OSI七层模型只停留在理论中,实际实现的过程发现,TCP/IP模型更适合实践。
其实本章中很多东西没有详细讲解,我也只是写出了一些自己的理解,有什么不对的或要补充的,请联系我。