OSI,TCP/IP,五层协议的关系图:
OSI七层模型
应用层—①
基于TCP的应用层协议:HTTP(80) / HTTPS(默认端口443),Telnet / SSH ,SMTP,FTP,WebSocket
基于UDP的应用层协议:(其余的都可以记作UDP协议)DHCP(获取IP、子网掩码、默认路由器的IP、DNS的IP)
各种应用工作的层面。
表示层—①
会话层—①
运输层—②
协议:TCP(拥塞控制与滑动窗口) , UDP
网络层—③
协议:IP , ARP(地址解析协议,与下层打交道),ICMP(网际控制报文协议),IGMP(网际组管理协议,两协议与上层打交道)
是路由器,三层交换机工作的层面,网络层以上的被称做网关
数据链路层—④
协议:PPP,CSMA/CD
是交换机(二层交换机),网桥(或桥接器) 工作的层面
物理层—④
是集线器,转发器,中继器工作的层面
TCP/IP四层模型
应用层—①
运输层—②
网际层—③
网络接口层—④
HTTPS协议的工作流程
普通的HTTP请求以明文方式传输信息,非常容易被他人截取
HTTPS方式下的信息传输:
HTTPS 在 HTTP 的上增加了 SSL(或升级版 TSL )安全层(该层的操作位于应用层之下,运输层之上),下图中的一系列流程就是在 SSL 中完成的。
证书
服务器端使用非对称加密(如RSA)产生自己的公私钥,然后将公钥给证书颁发机构(CA)获取一个证书,证书中包含服务器的公钥等信息。
为什么需要维护一个对称加密(如AES)的密钥??
- 对称加密的密钥的得来,保证了客户端一定是在与服务器通信,那么中间人就无法在传输信息的途中,替换公私钥
- RSA加密的安全性虽然高,但执行效率不如AES,故在通讯时使用AES完成数据的安全传输
关于Rest API与RPC之间的异同
Rest API是基于HTTP协议,工作在应用层上;而RPC可以不基于HTTP协议,可以采用其他方式来提高传输的效率,例如Java中的socket编程,使用TCP工作在传输层上。