第二章网络应用

 第一节:计算机网络应用体系结构

计算机网络应用体系结构 html

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

  • 客户/服务器(C/S)结构的特色
  • 一、网络通讯双方分为客户程序和服务器程序,用户与用户之间不进行直接通讯。
  • 二、服务器程序需先运行,作好接受通讯的准备。
  • 三、客户程序后运行,主动与服务器进行通讯。

二、纯P2P结构网络应用:通讯双方没有传统意义上的客户服务器之分,地位对等,通讯双方都具有客户与服务器的特征。P2P网络是在IP网络上构建的覆盖网络。与C/S结构在传输层及如下各层是相同的,差异在于应用层。数据库

三、混合结构网络应用:C/S应用和P2P应用相结合编程

第二节网络应用通讯的基本原理

网络应用的基本通讯过程:运行在不一样主机上的应用进程间以C/S方式进 行通讯。浏览器

套接字(Socket):典型的网络应用编程接口。
端口号:标识该套接字的编号。服务器

简单网络管理协议(SNMP):是专门设计用于在IP网络管理网络节点(服务器、工做站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议;端口号是161网络

第三节 域名系统(DNS)

==========域名系统============socket

域名解析:将域名映射为IP地址tcp

域名解析的原理:为了实现域名解析,域名系统会创建分布式数据库,存储域名与IP地址的映射关系数据分布式

============层次化域名空间==========

域名的命名方式:层次树状结构命名方式;每一个域名由不一样级别的域名构成,各个层级域名之间用点分隔。

我国将二级域名划分为类别域名和行政区域域名

 顶级域名的分类

  • 一、国家顶级域名:cn,us,uk等
  • 二、通用顶级域名:com,org,gov,edu等
  • 三、基础结构域名:只有一个( arpa ,反向域名解析)

=================域名服务器=============

区(zone):一个服务器所负责管辖的范围。

DNS服务器:管辖范围不以“域”为单位,而以“区”为单位;DNS服务器根据其主要保存的域名信息以及在域名解析过程的做用,能够分为:

  • 根域名服务器:最重要的服务器,全球有13个,从a到m;保存全部顶级域名服务器的域名和IP地址
  • 顶级域名服务器:负责管理在该顶级域名服务器注册的全部二级域名
  • 权威域名服务器:保存该区中的全部主 机的域名和IP地址的映射
  • 中间域名服务器:不是以上三种的域名 服务器

本地域名服务器:主机在网络地址配置时,都会配置的。用于保存被查询域名的信息

===============域名解析过程==============

递归解析:主机进行域名查询时,本地域名服务器没有被查询域名 信息,则本地域名服务器代理主机查询根域名服务器。根域名服务器代 理本地域名服务器查询下一个域名服务,以此类推。直到获得被查询域 名的IP地址,最后将解析结果发送给主机

迭代解析:主机进行域名查询时,本地域名服务器没有被查询域名 信息,则先求助于根域名服务器。根域名服务器只是将下一步要查询的 服务器告知查询主机的本地域名服务器,本地域名服务器继续查询下一 个域名服务器,直到查询到被查询的域名的IP地址。

 第四节万维网应用

万维网应用结构(web应用)包括浏览器、web服务器、HTTP

  • 浏览器:Web应用的客户代理。
  • Web服务器: 存储管理供用户请求浏览癿Web页面(Web文档)。
  • 超文本传输协议(HTTP):客户和服务器间的交互,基于应用层的协议HTTP。

对象:网页上的图片、文字、视频等等

统一资源定位符( Universal Resource Locator, URL)URL地址:存放对象的主机域名(或IP地址)+对象的路径名。 例: http://www.abc.edu.cn/cs/index.html

二、HTTP

HTTP概述:超文本传输协议(HyperText Transfer Protocol, HTTP ):Web应用的应用层协议,定义浏览器如何向Web服务器发送请求,以及Web服务器如何进行响应;目前主要使用的是HTTP/1.0和HTTP/1.1,尤为以HTTP/1.1为主流。

HTTP连接:浏览器在向服务器发送请求以前,首先创建TCP链接,而后才发送 HTTP请求报文,接收HTTP响应报文。

RTT:做为一个时间单位来使用 HTTP客户进程向服务器请求创建链接:从客户发送链接请求,到收到服务器链接确认,所用的一个往返时间(Round Trip Time , RTT)。

使用TCP策略的不一样分类:

一、非持久链接的HTTP:客户与服务器创建TCP链接后,经过该链接发送HTTP请求报文,接收HTTP响应报文,而后断开TCP链接;

  • 一个连接:每次只能创建一个tcp链接   HTTP1.0 默认方式
  • 多个连接:一次能够同时创建多个tcp连接;并行链接:经过创建多条并行TCP链接,并行发送HTTP请求和并行接收HTTP响应。

二、持久链接的HTTP:

  • 非流水方式持久链接(非管道方式持久链接):客户端收到响应报文后,不断开TCP链接,继续请求接下来的文档。
  • 流水方式持久链接(管道方式持久链接):客户端在经过持久链接收到前一个响应报文后,不断开链接,继续并行请求3个图片;HTTP1.1 默认方式

HTTP报文:请求报文和响应报文。

  • 请求报文:浏览器发送给Web服务器
  • 响应报文:Web服务器发送给浏览器

 

 

 

 

 Cookie:

HTTP服务器不保存客户的任何信息,被称为无状态协议;引入Cookie机制,用亍用户跟踪

小型文本文件(Cookie):网站为了辨别用户身份、进行会话跟踪而储 存在用户本地终端上的数据。

Cookie技术主要包括4部份内容: 【简答】
一、HTTP响应报文中的Cookie头行:用户的Cookie ID,用户偏好等。
二、用户浏览器在本地存储、维护和管理的Cookie文件。
三、HTTP请求报文中的Cookie头行:用户已访问过的网站再次访问时,浏览器会检索本地Cookie文件。
四、网站在后台数据库中存储、维护Cookie信息:分配用户ID、每一个ID用户在本网站的访问特征等。

第五节Internet电子邮件

邮件系统结构

  • 一、邮件服务器:功能:发送和接收邮件;向发信人报告邮件传送状况(已交付、被拒绝、丢失等) 用户注册;分配存储空间
  • 二、用户代理:电子邮件应用的客户端软件。 例如:Outlook,Apple Mail,Fox Mail等,功能:支持用户撰写、显示、处理和收发邮件;为用户阅读、回复、转发、保存和撰写邮件提供编辑不操做环境。
  • 三、简单邮件传输协议(SMTP)(nternet电子邮件中应用层协议:):实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输。
  • 四、邮件读取协议(POP三、IMAP、HTTP):

SMTP:

SMTP经过3个阶段的应用层交互完成邮件的传输:

  • 握手阶段:
  • 邮件传输阶段:
  • 关闭阶段:

SMTP定义了14条命令,每条命令用4个字母组成。 例如:HELO:标识发件人本身的身份; DATA:通知服务器准备开始发送邮件内容; QUIT:命令退出;
SMTP定义了21种应答信息,由3位数字的代码开始,后面附上(也可不附)简单的文字说明。

电子邮件格式与MIME

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

 

互联网邮件扩展(Multipurpose Internet Mail Extensions,MIME):传输非7位ASCII码文本内容时,必须依据一个标准将非7位ASCII码文本内容转换位7位ASCII码文本内容,而后再传输。 

邮件读取协议

一、第三版邮局协议(Post Office Protocol - Version 3,POP3):

 

二、互联网邮件访问协议(Internet Message Access Protocol,IMAP) 服务器将每一个邮件与一个文件夹进行关联,经过 IMAP 收件人能够对邮件进行移动、查询、阅读、删除等操做。

三、HTTP:Web邮件系统的邮件读取协议

 第六节 FTP

 

 

文件传送协议(File Transfer Protocol , FTP):在互联网的两个主机间实现文件互传的网络应用的应用层协议。

FTP的服务器进程由两大部分组成:

  • 主进程,负责接受新的客户请求;
  • 从属进程,负责处理单个客户请求,与具体客户进行交互

 FTP应用结构:

  • 控制链接:用户登陆,服务器受权
  • 数据链接:与门用于文件传输

FTP专门使用一个独立的控制链接,传输控制信息,与传输文件信息进行分离,因此将FTP这种控制信息的传送方式称为带外控制
FTP是有状态的协议,FTP的命令都是可读的:例如:USER usename、PASS password、LIST

第七节 P2P应用

P2P(Peer to peer):近年来不少性能表现优异,深受用户喜好的P2P应用层出不穷。例如,BitTorrent、PPLive和PPstream等。

P2P应用特色

  • 一、应用的对等方是用户的计算机。
  • 二、很强的应用规模伸缩性。
  • 三、应用在对等方之间进行。
  • 四、应用充分汇集利用了端系统的计算能力以及网络传输宽带。

第八节 Socket编程基础

套接字(Socket):典型的网络应用编程接口。
端口号:标识套接字。

 

 Socket API函数

  • 一、建立套接字 : socket( )
  • 二、绑定套接字癿本地端点地址: bind( )
  • 三、设置监听:listen( )
  • 四、创建链接:(1)TCP客户端:connect( ),(2 ) TCP服务端:accept( )
  • 五、接收数据:(1)TCP:recv( ) ,(2)UDP:recvfrom
  • 六、发送数据:(1)TCP:send( ) ,(2)UDP:sendto
  • 七、关闭套接字:close( )