传输层协议分析实验报告.doc_第1页
传输层协议分析实验报告.doc_第2页
传输层协议分析实验报告.doc_第3页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、传输层协议分析p 实验报告2.传输层协议分析p 2.A 数据包 捕获分析p 部分 2.1 实验目的 理解 TCP 报文首部格式和字段的作用,TCP 连接的建立和释放过程,TCP 数据传输中编号与确认的作用。2.2 实验内容 应用 TCP 应用程序传输文件,截取 TCP 报文,分析p TCP 报文首部信息,TCP 连接的建立过程,TCP 数据的编号和确认机制。2.3 实验原理 TCP 协议是传输控制协议的简称,工作在网络层协议之上,是面向连接的,可靠的,端到端的传输层协议。1) TCP 的报文格式 TCP 报文段分为头部和数据两部分,如图 1:图 1TCP 报文段的总体结构 TCP 首部 TCP

2、 数据部分TCP 报文段首部又分为固定部分和选项部分,固定部分为 20B,如图 2 所示,这些字段的组合实现了 TCP 的所有功能。图 2 TCP 报文段的首部01531 端口 目的端口 序号 确认号 头部 长度(4bit)保留 U R G A C K P S H R S T S Y N F I N窗口 校验和 紧急指针 选项(长度可变)填充 TCP 采用传输输连接的方式传送 TCP 报文,传输连接包括连接建立、数据传输和连接释放三个阶段。2) TCP 连接的建立 TCP 连接建立采用“3 次握手”方式。首先,主机 A 的 TCP 向主机 B 的 TCP 发出连接请求报文段,其首部中的同步位

3、SYN 应置 1,同时选择一个序号 _,表明在后面传送数据时的第一个数据字节的序号是 _+1,如图 3所示:图 3TCP 连接建立的 3 次握手过程然后,主机 B 的 TCP 收到连接请求报文段后,若同意,则发回确认。在确认报文段中应将 SYN 和 ACK 都置 1,确认号应为 _+1,同时也为自己选择一个序号 Y。最后,主机 A 的 TCP 收到 B 的确认后,要向 B 发回确认,其 ACK 置 1,确认号为 Y+1,而自己的序号为 _+1。TCP 的标准规定,SYN 置 1 的报文段都要消耗掉一个序号。同时,运行客户进程的主机 A 的 TCP 通知上层应用进程,连接已经建立。当主机 A 向

4、 B 发送第一个数据报文段时,其序号仍为 _+1,因为前一个确认报文段并不消耗序号。当运行服务器进程的主机 B 的 TCP 收到主机 A 的确认后,也通知其上层应用进程,连接已经建立。另外,在 TCP 连接建立的过程中,还利用 TCP 报文段首部的选项字段进行双方最大报文段长度 MSS 协商,确定报文段的数据字段的最大长度。双方都将自己能够支持的 MSS 写入选项字段,比较之后,取较小的值赋给 MSS,并应用于数据传送阶段。3) TCP 数据的传送 为了保证TCP传输的可靠性,TCP采用面向字节的方式,将报文段的数据部分进行编号,每个字节对应一个序号。并在连接建立时,双方商定初始序号。在报文段

5、首部中,序号字段和数据部分长度可以确定发送方传送数据的每一个字节的序号,确认号字段则表示接收方希望下次收到的数据的第一个字节的序号,即表示这个序号之前的数据字节均已收到。这样既做到了可靠传输,又做到了全双工通信。当然,数据传送阶段有许多复杂的问题和情况,如流量控制、拥塞控制、重传机制等,本次实验不探究。被动打开 主动打开 确认确认 连接请求 4)TCP 连接的释放 在数据传输结束后,通信的双方都可以发出释放连接的请求。TCP 连接的释放采用“4次握手”。如图应 用 进 程 释放连接通知主机应用进程A不再发送报文确认 应用进程释放连接确认B不再发送报文FIN,SEQ-_ACK,SEQ=Y,ACK

6、=_+1FIN,ACK,SEQ=Y,ACK=_+1ACK,SEQ=_+1,ACK=Y+1AB 图 4 TCP 连接释放的 4 次握手过程 首先,设图 4 中主机 A 的应用进程先向其 TCP 发出释放连接的请求,并且不再发送数据。TCP 通知对方要释放从 A 到 B 这个方向的连接,将发往主机 B 的 TCP 报文段首部的中止位置 1,其序号 _ 等于前面已传送过的数据的最后一个字节的序号加 1。主机 B 的 TCP 收到释放连接通知后即发出确认,其序号为 Y,确认号为 _+1,同时通知高层应用进程,如图中的箭头。这样从 A 到 B 的连接就被释放了,连接处于半关闭状态,相当于主机 A 对主机

