本章目录
- 域名系统DNS
- 文件传送协议
- 远程终端协议TELNET
- 万维网WWW
- 电子邮件
- 动态主机配置协议DHCP
- 简单网络管理协议SNMP
- 应用进程跨越网络的通信
域名系统DNS
域名系统DNS,将主机的域名解析成一个IP地址
因特网的域名结构如下图:
标号com是顶级域名,标号cctv是二级域名,标号mail是三级域名
每一个标号不超过63个字符,不区分大小写,标号中除了“-”外不能使用其他标点符号,多个标号组成的完整域名总共不超过255个字节
2006年12月统计,顶级域名TLD有265个,分为三大类:
- 国家顶级域名nTLD:总共247个
- 通用顶级域名gTLD:总共18个
- 基础结构域名:这种顶级域名只有1个,即arpa用于反域名解析
我国的二级域名分为:类别域名和行政区域名
类别域名:ac(科研机构),com(企业),edu(教育机构),gov(中国政府机构),mil(国防机构),net(提供互联网服务的机构),org(非盈利性的组织)
行政域名:34个省,各省名首字母,例如:bj(北京)
域名服务器:提供域名解析服务的服务器
DNS采用划分区的办法来解决域名服务器太多的问题,一个服务器所负责管辖的范围叫做区,每一个分区设置权限域名服务器
在上图a中,之划分了一个区abc.com,图b划分了两个区abc.com和y.abc.com
根据域名服务器起的作用可以划分为以下四种类型:
1. 根域名服务器:最高级的域名服务器,所有的根域名服务器都知道所有顶级域名服务器的域名和IP地址。根域名服务器采用任播技术,所以因特网上的路由器能够找到离DNS客户最近的根域名服务器
2. 顶级域名服务器:管理在该顶级域名管理下的所有二级域名
3. 权限域名服务器:负责一个区域的域名服务器
4. 本地域名服务器:也可称为默认域名服务器,当一个主机发送DNS查询请求时,就是发送到本地域名服务器的
域名解析过程:
- 采用递归查询:主机向本地域名服务器查询,若没找到,本地域名服务器用客户的身份向上级域名服务器查询
- 采用迭代查询:本地域名服务器向根域名服务器采用迭代查询,本地域名服务器向根域名服务器查询时,若没找到,根域名服务器会告诉本地域名服务器下一步向哪一个域名服务器查询,而不是代替本地域名服务器进行查询
文件传送协议
文件传送协议FTP是因特网上使用最广泛的文件传送协议,特点是复制整个文件,如果需要修改一个文件,无论基于TCP的FTP还是基于UDP的TFTP都需要先获得文件的本地副本,修改后将文件的副本传回带原节点上
网络文件系统NFS:可以联机访问,意味着允许多个程序同时对一个文件进行存取,可以访问远地文件就像访问本地文件一样。
FTP的工作原理:
FTP使用客户服务器模式,FTP服务器有两大部分组成:一个主进程,负责接收新的请求,若干从属进程,负责处理单个请求
主进程工作步骤:
- 打开熟知端口21,
- 等待客户进程发出连接请求
- 启动从属进程处理客户请求,处理完毕后从属进程终止
- 回到等待状态
文件传输时客户服务器建立两个并行的TCP连接:控制连接和数据连接以及用户界面进程,由于FTP使用了一个分离的控制连接,FTP的控制信息是带外传送的
FTP只支持文件传输,不支持远程打开和修改
NFS允许远程打开一个远地文件,并修改,传输的是少量的修改数据
简单的文件传送协议TFTP:
TFTP使用UDP数据报传输方式。所以TFTP需要自己的差错改正措施
TFTP的优点:
- TFTP可用于UDP环境
- TFTP代码所占的内存较小
TFTP的主要特点是: - 每次传送的报文中有512个字节,最后一次没有,若数据正好是512的倍数,序最后在发送一个只有首部的数据报
- 数据报按序编号从1开始
- 支持ASCLL码或二进制传送
- 可对文件进行读或写
- 使用很简单的首部
TFTP工作类似于停止等待协议,发送完一个文件快后等待对方确认,确认时指明所确认的块编号,发完一个文件块后如果规定时间内未收到确认,就重发PDU
远程终端协议TELNET
TELNET又称为终端仿真协议,通过TCP连接注册到远地的另一个主机上
TELNET定义了数据和命令怎样通过因特网,这些定义就是所谓的网络虚拟终端NVT(目的是解决不同操作系统的命令或操作符的不同)
客户端把命令转换成NVT格式发送给服务器,服务器将NVT格式转换成本地系统所需格式
万维网WWW
万维网概述:
万维网是一个大规模的、联机式的信息存储所,简称web
万维网是一个分布式的超媒体系统,是超文本系统的扩充
万维网使用统一资源定位符URL
超文本传送协议HTTP
超文本标记语言HTML
统一资源定位符URL:URL用来表示网上资源的位置和访问这些资源的方法,URL的组成部分如下图
超文本传送协议HTTP:
HTTP协议定义了浏览器该如何向万维网服务器请求万维网的文档,以及服务器怎样把文档发给浏览器,从层次的角度上看,HTTP是面向事务的应用层协议
HTTP协议是无状态的,就是说同一个用户多次访问一个服务器的也变,服务器的响应都相同
在三次握手建立连接时,客户端会在第三次握手的时候讲请求数据发送给服务器,如下图所示
HTTP/1.0的缺点是每一个请求文档都要有两倍的RTT的开销,若一个主页有很多连接对象,则需要建立多个连接
HTTP/1.1采用了持续连接,持续连接有两种工作方式,非流水线方式和流水线方式
非流水线方式:客户在收到前一个响应后才能发出下一个请求
流水线方式:客户端可以在收到HTTP响应之前连续发送请求报文,请求所有对象只需一个RTT时间
代理服务器:又称为万维网高速缓存,把最近的一些请求和响应暂存在本地磁盘中
HTTP报文结构如下图:
HTTP请求报文的一些方法如下表:
万维网文档:超文本标记语言HTML,动态万维网文档,活动万维网文档。
通用网关接口CGI标准:定义了动态文档应如何创建,输入数据应如何提供给应用程序,以及输出结构应如何使用
CGI程序正式名字是CGI脚本
活动万维网文档:
有两种技术可用于浏览器屏幕显示的连续更新:
- 服务器推送技术:将所有工作都交给服务器,服务器不断地运行与动态文档相关联的应用程序,定期更新信息,并发送更新过得文档
- 活动文档技术:把所有的工作都转移给浏览器端,每当浏览器请求一个活动文档时,服务器就返回一段活动文档程序副本,在浏览器端运行,java小应用程序
浏览器的结构:一个浏览器包括一组客户程序、一组解释程序以及一个控制程序
万维网信息检索:
万维网中用来进行搜索的工具叫做搜索引擎,大体可分为两类:
- 全文检索搜索引擎:通过搜索软件(例如“蜘蛛”,“网络机器人”)到因特网上的个网站收集信息
- 分类目录搜索引擎:不采集网站的任何信息,而是利用各网站向搜索引擎提交的网站信息时填写的关键词和网站描述信息,经审核后,如果符合条件,就输入到分类目的数据库中。
垂直搜索引擎:针对某一特定领域、特定人群或特定需求提供搜索服务
元搜索引擎:把用户提交的请求发送到多个独立的搜索引擎上搜索,在统一处理结果集
电子邮件
电子邮件是因特网上使用最多和最受用户欢迎的一种应用
1982年ARPANET的电子邮件标准问世,简单邮件传送协议SMTP和因特网文本报文格式都是因特网的正式标准
1993年提出通用因特网邮件扩充MIME
电子邮件系统主要构件:用户代理、邮件服务器、邮件发送协议、邮件读取协议
POP3是邮局协议的版本3。
用户代理至少应具备四个功能:撰写、显示、处理、通信
TCP/IP体系的电子邮件系统规定电子邮件地址格式为:
收件人邮箱名@邮箱所在的主机的域名
邮件发送与接收的过程:
- 发件人调用PC机中的用户代理撰写和编辑要发送的邮件
- 点击发送按钮,用户代理用SMTP协议将邮件发送给发送方邮件服务器,这时发送方邮件服务器充当SMTP服务器
- SMTP服务器将邮件临时存放在缓存队列中等待发送到接收方邮件服务器
- 发送方邮件服务器SMTP客户与接收方邮件服务器的SMTP服务器建立TCP连接,然后发送邮件。如果SMTP客户无法和SMTP服务器建立TCP连接,邮件会继续保存在发送方邮件服务器中,并在稍后一段时间重发,如果SMTP客户超过规定时间仍不能将邮件发送出去,SMTP客户就要通知用户代理
- 接收方邮件服务器中的SMTP服务器接收到邮件后,把邮件放入收件人的用户邮箱中等待读取
- 用户打算读取邮件时,运行PC机中的用户代理,使用POP3协议读取短信。
简单的邮件传送协议SMTP:
SMTP规定了14条命令和21中应答信息,每条命令有4个字母组成,每一种应答信息一般只有一行信息,由一个3位数的代码开始
SMTP通信的三个阶段:
- 连接建立:邮件到达发送方邮件服务器缓存后,SMTP客户每隔一定时间扫描缓存,发现邮件就发送到接收方邮件服务器
- 邮件传送:邮件传送从MAIL命令开始,后面跟FROM命令 指明发件人,如MAIL FROM:<邮件地址>,下面跟一个或多个RCPT命令,指明收件人,再后面是DATA命令,表明要开始传送的邮件内容了,SMTP服务器返回信息:“354 Start mail input;end with.”,表明同意并等待客户发送邮件。客户端发送完毕后,再发送.,若邮件收到了,则SMTP返回信息“250 OK”SMTP服务器返回信息:“354 Start mail input;end with.”,等待客户发送邮件。客户端发送完毕后,再发送.,若邮件收到了,则SMTP收到了,则返回信息“250 OK”
- 连接释放:发送完毕后SMTP客户发送QUIT命令,服务器返回信息“221(服务关闭)”
一个电子邮件分为信封和内容两大部分,邮件的首部包含一些关键字,后面加上冒号,最重要的两个关键字是:
- “To:”:后面填入一个或多个收件人的电子邮件地址
- “Subject:”:是邮件的主题,反应了邮件的主要内容
常用的邮件读取协议有两个:邮局协议第三版POP3和网际报文存取协议IMAP
POP3使用客户服务器的工作方式,POP3协议的一个特点是,当POP服务器读取了邮件,POP服务器就把该邮件删除
IMAP客户程序与接收方邮件服务器建立TCP连接后,可以操纵邮件服务器的邮件,就像在本地操纵一样,因此IMAP是一个联机协议。在用户发出删除邮件命令之前,邮件一直保存在服务器邮箱中。IMAP的好处是可以随时随地阅读和处理自己的邮件,缺点是没有将邮件复制到本地,一直在IMAP服务器中,所以要经常与IMAP服务器建立连接。
基于万维网的电子邮件使用HTTP协议
SMTP的缺点:
- 不能传送可执行文件或其他二进制对象
- SMTP限于传送7位的ASCLL码
- SMTP会拒绝超过一定长度的邮件
- 某些SMTP的实现没有完全照SMTP的因特网标准
因此提出了通用因特网邮件扩充MIME
MIME主要包括三部分: - 5个新的邮件首部字段,提供了有关邮件主体的信息
- 定义了许多邮件内容格式,对多媒体电子邮件的表示方法进行了标准化
- 定义了传送编码,对任何内容格式进行转换,而不会被邮件系统改变
MIME新增的5个新邮件首部 - MIME-Version:标志MIME的版本
- Content-Description:说明邮件是否是图像、音频或视频
- Content-Id:邮件的唯一标识符
- Content-Transfer-Encoding:发送邮件时的主体的编码
- Content-Type:说明邮件主体的数据类型和子类型
三种常见的内容传送编码: - 7位ASCLL码:每行不超过1000个字符,MIME对这种编码的邮件不进行任何转换
- quoted-printable编码:传送的数据只有少量的非ASCLL码,例如汉子,这种编码的要点是,对于所有可打印的ASCLL码,除特殊字符等号“=”外,都不改变。等号和不可打印ASCLL码及非ASCLL码的数据进行编码,方法是,将每个字节的二进制代码用两个十六进制的数字表示,然后在前面加上一个等号,例如汉字“系统”的二进制编码是,11001111 10110101 11001101 10110011公32为,编码后为=CF=B5=CD=B3,这12字符都是可打印的ASCLl字符,占12个字节,96位,比原来的32位多出两倍。
- base64编码:将二进制代码划分为一个个24位长的单位,每个24位单元划分为4个6位组,每个六位组表示64种不同的值,从0到63,用A表示0,B表示1等等,26个大写字母加26个小写字母加10个数字左后用“+”号表示62,用“/”号表示63。因此24位3字节数据变为32位4字节数据,开销增加25%。
内容类型:MIME定义了7个基本内容类型和15个子类型
每个子类型都提供了重要的功能,例如: - mixed子类型允许当个报文包含多个相互独立的子报文
- alternative子类型允许当个报文包含同一数据的多种表示
- parallel子类型允许单个报文含有可同时显示的各个子部分
- digest子类型允许单个报文含有一组其他报文
动态主机配置协议DHCP
一个软件在使用前必须是已经正确配置的项目,例如连接到因特网的协议软件需要配置:
- IP地址
- 子网掩码
- 默认路由器的IP地址
- 域名服务器的IP地址
动态机制配置协议DHCP:DHCP使用客户服务器模式,需要IP的主机启动时发送广播发现报文,DHCP收到后发送回答报文(提供报文),DHCP分配给主机的IP是临时的,这段时间称为租用期
DHCP详细过程: - DHCP监听67端口
- DHCP客户发送发现报文
- 每一个收到发现报文的DHCP都会向客户发送提供报文
- DHCP客户选择一个DHCP服务器发送DHCP请求报文
- 被选中的DHCP服务器发送DHCPACK确认报文,这时DHCP客户就可以使用IP地址了,这种状态称为已绑定状态,DHCP客户根据服务器提供的租用期设置两个计时器T1和T2,分别等于0.5T和0.875T
- 租用期过了一半,DHCP客户发送请求报文DHCPREQUEST要求更新租用期
- DHCP服务器若同意,就发送DHCPACK确认报文,客户端便得到新的租用期,重新设置计时器
- DHCP服务器不同意,则发送DHCPNACK否认报文,这时DHCP客户必须立即停止使用原来的IP地址,重新申请
- 若DHCP不响应6中的请求,则在租用期过了T2时再想服务器发送DHCPREQUEST请求报文,回到步骤6
- DHCP客户可以随时提前终止服务器提供的租用期,只需向DHCP服务器发送释放报文HDCPRELEASE
简单网络管理协议SNMP
网络管理包括对硬件、软件和人力的使用、综合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能、服务质量等,网络管理简称为网管
管理站称为管理器,是整个网络管理系统的核心,管理站所在的部门称为网络运行中心NOC,管理站中的关键构建是管理程序,管理程序运行时就成为管理进程,管理站(硬件)和管理程序(软件)都可称为管理者或管理器
网络中被管理的设备称为网络元素或网元
被管理的设备中运行着一个与管理站管理程序通信的网络管理代理程序,简称为代理
简单网络管理协议SNMP:管理程序运行SNMP客户程序,而代理程序运行SNMP服务器程序
SNMP网络管理由三部分组成:SNMP本身、管理信息结构SMI和管理信息库MIB
SNMP定义了管理站和代理之间所交换的分组格式
SMI定义了命名对象和定义对象类型的通用规则,以及把对象和对象的值进行编码的规则
MIB在被管理的实体中创建命名对象,并规定其类型
管理信息结构SMI,SMI的功能应当有三个:
- 被管理的对象应该怎样命名
- 用来存储被管理对象的数据类型有哪些种类
- 在网络上传送的管理数据如何编码
对象命名:所有被管理对象都必须在对象命名树上
SMI把数据类型分为两大类:简单类型和结构化类型
SMI定义了两种结构化数据类型:sequence和sequence of
SMI使用ASN.1制定的基本编码规则BER,ASN.1把所有数据元素都表示为T-L-V三个字段组成的序列,T字段定义数据的类型,L字段定义V字段的长度,V定义数据的值
T字段,也称为标记字段,占一个字节 - 类别(占2位):共四种,通用类(00),即ASN.1定义的类型;应用类(01),即SMI定义的类型;上下文类(10),即上下文所定义的类型;专用类(11),保留为特定厂商定义的类型
- 格式(占1位):共两种,指出数据类型的种类,简单数据类型(0)和结构化数据类型(1)
- 编号(占5位):用来标志不同的数据类型。范围是0~30,当编号大于30时,T字段就要扩展为多字节
一些数据类型的T字段编码如下图:
L字段也称为长度字段,当L字段未单字节时,最高为位0,后面7位为V字段的长度。当L字段为多字节时,最改为为1,后面7为定义后续字节的字节数,格式如下图所示:
V字段又称为值字段,用于定义数据元素的值
管理信息库MIB:被管理的对象构成一个虚拟的信息存储器,称为管理信息库MIB
这个管理信息库中,每个被管理的对象的命名都是根据对象命名树生成的,例如:节点ip的标号是4,所有与IP有关的对象的前缀都从1.3.6.1.2.1.4开始,例如,ip下面的ipInReceives的变量名是iso.org.dod.internet.mgmt.mib.ip.ipINReceives对用的数值是1.3.6.1.2.1.4.3。对于简单类型的变量,后缀0值具有该名字的变量的实例。因此ipInReceives的数据表示就是:1.3.6.1.2.1.4.3.0
SNMP的协议数据单元和报文:
实际上SNMP的操作只有两种基本的管理功能:“读”操作和“写”操作
SNMP使用探询操作来实现这两个功能
SNMP不是完全的探询协议,它允许不经过询问发送某些信息,这种信息称为“陷阱”
一个SNMP报文由四个部分组成:版本、首部、安全参数和SNMP报文的数据部分,如下图:
- 请求表示符ID:占4字节,使管理进程能够是被返回的响应是对应于哪一个请求的报文
- 差错状态:代理进程进行响应时,就填入0~18中的一个数组,0表示noError正常,1表示tooBig等
- 差错索引:在请求报文中这个字段是0,在响应中是一个整数,指明有差错的变量在变量列表中的偏移
- 变量绑定:指明一个或多个变量的名和对应的值
应用进程跨越网络的通信
系统调用机制是在应用程序和操作系统之间传递控制权
系统调用接口又称为应用编程接口API
几种常用的系统调用
连接建立阶段服务器流程:
- 服务器应用进程调用bind绑定指明套接字本地地址和端口,
- 服务器调用bind后再调用listen把套接字设置为被动方式
- 在调用accept等待接收客户端连接请求
客户端流程:客户端创建socket,然后调用connect连接
数据传送阶段:客户和服务器都在TCP连接上使用send系统调用传送数据,使用recv接收数据
连接释放阶段:一但客户或服务器结束使用套接字,就把套接字撤销,调用close释放连接和撤销套接字
如下图所示: