体系结构

C/S

客户机/服务器体系结构(client/server)

  • 服务器
    • 总是打开的主机来等待客户的请求
    • 具有固定的,众所周知的 IP 地址
    • 主机集群常备用于创建强大的虚拟服务器
  • 客户机
    • 同服务器端通信
    • 可以间断的同服务器连接
    • 可以拥有动态的 IP 地址
    • 客户机相互之间不能直接通信

实现了通信汇聚的功能

服务器会产生单点失效问题,服务器本身会成为性能瓶颈

p2p

  • 没有总是打开的服务器
  • 任意一对主机直接互相通信
  • 对等方间歇连接并可以改变 IP 地址

扩展性好,ISP 友好(不经过很多流量)

不过有安全性问题

进程通信

套接字(socket)

是应用程序和网络之间的 API,进程通过它的套接字在网络上发送和接收报文。应用开发者可以控制应用层端(只能选择传输层的协议、时间戳等一些参数)

进程寻址

通过端口号来对进程编址,通过 ip 进行主机识别

常见应用程序端口:

  • Web:80
  • mail:25

应用程序使用的运输层服务特性:可靠数据传输,吞吐量,定时,安全性。

运输服务

TCP

  • 面向连接的服务
  • 可靠的传输服务
  • 流量控制
  • 送塞控制
  • 没有提供时延保证,最小带宽
  • SSL

UDP

  • 不可靠数据传输
  • 没有提供建立连接,流量控制,拥塞控制,时延和带宽保证

应用层协议

  • 超文本传输:HTTP(80)
  • 文件传输:FTP(21-20)
  • 邮件传输:
    • 仅负责发送邮件:SMTP(25)
    • 仅负责用户访问邮件服务器上的邮件:POP3(10)、IMAP(143)
  • 域名转换:DNS(53)

现代邮件系统终端到邮件服务器之间是 HTTP,邮件服务器之间仍然使用 SMTP