文章目录
- 一、计算机网络应用体系结构
- 二、网络应用通信的基本原理
- 三、域名系统(DNS)
- 四、万维网应用
- 五、Internet电子邮件系统结构
- 六、FTP
- 七、Socket编程基础
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210311213722229.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzYwNjE1OA==,size_16,color_FFFFFF,t_70)
一、计算机网络应用体系结构
1.客户 / 服务器(C / S)结构网络应用
C/S结构的网络应用是最典型、最基本的网络应用。
例如:www应用;文件传输;电子邮件;
C/S结构的特点
①网络通信双方分为客户程序和服务器程序,用户与用户之间不进行直接通信。
②服务器程序先运行,做好接受通信的准备。
③客户程序后运行,主动与服务器进行通信。
2.纯P2P结构网络应用
P2P:(Peer to Peer)[Peer:对等端]
通信双方没有传统意义上的客户服务器之分,地位对等,通信双方都具备客户与服务器的特征。
例如:BitTorrent、PPLive和PPstream等。
P2P应用特点:
- 应用的对等方是用户的计算机
- 很强的应用规模伸缩性
- 应用在对等方之间进行。
- 应用充分聚集利用了端系统的计算能力以及网络传输宽带。
3.混合结构网络应用
混合结构网络应用:C/S应用和P2P应用相结合。
案例:IPTV
二、网络应用通信的基本原理
1.网络应用的基本通信过程
运行在不同主机上的应用进程间以C/S方式进行通信。
2.网络应用编程接口
API: Application Programming Interface 应用编程接口
套接字(Socket) 是典型的网络应用编程接口。
端口号是标识套接字的编号。
3.标准化应用为不同的服务器分配的默认端口号
三、域名系统(DNS)
域名 | www.baidu.com | 人用方便 |
---|---|---|
IP地址 | 115.239.211.122 | 计算机用方便 |
1.域名系统(Domain Naming System,DNS)
域名解析:将域名映射为IP地址。
2.层次化域名空间
a.域名的命名方式:层次树状结构命名方式。
每个域名由不同级别的域名构成,各个层级域名之间用点分隔。
b.顶级域名的分类
- 国家顶级域名:cn,us,uk等
- 通用顶级域名:com,org,gov,edu等
- 基础结构域名:只有一个arpa(反向域名解析)。
3.域名服务器
a.DNS服务器
根据其主要保存的域名信息以及在域名解析过程的作用,可以分为:根域名服务器、顶级域名服务器、权威域名服务器、中间域名服务器。
本地(默认)域名服务器:主机在网络地址配置时,都会配置的。用于保存被查询域名的信息。
b.域名解析过程:
①根域名服务器
最重要的服务器,全球有13个,以a~m英文字母命名。
保存所有顶级域名服务器的域名和IP地址。
②顶级域名服务器
负责管理在该顶级域名服务器注册的所有二级域名。
③权威域名服务器
保存该区中的所有主机的域名和IP地址的映射。
④中间域名服务器
不是以上三种的域名服务器
c.区(zone)
一个服务器所负责管辖的范围。
DNS服务器:管辖范围以『区』为单位。
4.域名解析过程
a.递归解析
b.迭代解析
四、万维网应用
1.万维网应用结构(World Wide Web应用)
a.结构
b.统一资源定位符 (Universal Resource Locator,URL)
2.超文本传输协议【Hyper Text Transfer Protocol,HTTP】
a.HTTP概述
Web应用的应用层协议,定义浏览器如何向Web服务器发送请求,以及Web服务器如何进行响应。
版本:HTTP/1.0 和 HTTP/1.1
b.HTTP连接
①HTTP连接
HTTP基于传输层的TCP传输报文。浏览器在向服务器发送请求之前,首先建立TCP连接,然后才发送HTTP请求报文,接收HTTP响应报文。
PS:传输控制协议(TCP,Transmission Control Protocol)
②RTT:作为一个时间单位来使用
例如:HTTP客户进程向服务器请求建立连接:从客户发送连接请求,到客户收到服务器连接确认,用时一个往返时间(Round Trip Time, RTT)。
③HTTP连接分类:使用TCP连接的策略不同
非持久连接也叫短连接
持久连接也叫长连接
1)非持久连接
客户与服务器建立TCP连接后,通过该连接发送HTTP请求报文,接收HTTP响应报文,然后断开TCP连接。每次请求传输一个对象,都需要重新建立一个TCP连接。
以请求浏览一个引用3个JPG小图像的Web页面为例:
非持久连接HTTP的响应时间:8个RTT。
2)并行连接
以请求浏览一个引用3个JPG小图像的Web页面为例:
并行连接HTTP的响应时间:4个RTT。
3)非流水方式持久连接(非管道方式持久连接)
建立TCP连接,发送请求和接收响应后,不断开TCP连接,继续请求。
以请求浏览一个引用3个JPG小图像的Web页面为例:
非流水方式持久连接HTTP的响应时间:5个RTT。
4)流水方式持久连接(管道方式持久连接)
建立TCP连接,发送请求和接收响应后,不断开TCP连接,继续 『并行』 请求资源。
以请求浏览一个引用3个JPG小图像的Web页面为例:
流水方式持久连接HTTP的响应时间:3个RTT。
c.HTTP报文
分为请求报文和响应报文:
请求报文:浏览器发送给Web服务器。
响应报文:Web服务器发送给浏览器。
请求报文 | 响应报文 | |
---|---|---|
起始行 | 请求行:<方法><协议版本> | 状态行:<协议版本><状态码><短语> |
首部行 | 携带附加信息 | 携带附加信息 |
空白行 | CRLF | CRLF |
报文主体 | 一般没有 | 一般没有 |
PS:
①HTTP典型的请求方法
②常见的HTTP状态码与短语
扩展:
3.小型文本文件(Cookie)
a.概念
HTTP服务器不保存客户的任何信息,被称为无状态协议。从而引入Cookie机制,用于用户跟踪。
Cookie是网站为了辨别用户身份、进行会话跟踪而存储在用户本地终端上的数据。
b.Cookie技术主要包括内容
- HTTP响应报文中的Cookie头行:用户的Cookie ID,用户偏好等。
- 用户浏览器在本地存储、维护和管理的Cookie文件。
- HTTP请求报文中的Cookie头行:用户已访问过的网站再次访问时,浏览器会检索本地Cookie文件。
- 网站在后台数据库中存储、维护Cookie信息:分配用户ID、每个ID用户在本网站的访问特征等。
c.Cookie常见用途
- 利用Cookie的ID来准确统计网站的实际访问人数、新老人数对比、访问频率等。
- 利用Cookie限制某些特定用户的访问。
- 存储用户访问过程中的操作习惯和偏好。
- 记录用户登录网站的用户名、密码等信息。
- 电子商务网站利用Cookie实现『购物车』功能。
d.Cookie的分类
永久Cookie:Cookie保存在硬盘中。有效周期可以设置,关闭浏览器不影响Cookie有效周期。
会话Cookie:Cookie保存在内存中。Cookie有效周期是浏览器会话期间,关闭浏览器,Cookie消失。
e.Cookie工作原理【了解】
五、Internet电子邮件系统结构
- 邮件服务器
- 用户代理
- 简单邮件传输协议(SMTP)
- 邮件读取协议(POP3、IMAP、HTTP)
1.邮件服务器
邮件服务器是电子邮件体系结构的核心。
功能:
- 发送和接收邮件
- 向发信人报告邮件传送情况(已交付、被拒绝、丢失等)
- 用户注册
- 分配存储空间
2.用户代理
用户代理是电子邮件应用的客户端软件。
例如:Outlook,Apple Mail,Fox Mail等~
功能:
支持用户撰写、显示、处理和收发邮件。
为用户阅读、回复、转发、保存和撰写邮件提供编辑与操作环境。
3.SMTP(简单邮件传输协议)
简单邮件传输协议(Simple Mail Transfer Protocol, SMTP): 实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输。
SMTP通过 3个阶段 的应用层交互完成邮件的传输:
SMTP定义了14条命令,每条命令用4个字母组成。
例如:
HELO:标识发件人自己的身份;
DATA:通知服务器准备开始发送邮件内容;
QUIT:命令退出;
SMTP定义了21种应答信息,由3位数字的代码开始,后面可附上简单的文字说明。
SMTP客户(C)和SMTP服务器(S)之间一封简单邮件传输的交互过程示例:
SMTP的特点:
- SMTP只能传送7位ASCⅡ码文本内容,包括SMTP命令、应答消息以及邮件内容。
- SMTP传送的邮件内容中不能包含『CRLF.CRLF』,因为该信息用于标识邮件内容的结束。
- SMTP是 『推动』 协议。【HTTP是『拉动』协议】
- SMTP使用TCP连接是持久的。
4.电子邮件格式与MIME
a.电子邮件格式
- 首部
- 空白行
- 行主体
b.MIME(互联网邮件拓展 Multipurpose Internet Mail Extensions)
传输非7位ASCⅡ码文本内容时,必须依据一个标准将非7位ASCⅡ码文本内容转换为7位ASCⅡ码文本内容,然后再传输。
这就用到了MIME。
5.邮件读取协议
是支持接收邮件的用户主动连接服务器,对其邮箱中的邮件进行操作或申请向本地传输的应用层协议。
协议名 | 缩写 | 英文全称【了解即可】 |
---|---|---|
第三版邮局协议 | POP3 | Post Office Protocol - Version 3 |
互联网邮件访问协议 | IMAP | Internet Message Access Protocol |
Web邮件系统的邮件读取协议 | HTTP | HyperText Transfer Protocol |
a.POP3(第三版邮局协议)
b.IMAP(互联网邮件访问协议)
IMAP服务器将每个邮件与一个文件夹进行关联,通过IMAP收件人可以对邮件进行移动、查询、阅读、删除等操作。
IMAP | POP3 | |
---|---|---|
相同点 | 邮件读取协议 | 邮件读取协议 |
不同点 | 对邮件的操作会反映在服务器上 | 对邮件的操作不会反映在服务器上 |
c.HTTP(Web邮件系统的邮件读取协议)
六、FTP
1.FTP应用结构与FTP命令
a.FTP(文件传送协议 File Transfer Protocol)
在互联网的俩个主机间实现文件互传的网络应用的应用层协议。
b.FTP服务器进程的组成
- 主进程:负责接受新的客户请求。【拿公司举例子的话像公司的前台,负责接待】
- 从属进程:负责处理单个客户请求,与具体客户进行交互。【拿公司举例子的话像公司的业务员,负责具体业务】
c.控制连接
用户登录、服务器授权
FTP专门使用一个独立的控制连接传输控制信息,与传输文件信息进行分离,所以将FTP这种控制信息的传送方式称为带外控制。
d.数据连接
专门用于文件传输
e.FTP是有状态的协议
七、Socket编程基础
1.Socket API函数
- 创建套接字:socket()
- 绑定套接字的本地端点地址:bind()
- 设置监听:listen()
- 建立连接:
①TCP客户端:connect()
②TCP服务端:accept() - 接收数据:
①TCP:recv()
②UDP:recvfrom() - 发送数据:
①TCP:send()
②UDP:sendto() - 关闭套接字:close()