一、为何分层
层次划分的必要性:
旧模型是专有产品,由一个厂商控制应用程序和嵌入的软件
基于标准的模型是多厂商软件,用分层方法
硬件没有统一标准,软件也没有统一标准,因为全球互联网、网络之间需要通信,不同厂商之间的设备也无法通信,于是国际标准化组织(ISO)统一了标准,所有厂商生产的各种型号的计算机,都可以通过TCP/IP协议互相通信
层次划分的方法:
1.网络的每层都具有相对独立的功能,当某功能出现问题,就是那一层出现问题需要处理方便排除错误
2.梳理每层功能之间的关系,使上个功能可以实现为下个功能提供必要的服务,从而形成系统的层次结构,每环相扣形成紧密联系
3.为提高系统的工作效率,相同或相近的功能仅在一个层次中实现,而且尽可能在较高的层次中实现
4.每一层只为相邻的上一层提供服务
层次划分的优点:
1.各层之间相互独立,每一层只用实现一种功能,使问题复杂程度降低,利于针对解决问题
2.灵活性好,各层内部的操作不会影响其他层
3.结构上可分割,各层之间都可以采用最合适的技术来实现
4.易于实现和维护,整个系统被分解成相对独立的子系统
5.能促进标准化工作,每一层功能和所能提供的服务都有精确的说明
二、OSI七层参考模型
OSI开放式系统互联参考模型(ISO):提升了各个厂家的设备兼容性。
互联网的本质就是一系列的网络协议,这个协议就叫OSI协议,按照功能、分工不同,人为分成七层,但是这个七层实际上是不存在的,只是人为的划分,便于清晰的让人理解每层的作用,复杂的事情简单化。
1.发送方
1.应用层(Application):网络服务与最终用户的一个接口(用户操作)人和程序之间的一个交流平台。输入高级语言指令(例:微信、qq、浏览器)
2.表示层(Presentation):数据的表示、安全、压缩。将人类使用的高级语言翻译成二进制语言,并指定数据的存储格式、加密格式、解密、压缩等工作
3.会话层(Session):建立、管理、终止会话。管理多个对话,保证消息正确到达指定的地方,通过一些协议判断两个软件之间是否可以进行通信
4.传输层(Transport):定义传输数据的协议端口号以及流控和差错校验。确定传输的协议:tcp/udp(数据传输协议:协商、议定),发送数据时按照某种特定格式发,接收方也按照某种特定格式接收。tcp:传输慢但稳定(例:网站)udp:传输快但不稳定(例:直播)在网络传输中,通过端口号的不同来区分应用程序(通过端口号确定来发给哪个应用程序,说白了传输层就像选择哪家快递公司)
5.网络层(Network):进行逻辑地址寻址,实现不同网络之间的路径选择。选择数据的最佳传输路线(ip地址)
6.数据链路层(Data Link):建立逻辑连接,进行硬件地址寻址、差错校验等功能。二次确认数据是否正确到达指定目的地(mac地址:全球唯一性的)
7.物理层(Physical):建立、维护或断开物理连接(定义了一些物理接口的标准)将二进制数据转换成电信号传输出去。说白了就是插上或拔下网线。
2.接收方
1.物理层(Physical):将收到的电信号转换成二进制
2.数据链路层(Data Link):对比自己的Mac地址和接受的数据包里面的mac地址做对比查看是否一致,若一致就接收,不一致就丢弃
3.网络层(Network):再次对比ip地址是否正确
4.传输层(Transport):通过端口号找到对应的程序
5.会话层(Session):通过特定的会话通道到达表示层
6.表示层(Presentation):将二进制语言转化成高级语言
7.应用层(Application):显示在应用程序中
3.OSI七层总结
层次模型 | 作用 | 数据单元 | 主要设备 |
应用层 | 网络服务与最终用户的一个接口 | message | |
表示层 | 数据的表示、压缩、格式化、加密 | message | |
会话层 | 建立、管理、中止会话 | message | |
传输层 | 定义传输数据的协议端口号,以及流量和差错校验 | 数据段 | |
网络层 | 进行逻辑地址寻址,实现不同网络之间的路径选择 | 数据包 | 路由器 |
数据链路层 | 进行硬件地址寻址,差错校验等功能 | 数据帧 | 交换机 |
物理层 | 建立、维护、断开物理连接 | 比特流 | 网卡 |
PDU(Protocol Data Unit)协议数据单元:对等层次之间传递的数据单元
物理层PDU:数据位(bit)
数据链路层PDU:数据帧(frame)
网络层PDU:数据包(packet)
传输层PDU:数据段(segment)
其他更高层次PDU:消息(message)
应用层、表示层、会话层是高三层---面向客户
网络层、数据链路层、物理层是低三层---面向硬件
(应用层7表示层6会话层5传输层4网络层3数据链路层2物理层1)
数据链路层最典型的设备就是交换机(二层交换机原理根据mac地址转发数据),网络层最典型的设备就是路由器(三层原理根据ip地址转发数据),传输层最典型的设备就是防火墙(四层原理根据协议和端口号),应用层最典型的设备就是计算机pc(七层协议控制真实数据转发文件),物理层最典型的设备就是网卡
每层的原理:
二层:交换机,根据mac地址转发数据
三层:根据ip地址转发数据
四层:根据协议和端口号
七层:根据协议控制真实数据转发文件
四层代理和七层代理的区别在于:四层快但是功能少,七层慢但是功能多
注:网络层及以下的通信为点对点通信(主机与主机),传输层的通信为端到端通信(端口-端口)
三、TCP/IP参考模型
TCP/IP(Transmission Control Protocol/Internet Protocol):传输控制协议/网际协议
TCP/IP是指能够在多个不同网络间实现信息传输的协议簇,TCP/IP不仅仅指的是TCP和IP两个协议,其实还有FTP、SMTP、TCP、UDP、IP等协议构成的协议簇,只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
OSI参考模型与TCP/IP模型都采用了分层体系结构,将庞大而复杂的问题转化为多个易于处理的子问题。TCP/IP参考模型最多划分了5个层次,将OSI参考模型中的高三层合并为一层统称应用层,在层次结构上,都采用了分层体系结构,但是TCP/IP参考模型比OSI参考模型更简化。如图:
四、TCP/IP协议簇的组成
模型层 | 协议 |
应用层 | HTTP、FTP、TFTP、SMTP、SNMP、DNS |
传输层 | TCP、UDP |
网络层 | IP(ICMP、IGMP、ARP、RARP) |
数据链路层 | Point-to-Point Protocol |
物理层 | IEEE802.3有线局域网(以太网),IEEE802.11无线局域网标准 |
网络层协议:
ICMP协议:检测主机双向联通性,程序ping/tracert
ARP(Address Resolution Protocol)地址解析协议:将ip转换成mac地址的协议
应用层协议:
http:超文本传输协议(就是平时看的网页、网页协议)---默认使用tcp的80端口
https:超文本加密版(是http协议的加密版)---默认使用tcp的443端口
ftp:文件传输协议(vsftpd/filezila用ftp协议使用的软件)---默认使用tcp的20,21端口
tftp:简单文件传输协议---默认使用的udp的69端口
注:协议的体现形式是软件,像nginx用的就是http协议
五、数据封装与解封过程
tcp/udp头部:选择TCP端口或UDP端口
IP地址头部:源IP地址和目的IP地址
MAC地址头部:源mac和目的mac
解装过程和封装过程相反:
封装:原始数据-数据段-数据包-数据帧-比特流
解装:比特流-数据帧-数据包-数据段-原始数据
六、单工、半双工和全双工的区别和联系
1.单工
单工数据传输只支持数据在一个方向上传输,在同一时间只有一方能接受或发送信息,不能实现双向通信。例:电视、广播等
2.半双工
半双工数据传输支持数据在两个方向上传输,但是在某一时刻,只支持数据在一个方向上传输,实际上是一种切换方向的单工通信,在同一时间只能有一方发送或接收信息,但是区别于单工的是半双工可以实现双向通信。例:对讲机
3.全双工
全双工数据通信允许数据同时在两个方向上传输,因此全双工通信是两个单工通信方式的结合,全双工要求的是发送设备和接收设备都有独立的接收和发送能力,可以在同一时间同时接收和发送信息,实现双向通信。例:电话通信