【基础】网络编程

96 阅读3分钟

网络基础知识

一、网络分层模型

OSI七层模型

  • 应用层: 为应用程序提供服务
  • 表示层: 数据格式转化、数据加密
  • 会话层: 建立、管理和维护会话
  • 传输层: 建立、管理和维护端对端的连接
  • 网络层: IP选址和路由选择
  • 链路层: 提供介质访问和联络管理
  • 物理层: 物理传输

TCP/IP四层模型

应用层

  • 提供应用程序网络通信服务
  • 不同应用之间通信
  • 负责处理特定应用程序的细节,为应用程序提供网络服务。
  1. 超文本传输协议(HTTP)
  2. 简单邮件传输协议(SMTP)
  3. 文件传输协议(FTP)
  4. 域名系统(DNS)
  5. 远程终端协议(Telnet)

传输层

  • 不同进程通信
  • 负责在网络中的两个系统之间提供端到端的通信
  1. 传输控制协议(TCP)
  • TCP提供可靠的、面向连接的通信
  • 三次握手/建立连接
  • 四次挥手/关闭连接
  1. 用户数据报协议(UDP)

    UDP是一种无连接的、不可靠的通信方式

  2. 数据报文传输协议(DCCP)

  3. 实时传输协议(SCTP)

  4. QUIC

网络层

  • 主机之间通讯
  • 负责在多个网络之间传输数据包
  1. 互联网控制消息协议(ICMP)
  2. ARP地址解析协议
  3. RARP反向地址解析协议
  4. 互联网协议(IP),包括IPv4和IPv6

物理层

  • 与物理网络媒体直接交互
  • 负责将数据包转换成可以通过物理网络传输的比特流
  1. 点对点协议PPP
  2. 以太网Ethernet
  3. HDLC高级数据链路控制
  4. Wi_Fi

二、常见网络协议

HTTP

  • 发展历史
  1. HTTP/0.9

只支持纯文本

  1. HTTP/1 无状态、无连接

只支持纯文本

  1. HTTP/1.1

只支持纯文本

  1. HTTP/2

只支持纯文本

  1. HTTP/3

只支持纯文本

  • 报文结构
  1. 请求方法
  2. 请求地址
  3. 请求头
  4. 请求内容
  • 状态码
  1. 200-299成功状态码
  2. 300-399重定向状态码
  3. 400-499客户端错误码
  4. 500-599服务器错误码
  • 开源的HTTP客户端框架

OkHttp

SSL+TLS

  • 加密
  1. 对称加密
  2. 非对称加密
  • 数字证书CA

由可信第三方证书颁发机构的签名

  • 安全套接层SSL

存在一些已知的安全漏洞,被TLS替代了

  • 安全传输层TLS 安全性上有显著改进,特别是在密钥交换、加密算法和消息认证方面

加密流程

DNS

网域名称系统,域名 和 IP 相互映射的分布式数据库

  • 解析过程 输入域名 本地DNS缓存检查 递归查询 权威DNS服务器查询 返回解析结果

  • 攻击手段

  1. DNS劫持
  2. DNS欺骗
  3. DDoS攻击

VPN

虚拟专用网络,在不安全的网络环境中提供安全的通信通道 工作原理

Socket

两种类型 流式套接字 数据报套接字

编程语言

Android中运用