参考b站哈工大计算机网络课程,老师讲的很好很全面,笔记出自老师课件。
https://www.zhihu.com/question/21803672
网络应用的体系结构
客户机/服务器结构(Client-Server, C/S)
点对点结构(Peer-to-peer, P2P)
混合结构(Hybrid)
客户机/服务器结构
服务器
7*24小时提供服务
永久性访问地址/域名
利用大量服务器实现可扩展性
客户机
与服务器通信,使用服务器提供的服务
间歇性接入网络
可能使用动态IP地址
不会与其他客户机直接通信
CS架构与BS架构的区别???
C = Client, S = Server。C/S 架构即“客户端-服务器” 架构。这里的“客户端”可以是有 GUI (图形用户界面)的定制软件,也可以是浏览器,甚至可以是通过 SSH 访问服务器的命令行脚本。只要是客户端通过访问服务器调取计算或者存储资源的,统统都是 C/S 架构。所谓的 Browser-Server 架构其实是 C/S 架构的一种特殊的实现形式,而不是其对立面。
P2P结构
没有永远在线的服务器
任意端系统/节点之间可以直接通讯
节点间歇性接入网络
节点可能改变IP地址
优点:高度可伸缩
缺点:难于管理
网络应用的基础:进程间通信
进程:主机上运行的程序
同一主机上运行的进程之间如何通信?
进程间通信机制
操作系统提供
不同主机上运行的进程间如何通信?
消息交换
客户机进程: 发起通信的进程
服务器进程: 等待通信请求的进程
如何寻址进程?
不同主机上的进程间通信,那么每个进程必须拥有标识符
进程的标识符:IP地址+端口号
应用层协议
网络应用需遵循应用层协议
公开协议由RFC(Request For Comments)定义
允许互操作 HTTP, SMTP、
私有协议: 多数P2P文件共享应用
WEB与HTTP
HTTP消息格式
request
response
http状态码
常用的:200 201 202 400 404 405 406 415 500 501 502 503
Cookie
Cookie能够用于:
身份认证
购物车
推荐
Web e-mail
Cookie存在隐私问题
Email应用
Email应用的构成组件
邮件客户端(user agent)
邮件服务器
SMTP协议(Simple Mail Transfer Protocol)
邮件客户端
读、写Email消息
与服务器交互,收、发Email消息
Outlook, Foxmail, Thunderbird
Web客户端
邮件服务器(Mail Server)
邮箱:存储发给该用户的Email
消息队列(message queue):存储等待发送的Email
SMTP协议
邮件服务器之间传递消息所使用的协议
客户端:发送消息的服务器
服务器:接收消息的服务器
SMTP协议: RFC 2821
使用TCP进行email消息的可靠传输、端口25
传输过程的三个阶段:握手、消息的传输、关闭
命令/响应交互模式
命令(command): ASCII文本
响应(response): 状态代码和语句
Email消息只能包含7位ASCII
Email消息格式
SMTP:email消息的传输/交换协议
RFC 822:文本消息格式标准
头部行(header)
• To
• From
• Subject
消息体(body)
• 消息本身
• 只能是ASCII字符
POP协议
“下载并删除”模式:用户如果换了客户端软件,无法重读该邮件
“下载并保持”模式:不同客户端都可以保留消息的拷贝
POP3是无状态的
IMAP协议
所有消息统一保存在一个地方:服务器
允许用户利用文件夹组织消息
IMAP支持跨会话(Session)的用户状态 : 文件夹的名字、文件夹与消息ID之间的映射
DNS概述
DNS:Domain Name System
Internet上主机/路由器的识别问题:IP地址 域名:www.hit.edu.cn
域名和IP地址之间如何映射?
域名解析系统DNS
多层命名服务器构成的分布式数据库
应用层协议:完成名字的解析
• Internet核心功能,用应用层协议实现
• 网络边界复杂
DNS服务
域名向IP地址的翻译
主机别名
邮件服务器别名
负载均衡:Web服务器
问题:为什么不使用集中式的DNS?
单点失败问题
流量问题
距离问题
维护性问题
本地域名解析服务器无法解析域名时,访问根域名服务器
根域名服务器如果不知道映射,访问权威域名服务器获得映射,向本地域名服务器返回映射
全球有13个根域名服务器
顶级域名服务器(TLD, top-level domain): 负责com, org, net,edu等顶级域名和国家顶级域名,例如cn, uk, fr等
Network Solutions维护com顶级域名服务器
Educause维护edu顶级域名服务器
权威(Authoritative)域名服务器:组织的域名解析服务器,提供组织内部服务器的解析服务
组织负责维护
服务提供商负责维护
本地域名解析服务器
不严格属于层级体系,每个ISP有一个本地域名服务器
默认域名解析服务器
当主机进行DNS查询时,查询被发送到本地域名服务器
作为代理(proxy),将查询转发给(层级式)域名解析服务器系统
DNS记录缓存和更新
只要域名解析服务器获得域名—IP映射,即缓存这一映射
一段时间过后,缓存条目失效(删除)
本地域名服务器一般会缓存顶级域名服务器的映射
• 因此根域名服务器不经常被访问
记录的更新/通知机制
RFC 2136
Dynamic Updates in the Domain Name System (DNS UPDATE)