1. TCP/IP网络模型
OSI是七层协议模型,五层协议只是OSI和TCP/IP的综合。实际应用还是TCP/IP的四层结构,为了方便可以把最下面两层称为网络接口层。
Note:最下层(物理层)是第一层,最上层(应用层)为第五层,不要搞反顺序。
网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。
1.1 应用层
1.1.1 应用层作用
应用层直接为用户的应用进程提供服务,只需专注于为用户提供应用功能,无需关心数据是如何传输的。
1.1.2 应用层有哪些常用协议
- HTTP协议
目前绝大部分采用的都是HTTP 1.1版本,默认开启长连接(connections: Keep-Alive)。
HTTP协议是“无状态”的协议,一般通过Session来记录客户端的状态。
- SMTP协议
SMTP协议是邮件发送协议,接收邮件的协议并不是SMTP,而是POP3或IMAP。
- POP3/IMAP协议
负责接收邮件的协议是POP3/IMAP,后者更新一点。
- FTP协议
FTP协议用于文件传输,是基于客户端/服务器(C/S)模式设计的,在客户端和服务器之间建立两个连接。该协议的优点是可以屏蔽操作系统和文件存储方式。
FTP协议的独特优势:(与其他C/S程序最大的不同点)
它在两个主机之间使用了两条TCP连接,而其他C/S应用程序一般只有一条TCP连接:
- 控制连接:用于传送控制信息(命令和响应)
- 数据连接:用于数据传送
- Telnet协议
Telnet是远程登录协议,通过一个终端登录到其他服务器。
Telnet最大的缺点之一是所有数据(包括用户名和密码)均以明文形式发送,有着安全风险。这也是为什么SSH协议取代Telnet协议的主要原因。
- SSH协议
SSH是安全的网络传输协议,专为远程登录会话和其他网络服务提供安全性的协议。
SSH相比于Telnet的区别在于SSH会对数据进行加密。利用SSH协议可以有效防止远程管理过程中的信息泄漏问题。
1.2 运输层
- 运输层作用
运输层负责向两个主机中进程之间的通信提供通用的数据传输服务。由于一个主机可以同时运行多个进程,因此运输层有复用和分用的功能。
复用:多个应用层进程可同时使用下面运输层的服务。
分用:把收到的信息分别交付给上面应用层中相应的进程。
运输层并不负责将数据从一个设备传输到另一个设备,这是网络层的任务,不要混淆。
“通用的”是指并不针对某一个特定的网络应用,而是多种应用可以使用同一个运输层服务。
- 运输层协议
- 传输控制协议TCP(Transmiss