Android面试——网络模块

网络分层

  • 网络为什么要分层(互联网协议套件)?因为复杂的项目都要分层,一方面有利于将复杂的项目简单化,另一方面项目之间有些公用的地方,分层有利于提高复用率。
  • 应用层定义和应用(业务)相关的协议,比如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 | 网络优化(中):复杂多变的移动网络该如何优化?

你可能感兴趣的:(面试)