本章主要介绍常用的协议 OSI、TCP/IP、HTTP 和 HTTPS。
学习目标:
■ 掌握 OSI 参考模型
■ 掌握 TCP/IP 协议
■ 掌握 HTTP、HTTPS 协议
OSI(Open System Interconnection)参考模型是 1979 年由国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系,一般称为 OSI 参考模型或七层模型,如图 7-1 所示。它是一个七层的、抽象的模型,不仅包括一系列抽象的术语或概念,也包括具体的协议。
图 7-1 OSI 参考模型
在这里简单介绍一下 OSI 的七层模型:
物理层是 OSI 参考模型的第一层,处于最底层,是 OSI 分层结构体系中最重要的一层。它是建立在传输媒介基础上,主要负责两台设备之间真正的数据传输工作,通过比特(bit)进行传输物理接口信息、电气特性等。其主要功能是为数据端设备提供传送数据通路和传输数据。
常见的物理层设备有:网卡、网线、光纤、集线器、中继器、串口等,其典型的协议有 RS232C、RS449/422/423
数据链路层是 OSI 参考模型的第二层。数据链路层主要是在不可靠的物理介质上提供可靠的传输。该层主要的作用是对物理地址 mac 寻址,将网络层传输的数据封装为可被物理层接受的帧 frame,流量控制以及负责数据进行检错、重发和修正工作等。
数据链路层的典型设备有:二层交换机、网桥,其典型的协议有:SDLC、HDLC、PPP、STP、帧中继等。
网络层是 OSI 参考模型的第三层。其主要任务就是将网络地址 IP 翻译成物理地址,并决定通过哪些路径来实现数据传输。
网络层的主要设备就是路由器或普通交换机,其典型的协议包括:IP、IPX、IGP 等。
传输层是 OSI 参考模型的第四层,也是 OSI 模型中最核心的。主要功能是从会话层接收数据,并把数据传送给网络层。在传输前要确定传输协议,以及对数据进行错误检测,传输中进行流量监控,最终为会话提供可靠的、无误的数据传输。
传输层典型的协议包括:TCP、UDP、SPX 等。
传输层是 OSI 参考模型的第五层,它的数据传送单位统称为报文。主要功能是建立应用之间的通信链接,确定是否需要传输。除此之外,它还进行维持会话,并使会话获得同步以及对会话连接的管理、恢复与释放。
表示层是 OSI 参考模型的第六层,是数据的表现形式(如 ASCII、GB2312、JPG 等)。其主要功能是对数据进行加密、解密以及数据的压缩、解压。除此之外,还对不同的图片和文件格式进行编码和解码。
应用层是 OSI 参考模型的第七层,也是 OSI 模型中的最高层。主要功能为应用程序提供服务,来实现用户之间的信息交换。其典型的协议包括:用于 Web 的 HTTP 协议、HTTPS 协议,用于传输文件的 FTP 协议,用于 Email 的 IMAP 以及网络协议 Telnet、SNMP 等。
传输控制协议/互联网协议(Transmission Control Protocol/Internet Protocol,简称 TCP/IP)是一个真正的开放系统,它被称作为 Internet 的基础,主要由传输层的 TCP 协议和网络层的 IP 协议组成。TCP/IP 起源于 20 世纪 60 年代末美国政府资助的研究项目,到 20 世纪 90 年代已发展成为计算机之间最常用的组网形式。
TCP/IP 是一组不同层次上的多个协议的组合,它采用了四层协议进行分层,每一层分别负责不同的通信功能,如图 7-2 所示。
链路层,有时也称作数据链路层或网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。常见的协议有以太网、IEEE802.2/802.3、SLIP(Serial Line Internet Protocol)串行线路网际协议、HDLC(High-level Data Link Control)点到多点的通用协议、PPP(Point-to-Point Protocol)点到点协议等。
在 TCP/IP 协议族中,链路层主要完成以下 3 个目的:
1)为 IP 模块发送和接收 IP 数据报;
2)为 ARP 模块发送 ARP 请求和接收 ARP 应答;
3)为 RARP 发送 RARP 请求和接收 RARP 应答。
网络层,有时也称作互联网层,它主要处理分组在网络中的活动。在 TCP/IP 协议族中,该层协议包括 IP(Internet Protocol)网际协议、ICMP(Internet Control Message Protocol)控制报文协议、IGMP(Internet Group Management Protocol)组管理协议、ARP(Address Resolution Protocol)地址转换协议、RARP(Reverse ARP)反向地址转换协议。
IP 地址,在互联网上每一个接口必须有一个唯一的 IP 地址,IP 地址长 32bit,这些 32 位的地址通常写成四个十进制的数,其中每个整数对应一个字节。这种表示方法称作「点分十进制表示法(Dotted decimal notation)」。IP 地址具有一定的结构,五类不同的互联网地址格式,如图 7-3 所示。
图 7-3 五类 IP 地址
IP 地址层主要负责接收由链路层发来的数据包,再将数据包发送到传输层;反之也可以把从传输层接收来的数据包传送到链路层。IP 层的数据包是最不可靠的。
传输层主要为两台终端上的应用程序提供端到端的通信。在 TCP/IP 协议族中,有两个互不相同的传输协议:TCP(Transmission Control Protocol)传输控制协议和 UDP(User Dat-agram protocol)用户数据报协议。
1)TCP:是一种端对端的、面向连接的、可靠的、基于字节流的传输层协议。每一次 TCP 在连接建立时需要经过三次握手(three-way handshake)。
TCP 主要用来确认数据包的发送并添加序号机制,对发送的数据包进行校验,从而保证数据包在传输过程中的可靠性;同时还可以测试所接受数据包的完整性,保证数据包不出现丢失或者是次序错乱。
接下来看一下建立连接时三次握手的过程,如图 7-4 所示。
图 7-4 建立连接-三次握手
第一次握手:客户端发送一个 SYN 指明客户端打算连接的服务器的端口,以及初始序号(ISN 随时间而变化)。服务器由 SYN 得知客户端要求建立连接。
第二次握手:服务器在收到建立连接的请求后,给客户端发回包含服务器的初始序号作为应答,同时将客户端的 ISN 加 1 以对 SYN 进行确认请求 ack。
第三次握手:客户端必须进行确认序号,为服务器的 ISN 加 1 以对服务器进行确认。若正确,再次发送确认后的 ISN 与 ack 加 1,服务器收到再次确认后,连接建立成功。
当数据传送完成后,进行释放连接,此时需要经过四次挥手,如图 7-5 所示。
第一次挥手:客户端发送 FIN 和序列,用来关闭从客户端到服务器的数据传送,此时客户端进入等待关闭状态。
第二次挥手:服务器收到客户端发送的 FIN 后,设置客户端序列加 1,用来确认序号,此时服务器进入半关闭状态(服务器需要时间准备)。
第三次挥手:服务器发送 FIN,用来关闭从服务器到客户端的数据传送,此时服务器进入最后的关闭状态(未完全释放,只是关闭了应用程序)。
图 7-5 释放连接-四次挥手
第四次挥手:客户端收到服务器发送的 FIN 后,设置服务器序号加 1,用来确认序号,此时客户端进入等待中断时间,服务器收到确认信息后,完成 TCP 的连接释放。
2)UDP:传输方式与 IP 类似,同样都是以数据包的方式传输。与之不同的是,IP 协议是通过 IP 地址进行传输,没有端口,而 UDP 协议实现了端口。UDP 是一种一对一(一对多的)、无连接的、不可靠的、基于数据包的传输层协议。
由于它是无连接的,所以传输速度很快,如果一方数据包丢失,另一方只能无限等待。通常应用程序使用广播和多播时只能用 UDP 协议。
应用层负责处理特定的应用程序细节,包括的高层协议有:HTTP(Hyper Text Transfer Protocol)超文本传输协议、Telnet(TELecommunications NETwork)虚拟终端协议、FTP(File Transfer Protocol)文件传输协议、SMTP(Simple Mail Transfer Protocol)电子邮件传输协议、DNS(Domain Name Service)域名服务等。
应用层包含了 OSI 参考模拟中应用层、表示层和会话层三层,在 TCP/IP 协议族中,该层将所有与应用层相关的功能整合在一起,通过相关的应用协议,为用户的应用程序提供通信服务。
下面通过应用程序的实例,来进一步了解 TCP/IP 协议的传输过程,如图 7-6 所示。
OSI 参考模型与 TCP/IP 模型的关系,见表 7-1。
表 7-1 OSI 参考模型与 TCP/IP 模型的关系
图 7-6 TCP/IP 传输过程
原文:https://www.cnblogs.com/MarlonKang/p/13595529.html