8TCPIP原理第8章教案.docx
《8TCPIP原理第8章教案.docx》由会员分享,可在线阅读,更多相关《8TCPIP原理第8章教案.docx(16页珍藏版)》请在冰豆网上搜索。
8TCPIP原理第8章教案
授课题目
第8章典型的应用层协议
授课类型
理论课、实验
教学方法
课堂讲授
教学手段
多媒体教学
授课时间
2009.6.1,6.3,6.8,6.10
学时分配
8
教学目的
熟练掌握
Http、FTP、E-Mail协议
掌握
各种协议的工作原理
了解
协议的用途
教学重点
各种协议的原理与应用
教学难点
协议的实验
其它
教学基本内容
备注
一、新课导入
Internet有哪些应用?
如何构建自己的Web、FTP、E-Mail服务器?
二、授课内容提要
第8章典型的应用层协议
8.1应用层相关知识
ISO/OSI参考模型TCP/IP协议模型所对应PDU(协议数据单元)
应用层……………应用层…………数据
表示层……………应用层…………数据
会话层……………应用层…………数据
传输层……………传输层…………段
网络层……………互联网层………包
数据链路层………网络接口层……帧
物理层……………网络接口层……比特流
ISO/OSI参考模型与TCP/IP协议模型
相同点:
1、都有应用层、传输层、网络层。
2、都是下层服务上层。
不同点:
1、层数不同。
2、模型与协议出现的次序不同,TCP/IP先有协议,后有模型(出
现早),ISO/OSI先有模型,后有协议(出现晚)。
8.2网络服务程序
文件与打印服务
文件服务指使用文件服务器提供数据文件、应用(比如文字处理程序或电子表格)和磁盘空间共享的功能。
文件服务是网络的最初应用,因为许多原因,文件服务至今仍是网络的应用基础。
正如前面所提到的那样,在一个中心位置存放共享的数据比把文件拷贝到磁盘上,然后通到磁盘传送文件的处理方式要更容易和更快捷。
数据保存在中心位置也会更安全,原因是网络管理员可以很容易地实现数据备份,而不需依靠单个用户分别做备份。
而且,使用文件服务器来运行多个用户需要的应用程序则只需购买更少的应用程序拷贝,并且也会减少网络管理员的维护工作。
使用打印服务来共享网络上的打印机也会节省时间和资金。
高质量的打印机价格很贵,但这种打印机可以同时为整个部门提供打印服务,因而使用网络打印服务则不必为每个员工购买一台桌面打印机。
只使用一台打印机,维护和管理工作会更少。
如果共享打印机垮了,网络管理员可以在网络上的任何一台工作站上使用网络。
以2000为例,控制面板-添加/删除程序-添加/删除windows组件,选中“其他网络文件和打印服务”,然后找到当初安装2000的光盘,按提示安装就可以了。
NetBIOS及其应用
英文原义:
NetBIOSServicesProtocols
中文释义:
(RFC-1001,1002)网络基本输入/输出系统协议
注解:
该协议是由IBM公司开发,主要用于数十台计算机的小型局域网。
NetBIOS协议是一种在局域网上的程序可以使用的应用程序编程接口(API),为程序提供了请求低级服务的统一的命令集,作用是为了给局域网提供网络以及其他特殊功能,系统可以利用WINS服务、广播及Lmhost文件等多种模式将NetBIOS名解析为相应IP地址,实现信息通讯,所以在局域网内部使用NetBIOS协议可以方便地实现消息通信及资源的共享。
因为它占用系统资源少、传输效率高,尤为适于由20到200台计算机组成的小型局域网。
所以几乎所有的局域网都是在NetBIOS协议的基础上工作的。
应用:
在Windows操作系统中,默认情况下在安装TCP/IP协议后会自动安装NetBIOS。
比如在Windows2000/XP中,当选择“自动获得IP”后会启用DHCP服务器,从该服务器使用NetBIOS设置;如果使用静态IP地址或DHCP服务器不提供NetBIOS设置,则启用TCP/IP上的NetBIOS。
具体的设置方法如下:
首先打开“控制面板”,双击“网络连接”图标,打开本地连接属性。
接着,在属性窗口的“常规”选项卡中选择“Internet协议(TCP/IP)”,单击“属性”按钮。
然后在打开的窗口中,单击“高级”按钮;在“高级TCP/IP设置”窗口中选择“WINS”选项卡,在“NetBIOS设置”区域中就可以相应的NetBIOS设置。
8.3端口和套接字
1 套接字编程基础
套接字,英文为socket,是一种双向的通信端口。
位于网络中的主机通过连接的套接字提供的接口进行数据传输。
本节将主要介绍使用套接字进行编程的一些基本概念。
2 套接字与端口
套接字是一种使用标准UNIX文件描述符(filedescriptor)与其他程序通信的方式。
套接字可以看作是处于不同主机之间的两个程序的通信连接端点。
一方面程序将要传输的信息写入套接字中,而另一方面则通过读取套接字内的数据来获得传输的信息。
图8.3.1 套接字通信示意图
图8.3.1所示为使用套接字进行通信的示意图。
假设存在两台主机A与B,在主机A中存在进程C,主机B中存在进程D,当进程C需要将数据送到进程D时,首先将数据写到套接字中,而进程D可以通过读取套接字来获得进程C发送的信息。
在网络中,不同计算机是通过IP地址来区分的,也就是说,要将数据由主机A发送到主机B,只要知道主机B的IP地址就可以确定数据要发送的目的地。
但是,在主机A与B中不可能只有进程C和进程D两个进程。
主机B在收到主机A发送来的数据后,如何才能确定该数据是发送给进程D?
因此,还需要某种标识信息,用于描述网络通信数据发往的进程。
TCP/IP协议提出了协议端口的概念,用于标识通信的进程。
当进程与某个端口绑定后,操作系统会将收到的给该端口的数据送往该进程。
与文件描述符类似,每个端口都有被称为端口号的整数类型的标识符,该标识符用于区分不同的端口。
不同协议可以使用相同的端口号进行数据传输。
例如,TCP使用了344的端口号,UDP同样可以使用344端口号进行数据传输。
端口号为一个16位的无符号整数,其取值范围为0~65535。
低于256的端口被作为系统的保留端口号,主要用于系统进程的通信,不在这一范围的端口号被称为自由端口号,可以由进程自由使用。
8.4TCP/IP实用程序
基于Windows的TCP/IP实用程序
实用程序:
ping、winipcfg(ipconfig)、tracert、netstat、arp、route.
1.ping
ping命令程序通过发送一些小的数据包,并接收应答信息来确定两台计算机之间的物理连接是否连通或本地计算机的TCP/IP协议是否正确安装.
出现如下的提示:
"Requesttimedout",表示发送的小数据包不能到达目的地。
产生故障的原因有两种可能情况:
(1):
网络不通。
(2):
网络连通状况不隹,延迟时间太长。
可以再使用带参数-t、-w的ping命令,并增加响应时间来确定是否是连通情况不隹。
如果都是显示"Reply timed out",则表示连接确实不通,如果不是全部显示"Reply timed out"则表示连接还是通的,只是响应时间长或通信状况不隹。
2.Winipcfg(ipconfig)
Winipcfg和ipconfig都是用来显示主机内IP协议的配置信息。
使用不带参数的ipconfig命令可以得到以下信息:
IP地址、子网掩码、默认网关。
而使用ipconfig/all,则可以得到更多的信息,包括:
主机名、DNS服务器、节点类型、网络适配器的物理地址、主机的IP地址、子网掩码以及默认网关。
3.Tracert
Tracert命令程序的功能是判定数据包到达目的主机所经过的路径、显示数据包经过的中继节点和到达时间。
通过显示从本地主机到目标主机所经过的每一个节点地址及往返时间,可以了解一个数据包是如何在网络上传送到目标主机的,并可以分析阻塞发生的位置。
此命令格式如下:
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout]
其中的参数说明如下:
-d 指定不将IP地址解析到主机名。
-h maximum_hops 指定搜索到目的地址的最大轮数。
-j host-list 沿着主机列表释放源路由。
-w timeout 指定超时时间间隔。
可以使用tracert命令来判断某个网站是属于国内网站还是国际网站。
4.Netstat
Netstat命令程序的功能是可以了解网络的整体使用情况。
它可以显示当前正在活动的网络连接的详细信息,如采用的协议类型、当前主机与远端相连主机(一个或多个)的IP地址以及连接状态等。
netstat的命令格式如下:
netstat [-a] [-e] [-n] [-s] [-p proto] [-r] [interval]
其中的参数说明如下:
-a 显示所有主机的端口号;
-e 显示以太网统计信息;
-n 以数字表格形式显示地址和端口;
-p proto 显示特定的协议的具体使用信息;
-r 显示本机路由表的内容;
-s 显示每个协议的使用状况(包括TCP、UDP、IP);
interval 循环显示所选的状态,每次显示之间的间隔以秒为单位,按【Ctrl+C】终止显示。
5.ARP
arp命令主要用来显示及修改特定IP地址的网卡地址。
arp 的命令格式如下:
arp [-a] [-s] [-dn] [inet_addr] [eth_addr] [if_addr] [-N if_addr]
其中的参数说明如下:
inet_addr IP地址;
eth_addr 以太网卡地址;
-a 显示某个IP地址的网卡地址(如不加IP地址,显示所有已激活的IP地址的网卡地址),使用该参数前应该先ping通某一个IP地址;
-d 删除指定IP地址的主机;
-s 增加主机和IP地址相对应的以太卡地址。
6.Route
route命令程序控制网络路由表。
该命令只有在安装了TCP/IP协议后才可以使用。
命令格式如下:
route [-f] [-p] [command] [destination]
其中主要的参数说明如下:
-f 清除所有网关入口的路由表;
-p 该参数与add命令一起使用时,将使路由在系统引导程序之间长久存在;
destination 指定发送command 的计算机;
command 指定所列的命令:
命令:
print
目的:
打印路由
命令:
add
目的:
添加路由
命令:
delete
目的:
删除路由
命令:
change
目的:
更改现存路由
8.5文件传输协议FTP
文件传输协议
FTP(FileTransferProtocol),是文件传输协议的简称。
用于Internet上的控制文件的双向传输。
同时,它也是一个应用程序(Application)。
用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。
FTP使用两个并行的TCP连接来传送文件,一个是控制连接,一个是数据连接。
控制连接用于在客户主机和服务器主机之间发送控制信息,例如用户名和口令、改变远程目录的命令、取来或者放回文件的命令。
数据连接用于真正发送文件。
既然FTP使用一个独立的控制连接,我们说FTP在带外发送控制信息的。
FTP的用户分类及权限归属
在考虑FTP服务器安全性工作的时候,第一步要考虑的就是谁可以访问FTP服务器。
在Vsftpd服务器软件中,默认提供了三类用户。
不同的用户对应着不同的权限与操作方式。
一类是Real帐户。
这类用户是指在FTP服务上拥有帐号。
当这类用户登录FTP服务器的时候,其默认的主目录就是其帐号命名的目录。
但是,其还可以变更到其他目录中去。
如系统的主目录等等。
第二类帐户实Guest用户。
在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个帐户。
但是,这个账户有个特点,就是其只能够访问自己的主目录。
服务器通过这种方式来保障FTP服务上其他文件的安全性。
这类帐户,在Vsftpd软件中就叫做Guest用户。
拥有这类用户的帐户,只能够访问其主目录下的目录,而不得访问主目录以外的文件。
第三类帐户是Anonymous(匿名)用户,这也是我们通常所说的匿名访问。
这类用户是指在FTP服务器中没有指定帐户,但是其仍然可以进行匿名访问某些公开的资源。
在组建FTP服务器的时候,我们就需要根据用户的类型,对用户进行归类。
默认情况下,Vsftpd服务器会把建立的所有帐户都归属为Real用户。
但是,这往往不符合企业安全的需要。
因为这类用户不仅可以访问自己的主目录,而且,还可以访问其他用户的目录。
这就给其他用户所在的空间带来一定的安全隐患。
所以,企业要根据实际情况,修改用户所在的类别。
[3]
ftp命令
1、FTP服务器的登陆
匿名用户:
FTP口令:
FTP
用户:
ANONYMOUS口令:
任何电子邮件
2、显示文件信息:
DIR/IS
3、下载文件:
GET文件名(下载到当前目录)
4、上传文件:
PUT文件名
5、多文件下载:
MGET
6、多文件上传:
MPUT
7、退出:
BYE
8、帮助:
HELP
FTP服务器工具推荐使用Serv-U
FTP工具推荐使用cuteftp
8.6简单邮件传输协议SMTP
SMTP:
简单邮件传输协议
(SMTP:
SimpleMailTransferProtocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。
通过SMTP协议所指定的服务器,我们就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。
SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转你发出的电子邮件。
SMTP是一种提供可靠且有效电子邮件传输的协议。
SMTP是建模在FTP文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。
SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持。
SMTP重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。
通常,一个网络可以由公用互联网上TCP可相互访问的主机、防火墙分隔的TCP/IP网络上TCP可相互访问的主机,及其它LAN/WAN中的主机利用非TCP传输层协议组成。
使用SMTP,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输。
在这种方式下,邮件的发送可能经过从发送端到接收端路径上的大量中间中继器或网关主机。
域名服务系统(DNS)的邮件交换服务器可以用来识别出传输邮件的下一跳IP地址。
在传输文件过程中使用25号端口
SMTP的工作过程
简单邮件传输协议(SMTP)是一种基于文本的电子邮件传输协议,是在因特网中用于在邮件服务器之间交换邮件的协议。
SMTP是应用层的服务,可以适应于各种网络系统。
SMTP的命令和响应都是基于文本,以命令行为单位,换行符为CR/LF。
响应信息一般只有一行,由一个3位数的代码开始,后面可附上很简短的文字说明。
SMTP要经过建立连接、传送邮件和释放连接3个阶段。
具体为:
(1)建立TCP连接。
(2)客户端向服务器发送HELLO命令以标识发件人自己的身份,然后客户端发送MAIL命令。
(3)服务器端以OK作为响应,表示准备接收。
(4)客户端发送RCPT命令。
(5)服务器端表示是否愿意为收件人接收邮件。
(6)协商结束,发送邮件,用命令DATA发送输入内容。
(7)结束此次发送,用QUIT命令退出。
SMTP服务器基于DNS中的邮件交换(MX)记录路由电子邮件。
电子邮件系统发邮件时是根据收信人的地址后缀来定位邮件服务器的。
SMTP通过用户代理程序(UA)完成邮件的编辑、收取和阅读等功能;通过邮件传输代理程序(MTA)将邮件传送到目的地。
8.7POP3协议
POP3(PostOfficeProtocol3)即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。
它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。
是TCP/IP协议族中的一员,POP3服务所用的端口为110,由RFC1939定义。
本协议主要用于支持使用客户端远程管理在服务器上的电子邮件
POP3协议命令原始码及工作原理简介:
1.POP适用于C/S结构的脱机模型的电子邮件协议,目前已发展到第三版,称POP3。
脱机模型即不能在线操作,不像IMAP4(netscape支持IMAP4)
2.当客户机与服务器连接并查询新电子邮件时,被该客户机指定的所有将被下载的邮件都将被程序下载到客户机,下载后,电子邮件客户机就可以删除或修改任意邮件,而无需与电子邮件服务器进一步交互。
3.POP3客户向POP3服务器发送命令并等待响应,POP3命令采用命令行形式,用ASCII码表示。
服务器响应是由一个单独的命令行组成,或多个命令行组成,响应第一行以ASCII文本+OK或-ERR指出相应的操作状态是成功还是失败。
4.在POP3协议中有三种状态,认可状态,处理状态和更新状态。
当客户机与服务器建立联系时,一旦客户机提供了自己身份并成功确认,即由认可状态转入处理状态,在完成相应的操作后客户机发出quit命令,则进入更新状态,更新之后最后重返认可状态。
如下图
等待连接身份确认quit命令
——|认可|—————|处理|——————|更新|
|__________________________________|
重返认可状态。
5.认可状态的命令语句
一般情况下,大多数现有的POP3客户与服务器执行采用ASCII明文发送用户名和口令,在认可状态等待客户连接的情况下,客户发出连接,并由命令user/pass对在网络上发送明文用户名和口令给服务器。
进行身份确认。
一旦确认成功,便转入处理状态。
为了避免发送明文口令的问题,有一种新的认证方法,命令为APOP,使用APOP,口令在传输之前被加密。
当第一次与服务器连接时,POP3服务器向客户机发送一个ASCII码问候,这个问候由一串字符组成对每个客户机是唯一的,与当时的时间有关,然后,客户机把它的纯文本口令附加到从服务器接收到的字符串之后,然后计算出结果字符串的MD5单出函数消息摘要,客户机把用户名与MD5消息摘要作为APOP命令的参数一起发送出去。
目前,大多数windows上的邮件客户软件不支持APOP命令,qpopper支持。
11.Foxmail与OE(outlookexpress)的处理机制的不同。
a.假定服务器上有三封邮件等待客户机接收。
用foxmail与OE的不同之处在于
foxmail每收一封标记删除一封,而OE则等全部接收完后再全部标记为删除最后执行quit命令。
个人SMTP服务器的配置方法
一、安装POP3和SMTP服务组件
WindowsServer2003默认情况下是没有安装POP3和SMTP服务组件的,因此我们要手工添加。
1.安装POP3服务组件
以系统管理员身份登录WindowsServer2003系统。
依次进入“控制面板→添加或删除程序→添加/删除Windows组件”,在弹出的“Windows组件向导”对话框中选中“电子邮件服务”选项,点击“详细信息”按钮,可以看到该选项包括两部分内容:
POP3服务和POP3服务Web管理。
为方便用户远程Web方式管理邮件服务器,建议选中“POP3服务Web管理”。
2.安装SMTP服务组件
选中“应用程序服务器”选项,点击“详细信息”按钮,接着在“Internet信息服务(IIS)”选项中查看详细信息,选中“SMTPService”选项,最后点击“确定”按钮。
此外,如果用户需要对邮件服务器进行远程Web管理,一定要选中“万维网服务”中的“远程管理(HTML)”组件。
完成以上设置后,点击“下一步”按钮,系统就开始安装配置POP3和SMTP服务了。
二、配置POP3服务器
1.创建邮件域
点击“开始→管理工具→POP3服务”,弹出POP3服务控制台窗口。
选中左栏中的POP3服务后,点击右栏中的“新域”,弹出“添加域”对话框,接着在“域名”栏中输入邮件服务器的域名,也就是邮件地址“@”后面的部分,如“MAIL.COM”,最后点击“确定”按钮。
2.创建用户邮箱
选中刚才新建的“MAIL.COM”域,在右栏中点击“添加邮箱”,弹出添加邮箱对话框,在“邮箱名”栏中输入邮件用户名,然后设置用户密码,最后点击“确定”按钮,完成邮箱的创建。
[1][2]完成POP3服务器的配置后,就可开始配置SMTP服务器了。
点击“开始→程序→管理工具→Internet信息服务(IIS)管理器”,在“IIS管理器”窗口中右键点击“默认SMTP虚拟服务器”选项,在弹出的菜单中选中“属性”,进入“默认SMTP虚拟服务器”窗口,切换到“常规”标签页,在“IP地址”下拉列表框中选中邮件服务器的IP地址即可。
点击“确定”按钮,此时SMTP服务器默认的是匿名访问,打开切换到“访问”标签页,点击“身份验证”按钮,在对话框中去掉“匿名访问“选项,选中”基本身份验证(Basicauthentication)“。
这样一个简单的邮件服务器就架设完成了。
8.8超文本传输协议HTTP
HTTP概述
HTTP的发展是万维网协会(WorldWideWebConsortium)和Internet工作小组(InternetEngineeringTaskForce)合作的结果,(他们)最终发布了一系列的RFC,其中最著名的就是RFC2616。
RFC2616定义了HTTP协议的我们今天普遍使用的一个版本——HTTP1.1。
HTTP是一个客户端和服务器端请求和应答的标准(TCP)。
客户端是终端用户,服务器端是网站。
通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。
(我们称这个客户端)叫用户代理(useragent)。
应答的服务器上存储着(一些)资源,比如HTML文件和图像。
(我们称)这个应答服务器为源服务器(originserver)。
在用户代理和源服务器中间可能存在多个中间层,比如代理,网关,或者隧道(tunnels)。
尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。
事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。
HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。
通常,由HTTP客户端发起一个请求,建立一个到服务器指定端口(默认是80端口)的TCP连接。
HTTP服务器则在那个端口监听客户端发送过来的请