体系结构

C/S

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

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

实现了通信汇聚的功能

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

p2p

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

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

不过有安全性问题

混合架构

Napster

  • 文件直接在对等方之间交换
  • 文件搜索通过服务器,中心服务器记录对等方的内容,通过查询中心服务器来决定请求的文件的位置

即时通讯

两个聊天用户之间是 P2P,但是注册和登录需要通过服务器

进程通信

套接字(socket)

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

进程寻址

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

常见应用程序端口:

  • Web:80
  • mail:25

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

下层的运输服务

TCP

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

UDP

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

应用层协议

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

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

端口号小结

协议端口号备注
HTTP80
HTTPS443
FTP20传输端口
FTP21控制端口(1 控制 0)??
SMTP25
POP3110
IMAP143
DNS53
DHCP67服务端端口(服务**7[器]**端口)
DHCP68客户端端口
BGP179路由器半永久 TCP
RIP520动态路由