参考资料:
计算机网络自顶向下方法
一、应用层协议原理
1、应用程序体系结构
- 客户-服务器体系结构
- P2P体系结构
P2P体系结构特点:
1、对数据中心的专用服务器有最小的依赖。2、具有自扩展性,例如在文件共享应用中,每个对等方都由于请求文件产生工作量,但它们向其他对等方分发文件也为系统增加服务能力。
2、进程通信
- 套接字:进程通过套接字的软件接口向网络发送报文和接受报文
- 进程寻址:一台主机向另一台主机的某个进程发信息要知道主机的:1、地址(IP) 2、目的主机中指定接收进程的标识符(端口号port)
3、运输层服务
套接字是应用程序进程和运输层之间的接口,那么运输层协议的服务包括:
- 可靠的数据传输:确保发送的数据完全正确的被接受
- 吞吐量:可以用吞吐量就是发送进程能够向接收进程发送比特的速率。运输层协议可以保证吞吐量。
- 定时
- 安全性:加密
4、因特网提供的运输服务
- TCP
- 面向连接的服务:可以在两个进程之间建立一个TCP连接(全双工)
- 可靠的数据传输服务
- 拥塞控制机制:当发送方和接收方网络阻塞时,TCP会抑制发送进程,为网络带来整体好处
- TCP和UDP都没有安全机制,可以在TCP协议之前添加一个SSL安全套接字层,通过SSL进行加密,之后通过TCP进行传输,接收方通过TCP套接字接收后,再通过SSL套接字进行解密。
- UDP
- 不可靠的数据传输:不保证报文到达,并且可能是乱序到达的。
- UDP是无连接的,两进程通信前不握手
- UDP不包括拥塞控制机制所以可以以任何速率向网络层注入数据
- 因特网电话通常愿意将应用运行在UDP上以避免TCP的拥塞控制机制和分组开销,但因为许多防火墙被配置成阻挡大多数UDP流量,所以因特网电话设计成若UDP通信失败则使用TCP作为备份。
二、WEB和HTTP
1、Http概况
Web的应用层协议是超文本传输协议Http,HTTP定义了客户端和服务器进行报文交换的方式。
- Http协议使用TCP作为支撑运输协议,不用担心数据丢失,因为TCP可以确保可靠的数据传输服务
- HTTP不保存用户的任何信息,所以称为无状态协议
2、非持续连接和持续连接
- 非持续连接:每个请求响应对是经一个单独的TCP连接发送
- 每个TCP连接只传输一个请求报文和一个响应报文
- 往返时间RTT:一个短分组从客户到服务器再返回客户的时间,包括:分组传播时延、分组在中间路由器和交换机上的排队时延、分组处理时延。
- 三次握手:当用户点击超链接,客户端向服务器发送一个小的TCP报文段,服务器用小的报文段进行响应,最后客户向服务器返回确认。其中前两次握手为一个RTT。客户结合第三次握手(确认)向服务器发送请求报文,一旦服务器接收到,便返回HTML文件,这一部分又用去了一个RTT。总的时间为:两次RTT+HTML文件的传输时间。
![2ffab08a8a48d54889ec81c935ae20f3.png](https://i-blog.csdnimg.cn/blog_migrate/061d12910389bf23932017e14034cdf7.jpeg)
- 持续连接:所有的请求响应经同一个TCP连接发送(HTTP默认持续联系,但也可以使用非持续联系)
- 非持续连接的缺点:1、必须为每个请求的对象建立和维护一个全新的连接,对每个这样的连接,客户和服务器都要分配TCP的缓冲区和保持TCP变量,这给web服务器带来了严重的负担。 2、每个对象要经过两个RTT。
- 一条连接经过一定时间未使用,HTTP服务就会关闭该连接。
3、Http报文格式
- HTTP请求报文:</