1. OSI(Open System Interconnect)七层结构
OSI层 | 功能 | 典型协议 |
应用层 | 文件传输、文件服务、email、虚拟终端 | HTTP、FTP、HTTPS、SNMP、Telnet、DSN、SMTP、TFTP。。 |
表示层 | 数据格式化、代码转换、数据加密 | 没有协议 |
会话层 | 解除或建立与别的节点的联系 | 没有协议 |
传输层 | 提供端对端的接口 | TCP、UDP |
网络层 | 为数据包选择路由 | IP、ICMP、OSPF、EIGRP、IGMP |
数据链路层 | 传输有地址的帧以及错误检测功能 | SLIP、CSLIP、PPP、MTU |
物理层 | 以二进制数据形式在物理媒介上转身数据 | ISO2110、IEEE802、IEEE802.2 |
2. TCP/IP协议族
TCP/IP实际是四层模型,对应OSI的层级如下
TCP/IP | OSI |
应用层 | 应用层 表示层 会话层 |
传输层(主机到主机层 TCP) | 传输层 |
网络层(IP) | 网络层 |
链路层(网络接口层) | 数据链路层 物理层 |
3. TCP和UDP
TCP需要先建立连接再传输数据,用于需要稳定和可靠的数据传输应用,如HTTP
UDP传输数据不需要先建立连接,用于实时性要求高但是稳定性可以稍微牺牲的数据传输应用,如视频、语音会议
4. TCP建立连接的过程:3次握手
TCP有客户端和服务器端,每次连接都由客户端发起,经历三次握手建立连接
第一次:客户端发生syn(syn=j)包到服务器,并进入SYN_SEND状态,等待服务器确认
第二次:服务器收到syn包,确认SYN(ack=j+1),同时自己发送一个SYN包(syn=k),服务器会发送SYN+ACK包给客户端,服务器进入SYN_RECV状态
第三次:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),发送完毕客户端进入ESTABLISHED状态,服务器接收到确认包也进入ESTABLISHED状态,连接建立完毕
5. HTTP协议
Hypertext Tranfer Protocol,即超文本传输协议,建立在TCP协议基础上,是Web应用的基础协议。HTTP协议最显著的特点是客户端发送的每次请求都需要服务器响应,请求结束后,客户端主动释放连接,每次连接都是独立于其他的连接(不需要之前的连接做准备,也不用考虑为之后的连接做什么事情),是一个无状态的协议。
6. HTTPS协议
Hypertext Transfer Protocol Secure,超文本传输安全协议,是HTTP与SSL/TLS的组合,用来提供加密通讯及对网络服务器身份的鉴定。HTTPS的安全基础是SSL,它在HTTP和TCP之间加入了一个加密/身份验证层。简单来说就是将数据用PKI(公钥基础结构)公钥加密,用HTTP将加密数据传输到服务器,再用私钥解密。