为1,同时选择一个序号x;
主机B收到此连接请求报文后,若同意建立连接,则向主机A发连接响应报文段。在响应报文段中,SYN同步位为1,确认序号为x+1,同时也为自己选择一个序列号y;
主机A收到此确认报文后,也向主机B确认,这时,序号为x+1,确认序号为y+1。
当连接建立后,A、B主机就可以利用TCP进行数据传输了。
图2 TCP的连接和释放 (3)TCP连接的释放
在数据传输结束后,任何一方都可以发出释放连接的请求,释放连接采用所谓的“四次”方法。如图2(b)所示,假如主机A首先向主机B提出释放连接的请求,其过程如下:
主机A向主机B发送释放连接的报文段,其中,FIN终止位为1,序号x等于前面已
经发送数据的最后一个字节的序号加1;
主机B对释放连接请求进行确认,其序号等于x+1。这时从A到B的连接已经释放,
连接处于半关闭状态,以后主机B不再接收主机A的数据。但主机B还可以向主机A
发送数据,主机A在收到主机B的数据时仍然向主机B发送确认信息。
当主机B不再向主机A发送数据时,主机B也向主机A发释放连接的请求;
同样主机A收到该报文段后也向主机B发送确认。 (4)TCP数据传输
TCP可以通过检验序号和确认号来判断丢失、重复的报文段,从而保证传输的可靠性。
TCP将要传送的报文看成是由一个个字节组成的数据流,对每个字节编一个序号。在连接建立时,双方商定初始序号(即连接请求报文段中的SEQ值)。TCP将每次所传送的第一个字节的序号放在TCP首部的序号字段中,接收方的TCP对收到每个报文段进行确认,在其确认报文中的确认号字段的值表示其希望接收的下一个报文段的第一个数据字节的序号。
由于TCP能提供全双工通信,因此,通信中的每一方不必专门发送确认报文段,而可以在发送数据时,捎带传送确认信息,以此来提高传输效率。 UDP协议
UDP是用户数据报协议(User Datagram Protocol)的缩写,提供无连接的数据报文传输,不能保证数据完整到达目的地。
UDP数据传输不需要预先建立连接,传输过程中没有报文确认信息。因此,UDP报文格式比TCP的报文格式简单的多。UDP数据报也是由首部和数据两部分组成,其首部只有源端口、目的端口、消息长度和校验和四部分,各部分的意义和TCP首部对应字段的意义相同,这里不复赘言。
在TCP/IP体系中,使用UDP协议的应用有DNS和TFTP(Trivial File Transfer Protocol)。
TFTP是一个传输文件的简单协议,它基于UDP协议的,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证。
实验5 应用层SMTP协议分析
一、实验目的
1、学习CMailServer邮件服务软件和Outlook Express客户端软件的基本配置与使用,分析SMTP及POP3协议报文格式和SMTP及POP3协议的工作过程。
二、实验工具软件简介
为了观察到邮件发送的全部过程,需要在本地计算机上配置邮件服务器和客户代理。在这里我们使用CMailServer服务器软件配置本地邮件服务器,使用Windows XP自带的Outlook Express作为客户代理。
(1)CMailServer
CMailServer于2000年8月问世,是安全易用的全功能的邮件服务器软件,基于Windows平台,支持通用邮件客户端软件Outlook Express、Microsoft Outlook、Foxmail等收发邮件。CMailServer设置简单,容易使用,非常适合实验使用。 (2)Outlook Express
Outlook Express是Windows系统自带的电子邮件客户端软件,功能强大,支持多用户,无论是电子邮件还是新闻组,Outlook Express都是有力的重要工具软件。
三、实验内容和步骤 电子邮件相关协议分析实验 (1)CMailServer邮件服务器配置
(2)在初次进入CMailServer后,系统只提供Admin系统管理帐户,需要配置后才能使用。就本次实验而言,我们只要完成服务器设置和帐户设置,就可以进行实验了。
首先,选择菜单:工具-服务器设置,打开图5.52所示对话框,完成如下设置:
服务:选择为局域网邮件服务器;
取消允许ESMTP、邮件代理和作为NT服务运行的选择; 邮箱域名设置为:单域名,并指定。由于实验网络并没有接入外部网络,因此这里可以由学生自己定义,例如test.com。
而后,选择菜单:账号-新建账号打开图5.53所示对话框,完成新账号设置。
账号指定为:test1;密码设置为:111;姓名指定为:Test; 在完成上述配置后,PC1就可以提供实验所需的电子邮件服务了,新建的账号邮箱为:test1@test.com。同学在实验时,要求设置域名为:班号.cn、账号为自己的名字拼音缩写、密码为自己的学号、姓名为自己的真实姓名。