第一节:计算机网络应用体系结构
计算机网络应用体系结构
1、客户/服务器(C/S)结构网络应用 :最典型、最基本的网络应用;例如: www应用;文件传输;电子邮件;
- 客户/服务器(C/S)结构的特点
- 1、网络通信双方分为客户程序和服务器程序,用户与用户之间不进行直接通信。
- 2、服务器程序需先运行,做好接受通信的准备。
- 3、客户程序后运行,主动与服务器进行通信。
2、纯P2P结构网络应用:通信双方没有传统意义上的客户服务器之分,地位对等,通信双方都具备客户与服务器的特征。P2P网络是在IP网络上构建的覆盖网络。与C/S结构在传输层及以下各层是相同的,差别在于应用层。
3、混合结构网络应用:C/S应用和P2P应用相结合
第二节网络应用通信的基本原理
网络应用的基本通信过程:运行在不同主机上的应用进程间以C/S方式进 行通信。
套接字(Socket):典型的网络应用编程接口。
端口号:标识该套接字的编号。
简单网络管理协议(SNMP):是专门设计用于在IP网络管理网络节点(服务器、工作站、路由器、交换机及HUBS等)的一种标准协议,它是一种应用层协议;端口号是161
第三节 域名系统(DNS)
==========域名系统============
域名解析:将域名映射为IP地址
域名解析的原理:为了实现域名解析,域名系统会建立分布式数据库,存储域名与IP地址的映射关系数据
============层次化域名空间==========
域名的命名方式:层次树状结构命名方式;每个域名由不同级别的域名构成,各个层级域名之间用点分隔。
我国将二级域名划分为类别域名和行政区域域名
顶级域名的分类
- 1、国家顶级域名:cn,us,uk等
- 2、通用顶级域名:com,org,gov,edu等
- 3、基础结构域名:只有一个( 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
2、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策略的不同分类:
1、非持久连接的HTTP:客户与服务器建立TCP连接后,通过该连接发送HTTP请求报文,接收HTTP响应报文,然后断开TCP连接;
- 一个链接:每次只能建立一个tcp连接 HTTP1.0 默认方式
- 多个链接:一次可以同时建立多个tcp链接;并行连接:通过建立多条并行TCP连接,并行发送HTTP请求和并行接收HTTP响应。
2、持久连接的HTTP:
- 非流水方式持久连接(非管道方式持久连接):客户端收到响应报文后,不断开TCP连接,继续请求接下来的文档。
- 流水方式持久连接(管道方式持久连接):客户端在通过持久连接收到前一个响应报文后,不断开连接,继续并行请求3个图片;HTTP1.1 默认方式
HTTP报文:请求报文和响应报文。
- 请求报文:浏览器发送给Web服务器
- 响应报文:Web服务器发送给浏览器
Cookie:
HTTP服务器不保存客户的任何信息,被称为无状态协议;引入Cookie机制,用于用户跟踪
小型文本文件(Cookie):网站为了辨别用户身份、进行会话跟踪而储存在用户本地终端上的数据。
Cookie技术主要包括4部分内容: 【简答】
1、HTTP响应报文中的Cookie头行:用户的Cookie ID,用户偏好等。
2、用户浏览器在本地存储、维护和管理的Cookie文件。
3、HTTP请求报文中的Cookie头行:用户已访问过的网站再次访问时,浏览器会检索本地Cookie文件。
4、网站在后台数据库中存储、维护Cookie信息:分配用户ID、每个ID用户在本网站的访问特征等。
第五节Internet电子邮件
邮件系统结构
- 1、邮件服务器:功能:发送和接收邮件;向发信人报告邮件传送情况(已交付、被拒绝、丢失等) 用户注册;分配存储空间;是电子邮件体系结构的核心
- 2、用户代理:电子邮件应用的客户端软件。 例如:Outlook,Apple Mail,Fox Mail等,功能:支持用户撰写、显示、处理和收发邮件;为用户阅读、回复、转发、保存和撰写邮件提供编辑不操作环境。
- 3、简单邮件传输协议(SMTP)(nternet电子邮件中应用层协议:):实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输。端口号25
- 4、邮件读取协议(POP3、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码文本内容,然后再传输。
邮件读取协议
1、第三版邮局协议(Post Office Protocol - Version 3,POP3):
2、互联网邮件访问协议(Internet Message Access Protocol,IMAP) 服务器将每个邮件与一个文件夹进行关联,通过 IMAP 收件人可以对邮件进行移动、查询、阅读、删除等操作。
3、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应用特点
- 1、应用的对等方是用户的计算机。
- 2、很强的应用规模伸缩性。
- 3、应用在对等方之间进行。
- 4、应用充分聚集利用了端系统的计算能力以及网络传输宽带。
第八节 Socket编程基础
套接字(Socket):典型的网络应用编程接口。
端口号:标识套接字。
Socket API函数
- 1、创建套接字 : socket( )
- 2、绑定套接字的本地端口地址: bind( )
- 3、设置监听:listen( )
- 4、建立连接:(1)TCP客户端:connect( ),(2 ) TCP服务端:accept( )
- 5、接收数据:(1)TCP:recv( ) ,(2)UDP:recvfrom
- 6、发送数据:(1)TCP:send( ) ,(2)UDP:sendto
- 7、关闭套接字:close( )
-