网络分层
- 网络为什么要分层(互联网协议套件)?因为复杂的项目都要分层,一方面有利于将复杂的项目简单化,另一方面项目之间有些公用的地方,分层有利于提高复用率。
- 应用层定义和应用(业务)相关的协议,比如HTTP超文本传送协议、FTP文件传送协议、SMTP邮件传送协议,以上基于传输层的TCP协议;还比如域名系统、DHCP动态主机配置协议,以上基于传输层UDP协议;还可以自定义自己的应用层协议,用来满足自己的业务需求。HTTP协议注意请求头和请求码。
- 传输层定义应用进程和进程之间的传输协议(TCP协议、UDP协议),并负责连接之间的可靠性。 TCP通过三次报文握手建立连接,通过四次报文握手释放连接,同时TCP会进行网络流量控制。
- 网络层(IP层)定义主机和主机之间的传输协议(IP协议),提供简单灵活的、无连接的、尽最大可能的交付,不负责数据可靠性。IP协议基于地址解析协议ARP。
- 数据链路层(MAC层)将数据包封装成适合在物理网络传输的帧格式并传输。
- 物理层传递0101010…比特流信号,提供不同的物理接口接入网络设备,比如网线接口。
网络安全
- 对称密钥密码体制(数据加密标准DES、AES)和公钥密码体制
- 数字签名(采用公钥算法)与报文鉴别(实用的密码散列函数MD5和SHA-1)
- 互联网使用的安全协议,网络层安全协议(VPN中使用IPsec加密),运输层安全协议(SSL/TLS协议),应用层安全协议(使用PGP对电子邮件报文进行加密)
网络优化
- HTTPDNS
- 连接复用
- 压缩
参考:
《计算机网络》第7版 谢希仁
极客时间-趣谈网络协议
NetWork——描述一次完整的网络请求过程(全文字、比较精简)
完整的一次 HTTP 请求响应过程(一)(有图)
一次完整的HTTP请求过程(侧重HTTP请求,没有完整请求过程)
HTTP 必知必会的那些(HTTP状态码、okhttp缓存、OAuth、https)
HttpURLConnection和HttpClient他们各自的优缺点是什么
16 | 网络优化(中):复杂多变的移动网络该如何优化?