04741<计算机网络原理> 之第二章 网络应用

第一节 计算机网络应用体系

一. 客户/服务(Customer/ Server, C/S)结构网络应用

  • C/S结构的网络应用是最典型, 最基本的网络应用.网络应用的通信双方分为服务器程序和客户程序, 服务器程序要先运行, 做好接受通信的准备, 客户程序后运行, 主动请求与服务器进行通信, 常见的有:WWW应用, FTP, EMAIL等.
  • 在C/S通信过程中, 主动发起通信的一方就是客户, 被动接受通信的一方就是服务器
  • C/S 网络最主要的特征是通信只在客户与服务器之间进行,客户与客户之间不直接进行通信。

二. 纯P2P(Peer to Peer)结构网络应用

  • 是近来网络上发展比较快, 并且表现出许多优良性能, 文件分发, 文件共享, 视频流服务等, 所有通信都在是对等的通信方之间直接进行, 通信双方没有传统意义上的客户与服务器之分, 地址对等.
  • 对等软件通常运行在普通用户的计算机设备上, 可以动态的直接与其他对等端进行通信. 任何一个对等端即可以主动发起请求, 也可以被动地为其它对等设备提供服务. 事实上, P2P应用中的对等端软件包括服务器软件与客户端软件

三. 混合结构网络应用

也就是C/S与P2P的混合体

第二节 网络应用通信基本原理

  • 应用层协议定义了应用进程间交换的报文类型, 报文构成部分具体含义以及交换时序等内容, 即语法, 语义,时序等协议三要素.
  • 典型的网络应用编程接口是套接字(Socket), 这种网络应用编程接口在网络应用开发过程中, 尤其是在Internet环境下被广泛采纳.应用进程可以通过创建套接字实现与底层协议接口, 并可以进一步通过套接字实现应用进程与底层协议之间的报文交换. 因此套接字是每个应用进程与其他应用进程进行网络通信时,真正收发报文的通道.
  • 一个应用进程可以创建多个套接字与同一个或不同的传输层协议进行接口. 对于一个传输层协议,需要为其接口的每个套接字分配一个编号, 用来标识该套接字, 该编号称为端口号(port Number).
  • 通常服务器的进程套接字会分配特定的端口号, 而客户进程的套接字会绑定一个随机的唯一端口号,
  • TCP服务模型, 包括面向连接服务和可靠数据传输服务.
    • 面向连接的服务: 如: 连接数据库, 须建立连接, 交换数据, 最后要关闭连接
    • 可靠的数据传送服务:
  • UDP 是一种不提供传输服务保障的轻量级传输层协议,仅提供最小的「尽力」服务。
    • UDP 是无连接的
    • UDP 提供一种不可靠的数据传输服务

第三节 域名系统(DNS)

  • 用户代理(user agent):用户通常利用客户端软件来使用某个网络应用,这些软件被称为用户代理(user agent)
  • 域名(domain name):主机的域名
  • 域名系统(Domain Name System, DNS)
  • DNS是一个重要的基础应用, 因为任何一个需要使用域名进行通信的网络应用,在应用通信之前首先需要请求DNS应用, 将域名映射为 IP 地址。

实现将域名映射为IP地址的过程, 称为域名解析

1. 层次化域名空间

Internet采用了层次树状结构的命名方法. 域名的结构由标号序列组成, 各标号之间使用点隔开,
国家顶级域名: cn, us, uk
通用顶级域名: com, edu, gov, org
基础结构域名: arpa,这种顶级域名只有一个,即 arpa 用于反向域名解析,因此又称为反向域名

2. 域名服务器

一个服务器所负责管辖的范围叫作区(zone). 每一个区设置相应的权威域名服务器, 用来保存该区中所有的主机域名到IP的映射.
DNS服务的管辖范围不是域为单位, 而是以"区"为单位.
可以分为: 根域名服务器, 顶级域名服务器, 权威域名服务器, 中间域名服务器4类

  • 根域名服务器是最重要的域名服务器
    在因特网中共有13个不同IP地址的根域名服务器, a-m, a.rootservers.net
  • 顶级域名服务器, 即TLD服务器, 负责管理在该顶级域名服务器注册的所有二级域名.
  • 权威域名服务器, 负责一个区的域名服务器, 保存该区中的所有主机的域名到IP地址的映射.
  • 中间域名服务器,

3. 域名解析过程

域名解析分为递归解析迭代解析,
通常本地域名服务器都提供递归查询服务.
根域名服务器通常只提供迭代查询服务

第四节 万维网应用

一. web应用.

URL寻址方式确保万维网上的每个web页或对象都有一个唯一的标识符.

二. HTTP

1. HTTP概述

  • HTTP是web应用的应用层协议, 定义浏览器如何向web服务器发送请求以及web服务器向浏览器进行响应. 目前主要使用的HTTP/1.0和HTTP/1.1两个版本, 尤其以HTTP/1.1为主
  • SPDY(speedy)更快,SPDY 的核心思想是尽量减少 TCP 连接数,

2. HTTP连接

