文章目录
进程通信
- 进行通信的实际上是进程。
- 网络应用程序由成对进程组成,通过网络相互发送报文。
- 套接字是同一台主机内应用层与运输层之间的接口。
运输服务
很多网络提供了不止一种运输层协议。当开发一个应用是,必须选择一种可用的运输层协议。
运输层协议提供的服务:
- 可靠数据传输
当分组因“路由器缓存溢出”而丢失,提供确保数据交付服务。
应用: 容忍丢失的应用、交谈式音频和视频。 - 吞吐量
确保应用程序以某种速率交付比特。
具有吞吐量要求的程序为带宽敏感应用(语音),否则为弹性应用(email、Web、文件传输)。 - 定时
运输层协议提供定时保证。
如:发送方注入套接字的比特到达接受方案套接字不迟于100ms。 - 安全性
提供一种或多种安全服务。
如:加密发送进程传输的数据,接受时解密数据完整性和端点鉴别。
因特网提供的运输服务
TCP 服务(面向连接服务与可靠数据传输服务)
面向连接服务
:应用层数据报文流动之前,TCP 让客户和服务器互相交换运输层控制信息,即握手,让他们为分组的到来做好准备。
可靠数据传输服务
拥塞控制机制
SSL 是对TCP 加强,包括加密、数据完成性、端点鉴别
UDP 服务
无连接、无发送前握手过程,不可靠数据传输。接受的报文可能是乱序到达的。
应用层协议
包含的内容:
- 交换的报文类型(请求报文/响应报文)。
- 各种报文类型的语法。
- 字段的语义。
- 确定一个进程何时、如何发送报文,及时响应规则。
与网络应用的关系
- HTTP之于Web应用
- SMTP之于电子邮件应用
Web 和 HTTP (HyperText Transfer Protocol)
- HTTP 使用TCP 作为运输协议
- 服务器向客户发送被请求的文件,而不存储关于该客户的状态信息,所以说HTTP 是无状态协议
非持续连接
每个请求/响应经一个单独的TCP连接发送。
- HTTP客户进程在端口号80发送一个到服务器的TCP连接(第一次握手)。
- 服务器用一个小TCP报文段确认和响应(第二次握手)。
- HTTP客户经套接字向服务器发送一个HTTP请求报文(第三次握手)。
- HTTP服务器进程经套接字接收请求报文,检索对象,在响应报文中封装对象后,经API发送至客户。
- HTTP服务器进程通知TCP断开该TCP连接。
浏览器对Web页面解释,解释方法与Web页面毫无关系。
持续连接(默认方式)
- 一个完整页面(HTML文件+图片等)可以单个持续TCP连接进行传送。
- 甚至多个Web页面可以在单个持续TCP连接上进行。
- HTTP默认模式是使用带流水线的持续连接。
HTTP 报文格式
请求报文
响应报文
状态码短语
代码 | 状态 | 含义 |
---|---|---|
200 | OK | 请求成功 |
301 | MovedPermanently | 请求对象已经被永久转移至新的URL,在响应报文Location: 首部行中 |
400 | Bad Request | 通用差错代码,请求不能被理解 |
404 | Not Found | 被请求文档不再服务器上 |
505 | HTTP Version Not Supported | 不支持报文的HTTP版本 |
cookie
HTTP服务器无状态
→
\xrightarrow{}
Web 站点无法识别用户
为了使内容与用户身份联系起来(淘宝),使用 cookie
4个组件
- HTTP响应报文中的一个cookie 首部行。
- HTTP请求报文中的一个cookie 首部行。
- 用户端系统中保留一个cookie 文件,由浏览器进行管理。
- 位于Web站点的一个后端数据库。
cookie 的生成过程
Web缓存(代理服务器)
流程
架构
条件GET 方法
- 存放在缓存器中的对象副本可能是陈旧的,被修改了
代理服务器
→
请
求
\xrightarrow { 请求 }
请求 Web服务器
Web 服务器
→
L
a
s
t
M
o
d
i
f
i
e
d
:
T
\xrightarrow { Last Modified:T }
LastModified:T 缓存器
缓存器存储最后修改日期
当用户浏览器请求缓存器是,缓存器发送If modified-since: T
到Web 服务器
若服务器没有修改,只发送状态行和首部行
HTTP / 1.1 304 Not Modified
Date: xxx
Serve: xxx
[没有实体体]
SMTP、POP3、IMAP
- SMTP 是一个推协议,即发送服务器将邮件推向接受服务器。
- HTTP 是一个拉协议。
- POP3 是一个拉协议。
- 在文件传送时,HTTP和SMTP都使用持续连接。
- IMAP将邮件与文件夹关联。
- 邮件可以在文件夹之间移动、查询、匹配邮件。
- IMAP 服务器维护了 IMAP 会话的用户状态信息。
- IMAP 允许用户代理获取报文某些报文某些部分的命令。
DNS 因特网的目录服务
- 一个由分成的DNS 服务器实现的分布式数据库。
- 主机能够查询分布式数据库的应用层协议。
- DNS 服务器是运行 BIND 软件的 UNIX 机器
- DNS 协议运行在UDP 之上,使用53 号端口
- 根DNS 服务器:400多个分布世界,13个组织管理
- 顶级域DNS 服务器:com、org、edu、gov、uk、fr、jp
- 权威DNS 服务器: xxx.edu
本地DNS服务器(LDNS)
每个ISP 都有一台本地DNS 服务器
例: 8个DNS 报文