计算机网络原理-应用层
一、计算机网络应用体系结构
一、C/S结构网络应用
客户/服务器结构的网络应用是最典型、最基本的网络应用。例如:www应用,文件传输,电子邮件。
特点:
- 通信双方分为客户程序和服务器程序,用户与用户之间不进行直接通信
- 服务器程序需先运行
- 客户程序后运行,主动与服务器进行通信
二、纯P2P结构的网络应用
通信双方没有传统意义上的客户端服务器之分,地位对等,通信双方都具备客户端与服务器的特征
特点:
- 应用的对等方都是用户的计算机
- 很强的应用规模伸缩性
- 应用在对等方之间进行
- 应用充分剧集利用了端系统的计算能力以及网络传输带宽
三、混合结构网络应用
混合结构挽留过应用将C/S应用和P2P应用相结合
二、网络应用通信的基本原理
一、网络应用的节本通信过程
运行在不同主机上的应用进程间以C/S进行的通信
二、网络应用编程接口
典型的网络应用编程接口:套接字(Socket),对于一个传输层协议,需要为其接口的每个套接字分配特定的编号,标识改套接字,该编号称为端口号
三、域名系统(DNS)
一、概念
域名系统:将域名映射为IP地址
域名解析:实现映射的过程
层次树状结构命名方式:每个域名由不同级别的域名构成,各个层级域名之间用点分割
二、层次化命名空间
顶级域名的分类
- 国家顶级域名: cn、us、uk等
- 通用顶级域名:com、org、gov、edu等
- 基础结构域名:只有一个,arpa
三、域名服务器
一个服务器所管辖的范围叫做区,存储着自己所管辖范围内主机的域名到IP地址的映射
- 根域名服务器:根域服务器是最重要的服务器,全球共13个,用a~m命名。保存所有顶级域名服务器的域名和IP地址
- 顶级域名服务器:负责管理在该顶级域名夫妇器注册的所有二级域名
- 权威域名服务器:负责一个区的域名服务器,保存改区中的所有主机的域名和IP地址映射
- 中间域名服务器:不是以上三种的域名服务器
本地域名服务器:主机进行域名查询时首先被查询的域名服务器
三、域名解析过程
- 递归解析
- 迭代解析
四、万维网应用
一、万维网应用结构
体系结构:
- Web服务器
- 浏览器
- 超文本传输协议(HTTP)
- 统一资源定位符(URL):主机域名(或IP地址)+对象的路径名称
二、HTTP
HTTP协议是Web应用的应用层协议。定义浏览器如何向Web服务器发送请求以及Web服务器如何向浏览器进行响应。
连接类型:
- 非持久连接的HTTP
HTTP客户与HTTP服务器建立TCP连接后,通过改连接发送HTTP请求报文,接收HTTP响应报文,然后断开连接
- 非持久连接的HTTP
- 并行连接
建立多条并行TCP连接,并行发送HTTP请求和并行接收HTTP响应,然后断开连接
- 并行连接
- 持久连接的HTTP
- 非流水方式的持久连接:客户端结构到响应报文后,不断开TCP连接,继续请求
- 流水方式持久连接:客户端在收到前一个响应报文后,不断开连接,继续并行请求
HTTP1.0使用 非常久连接方式, HTTP1.1使用流水方式持久连接
请求报文和响应报文最主要的区别是起始行
HTTP典型的请求方法
类型 | 描述 |
---|---|
GET | 请求读取URL所表示的信息,是最常见的方法 |
HEAD | 请求读取URL所表示的信息的首部 |
POST | 给服务器添加信息 |
OPTION | 请求一些选项的信息 |
GET | 在指明的URL下存储一个文档 |
三、 Cookie
网络为了辨别用户身份,进行会话跟踪而存储在用户本地终端上的数据
常见的用途:
- 网站可以利用Cookie的ID来准确统计网站的实际访问人数等数据
- 网站可以利用Cookie限制某些特定用户的访问
- 网站可以存储用户访问过程中的操作习惯和偏好
- 记录用户登录网站使用的用户名、密码等信息
- 5.电子商务网站利用Cookie可以实现购物车功能
五、Internet电子邮件
一、体系结构:
- 1.邮件服务器:电子邮件体系结构的核心
- 2.用户代理
- 3.简单邮件传出协议(SMTP)
- 4.邮件读取协议(P0P3,IMAP,HTTP)
二、SMTP
通过3个阶段的应用层交互完成邮件的传输
- 握手阶段
- 邮件传输阶段
- 关闭阶段
SMTP特点:
- 只能传送7位ASCII码文本内容
- 传送的邮件中本呢个包含 “CRLF.CRLF”
- SMTP使用”推动“协议(HTTP是“拉动“协议)
- SMTP 使用TCP连接是持久的
三、MIME
互联网邮件扩展:产出非7位ASCII码文本内容时,必须依据一个标注将非7位ASCII码文本内容转换为7位ASCII码文本内容,然后再传输
四、邮件读取协议
- 第三版邮局协议(POP3):授权阶段,事物处理阶段,更新阶段
- 互联网邮件访问协议(IMAP):对邮件的操作会反应在服务器上
- Web邮件兄的邮件都区协议(HTTP)
六、FTP
文件传送协议:在互联网的两个主机间实现文件互传的网络应用,其应用层协议成为FTP
FTP应用结构
- 控制连接(21):客户和服务器之间的传出控制信息。如用户标识、口令、改变远程目录,上传下载文件命令等
- 数据连接(20):实际传送文件内容
FTP是有状态的协议
- 数据连接(20):实际传送文件内容
七、P2P应用
特点:
- 应用的对等方是用户的计算机
- 很强的应用规模伸缩性
- 应用在对等方之间进行
- 应用充分聚集利用改了端系统的计算能力以及网络传出带宽
八、Socket编程基础
![socket](/2022/03/05/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E5%8E%9F%E7%90%86/%E5%BA%94%E7%94%A8%E5%B1%82/socket.png)
一、套接字与端口号
套接字(Socket):典型的网络应用编程接口
端口号:标识套接字
扩展常见的端口号
端口号 描述 20(数据)、21(控制) FTP文件传输协议 25 SMTP简单邮件传输协议 53 DNS域名服务器 80 HTTP超文本传输协议 110 POP3第三版邮局协议
二、Socket API
1.创建套接字
1 |
|
- 传输层使用UDP协议,创建数据报类型套接字(SOCK_DGRAM)
- 传输层使用TCP协议,创建流式套接字(SOCK_STREAM)
- 应用层数据没有经过传输层,直接到网络层,创建原始套接字(SOCK_RAW)
2.Socket API 函数
1.创建套接字:socket()
2.绑定套接字的本地端点地址:bind()
3.设置监听:listen()
4.建立连接
- TCP客户端:
connect()
- TCP服务端:
accept()
5.接收数据
- TCP:
recv()
- UDP:
recvfrom()
6.发送数据
- TCP:
send()
- UDP:
sendto()
7.关闭套接字:close()
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!