作者: | 来源:互联网 | 2023-09-07 15:50
目录0、引言1、名词解释2、OSI参考模型2.1各层功能2.2各层相关协议,数据传输单位3、补充相关协议3.1TCPUDPTCPUDP的区别通道的建立-三次握手
目录 0、引言1、名词解释2、OSI参考模型2.1 各层功能2.2 各层相关协议,数据传输单位 3、补充相关协议3.1 TCP/UDPTCP/UDP的区别通道的建立 - 三次握手通道的关闭 - 四次挥手 3.2 IP3.3 SMTP3.4 DNS3.5 FTP3.6 SSH文件传输协议3.7 HTTP
0、引言
本篇主要讲解 ISO七层协议的模型架构、各层的解析及其协议,虽然OSI参考模型在实际中的应用意义并不是很大,但是它对于理解网络协议内部的运作很有帮助,为我们学习网络协议提供了一个很好的参考。
1、名词解释
ISO : 国际标准化组织
ISO是“国际标准化组织”的英文简称,其全称是International Organization for Standardization。
ISO成立于1947年2月23日,是世界上最大的国际化标准组织。
OSI : 开放式系统互联
国际标准组织(国际标准化组织)制定了OSI(Open System Interconnection)模型。这个模型把网络通信的工作分为7层,分别是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层。
2、OSI参考模型
虽然OSI参考模型在实际中的应用意义并不是很大,但是它对于理解网络协议内部的运作很有帮助。
主要分为以下七层(从下至上):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
2.1 各层功能
物理层(Physical Layer)
物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。简单的说,物理层确保原始的数据可在各种物理媒体上传输。
简单理解:数据,以二进制的形式在物理媒体上传输。
单位:比特(bit)
数据链路层(Data Link Layer)
主要有两个功能 :帧编码和误差纠正控制。帧编码意味着定义一个包含信息频率、位同步、源地址、目标地址以及其他控制信息的数据包,其中MAC地址负责局域网通信。
简单理解:对接物理层和网路层的数据线,实现比特与帧的转换。MAC地址访问媒介。
单位:帧(frame)
网络层(Network Layer)
在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网,网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。
数据包:包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。
简单理解:提供逻辑地址(IP), 路由选择,将数据链路层提供的帧组成数据包。
单位:数据包(packet)
传输层(Transport Layer)
传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。
简单理解:提供端到端的服务。可以实现流量控制、负载均衡。选择端口号。
单位:数据包(packet,不同协议叫法不同,TCP:段 segments、UDP:数据报 datagrams)
会话层(Session Layer)
这一层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步,访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。使通信会话在通信失效时从校验点继续恢复通信。
在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。
简单理解:身份验证、会话管理和确定通讯方式。
单位:报文
表示层(Presentation Layer)
这一层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。
简单理解:数据表现形式,数据和信息的变换确保其他主机的理解。
单位:报文
应用层(Application Layer)
最靠近用户,操作系统或网络应用程序提供访问网络服务的接口。
单位:报文
2.2 各层相关协议,数据传输单位 名称相关协议数据传输单位物理层IEEE 802.1A、IEEE 802.2比特数据链路层MAC、 FDDI、Ethernet、Arpanet、PPP、PDN帧网络层IP、ICMP、ARP、RARP数据包传输层TCP、UDP数据包(Segment/Datagram)会话层SMTP、DNS报文表示层Telnet、SNMP报文应用层FTP、TFTP、Telnet、HTTP、DNS报文 3、补充相关协议
以上通过图表、文字向大家阐述了七层模型每一层的具体功能及其相关协议,但知道了这些还不够,实际开发中还有其他相关的协议需要了解。
3.1 TCP/UDP
TCP:传输控制协议
Transmission Control Protocol,是一种面向连接的、可靠的、基于字节流的传输层通信协议。
是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。
UDP:用户数据报协议
User Datagram Protocol,是一个简单的面向无连接的,不可靠的数据报的传输层协议。
TCP/UDP的区别 TCPUDP是否连接面向连接无连接传输可靠性可靠的,使用流量控制和拥塞控制不可靠的,不使用流量控制和拥塞控制应用场景传输少量数据传输大量数据速度慢快传输方式面向字节流面向报文首部开销首部最小20字节,最大60字节首部开销小,仅8字节连接对象个数只能是一对一通信支持一对一,一对多,多对一和多对多交互通信适用场景适用于要求可靠传输的应用,例如文件传输适用于实时应用(IP电话、视频会议、直播等)
在实际的使用中,TCP主要应用于文件传输精确性相对要求较高且不是很紧急的情景,比如电子邮件、远程登录等。有时在这些应用场景下即使丢失一两个字节也会造成不可挽回的错误,所以这些场景中一般都使用TCP传输协议。由于UDP可以提高传输效率,所以UDP被广泛应用于数据量大且精确性要求不高的数据传输,比如我们平常在网站上观看视频或者听音乐的时候应用的基本上都是UDP传输协议。
通道的建立 - 三次握手 在建立通道时,客户端首先要向服务端发送一个SYN同步信号。服务端在接收到这个信号之后会向客户端发出SYN同步信号和ACK确认信号。当服务端的ACK和SYN到达客户端后,客户端与服务端之间的这个“通道”就会被建立起来。 通道的关闭 - 四次挥手 在数据传输完毕之后,客户端会向服务端发出一个FIN终止信号。服务端在收到这个信号之后会向客户端发出一个ACK确认信号。如果服务端此后也没有数据发给客户端时服务端会向客户端发送一个FIN终止信号。客户端在收到这个信号之后会回复一个确认信号,在服务端接收到这个信号之后,服务端与客户端的通道也就关闭了。
关于三次握手四次挥手,推荐一篇比较容易理解且详细的文章
3.2 IP
网际互连协议(Internet Protocol),是TCP/IP体系中的网络层协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。根据端到端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据报传输服务。
3.3 SMTP
简单邮件传输协议(Simple Mail Transfer Protocol),是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。
用于从源地址到目的地址传送邮件的规则,并且控制信件的中转方式。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。
3.4 DNS
域名系统协议(Domain Name System),是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换,以及控制因特网的电子邮件的发送。
是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
3.5 FTP
文件传输协议(File Transfer Protocol),是用于在网络上进行文件传输的一套标准协议,它工作在 OSI 模型的第七层, TCP 模型的第四层, 即应用层, 使用 TCP 传输而不是 UDP, 客户在和服务器建立连接前要经过一个“三次握手”的过程, 保证客户与服务器之间的连接是可靠的, 而且是面向连接, 为数据传输提供可靠保证。
3.6 SSH文件传输协议
SSH文件传输协议(SSH File Transfer Protocol),也称为:安全文件传送协议(Secret File Transfer Protocol,SFTP),是一数据流连接,提供文件访问、传输和管理功能的网络传输协议。
3.7 HTTP
超文本传输协议(HyperText Transfer Protocol),是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型,是一个无状态的协议。