目录
- 计算机网络应用体系结构
- 网络应用通信基本原理
- 域名系统
- 万维网应用
- Internet电子邮件
- FTP
- P2P应用
- Socket编程
计算机网络应用体系结构
C/S (客户/服务器)结构
通信只在客户与服务器之间进行,客户与客户之间不进行直接通信。
P2P (Peer to Peer)结构
每个对等端都同时兼备C/S应用的客户与服务器的特征,是一个服务器与客户的结合体,对等端之间直接通信。
混合结构
既有服务器的存在,又有对等端(客户)间的直接通信。
网络应用通信基本原理
C/S通信原理
服务器运行的是服务器进程,被动的等待客户端请求服务;客户端运行的是客户进程,主动发起通信,请求服务器提供服务。应用进程间遵循应用层协议交换应用层报文。
域名系统(DNS)
层次树状结构命名方法:
- 国家顶级域名 nTLD
- 通用顶级域名 gTLD
- 基础结构域名
域名服务器
- 域名解析:将域名映射为 IP 地址的过程
- 域名服务器:为了实现域名解析,需要建立分布式数据库,存储网络中域名与 IP 地址的映射关系,这些数据库存储在域名服务器上,域名服务器根据用户的请求提供域名解析服务。域名服务器的分类:
1.根域名服务器(全球13套)
2.顶级域名服务器
3.权威域名服务器
4.本地域名服务器
域名解析过程
- 迭代查询:只是将下一步要查询的的服务器告知查询主机或服务器。
- 递归查询:代替查询主机或其它域名服务器,进行进一步的域名查询,并将最终解释结果发送给查询主机或服务器。(缺点:多查询请求情况下影响域名服务器的性能,资源占用高)
万维网应用
万维网的数据传输采用 TCP 连接,保证传输的可靠性以获得可靠地数据。
工作过程:
1.客户端 Web 浏览器根据域名向域名服务器查询目标服务器的 IP 地址
2.根据查询出来的 IP 地址建立 TCP 连接
3.建立连接后发送 HTTP 请求报文 (携带 URL)
4.目标服务器根据 HTTP 请求报文中的 URL 信息找到对应的网页资源(HTML)作为 HTTP 响应资源返回客户端
5.浏览器解析 HTML 并展示
6.访问结束。
HTTP 请求方式
- 非持久连接:建立一个 TCP 连接,传输一个对象就断开连接
1.串行方式请求每个对象,且每次都要新建 TCP 连接,但不会同时建立多条连接
2.并行方式请求每个对象,每个请求建立一个 TCP 连接,会同时产生多条连接 - 持久连接:建立一个 TCP 连接,传输多个对象
1.非流水方式:建立一个 TCP 连接后,依次顺序传输所有对象,获取完毕后断开
2.流水方式:建立一个 TCP 连接后,同时请求所有包含对象,获取完毕后断开
HTTP 报文
- 请求报文
1.请求行:包含 方法、URL、版本号、回车符(结束标记)
2.首部行:包含所有需要上传的参数 及 回车符(结束标记)。参数以 Key:Value 形式存储,是明文 ASCII 字符,需要加密以提高安全性
3.实体主体:通常不用
请求行中方法列举:
GET:通过请求URI得到资源
POST:用于添加新的内容
PUT:用于修改某个内容
DELETE:删除某个内容
CONNECT:用于代理进行传输,如使用SSL
OPTIONS:询问可以执行哪些方法
PATCH:部分文档更改
PROPFIND,(wedav):查看属性
PROPPATCH, (wedav):设置属性
MKCOL, (wedav):创建集合(文件夹)
COPY, (wedav):拷贝
MOVE, (wedav):移动
LOCK, (wedav):加锁
UNLOCK (wedav):解锁
TRACE:用于远程诊断服务器
HEAD:类似于GET, 但是不返回body信息,用于检查对象是否存在,以及得到对象的元数据
- 响应报文
1.状态行:版本、状态码、短语、回车符(结束标记)
2.首部行:包含所有需要返回的参数 及 回车符(结束标记)。参数以 Key:Value 形式存储,是明文 ASCII 字符,需要加密以提高安全性
状态行中状态码列举:
Internet电子邮件
电子邮件系统结构
包括邮件服务器、简单邮件传输协议(SMTP)、用户代理、邮件读取协议(POP3 / IMAP)
SMTP
SMTP 是 Internet 电子邮件中信心应用层协议,实现邮件服务器之间或用户代理到服务器之间的邮件传输。
SMTP 使用传输层 TCP 实现可靠数据传输,端口号为25
SMTP 通过3个阶段的应用层交互完成邮件传输,分别是握手阶段、邮件传输阶段、关闭阶段
SMTP 的基本交互方式是 SMTP 客户端发送命令,命令后面可能携带参数, SMTP 服务器对命令进行应答。
SMTP 通讯过程
具体过程:
c 发送 TCP 连接请求
s 响应 220 携带域名 表示接受连接
c 发送 hello 命令 携带握手参数
s 响应 250 表示能够接受握手
进入邮件传输阶段
c 发送 MAIN_FROM 命令 携带邮件来源
s 响应 250 表示接收成功
c 发送 RCPT_TO 命令 携带发送目标
s 响应 250 表示接收成功
c 发送 DATA 命令,表示即将发送邮件主体
s 响应 354 ,表示可以接受主体
c 开始逐行发送邮件主体内容
c 发送结束标记 “.” + “回车”
s 响应 250 表示接收成功
c 发送 QUIT 命令,表示退出指令
s 响应 221 邮件通讯全部完成
电子邮件格式与MIME
电子邮件格式:
电子邮件内容分为三个部分:首部、空白行、主体。
首部关键词: TO 发送目标、 Subject 邮件主题、 Cc 抄送人、 From 发信人、 Date 发送日期、 Replay-To 回复地址
MIME(多用途互联网邮件扩展)
在邮件内容中支持多媒体文件的传输,比如图片、视频。它将非7位的ASCII码文本内容转换为7位ASCII码文本内容,然后再利用 SMTP 进行传输。
首部中会增加 MIME 首部行,说明主体内容原本的数据类型和采用的编码标准,接收方根据这些参数解码数据,得到原始数据。
邮件读取协议
POP3
第三版邮局协议(Post Office Protocol - Version 3,POP3):原理为相当于邮件下载
IMAP
互联网邮件访问协议(Internet Mail Access Protocol , IMAP ):直接维护邮件服务器内容
HTTP
产文本传输协议(Hyper Text Transfer Protocol,HTTP):通过浏览器即可访问邮件,不依赖客户端软件
FTP (文件传送协议)
可实现两个主机间文件互传的应用层协议,依赖传输层的 TCP 协议。
它与其它(SMTP、HTTP)服务不同的是,它需要两种连接:控制连接、数据连接
控制连接:负责传输控制命令,端口号 21
数据连接:负责传输文件内容,端口号 20
P2P 应用(对等模式)
充分利用了端系统的计算能力以及网络传输带宽,对服务器的依赖很小
Socket 编程基础
Socket 编程原理
网络应用进行通信时,需要通过 API 接口请求底层协议的服务。可以创建数据报类型套接字、流式套接字和原始套接字三种
数据报套接字:SOCK_DGRAM, 对应 UDP ,不可靠传输
流式套接字:SOCK_STREAM, 对应 TCP ,可靠传输
原始套接字:SOCK_RAW 对应, 对应 IP ,不具备传输层的服务
Socket 编程工作过程
基于TCP的Socket编程
基于UDP的Socket编程
本篇到此完结,计算机网络知识 系列文章已全部发布!
计算机网络原理梳理丨计算机网络的概念计算机网络原理梳理丨应用层计算机网络原理梳理丨传输层计算机网络原理梳理丨网络层计算机网络原理梳理丨链路层计算机网络原理梳理丨物理层计算机网络原理梳理丨无线与移动网络计算机网络原理梳理丨网络安全计算机网络原理梳理丨HTTP 请求全解