OSI模型与TCP/IP模型
一、分层思想
将复杂的流程分解为几个功能相对单一的子过程
1.使整个流程更加清晰,复杂问题简单化
2.更容易发现问题并针对性的解决问题
二、OSI七层参考模型
1.OSI简介
国际标准化组织(ISO)1984年颁布了开放系统互连(OSI)参考模型。一个开放式体系结构将架构分为七层。
分层 | 功能 |
---|---|
应用层 | 网络服务于最终用户的一个接口 |
表示层 | 数据的表示、安全、压缩 |
会话层 | 建立、管理、终止会话 |
传输层 | 定义传输数据的协议端口号、以及流控和差错校验 |
网络层 | 进行逻辑地址寻址,实现不同网络之间的路径选择 |
数据链路层 | 建立逻辑连接、进行硬件地址寻址、差错校验等功能 |
物理层 | 建立、维护、断开物理连接 |
2.OSI参考模型各层的功能
(1)应用层:人机交互的窗口,是把人的语言输入到计算机当中;例如在QQ的对话窗口输入字符以及对方发过来的信息。
(2)表示层:将收到的数据翻译成二进制数组成的计算机语言,并对数据进行压缩和解压,数据加密等工作。
(3)会话层:管理是否允许不同机器之间建立会话连接关系,该关系属于软件层面。
(4)传输层:将上层应用数据分片加上端口号封装成数据段,或通过对报文头中的端口识别,实现网络中不同主机上的用户进程之间数据通信,有承上启下的作用。
(5)网络层:将上层数据加上源和目的方的逻辑地址(IP)封装成数据包,实现数据从源端到目的端的传输。
(6)数据链路层:将上层数据加上源和目的方的物理地址(MAC)封装成数据帧,MAC地址是用来标识网卡的物理地址,建立数据链路;当发现数据错误时,可以重传数据帧。
(7)物理层:报文头部和上层数据信息都是由二进制数组成的,物理层将这些二进制数字组成的比特流转换成电信号在网络传输。此层面属于硬件层面。
注意
网络层及以下的通信为点对点通信(主机与主机间)
传输层的通信为端到端通信(程序与程序间)
三、OSI模型vsTCP/IP模型
四、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无线局域网标准,即无线网络。
1.TCP(传输控制协议)协议应用的端口及其协议功能----传输更加稳定可靠
端口 | 名称 | 作用 |
---|---|---|
80 | HTTP(超文本传输协议) | 用于浏览器和Web服务器之间的请求和响应的交互 |
21 | FTP (文件传输协议) | 用于控制连接FTP服务器 |
53 | DNS(域名系统) | 用于连接DNS服务器 |
25 | SMTP(简单邮件传输协议) | 用于发送邮件 |
110 | POP3(邮局协议版本3) | 用于接收邮件 |
22 | SSH(安全外壳协议) | 用于计算机之间的远程加密登录 |
2.UDP(用户数据报协议)协议应用的端口及其协议功能----传输效率更高
端口 | 名称 | 作用 |
---|---|---|
69 | TFTP (简单文件传输协议) | 用于小文件的传输 |
53 | DNS(域名系统) | 用于解析DNS |
111 | RPC(远程调用协议) | 用于远程过程调用 |
161 | SNMP(简单网络管理协议) | 用于网络设备的管理 |
123 | NTP(网络时间协议) | 用于网络时间同步 |
3.IP(网际协议)协议及其功能
名称 | 作用 |
---|---|
ARP(地址解析协议) | 用于在局域网中根据IP地址获取物理地址 |
RARP(逆地址解析协议) | 用于在局域网中通过ARP表根据物理地址请求IP地址 |
ICMP(网际控制报文协议) | 用于验证网络是否畅通 |
IGMP(网际组管理协议) | 用于主机与组播路由器之间组播通信 |
五、数据封装过程
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.物理层传输过程
无论在之前哪一层封装的报文头部还是上层数据信息都是由二进制数组成的,在物理层,将这些二进制数字组成的比特流转换成电信号在网络中传输。
六、数据解封装过程
数据解封装过程与数据封装过程相反
七、PDU协议数据单元
对于 OSI 参考模型而言,每一层都是通过 PDU(Protocol Data Unit,协议数据单元) 来进行通信的;而对于 TCP/IP 五层结构,也可以沿用这个概念。
八、设备与层的对应关系
层 | 设备 |
---|---|
应用层 | 手机APP |
传输层 | 防火墙 |
网络层 | 路由器 |
数据链路层 | 交换机 |
物理层 | 网卡 |
各层通信
如下图所示,数据在传输过程中不断地进行着封装和解封装的过程,中间设备属于哪一层就在哪一层对数据进行相关的处理,以实现设备的主要功能。