1.网络应用的体系结构
首先要思考这样一个问题 网络应用应该采取什么样的体系结构? 凭什么非得按照它设计的来学习呢? 它好在哪里?
有以下三种结构
(1)客户机/服务器结构(C/S)
(2)点对点(p2p)
(3)混合结构(上面两种混合)
客户机/服务器结构(C/S)
服务器
(1)7*24小时提供服务
(2)永久性访问地址/域名
(3)利用大量服务器实现可扩展性
客户机
(1)享受服务器提供的服务
(2)间歇性接入网络
(3)可能使用动态IP地址
(4)不会与其他客户直接通信
纯P2P结构
(1)没有永远在线服务器
(2)任意端系统/结点之间可以通信
(3)节点间歇性接入网络
(4)节点随时可以改变IP地址
优点:高度可扩展 缺点:难于管理
2.网络应用进程间的通信
不同主机间运行的进程如何通信? 消息交换
套接字:Socket
进程间的通信一定要用到Socket
类似于寄信:
(1) 发送方将消息送到门外邮箱
(2) 利用门外的通信基础设施传送到对方主机所在地 门外主机接收
(3) 门外的邮箱(Socket)拿到信了
传输基础设施向进程提供API
(1)传输协议的选择
(2)参数的设置
如何寻址进程(IP+端口号)
3.网络应用应用层协议的内容
考虑一下四点
(1)消息的类型
(2)消息的语法/格式
(3)字段的语义
(4)规则
4.网络应用的需求与传输层的服务
(1)数据丢失了咋整? 可靠性要不要考虑
某些不用考虑(网络电话)
文件传输必须100%可靠
(2)时间/延迟
(3)带宽
Internet提供的传输服务
(1)TCP