计算机网络原理-应用层

一、计算机网络应用体系结构

一、C/S结构网络应用

客户/服务器结构的网络应用是最典型、最基本的网络应用。例如:www应用,文件传输,电子邮件。
特点:

  1. 通信双方分为客户程序和服务器程序,用户与用户之间不进行直接通信
  2. 服务器程序需先运行
  3. 客户程序后运行,主动与服务器进行通信

二、纯P2P结构的网络应用

通信双方没有传统意义上的客户端服务器之分,地位对等,通信双方都具备客户端与服务器的特征
特点:

  1. 应用的对等方都是用户的计算机
  2. 很强的应用规模伸缩性
  3. 应用在对等方之间进行
  4. 应用充分剧集利用了端系统的计算能力以及网络传输带宽

三、混合结构网络应用

混合结构挽留过应用将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服务器如何向浏览器进行响应。
连接类型:

    1. 非持久连接的HTTP
      HTTP客户与HTTP服务器建立TCP连接后,通过改连接发送HTTP请求报文,接收HTTP响应报文,然后断开连接
    1. 并行连接
      建立多条并行TCP连接,并行发送HTTP请求和并行接收HTTP响应,然后断开连接
    1. 持久连接的HTTP
    • 非流水方式的持久连接:客户端结构到响应报文后,不断开TCP连接,继续请求
    • 流水方式持久连接:客户端在收到前一个响应报文后,不断开连接,继续并行请求

HTTP1.0使用 非常久连接方式, HTTP1.1使用流水方式持久连接
请求报文和响应报文最主要的区别是起始行
HTTP典型的请求方法

类型 描述
GET 请求读取URL所表示的信息,是最常见的方法
HEAD 请求读取URL所表示的信息的首部
POST 给服务器添加信息
OPTION 请求一些选项的信息
GET 在指明的URL下存储一个文档

网络为了辨别用户身份,进行会话跟踪而存储在用户本地终端上的数据
常见的用途:

    1. 网站可以利用Cookie的ID来准确统计网站的实际访问人数等数据
    1. 网站可以利用Cookie限制某些特定用户的访问
    1. 网站可以存储用户访问过程中的操作习惯和偏好
    1. 记录用户登录网站使用的用户名、密码等信息
  • 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码文本内容,然后再传输

四、邮件读取协议

  1. 第三版邮局协议(POP3):授权阶段,事物处理阶段,更新阶段
  2. 互联网邮件访问协议(IMAP):对邮件的操作会反应在服务器上
  3. Web邮件兄的邮件都区协议(HTTP)

六、FTP

文件传送协议:在互联网的两个主机间实现文件互传的网络应用,其应用层协议成为FTP
FTP应用结构

    1. 控制连接(21):客户和服务器之间的传出控制信息。如用户标识、口令、改变远程目录,上传下载文件命令等
    1. 数据连接(20):实际传送文件内容
      FTP是有状态的协议

七、P2P应用

特点:

    1. 应用的对等方是用户的计算机
    1. 很强的应用规模伸缩性
    1. 应用在对等方之间进行
    1. 应用充分聚集利用改了端系统的计算能力以及网络传出带宽

八、Socket编程基础

一、套接字与端口号

  • 套接字(Socket):典型的网络应用编程接口

  • 端口号:标识套接字

  • 扩展常见的端口号

    端口号 描述
    20(数据)、21(控制) FTP文件传输协议
    25 SMTP简单邮件传输协议
    53 DNS域名服务器
    80 HTTP超文本传输协议
    110 POP3第三版邮局协议

二、Socket API

1.创建套接字

1
socket()
  • 传输层使用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()