二、应用层
2.1 网络应用协议层原理
2.1.1 应用层体系结构
C/S 客户机/服务器结构
典型例子:WEB应用
P2P结构
混合结构hybrid
2.1.2 网络应用进程通信
Socket套接字:
进程如何寻址:
主机之间通过IP地址寻址,但是同一台主机有多个进程,通过端口号对进程进行标志
应用层协议的内容:
2.1.3 应用层可使用的传输服务
Internet提供了什么传输服务?
TCP/UDP
2.2 WEB应用和HTTP协议
2.2.1 HTTP
WEB:World Wide Web 万维网
HTTP
2.2.2 非持续连接和持续连接
非持续连接:
非持久性连接存在问题:
非持续连接对每一个对象都要重新建立一次TCP连接,同时TCP在服务器端造成开销
2.2.3 HTTP报文格式
HTTP消息有请求和响应消息
通用格式:
HTTP/1.1有5种请求方法
GET,POST,PUT,DELETE,HEAD
响应的一个示例:
响应码:
2.2.4 Cookie技术
某些网站为了辨识用户身份,进行session跟踪而存储在用户本地终端上的数据
Cookie的组件
- HTTP响应消息的cookie头部行
- HTTP请求消息的cookie头部行
- 保存在客户端主机上的cookie文件,由浏览器管理
- Web服务器端的后台数据库
2.2.5 WEB缓存/代理服务器
存在问题:缓存服务器的对象如何与远端服务器的对象保持一致?
解决方法:条件性GET方法
2.3 EMAIL应用
Email构成
2.3.1 SMTP协议
2.3.2 与HTTP对比
2.3.3 邮件报文格式
多媒体扩展:
EMAIL为了支持多媒体类型的数据,使用MIME
2.3.4 邮件访问协议
2.4 DNS应用
域名解析系统
分布式层次式数据库
本地域名服务器查询域名的方式分为递归查询和迭代查询
DNS记录缓存和更新
每台DNS服务器都会缓存查询过的域名和ip映射,在一段时间后失效
DNS记录的形式
DNS协议和消息格式
2.5 P2P应用
P2P架构
BT
P2P索引技术:
集中式索引:
所有用户都向同一个centralized directory server 发起请求
洪泛式查询:
消息转发可能非常多,请求像洪水一样在网络传播
结合二者优点,层次式覆盖网络:
P2P案例应用:Skype
2.6 Socket编程
网络应用程序可以面向不同层次进行编程:
网络应用编程接口API
应用程序基于应用层进行开发,可以通过系统调用进行os内核
Socket API
客户端的套接字如何与服务器的应用进程进行通信?服务器可能有多个应用进程
- 通过IP地址确定主机,通过端口号确定某一应用进程(对外)
操作系统对内如何管理套接字?
- 通过套接字描述符
地址结构的结构体:
Socket API
- WSAStartup 最先调用的函数
- WSACleanup 最后调用的函数,释放资源
。。。
关于Socket我跳过了,有需要在回头学吧
Comments | 0 条评论