网络应用进程通信
进程间通信
进程:
主机上运行的程序
- 客户机进程:发起通信的进程
- 服务器进程:等待通信请求的进程
同一主机上运行的进程之间的通信方式:
- 进程间通信机制
- 操作系统提供
不同主机上运行的进程通信方式:
消息交换
套接字:Socket
进程间通信利用socket 发送、接收消息实现
类似于寄信的方式:
- 发送方将消息送到门外邮箱
- 发送方依赖(门外的)传输基础设施将消息传到接收方所在主机,并送到接收方门外
- 接收方从门外获取消息
传输基础设施向进程提供API
寻址进程
不同主机上的进程间通信,那么每个进程必须拥有标识符
寻址主机---IP地址
寻址进程--端口号Port number
- 为主机上每个需要通信的进程分配一个端口号
- HTTP Server:80
- Mail Server:25
进程的标识符:IP地址+端口号
应用层协议
网络应用需遵循应用层协议
公开协议:
由RFC(Request For Comments) 定义
允许互相操作
HTTP,SMTP,、、、、、
私有协议:
多数P2P文件共享应用
应用层协议的内容
消息的类型(type)
请求消息、响应消息
消息的语法(syntax)格式:
消息中有哪些字段(field)?
每个消息字段如何描述
字段的语义(semantics):
字段中信息的含义
规则(rules):
进程何时发送/响应消息
进程如何发送/响应消息