{
计算机网络应用体系结构
网络应用通信基本原理
域名系统(DNS)
万维网应用
Internet电子邮件
FTP
P2P应用
Scoket编程基础
}

计算机网络应用体系结构


客户/服务器(C/S)结构网络应用
客户/服务器(C/S)结构的网络应用是最典型、最基本的网络应用。
www应用;文件传输;电子邮件;

客户/服务器(C/S)结构的特点:

  1. 网络通信双方分为客户程序和服务器程序,用户与用户之间不进行直接通信
  2. 服务器程序需先运行起来,做好接受通信的准备
  3. 客户程序后运行,主动与服务器进行通信。

纯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 ===》顶级域名

顶级域名的分类 :

  1. 国家顶级域名: cn. us,uk等。
  2. 通用顶级域名: com, org, gov等。
  3. 基础结构域名: 只有一个arpa

域名服务器

域名服务器的分类:
根据其主要保存的域名信息以及在域名解析过程的作用,可以分为根域名服务器、顶级域名服务器、权威域名服务器、中间域名服务器。

根域名服务器:根域名服务器是最重要的服务器,全球有13个,保存所有顶级域名服务器的域名和IP地址。
顶级域名服务器:负责管理在该顶级域名服务器注册的所有二级域名。
权威域名服务器:负责一个区的域名服务器,保存该区中的所有主机域名和IP地址。
中间域名服务器:不是以上三种的域名服务器。

本地域名服务器:是主机进行域名查询时首先被查询的域名服务器

image.png

域名解析过程

递归解析:代替查询主机或其他域名服务器,进行进一步的域名查询,并将 最终解析结果发送给查询主机或服务器。 (只要结果)

迭代解析:不会代替查询主机或其他域名服务器,进行进一步的域名查询, 只是将下一步要查询的服务器告知查询主机或服务器。 (过程和结果)

万维网应用

{
万维网应用结构
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
image.png

1、一共8个RIT时间(往返时间)
2、请求每个对象是,都要新建立TCP连接,都要经历TCP拥塞控制的慢启动阶段。

并行连接
通过建立多条并行TCP连接,并行发送HTTP请求和并行接收HTTP响应。

image.png

1、四个4个RIT。通常情况下,并行连接可以有效提高HTTP性能,减少Web页加载时间。
2、并行连接会增加客户端主机的资源开销,如内存开销。因此系统通常同时建立的并行TCP连接数有限制。
3、服务器通常也会对来自同一客户的并行TCP连接数有所限制。

非流水方式持久连接
也称为非管道方式持久连接,客户端在通过持久连接收到前一个响应报文后,才能发出对下一个对象的请求报文。

image.png

流水方式持久连接 也称为管道方式持久连接,客户端在通过持久连接收到前一个响应报文后,才能发出对下一个对象的请求报文。

image.png

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
邮件读取协议
}

电子邮件系统结构

  1. 邮件服务器
  2. 简单邮件传输协议(SMTP)
  3. 用户代理
  4. 邮件读取协议( POP3、IMPA、HTTP)

邮件服务器:发送和接收邮件,向发信人报告邮件传送情况(已交付、被拒绝、丢失等),是电子邮件体系结构的核心。

用户注册
分配存储空间
用户邮箱名在邮件服务器域名

邮件发送过程:
假设: 我向你发送邮件。

  1. 邮件首先被发送到我的邮件服务器的外出邮件队列中。
  2. 我的邮件服务器一次从队列中取出邮件, 并基于SMTP发送邮件。
  3. 如果成功发送,从邮件队列中清除,
  4. 不成功则保存在我的邮件队列中。每隔30min重新发送一次。
  5. 如果几天后还不成功, 删除邮件, 并通知我邮件发送失败。

用户代理是电子邮件应用的客户端软件。
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 的特点:

  1. SMTP只能传送7位ASCⅡ码文本内容,包括SMTP命令、应答消息以及邮件内容。
  2. SMTP传送的邮件内容中不能包含“CRLF.CRLF”,因为该信息用于标识邮件内容的结束。
  3. SMTP是“推动”协议。(补充:HTTP是“拉动”协议)
  4. SMTP使用的TCP链接是持久的。

电子邮件格式:
首部、空白、行主体。

邮件中常见的首部行内容:

To 后面填入一个或多个收件人的电子邮件地址(必填项)
Subject 邮件的主题(选填项)
Cc 表示应给某某人发送一个邮件副本(选填项)
From 表示发信人的电子邮件地址(选填项)
Date 发信日期(选填项)
Reply-To 对方回信所用的地址(选填项)

SMTP只能传输7位ASCII码文本内容,所以在传输非7位ASCII码文本内容时,必须依据一个标准将非7位ASCII码文本内容转换位7位ASCII码文本内容,然后再传输。

互联网邮件扩展(Multipurpose Internet Mail Extensions,MIME)

MIME主要包括的内容:

  1. 5个MIME邮件首部字段 :
MIME-Version 标识MIME的版本
Content-Description 可读字符串,用于对邮件内容的概括性描述
Content-Id 邮件的唯一标识符
Content-Transfer-Encoding 说明在传送邮件主体是如何编码的
Content-Type 说明邮件主体内容的类型和格式
  1. 定义了多种邮件内容的格式,对多媒体电子邮件的表示方法进行了标准化
  2. 定义了邮件传送编码,可对任何内容格式进行转换,从而适合通过SMTP进行传送

第三版邮局协议: (Post Office Protocol - Version 3,POP3)
互联网邮件访问协议: ( Internet Message Access Protocol,IMAP)
Web邮件系统的邮件读取协议:(HyperText Transfer Protocol,HTTP)