计算机网络笔记 第二章应用层
计算机网络笔记 第二章应用层
网络应用程序体系结构:客户-服务器体系结构(client-server architrcture), 对等体系结构(P 2 P)
进程通信的过程
- 相同端上的的进程通信通过操作系统确定
- 不同端上的进程通信通过计算机网络交换报文(message)相互通信,发送进程生成并向网络中发送报文,接收进程接受这些报文并可能通过回送报文进行响应。
- 进程通过套接字(socket)的软件接口向网络发送报文和从网络接收报文
套接字是同一台主机内应用层和传输层的应用程序编程接口,
应用程序可以控制套接字在应用层的一切但是,对于运输层的控制仅限于 1. 选择运输协议 2. 设定几个运输层的参数 - 进程需要定义两种信息
- 主机的地址(主机有 IP 地址标志)
- 在目的主机中指定接收进程的标识符(端口号)
- 选择运输服务
可供应用程序使用的运输服务
运输服务的评价
- 可靠的数据传输
- 吞吐量
- 定时
- 安全性
TCP 服务
TCP 服务模型包括:面向连接服务和可靠数据传输服务
- 面向连接服务
在数据报文开始流动前,TCP 让客户和服务器相互交换运输层的控制信息
在握手阶段后,一个 TCP 连接就在两个进程的套接字之间建立了 - 可靠的数据传输服务
通信进程可以依靠 TCP,无差错的按适当顺序交付所有发送数据 - 拥塞控制机制当接收端和发送端的网络拥塞时,会抑制发送进程。
UDP 服务
UDP 不提供不必要服务的轻量级运输协议。
UDP 是无连接的,没有握手过程
UDP 协议不保证该报文将到达接收的进程,而且到达还可能是乱序的
应用层协议简介
应用层协议(application-layer protocol)定义了在不同端系统上的应用进程如何传递报文。
- 交换报文类型,例如请求报文和响应报文
- 各种报文的语法如报文中各个字段及这些字段是如何描述的
- 字段的语义
- 如何发送报文,发送报文的规则
RFC(Request for Comments)是互联网工程任务组(IETF)发布的一系列文档,用于描述互联网相关协议、标准、方法和过程。
Web 应用层协议 HTTP(超文本传输协议)就作为一个 RFC 可供使用
网络应用
- WEB
- 文件传输
- 电子邮件
- 目录服务
- 流式视频
- P 2 P
Web 和 HTTP
HTTP 概述
Web 的应用是层协议是超文本传输协议(HTTP), 他是 Web 的核心
HTTP 由两个程序实现:一个客户程序和一个服务程序,HTTP 定义了这些报文的结构以及客户和服务器进行报文交换的方式
一些概念
Web 页面是由对象组成,一个对象只是一个文件
多数 Web 界面含有一个HTML 基本文件(Base html)
HTTP 使用 TCP 作为它支撑运输协议
客户端的套接字接口时客户进程与 TCP 连接之间的门,在服务器的套接字接口则是服务器进程与 TCP 连接之间的门。
HTTP 不保存任何关于客户的任何信息,所以我们说 HTTP 是一个无状态协议 (stateless protocol )
非持续连接和持续连接
非持续连接:即每个请求/响应对经过一个单独的 TCP 连接发送,
持续连接:是所有请求及其响应都经相同的 TCP 连接发送
非持续连接的 HTTP
往返时间(Round-Trip Time, RTT): 一个短分组从客户到服务器然后再返回客户所花费的时间。
RTT 包括分组传播时延,分组在中间路由器和交换机的排队时延以及分组的处理时延
三次握手:客户向服务器发送一个小 TCP 报文段,服务器用一个小 TCP 报文段做出确认和响应,最后客户向服务器返回确认。
完成三次握手的前两个部分后,客户结合三次握手的第三部分(确认)向该 TCP 连接发送一个 HTTP 请求报文。
持续连接的 HTTP
非持续连接的缺点:1. 必须为每一个请求的对象建立和维护一个全新的连接,2. 每一个对象经受两倍的 RTT 交付时延
服务器在响应后保持该 TCP 连接打开,在相同的客户和服务器之间后续的请求和响应报文能够通过相同的连接进行传送。
HTTP 报文格式
1. HTTP 请求报文
请求行 (request line) 分为三部分请求方法 url 协议版本
首部行 (header line)
实体体(entity body)
GET /somedire/page.html HTTP/1.1
Host: www.somesch