{
计算机网络应用体系结构
网络应用通信基本原理
域名系统(DNS)
万维网应用
Internet电子邮件
FTP
P2P应用
Scoket编程基础
}
计算机网络应用体系结构
客户/服务器(C/S)结构网络应用
客户/服务器(C/S)结构的网络应用是最典型、最基本的网络应用。
www应用;文件传输;电子邮件;
客户/服务器(C/S)结构的特点:
- 网络通信双方分为客户程序和服务器程序,用户与用户之间不进行直接通信
- 服务器程序需先运行起来,做好接受通信的准备
- 客户程序后运行,主动与服务器进行通信。
纯P2P结构应用;
P2P (Peer to Peer):通信双方没有传统意义上的客户服务器之分,‘地位’对等,通信双方都具备客户与服务器的特征。
混合结构网络应用
混合结构网络应用将C/S应用和P2P应用相结合。
网络通信应用通信基本原理
网络应用的基本通信过程
网络应用的基本通信过程就是运行在不同主机上的应用进程间以C/S方式进行的通信。
网络应用编程接口
典型的网络应用编程接口是套接字(Socket)。
对于一个传输层协议,需要为其接口的每个套接字分配特定的编号,标识该套接字,该编号称为端口号
域名系统(DNS)
{
域名系统
层次化域名空间
域名服务器
域名解析过程
}
域名系统
例如:
IP 地址: 115.239.211.122(计算机通信的时候使用)
域名:www.baidu.com (人用的)
域名系统的作用:
域名系统将域名映射为IP地址。
实现映射的过程,称为域名解析。
域名解析的原理:
为了实现域名解析,域名系统会建立分布式数据库,存储域名与IP地址的映射关系数据。
层次化域名空间
域名的命名方式:层次树状结构命名方式 。每个域名由不同级别的域名构成,各个层级域名之间用点分隔。
www .baidu .com —————www==》三级域名 | baidu ===》 二级域名 | com ===》顶级域名
顶级域名的分类 :
- 国家顶级域名: cn. us,uk等。
- 通用顶级域名: com, org, gov等。
- 基础结构域名: 只有一个arpa
域名服务器
域名服务器的分类:
根据其主要保存的域名信息以及在域名解析过程的作用,可以分为根域名服务器、顶级域名服务器、权威域名服务器、中间域名服务器。
根域名服务器:根域名服务器是最重要的服务器,全球有13个,保存所有顶级域名服务器的域名和IP地址。
顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名。
权威域名服务器:负责一个区的域名服务器,保存该区中的所有主机域名和IP地址。
中间域名服务器:不是以上三种的域名服务器。
本地域名服务器:是主机进行域名查询时首先被查询的域名服务器
域名解析过程
递归解析:代替查询主机或其他域名服务器,进行进一步的域名查询,并将 最终解析结果发送给查询主机或服务器。 (只要结果)
迭代解析:不会代替查询主机或其他域名服务器,进行进一步的域名查询, 只是将下一步要查询的服务器告知查询主机或服务器。 (过程和结果)
万维网应用
{
万维网应用结构
http
cookie
}
万维网应用结构
万维网应用结构主要包括: 浏览器、web服务器、http协议。
Web服务器: Web应用的服务器软件,存储并管理供用户请求浏览的Web页面(Web文档)。
浏览器:Web应用客户端软件,即Web应用的客户代理。
超文本传输协议(HTTP):客户和服务器间的交互基于应用层的协议HTTP。
URL:统一资源定位符。
URL地址主要两个部分组成:存放对象的主机域名(或IP地址)和对象的路径名称。
例: http://www.abc.edu.cn/cs/index.html 。
URL的寻址方式确保万维网上的每个Web页面或对象都有一个唯一的标识符
HTTP
HTTP(HyperText Transfer Protocol)是Web应用的应用层协议,定义浏览器如何向Web服务器发送请求以及Web服务器如何向浏览器进行响应。 目前主要使用的HTTP/1.0和HTTP/1.1,尤其以HTTP/1.1为主流。
http连接
浏览器在向服务器发送请求之前,首先需要建立TCP连接,然后才能发送HTTP请求报文,并接收HTTP响应报文。
根据HTTP使用TCP连接的策略不同,可以分为非持久连接的HTTP和持久连接的HTTP,HTTP1.0默认使用非持久连接。
HTTP客户进程向服务器请求建立连接。从客户发送连接请求,到收到服务器连接确认,用时一个往返时间(Round Trip Time,RTI)。作为一个时间单位来使用。
非持久连接:
非持久连接
非持久连接是指HTTP客户与HTTP服务器建立TCP连接后,通过该连接发送HTTP请求报文,接收HTTP响应报文,然后断开连接。
HTTP1.0默认使用非持久连接。
非持久连接HTTP的响应时间
以请求浏览一个引用3个JPEG小图像的Web页面为例
URL地址:http://www.abc.edu.cn/cs/index.html
1、一共8个RIT时间(往返时间)
2、请求每个对象是,都要新建立TCP连接,都要经历TCP拥塞控制的慢启动阶段。
并行连接
通过建立多条并行TCP连接,并行发送HTTP请求和并行接收HTTP响应。
1、四个4个RIT。通常情况下,并行连接可以有效提高HTTP性能,减少Web页加载时间。
2、并行连接会增加客户端主机的资源开销,如内存开销。因此系统通常同时建立的并行TCP连接数有限制。
3、服务器通常也会对来自同一客户的并行TCP连接数有所限制。
非流水方式持久连接
也称为非管道方式持久连接,客户端在通过持久连接收到前一个响应报文后,才能发出对下一个对象的请求报文。
流水方式持久连接 也称为管道方式持久连接,客户端在通过持久连接收到前一个响应报文后,才能发出对下一个对象的请求报文。
HTTP 报文 :请求报文和响应报文
请求报文:
起始行、(请求行)方法(get/head/post/option/put)、 URL、 HTTP版本、
首部行、(携带附加信息)
空白行、CRLF(回车:CR;换行:LF)
报文主体、实际要传输的内容
响应报文:
起始行、(状态行)HTTP版本、状态码、原因短语
首部行、(携带附加信息)
空白行、CRLF(回车:CR;换行:LF)
报文主体、实际要传输的内容
HTTP状态码:3位十进制数,并利用第一位十进制数字区分5类状态码。
状态码类别 | 取值范围 | 作用 | 说明 |
---|---|---|---|
1xx | 100-199 | 信息提示 | 通告信息,可能还需要进一步交互 |
2xx | 200-299 | 成功 | 成功完成客户请求的操作,并进行响应 |
3xx | 300-399 | 重定向 | 表示资源已移走,需要向新URL发请求 |
4xx | 400-499 | 客户端错误 | 由于客户端请求错误,无法成功响应 |
5xx | 500-599 | 服务器错误 | 由于服务器端错误,无法成功响应 |
常见的HTTP状态码 :
状态码 | 短语 | 含义 |
---|---|---|
100 | Continue | 已成功收到了请求的初始部分,请客户端继续 |
200 | OK | 成功,所请求信息在响应报文中 |
301 | Moved Permanently | 重定向 |
400 | Bad Request | 客户端请求错误 |
401 | Unauthorized | 未授权,需要输入用户名和密码 |
404 | Not Found | 客户端请求的对象,在服务器上不存在 |
451 | Unsupported Media Type | 不支持的媒体类型 |
505 | HTTP Version Not Supported | 请求使用的HTTP版本,服务器不支持 |
Cookie
HTTP服务器并不保存关于客户的任何信息,所以又被称为无状态协议。Web应用引入Cookie机制,用于用户跟踪。
例如:用户每次登录论坛时,都需要重新输入用户名和密码。
Cookie(小型文本文件):某些网站为了辨别用户身份、进行会话跟踪而存储在用户本地终端上的数据。
Cookie技术主要包括4部分内容:
1、HTTP响应报文中的Cookie头行:Set-Cookie。
2、用户浏览器在本地存储、维护和管理的Cookie文件。
3、HTTP请求报文中的Cookie头行:Cookie。
4、网站在后台数据库中存储、维护Cookie信息:分配给用户ID、每个ID用户在本网站的访问特征等。
Internet电子邮件
{
电子邮件系统结构
SMTP
电子邮件格式与MIME
邮件读取协议
}
电子邮件系统结构
- 邮件服务器
- 简单邮件传输协议(SMTP)
- 用户代理
- 邮件读取协议( POP3、IMPA、HTTP)
邮件服务器:发送和接收邮件,向发信人报告邮件传送情况(已交付、被拒绝、丢失等),是电子邮件体系结构的核心。
用户注册
分配存储空间
用户邮箱名在邮件服务器域名
邮件发送过程:
假设: 我向你发送邮件。
- 邮件首先被发送到我的邮件服务器的外出邮件队列中。
- 我的邮件服务器一次从队列中取出邮件, 并基于SMTP发送邮件。
- 如果成功发送,从邮件队列中清除,
- 不成功则保存在我的邮件队列中。每隔30min重新发送一次。
- 如果几天后还不成功, 删除邮件, 并通知我邮件发送失败。
用户代理是电子邮件应用的客户端软件。
Outlook,Apple Mail,Fox Mail等~
支持用户撰写、显示、处理和收发邮件。
为用户阅读、回复、转发、保存和撰写邮件提供编辑与操作环境。
简单邮件传输协议 (Simple Mail Transfer Protocol, SMTP) 是Internet电子邮件中核心应用层协议。实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输。
SMTP通过3个阶段的应用层交互完成邮件的传输: 握手阶段, 邮件传输阶段, 关闭阶段。
SMTP定义了14条命令,每条命令用4个字母组成。
例如:
HELO:标识发件人自己的身份;
DATA:通知服务器准备开始发送邮件内容;
QUIT:命令退出;
SMTP定义了21种应答信息,一般只有一行,由3位数字的代码开始,后面附上(也可不附)简单的文字说明。
SMTP客户(C)和SMTP服务器(S)之间一封简单邮件传输的交互过程
示例:
握手阶段:
S: 220 mail.abc.com
C: HELO xyz.hit.edu.cn
S: 250 Hello xyz.hit.edu.cn,pleased to meet you
邮件传输阶段:
C: MAIL FROM:user_a@xyz.hit.edu.cn
S: 250 user_a@xyz.hit.edu.cn … Sender ok
C: RCPT TO:user_b@mail.abc.com
S: 250 user_b@mail.abc.com … Recipient ok
C: DATA
S: 354 Enter mail,end with “.” on a line by itself
C: Are you available tonigth?
C: How about going to the cinema together?
C: .
关闭阶段:
S: 250 Message accepted for delivery
C: QUIT
S: 221 mail.abc.com closing connection
SMTP 的特点:
- SMTP只能传送7位ASCⅡ码文本内容,包括SMTP命令、应答消息以及邮件内容。
- SMTP传送的邮件内容中不能包含“CRLF.CRLF”,因为该信息用于标识邮件内容的结束。
- SMTP是“推动”协议。(补充:HTTP是“拉动”协议)
- SMTP使用的TCP链接是持久的。
电子邮件格式:
首部、空白、行主体。
邮件中常见的首部行内容:
To | 后面填入一个或多个收件人的电子邮件地址(必填项) |
---|---|
Subject | 邮件的主题(选填项) |
Cc | 表示应给某某人发送一个邮件副本(选填项) |
From | 表示发信人的电子邮件地址(选填项) |
Date | 发信日期(选填项) |
Reply-To | 对方回信所用的地址(选填项) |
SMTP只能传输7位ASCII码文本内容,所以在传输非7位ASCII码文本内容时,必须依据一个标准将非7位ASCII码文本内容转换位7位ASCII码文本内容,然后再传输。
互联网邮件扩展(Multipurpose Internet Mail Extensions,MIME)
MIME主要包括的内容:
- 5个MIME邮件首部字段 :
MIME-Version | 标识MIME的版本 |
---|---|
Content-Description | 可读字符串,用于对邮件内容的概括性描述 |
Content-Id | 邮件的唯一标识符 |
Content-Transfer-Encoding | 说明在传送邮件主体是如何编码的 |
Content-Type | 说明邮件主体内容的类型和格式 |
- 定义了多种邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化
- 定义了邮件传送编码,可对任何内容格式进行转换,从而适合通过SMTP进行传送
第三版邮局协议: (Post Office Protocol - Version 3,POP3)
互联网邮件访问协议: ( Internet Message Access Protocol,IMAP)
Web邮件系统的邮件读取协议:(HyperText Transfer Protocol,HTTP)