7、 B 说“我已经没有数据发送了。但是如果你还有数据要发送,我仍然接收。” 此后,主机 B 不再接收 A 发来的数据。但若主机 B 还有一些数据要发给 A,则可以继续发送(这种情况很少)。主机 A 只要正确收到数据,仍然向 B 发送确认。若主机 B 不再向主机 A 发送数据,其应用进程就通知 TCP 释放连接,如图中的箭头。主机 B 发出的连接释放报文段必须将中止位 FIN 和确认位 ACK 置 1,并使其序号仍为 Y(因为签名_发送的确认报文段不消耗序号),但是还必须重复上次已经发送过的 ACK_+1。主机A 必须对此发出确认,将 ACK 置 1,ACK=Y+1,而自己的序号仍然是 _+1,因

8、为根据 TCP 标准,前面发送过的 FIN 报文段要消耗掉一个序号。这样就把 B 到 A 的反方向的连接释放掉。主机A 的 TCP 再向其应用进程报告,整个连接已经全部释放。2.4 实验步骤 骤 步骤 1在 Wireshark 中设置过滤条件,协议为 TCP,地址为本机>any,并开始截获报文; 步骤 2打开 .sina.,完成后,保存截获的报文并命名为“TCP 学号”, ,分析p 捕获的报文。这里,TCP 的连接和建立采用的是:三次握手方式,本机是,远端主机是 192.168.3.。步骤 3分析p TCP 连接建立过程的前 3 个报文,填写下表 1:表 表 1TC

9、P 建立过程的三个报文信息 字段名称 第一条报文 第二条报文 第三条报文 报文序号 1704 1716 1718 Sequence Nunber 830 849 835 ACK Number 289 291 237 ACK 1 291 1 SYN 1 1 1步骤 4分析p 截获报文中数据发送部分的第一条 TCP 报文及其确认报文,将报文中的字段值填写在表格 2 中。表 表 2TCP 报文首部信息字段名 长度 字段值 字段意义 发送报文 确认报文 端口 16 发送目标端口 16 确认 端口号是唯一标识 序号 32确认好 32 确认头部长度 4保留 6保留字段 窗口 16校验和 16紧急指针 16

10、选项(长度可变)步骤 5TCP 连接建立时,其报文首部与其它 TCP 报文不同,有一个 option 字段,它的作用是什么?结合 IEEE802.3 协议规定的以太网最大帧长分析p 此数据是怎么得出来的? 步骤 6分析p TCP 数据传送阶段的前 8 个报文,将报文信息填入表 3:表 表 3TCP 数据传送部分的前 8 个报文 报文序号 报文种类 序号字段 确认号字段 数据长度 被确认报文序号 窗口 3744 确认 289 1 324 289 123 3754 发送 1 0 6616580 3764 确认 1 1 344 291 123 3784 发送 1 0 6616579 3794 确认

11、237 1 290 237 123 3804 发送 1 0 6616593 3814 确认 289 0 290 290 16768 3824 确认 290 1 290 290 167682.5实验总结 在实验中,通过分析p 截获的 TCP 报文首部信息,可以看到首部中的序号、确认号等字段是 TCP 可靠连接的基础。分析p TCP 头部信息,分析p “3 次握手”过程。通过对数据传送阶段报文的初步分析p ,了解数据的编码和确认机制。总之,TCP 协议中的各项设置都是为了在数据传输时提供可靠的面向连接的服务。2.B 编程造 构造 UDP 数据包 部分 使用 C 语言构造 UDP 数据包程序。1)

12、UDP 首部和伪首部结构体定义/_UDP 首部_/ struct udphdr unsigned short u_src; unsigned short u_dst; unsigned short u_len; unsigned short u_cksum; char u_dataU_MA_LEN; /UDP 中校验使用的伪首部 struct pseudo_header int srcIp; short udp_len; char rsv; char protocol; unsigned short src_port; ; unsigned short dsc_port; unsigned s