HTTP基于传输层的TCP传输报文. 根据 HTTP 在使用 TCP 连接的策略不同,可以分为非持久连接的 HTTP 和持久连接的 HTTP

  • 非持久连接
    • 串行请求每个对象,当对象较多,延迟非常明显。
    • 优化方向:并行连接和 持久连接,
    • 通过并行连接加速或优化HTTP是比较典型的技术手段.
  • 持久连接,根据使用持久连接传输多个对象的策略不同,持久连接又分为两种工作方式:非流水方式持久连接和流水方式持久连接。
    • 非流水式持久连接:也称为非管道方式持久连接,当连接请求多个对象时,只需建立一次 TCP 连接,这样,每获取一个对象只需要1 个 RTT 时间。
    • 流水式持久连续:也称为管道式持久连接,使用流水式持久连接时,获取每一个对象平均时间远小于1 个 RTT 时间。
    • HTTP/1.1默认情况下使用流水方式持久连接, 持久连接默认是激活的.
  • HTTP报文 由4部分组成: 起始行(start line), 首部行(header line), 空白行(blank line), 实体主体(entity body)
  • HTTP 报文分为两类:请求报文和响应报文
    • 请求报文由浏览器发送给服务器
    • 响应报文由服务器发送给浏览器
    • 两者最主要的区别是起始行不同,请求报文的起始行为<方法><URL><协议版本>,方法可以认为是 GET、POST 等。 响应报文的起始行为<协议版本><状态码><短语>
    • 响应报文中的起始行也称为状态行.状态码是用于通告客户端对请求的响应情况,由 3 位十进制数据组成。短语是对状态码的进一步文本解释,只对人类有意义。

3. Cookie

  • 中文名称为小型文本文件,指某些网站为了辨别用户身份, 进行会话跟踪而储存在用户本地终端上的数据.
  • Cookie技术 主要包括4部分内容:
    • HTTP响应报文中的Cookie头行: Set-Cookie
    • 用户浏览器在本地存储,维护和管理的Cookie文件.
    • HTTP请求报文中的Cookie头行: Cookie
    • 网站在后台数据库中存储,维护Cookie信息,
  • Cookie 文件可以保存在客户端计算机的硬盘中,也可以保存在客户端计算机的内存中,

保存在硬盘中的通常称为永久 Cookie,有效期可以进行设置,关闭浏览器不影响 Cookie 的有效周期。
保存在内存中的 Cookie 称为会话 Cookie,表示这 Cookie 的有效周期是浏览器的会话期间,只要关闭浏览器,Cookie 就消失。

第五节 Internet 电子邮件

1. 电子邮件系统结构

  • 主要包括: 邮件服务器, 简单邮件传输协议(SMTP), 用户代理和邮件读取协议等.
  • 邮件服务器的功能是发送和接收邮件.同时向发件人报告邮件传送情况. 这是电子邮件体系结构的核心.
  • 邮件发送进程(mail sender)和邮件接收进程(mail receiver), 常用端口号为 25.
  • 典型的邮件读取协议有POP, IMAP等

2. SMTP

SMTP是Internet电子邮件核心应用层协议,实现邮件服务器之间或用户代理到邮件服务器之间的邮件传输

3. 电子邮件格式与MIME

由于SMTP只能传输7位ASCII码文本内容, 所以在传输非7位ASCII码文本内容时, 必须依据一个标准将非7位ASCII码文本内容转换为7位ASCII码文本内容, 然后再使用SMTP传输, 解决这一问题的具体的解决方案就是: 多用途互联网邮件扩展(Multiprupose Internet Mail Extensions, MIME), MIME已经广泛应用于互联网的邮件之中.

4. 邮件读取协议

目前比较流行的有: 第三版的邮局协议(Post Office Protocol0-Version3, POP3), 互联网邮件访问协议(Internet Mail Access Protocol, IMAP)和HTTP,其中HTTP 被用作WEB mail系统中邮件读取协议.

1. POP3

是一个简单的邮件读取协议, 功能有限.默认端口号: 110, POP3交互过程可以分为三个阶段:
授权, 事务处理, 更新

2.IMAP

通过IMAP, 收件人可以服务器上创建新的文件夹, 并可以对邮件进行移动, 查询, 阅读, 删除等操作.
另一个特性是: 允许用户代理只读取邮件的部分内容

3. HTTP

主要是指使用浏览器读取邮件时, 使用的是HTTP读取协议, 不同之处: 用户代理和邮件服务器之间的邮件收发不同,

第六节 FTP

文件传送协议(File Transfer Protocol, FTP)是在互联网的两个主机间实现文件互传的网络应用,其应用层协议也称为FTP.
FTP的一个显著特点是在传输文件内容时, 需要新建一个数据连接, 专门用于文件传输, 文件传输结束后, 数据连接即关闭. 也就是FTP应用使用两个"并行"的TCP连接: 控制连接和数据连接.
FTP是有状态的协议, HTTP是无状态的协议

第七节 P2P

人人为我, 我为人人

第八节 Socket编程基础

网络应用程序有两类: 实现标准协议的网络应用 和专用网络应用.
目前在Internet中应用最广泛的网络应用编程接口是Socket API,
网络应用进程可以创建3种类型的Socket:

  • 数据报类型套接字(SOCK_DGRAM): 面向传输层UDP接口;
  • 流式套接字(SOCK_STREAM): 面向传输层TCP接口;
  • 原始套接字(SOCK_RAW):面向网络层协议(IP, ICMP)接口
    前两类套接字均是面向应用层相邻的传输层接口, 原始套接字比较特殊, 绕过了传输层, 面向网络层接口.
    原始套接字的创建有权限限制.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值