计算机网络 应用层协议原理:网络应用的体系结构、进程通信、传输服务、应用层协议

本章重点

计算机网络 应用层协议原理:网络应用的体系结构、进程通信、传输服务、应用层协议

网络应用的体系结构

客户-服务器体系结构

服务器
 7*24小时提供服务
 永久性访问地址/域名
 利用大量服务器实现可扩展性
客户机
 与服务器通信,使用服务器提供的服务
 间歇性接入网络
 可能使用动态IP地址
 不会与其他客户机直接通信

P2P点对点体系结构

没有永远在线的服务器
任意端系统/节点之间可以直接通讯
节点间歇性接入网络
节点可能改变IP地址
优点:高度可伸缩
缺点:难于管理

混合结构

计算机网络 应用层协议原理:网络应用的体系结构、进程通信、传输服务、应用层协议

进程通信

客户与服务器进程

同一主机上运行的进程之间如何通信?通过进程间通信机制,由操作系统提供。
不同主机上运行的进程间如何通信?通过消息交换。

客户机进程: 发起通信的进程
服务器进程: 等待通信请求的进程

进程与网络的接口

进程间通信利用socket套接字发送/接收消息实现。
过程类似于寄信:进程可类比于一座房子,而它的套接字可以类比于它的门。

  • 发送方将消息送到门外邮箱
  • 发送方依赖(门外的)传输基础设施将消息传到接收方所在主机,并送到接收方的 门外
  • 接收方从门外获取消息

应用程序开发者可以控制套接字在应用层端的一切,但是对该套接字的运输层端几乎没有控制权。应用程序开发者对于运输层的控制仅限于:

  • 传输协议的选择
  • 参数的设置

进程寻址

如果在不同主机上的进程间通信,那么每个进程必须拥有标识符。

在因特网中,主机由其IP地址标识。除了知道报文送往目的地的主机地址外,发送进程还必须指定运行在接收主机上的接收进程(更具体地说,接收套接字)。

因为一般而言一台主机能够运行许多网络应用,一个主机可以同时有很多进程需要通信。所以还要为主机上每个需要通信的进程分配一个端口号
常见端口号:HTTP Server: 80、Mail Server:25。

所以进程的标识符就是:IP地址+端口号。

传输服务

套接字是应用程序进程和运输层协议之间的接口。在发送端的应用程序将报文推进该套接字。在该套接字的另一侧,运输层协议负责使该报文进入接收进程的套接字。
网络应用对传输服务的需求:

  • 数据丢失(data loss)/可靠性(reliability)

     某些网络应用能够容忍一定的数据丢失:网络电话
     某些网络应用要求100%可靠的数据传输:文件传输,telnet

  • 时间(timing)/延迟(delay)

     有些应用只有在延迟足够低时才“有效”
     网络电话/网络游戏

  • 带宽(bandwidth)

     某些应用只有在带宽达到最低要求时才“有效”:网络视频
     某些应用能够适应任何带宽——弹性应用:email
    计算机网络 应用层协议原理:网络应用的体系结构、进程通信、传输服务、应用层协议

应用层协议

通信时如何构造这些报文?在这些报文中的各个字段的含义是什么?进程何时发送这些报文?这些问题将我们带进应用层协议的范围。
应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。

应用层协议定义了:
计算机网络 应用层协议原理:网络应用的体系结构、进程通信、传输服务、应用层协议