计算机网络第二章--应用层
第二章--应用层
- 应用层协议原理
- 网络应用程序体系结构
- 进程通信
- 进程:运行在端系统中的程序
- 同一主机上的进程:通过内部进程通信机制进行通信
- 不同主机上的进程:通过交换报文相互通信
- 套接字--进程与计算机网络的接口
- 进程通过它的套接字在网络上发送和接受报文
- 套接字又叫做应用程序编程接口API
- 进程寻址
- 一个进程为了能接受报文,它需要一个标识
- 这个标识包括IP地址和端口号
- 应用层协议
- 协议
- 报文类型:请求报文、响应报文等
- 报文语法:各个字段及其详细描述
- 字段语义:包含在字段中的信息的含义
- 公共领域协议:HTTP,SMTP
- 专用协议:KaZaA,Skype
- 协议
- 运输协议提供的服务
- TCP服务
- 面向连接的服务:在客户机程序和服务器程序之间必须建立连接
- 可靠的传输服务
- 流量控制:发送方不会淹没接收方
- 拥塞控制:网络出现拥塞时抑制发送进程
- 没有提供:时延保证、最小带宽保证
- UDP服务
- 不可靠数据传输
- 没有提供:建立连接,可靠性,流量控制,拥塞控制,时延和带宽保证
- TCP服务
- Web应用和HTTP协议
- Web
- 一个Web网页由许多对象组成,每个对象就是一个文件,它可以是HTML文件,JPEG图像等等
- 每个对象被一个URL(统一资源定位符)寻址
- URL:https(协议)://geminiplanet.cn(主机名)/index.html(路径名)
- HTTP
- 超文本传输协议
- Web的应用层协议
- HTTP是无状态协议
- 使用TCP
- 客户端初始化一个与HTTP服务器80端口的TCP连接(创建套接字)
- HTTP服务器接受来自客户的TCP连接请求,建立连接
- Browser(HTTP client)和Web服务器(HTTP server)交换HTTP消息(应用层协议消息)
- 关闭TCP连接
- 端口号16位(0-65535)
- HTTP:80
- 邮件服务SMTP:25
- TelNet:23
- SSH:22
- FTP:21
- 上层需要的服务,是本层无法确保的:传输层不能向上一层提供时延保证
- HTTP连接
- 非持久HTTP连接
- 每个TCP连接上只传送一个对象
- 2RTT + transmit time
- 1.a 客户端初始化TCP连接
- 1.b 服务器建立连接
- 2. 客户端发送HTTP请求
- 3. 服务器接受请求,发送响应消息
- 4. 服务器结束TCP连接
- 5. 客户端解析响应消息
- 持久HTTP
- 一个TCP连接上可以传送多个对象
- 不带流水线:每个引用对象经历1个RTT
- 带流水线:所有引用对象只经历1个RTT
- 非持久HTTP连接
- HTTP报文格式
- 分为请求报文(request)和响应报文(response)
- 请求行:GET,POST,HEAD
- Cookies
- Cookie头部行在HTTP响应消息中
- Cookie头部行在HTTP请求消息中
- Cookie文件保存在用户主机中并被用户浏览器管理
- Cookie也保存在Web站点的后端数据库
- Web缓存(代理服务器)
- 代表起始服务器满足HTTP请求
- 用户配置浏览器:Web访问经由缓存
- 所有HTTP请求指向缓存
- 对象在缓存中:缓存器返回对象
- 对象不在缓存中:缓存器向服务器发出请求,接受对象后转发给客户机
- 作用 Why need it?
- 减少对客户机请求的响应时间
- 减少内部网络与接入链路上的通信量
- 能从整体上大大降低因特网上的Web流量
- 条件GET方法
- 证实缓存器中的对象是否为最新
- 缓存器:在请求报文中包含对象最后修改时间 if-modified-since:<date>
- 服务器:如果对象是最新的则响应报文中不包含对象 HTTP/1.0 304 Not Modified
- Web
- FTP文件传输协议
- 客户端发起建立FTP服务器端口号21之间的TCP控制连接
- 客户在建立的控制连接上获得身份认证
- 客户在建立的控制连接发送命令来浏览远程主机的目录
- 当服务器接收到1个文件传输命令时,在服务器端口号20创建1个与客户的TCP数据连接
- SMTP,POP3,IMAP
- 电子邮件
- 用户代理user agents
- 邮件服务器mail servers
- 简单邮件传送协议SMTP和邮件接收协议POP3
- SMTP
- 客户使用TCP来可靠传输邮件消息到服务器端口号25
- 1. 使用用户代理编写邮件
- 2. 用户代理发送邮件到相应的邮件服务器
- 3. 邮件服务器的SMTP客户端建立到另一个的邮件服务器的SMTP服务端的TCP连接
- 4. SMTP客户在TCP连接上发送邮件消息
- 5. 接收者服务器存放邮件消息到邮箱
- 6. 接受者调用用户代理读取邮件
- POP3
- 身份认证阶段
- 从服务器获取邮件消息
- IMAP
- 保存所有邮件消息在一个位置:服务器
- 允许用户在服务器的各文件夹中管理邮件消息
- 电子邮件
- DNS 域名系统
- 提供功能
- 主机名到IP地址的转换
- 主机别名
- 邮件服务器别名
- 负载分配
- 查询方式
- 递归查询--名字解析的负担交给被查询的名字服务器
- 迭代查询--被查询的名字服务器回复可以被查询的名字服务器的IP地址
- 提供功能
- CDN 内容分发网络
- 将多份拷贝存储在地理上分散的不同站点来提供服务
- 用户向CND请求内容
- 被定向到附近的拷贝,取得内容
- 如果网络路径拥塞,则可能选择其他拷贝