13、hort len; unsigned short check_sum; char data2; ;2)构建 UDP 报文数据int build_udp_Package(struct socket_pair _sp,const unsigned char _buf,int len,unsigned char _udpPacket,int _udpPacketLen) _udpplen=sizeof(struct udp_hdr)+len; struct udp_hdr_uh=(struct udp_hdr_)udppkt; unsigned char_dbuf=(udppkt+sizeof(st

14、ruct udp_hdr); memcpy(dbuf,buf,len); Uh->source=htons(s_port); Uh->dest=htons(d_port); Uh->len=htons(sizeof(struct udp_hdr0)+len); Uh->check=0; Un->check=udpcksum(d_ip,d_port,s_ip,udppkt,sizeof(struct udp_hdr)+len); return udppkt; 过渡得很合理。平铺直叙,用词简达。传输层安全协议随着计算机网络的普及与发展,网络为我们创造了一个可以实现信息

15、共享的新环境。但是由于网络的开放性,如何在网络环境中保障信息的安全始终是人们关注的焦点。在网络出现的初期,网络主要分布在一些大型的研究机构、大学和公司。由于网络使用环境的相对独立和封闭性,网络内部处于相对安全的环境,在网络内部传输信息基本不需要太多的安全措施。随着网络技术的飞速发展,尤其是Inter的出现和以此平台的电子商务的广泛应用,如何保证信息在Inter的安全传输,特别是敏感信息的保密性、完整性已成为一个重要问题,也是当今网络安全技术研究的一个热点。 在许多实际应用中,网络由分布在不同站点的内部网络和站点之间的公共网络组成。每个站点配有一台网关设备,站点内网络的相对封闭性和单一性,站点内

16、网络对传输信息的安全保护要求不大。二站点之间网络属于公共网络,网络相对开发,使用情况复杂,因此需要对站点间的公共网络传输的信息进行安全保护。在网际层中,IPSec可以提供端到端的网络层安全传输,但是它无法处理位于同一端系统之中的不同的用户安全需求,因此需要在传输层和更高层提供网络安全传输服务,来满足这些要求。基于两个传输进程间的端到端安全服务,保证两个应用之间的保密性和安全性,为应用层提供安全服务。Web浏览器是将和SSL相结合,因为简单在电子商务也应用。在传输层中使用的安全协议主要有以下几个:1.SSL(安全套接字层协议)SSL(Secure Socket Layer)是由scape设计的一

17、种开放协议;它指定了一种在应用程序协议(例如、tel、NNTP、FTP)和TCP/IP之间提供数据安全性分层的机制。它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。SSL的主要目的是在两个通信应用程序之间提供私密信和可靠性。这个过程通过3个元素来完成:l 握手协议。这个协议负责协商被用于客户机和服务器之间会话的加密参数。当一个SSL客户机和服务器第一次开始通信时,它们在一个协议版本上达成一致,选择加密算法,选择相互认证,并使用公钥技术来生成共享密钥。l 记录协议。这个协议用于交换应用层数据。应用程序消息被分割成可管理的数据块,还可以压缩,并应用一个MAC(消息认证

18、代码);然后结果被加密并传输。接受方接受数据并对它解密,校验MAC,解压缩并重新组合它,并把结果提交给应用程序协议。l 警告协议。这个协议用于指示在什么时候发生了错误或两个主机之间的会话在什么时候终止。下面我们来看一个使用WEB客户机和服务器的范例。WEB客户机通过连接到一个支持SSL的服务器,启动一次SSL会话。支持SSL的典型WEB服务器在一个与标准请求(默认为端口80)不同的端口(默认为443)上接受SSL连接请求。当客户机连接到这个端口上时,它将启动一次建立SSL会话的握手。当握手完成之后,通信内容被加密,并且执行消息完整性检查,知道SSL会话过期。SSL创建一个会话,在此期间,握手必

19、须只发生过一次。SSL握手过程步骤:步骤1:SSL客户机连接到SSL服务器,并要求服务器验证它自身的身份。步骤2:服务器通过发送它的数字证书证明其身份。这个交换还可以包括整个证书链,直到某个根证书权威机构(CA)。通过检查有效日期并确认证书包含有可信任CA的数字签名_,来验证证书。步骤3:然后,服务器发出一个请求,对客户端的证书进行验证。但是,因为缺乏公钥体系结构,当今的大多数服务器不进行客户端认证。步骤4:协商用于加密的消息加密算法和用于完整性检查的哈希函数。通常由客户机提供它支持的所有算法列表,然后由服务器选择最强健的加密算法。步骤5:客户机和服务器通过下列步骤生成会话密钥:a.客户机生成

20、一个随机数,并使用服务器的公钥(从服务器的证书中获得)对它加密,发送到服务器上。b.服务器用更加随机的数据(从客户机的密钥可用时则使用客户机密钥;否则以明文方式发送数据)响应。c.使用哈希函数,从随机数据生成密钥。SSL协议的优点是它提供了连接安全,具有3个基本属性:l 连接是私有的。在初始握手定义了一个密钥之后,将使用加密算法。对于数据加密使用了对称加密(例如DES和RC4)。l 可以使用非对称加密或公钥加密(例如RSA和DSS)来验证对等实体的身份。l 连接时可靠的。消息传输使用一个密钥的MAC,包括了消息完整性检查。其中使用了安全哈希函数(例如SHA和MD5)来进行MAC计算。对于SSL

21、的接受程度仅仅限于内。它在其他协议中已被表明可以使用,但还没有被广泛应用。注意:IETF正在定义一种新的协议,叫做“传输层安全”(Transport Layer Security,TLS)。它建立在scape所提出的SSL3.0协议规范基础上;对于用于传输层安全性的标准协议,整个行业好像都正在朝着TLS的方向发展。但是,在TLS和SSL3.0之间存在着显著的差别(主要是它们所支持的加密算法不同),这样,TLS1.0和SSL3.0不能互操作。2.SSH(安全外壳协议)SSH是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。它提供了对安全远程登录、安全文件传输和安全TCP/IP和_-d

22、ow系统通信量进行转发的支持。它可以自动加密、认证并压缩所传输的数据。正在进行的定义SSH协议的工作确保SSH协议可以提供强健的安全性,防止密码分析p 和协议攻击,可以在没有全球密钥管理或证书基础设施的情况下工作的非常好,并且在可用时可以使用自己已有的证书基础设施(例如DNSSEC和_.509)。SSH协议由3个主要组件组成:l 传输层协议,它提供服务器认证、保密性和完整性,并具有完美的转发保密性。有时,它还可能提供压缩功能。l 用户认证协议,它负责从服务器对客户机的身份认证。l 连接协议,它把加密通道多路复用组成几个逻辑通道。SSH传输层是一种安全的低层传输协议。它提供了强健的加密、加密主机

23、认证和完整性保护。SSH中的认证是基于主机的;这种协议不执行用户认证。可以在SSH的上层为用户认证设计一种高级协议。这种协议被设计成相当简单而灵活,以允许参数协商并最小化来回传输的次数。密钥交互方法、公钥算法、对称加密算法、消息认证算法以及哈希算法等都需要协商。数据完整性是通过在每个包中包括一个消息认证代码(MAC)来保护的,这个MAC是根据一个共享密钥、包序列号和包的内容计算得到的。在UNI_、dows和Macintosh系统上都可以找到SSH实现。它是一种广为接受的协议,使用众所周知的建立良好的加密、完整性和公钥算法。3.SOCKS协议“套接字安全性”(socket security,SO

24、CKS)是一种基于传输层的网络代理协议。它设计用于在TCP和UDP领域为客户机/服务器应用程序提供一个框架,以方便而安全的使用网络防火墙的服务。SOCKS最初是由David和Michelle Koblas开发的;其代码在Inter上可以免费得到。自那之后经历了几次主要的修改,但该软件仍然可以免费得到。SOCKS版本4为基于TCP的客户机/服务器应用程序(包括tel、FTP,以及流行的信息发现协议如、WAIS和Gopher)提供了不安全的防火墙传输。SOCKS版本5在RFC1928中定义,它扩展了SOCKS版本4,包括了UDP;扩展了其框架,包括了对通用健壮的认证方案的提供;并扩展了寻址方案,包

25、括了域名和IPV6地址。当前存在一种提议,就是创建一种机制,通过防火墙来管理IP多点传送的入口和出口。这是通过对已有的SOCKS版本5协议定义扩展来完成的,它提供单点传送TCP和UDP流量的用户级认证防火墙传输提供了一个框架。但是,因为SOCKS版本5中当前的UDP支持存在着可升级性问题以及其他缺陷(必须解决之后才能实现多点传送),这些扩展分两部分定义。l 基本级别UDP扩展。l 多点传送UDP扩展。SOCKS是通过在应用程序中用特殊版本替代标准网络系统调用来工作的(这是为什么SOCKS有时候也叫做应用程序级代理的原因)。这些新的系统调用在已知端口上(通常为1080/TCP)打开到一个SOCKS代理服务器(由用户在应用程序中配置,或在系统配置文件中指定)的连接。如果连接请求成功,则客户机进入一个使用认证方法的协商,用选定的方法认证,然后发送一个中继请求。SOCKS服务器评价该请求,并建立适当的连接或拒绝它。当建立了与SOCKS服务器的连接之后,客户机应用程序把用户想要连接的机器名和端口号发送给服务器。由SOCKS服务器实际连接远程主机,然后透明地在客户机和远程主机之间来回移动数据。用户甚至都不知道SOCKS服务器位于该循环中。使用SOCKS的困难在于,人们必须用SOCKS版本替代网络系统调用(这个过程通常称为对应用程序SOCKS化-SOCKS-ification

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论