第一篇:传输层协议分析实验报告
2.传输层协议分析 2.A 数据包 捕获分析部分 2.1 实验目的 理解 TCP 报文首部格式和字段的作用,TCP 连接的建立和释放过程,TCP 数据传输中编号与确认的作用。
2.2 实验内容 应用 TCP 应用程序传输文件,截取 TCP 报文,分析 TCP 报文首部信息,TCP 连接的建立过程,TCP 数据的编号和确认机制。
2.3 实验原理 TCP 协议是传输控制协议的简称,工作在网络层协议之上,是面向连接的,可靠的,端到端的传输层协议。
1)TCP 的报文格式 TCP 报文段分为头部和数据两部分,如图 1:
图 1
TCP 报文段的总体结构 TCP 首部 TCP 数据部分
TCP 报文段首部又分为固定部分和选项部分,固定部分为 20B,如图 2 所示,这些字段的组合实现了 TCP 的所有功能。
图 2 TCP 报文段的首部
0
源端口 目的端口 序号 确认号 头部 长度(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 发出连接请求报文段,其首部中的同步位 SYN 应置 1,同时选择一个序号 X,表明在后面传送数据时的第一个数据字节的序号是 X+1,如图 3所示:
图 3
TCP 连接建立的 3 次握手过程
然后,主机 B 的 TCP 收到连接请求报文段后,若同意,则发回确认。在确认报文段中应将 SYN 和 ACK 都置 1,确认号应为 X+1,同时也为自己选择一个序号 Y。
最后,主机 A 的 TCP 收到 B 的确认后,要向 B 发回确认,其 ACK 置 1,确认号为 Y+1,而自己的序号为 X+1。TCP 的标准规定,SYN 置 1 的报文段都要消耗掉一个序号。同时,运行客户进程的主机 A 的 TCP 通知上层应用进程,连接已经建立。当主机 A 向 B 发送第一个数据报文段时,其序号仍为 X+1,因为前一个确认报文段并不消耗序号。
当运行服务器进程的主机 B 的 TCP 收到主机 A 的确认后,也通知其上层应用进程,连接已经建立。
另外,在 TCP 连接建立的过程中,还利用 TCP 报文段首部的选项字段进行双方最大报文段长度 MSS 协商,确定报文段的数据字段的最大长度。双方都将自己能够支持的 MSS 写入选项字段,比较之后,取较小的值赋给 MSS,并应用于数据传送阶段。
3)TCP 数据的传送 为了保证TCP传输的可靠性,TCP采用面向字节的方式,将报文段的数据部分进行编号,每个字节对应一个序号。并在连接建立时,双方商定初始序号。在报文段首部中,序号字段和数据部分长度可以确定发送方传送数据的每一个字节的序号,确认号字段则表示接收方希望下次收到的数据的第一个字节的序号,即表示这个序号之前的数据字节均已收到。这样既做到了可靠传输,又做到了全双工通信。
当然,数据传送阶段有许多复杂的问题和情况,如流量控制、拥塞控制、重传机制等,本次实验不探究。
被动打开 主动打开 确认
确认 连接请求
4)TCP 连接的释放 在数据传输结束后,通信的双方都可以发出释放连接的请求。TCP 连接的释放采用“4次握手”。如图
应 用 进 程 释放连接通知主机应用进程A不再发送报文确认 应用进程释放连接①②确认B不再发送报文FIN,SEQ-XACK,SEQ=Y,ACK=X+1FIN,ACK,SEQ=Y,ACK=X+1ACK,SEQ=X+1,ACK=Y+1AB 图 4 TCP 连接释放的 4 次握手过程 首先,设图 4 中主机 A 的应用进程先向其 TCP 发出释放连接的请求,并且不再发送数据。TCP 通知对方要释放从 A 到 B 这个方向的连接,将发往主机 B 的 TCP 报文段首部的中止位置 1,其序号 X 等于前面已传送过的数据的最后一个字节的序号加 1。
主机 B 的 TCP 收到释放连接通知后即发出确认,其序号为 Y,确认号为 X+1,同时通知高层应用进程,如图中的箭头①。这样从 A 到 B 的连接就被释放了,连接处于半关闭状态,相当于主机 A 对主机 B 说“我已经没有数据发送了。但是如果你还有数据要发送,我仍然接收。” 此后,主机 B 不再接收 A 发来的数据。但若主机 B 还有一些数据要发给 A,则可以继续发送(这种情况很少)。主机 A 只要正确收到数据,仍然向 B 发送确认。
若主机 B 不再向主机 A 发送数据,其应用进程就通知 TCP 释放连接,如图中的箭头②。主机 B 发出的连接释放报文段必须将中止位 FIN 和确认位 ACK 置 1,并使其序号仍为 Y(因为签名发送的确认报文段不消耗序号),但是还必须重复上次已经发送过的 ACK=X+1。主机A 必须对此发出确认,将 ACK 置 1,ACK=Y+1,而自己的序号仍然是 X+1,因为根据 TCP 标准,前面发送过的 FIN 报文段要消耗掉一个序号。这样就把 B 到 A 的反方向的连接释放掉。主机A 的 TCP 再向其应用进程报告,整个连接已经全部释放。
2.4 实验步骤 骤 步骤 1
在 Wireshark 中设置过滤条件,协议为 TCP
HTTP,地址为本机->any,并开始截获报文;步骤 2
打开 www.xiexiebang.com.,完成后,保存截获的报文并命名为“TCP 学号”,分析捕获的报文。
这里,TCP 的连接和建立采用的是:
三次握手
方式,本机是
192.168.3.3
,远端主机是 192.168.3.183。
步骤 3
分析 TCP 连接建立过程的前 3 个报文,填写下表 1:
表 表 1
TCP 建立过程的三个报文信息 字段名称 第一条报文 第二条报文 第三条报文
报文序号 1704 1716 1718 Sequence Nunber 830 849 835 ACK Number 289 291 237 ACK 1 291 1 SYN 1 1 1
步骤 4
分析截获报文中数据发送部分的第一条 TCP 报文及其确认报文,将报文中的字段值填写在表格 2 中。
表 表 2
TCP 报文首部信息
字段名 长度 字段值 字段意义 发送报文 确认报文 源端口 16 发送
目标端口 16 确认 端口号是唯一标识 序号 32
确认好 32 确认
头部长度 4
保留 6
保留字段 窗口 16
校验和 16
紧急指针 16
选项(长度可变)
步骤 5
TCP 连接建立时,其报文首部与其它 TCP 报文不同,有一个 option 字段,它的作用是什么?结合 IEEE802.3 协议规定的以太网最大帧长分析此数据是怎么得出来的? 步骤 6
分析 TCP 数据传送阶段的前 8 个报文,将报文信息填入表 3:
表 表 3
TCP 数据传送部分的前 8 个报文 报文序号 报文种类 序号字段 确认号字段 数据长度 被确认报文序号 窗口 3744 确认 289 1 324 289 123 3754 发送 1 0 66
16580 3764 确认 1 1 344 291 123 3784 发送 1 0 66
16579 3794 确认 237 1 290 237 123 3804 发送 1 0 66
16593 3814 确认 289 0 290 290 16768 3824 确认 290 1 290 290 16768
2.5
实验总结 在实验中,通过分析截获的 TCP 报文首部信息,可以看到首部中的序号、确认号等字段是 TCP 可靠连接的基础。
分析 TCP 头部信息,分析“3 次握手”过程。通过对数据传送阶段报文的初步分析,了解数据的编码和确认机制。
总之,TCP 协议中的各项设置都是为了在数据传输时提供可靠的面向连接的服务。
2.B 编程造 构造 UDP 数据包 部分 使用 C 语言构造 UDP 数据包程序。
1)UDP 首部和伪首部结构体定义
/* UDP 首部*/ struct udphdr{ unsigned short u_src;unsigned short u_dst;unsigned short u_len;unsigned short u_cksum;char u_data[U_MAXLEN];//UDP 中校验使用的伪首部 struct pseudo_header {int srcIp;short udp_len;char rsv;char protocol;unsigned short src_port;
};unsigned short dsc_port;unsigned short len;unsigned short check_sum;char data[2];};
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(struct 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;}
第二篇:传输层中的安全协议(范文模版)
传输层安全协议
随着计算机网络的普及与发展,网络为我们创造了一个可以实现信息共享的新环境。但是由于网络的开放性,如何在网络环境中保障信息的安全始终是人们关注的焦点。在网络出现的初期,网络主要分布在一些大型的研究机构、大学和公司。由于网络使用环境的相对独立和封闭性,网络内部处于相对安全的环境,在网络内部传输信息基本不需要太多的安全措施。随着网络技术的飞速发展,尤其是Internet的出现和以此平台的电子商务的广泛应用,如何保证信息在Internet的安全传输,特别是敏感信息的保密性、完整性已成为一个重要问题,也是当今网络安全技术研究的一个热点。在许多实际应用中,网络由分布在不同站点的内部网络和站点之间的公共网络组成。每个站点配有一台网关设备,站点内网络的相对封闭性和单一性,站点内网络对传输信息的安全保护要求不大。二站点之间网络属于公共网络,网络相对开发,使用情况复杂,因此需要对站点间的公共网络传输的信息进行安全保护。
在网际层中,IPSec可以提供端到端的网络层安全传输,但是它无法处理位于同一端系统之中的不同的用户安全需求,因此需要在传输层和更高层提供网络安全传输服务,来满足这些要求。基于两个传输进程间的端到端安全服务,保证两个应用之间的保密性和安全性,为应用层提供安全服务。Web浏览器是将HTTP和SSL相结合,因为简单在电子商务也应用。
在传输层中使用的安全协议主要有以下几个:
1.SSL(安全套接字层协议)
SSL(Secure Socket Layer)是由Netscape设计的一种开放协议;它指定了一种在应用程序协议(例如http、telnet、NNTP、FTP)和TCP/IP之间提供数据安全性分层的机制。它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。SSL的主要目的是在两个通信应用程序之间提供私密信和可靠性。这个过程通过3个元素来完成:
l 握手协议。这个协议负责协商被用于客户机和服务器之间会话的加密参数。当一个SSL客户机和服务器第一次开始通信时,它们在一个协议版本上达成一致,选择加密算法,选择相互认证,并使用公钥技术来生成共享密钥。
l 记录协议。这个协议用于交换应用层数据。应用程序消息被分割成可管理的数据块,还可以压缩,并应用一个MAC(消息认证代码);然后结果被加密并传输。接受方接受数据并对它解密,校验MAC,解压缩并重新组合它,并把结果提交给应用程序协议。l 警告协议。这个协议用于指示在什么时候发生了错误或两个主机之间的会话在什么时候终止。
下面我们来看一个使用WEB客户机和服务器的范例。WEB客户机通过连接到一个支持SSL的服务器,启动一次SSL会话。支持SSL的典型WEB服务器在一个与标准HTTP请求(默认为端口80)不同的端口(默认为443)上接受SSL连接请求。当客户机连接到这个端口上时,它将启动一次建立SSL会话的握手。当握手完成之后,通信内容被加密,并且执行消息完整性检查,知道SSL会话过期。SSL创建一个会话,在此期间,握手必须只发生过一次。
SSL握手过程步骤:
步骤1:SSL客户机连接到SSL服务器,并要求服务器验证它自身的身份。步骤2:服务器通过发送它的数字证书证明其身份。这个交换还可以包括整个证书链,直到某个根证书权威机构(CA)。通过检查有效日期并确认证书包含有可信任CA的数字签名,来验证证书。
步骤3:然后,服务器发出一个请求,对客户端的证书进行验证。但是,因为缺乏公钥体系结构,当今的大多数服务器不进行客户端认证。
步骤4:协商用于加密的消息加密算法和用于完整性检查的哈希函数。通常由客户机提供它支持的所有算法列表,然后由服务器选择最强健的加密算法。
步骤5:客户机和服务器通过下列步骤生成会话密钥:
a.客户机生成一个随机数,并使用服务器的公钥(从服务器的证书中获得)对它加密,发送到服务器上。
b.服务器用更加随机的数据(从客户机的密钥可用时则使用客户机密钥;否则以明文方式发送数据)响应。
c.使用哈希函数,从随机数据生成密钥。
SSL协议的优点是它提供了连接安全,具有3个基本属性:
l 连接是私有的。在初始握手定义了一个密钥之后,将使用加密算法。对于数据加密使用了对称加密(例如DES和RC4)。
l 可以使用非对称加密或公钥加密(例如RSA和DSS)来验证对等实体的身份。l 连接时可靠的。消息传输使用一个密钥的MAC,包括了消息完整性检查。其中使用了安全哈希函数(例如SHA和MD5)来进行MAC计算。
对于SSL的接受程度仅仅限于HTTP内。它在其他协议中已被表明可以使用,但还没有被广泛应用。
注意:IETF正在定义一种新的协议,叫做“传输层安全”(Transport Layer Security,TLS)。它建立在Netscape所提出的SSL3.0协议规范基础上;对于用于传输层安全性的标准协议,整个行业好像都正在朝着TLS的方向发展。但是,在TLS和
SSL3.0之间存在着显著的差别(主要是它们所支持的加密算法不同),这样,TLS1.0和SSL3.0不能互操作。
2.SSH(安全外壳协议)
SSH是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。它提供了对安全远程登录、安全文件传输和安全TCP/IP和X-Window系统通信量进行转发的支持。它可以自动加密、认证并压缩所传输的数据。正在进行的定义SSH协议的工作确保SSH协议可以提供强健的安全性,防止密码分析和协议攻击,可以在没有全球密钥管理或证书基础设施的情况下工作的非常好,并且在可用时可以使用自己已有的证书基础设施(例如DNSSEC和X.509)。
SSH协议由3个主要组件组成:
l 传输层协议,它提供服务器认证、保密性和完整性,并具有完美的转发保密性。有时,它还可能提供压缩功能。
l 用户认证协议,它负责从服务器对客户机的身份认证。
l 连接协议,它把加密通道多路复用组成几个逻辑通道。
SSH传输层是一种安全的低层传输协议。它提供了强健的加密、加密主机认证和完整性保护。SSH中的认证是基于主机的;这种协议不执行用户认证。可以在SSH的上层为用户认证设计一种高级协议。
这种协议被设计成相当简单而灵活,以允许参数协商并最小化来回传输的次数。
密钥交互方法、公钥算法、对称加密算法、消息认证算法以及哈希算法等都需要协商。数据完整性是通过在每个包中包括一个消息认证代码(MAC)来保护的,这个MAC是根据一个共享密钥、包序列号和包的内容计算得到的。
在UNIX、Windows和Macintosh系统上都可以找到SSH实现。它是一种广为接受的协议,使用众所周知的建立良好的加密、完整性和公钥算法。
3.SOCKS协议
“套接字安全性”(socket security,SOCKS)是一种基于传输层的网络代理协议。它设计用于在TCP和UDP领域为客户机/服务器应用程序提供一个框架,以方便而安全的使用网络防火墙的服务。
SOCKS最初是由David和Michelle Koblas开发的;其代码在Internet上可以免费得到。自那之后经历了几次主要的修改,但该软件仍然可以免费得到。SOCKS版本4为基于TCP的客户机/服务器应用程序(包括telnet、FTP,以及流行的信息发现协议如http、WAIS和Gopher)提供了不安全的防火墙传输。SOCKS版本5在RFC1928中定义,它扩展了SOCKS版本4,包括了UDP;扩展了其框架,包括了对通用健壮的认证方案的提供;并扩展了寻址方案,包括了域名和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或SOCKS-ifying)。幸运的是,大多数常用的网络应用程序(例如telnet、FTP、finger和whois)都已经被SOCKS化,并且许多厂商现把SOCKS支持包括在商业应用程序中.·散列表:
基本思想:散列表(又称“哈希表”),以查找码的值为自变量,通过一定的函数关系,计算出对应的函数值,并以它作为该结点的存储地址,对结点进行存储。查找时,再根据查找码,用同一个函数计算出地址,去取出结点。
特点:在散列表中可对结点进行快速检索。
·散列函数:
选择标准:选择一个好的散列函数,对于使用散列表方法是很关键的。对于查找码中的任一值,经散列函数交换,映像到地址集合中任一地址的概率是相等的,即所得地址在整个地址区间中是随机的,称此类哈希函数是“均匀”的。“均匀”是衡量好的哈希函数的主要标准。
·碰撞的处理:
碰撞的定义:在散列法中,不同的关键码值可能对应到同一存储地址,即k1!=k2,但h(k1)=h(k2)现象,称作碰撞(或冲突)。
处理方法:
(1)开放地址法(线性探测法):就是当碰撞发生时形成一个探测序列,沿着这个序列逐个地址探测,直到找到一个开放的地址(即未被占用的单元)、将发生碰撞的关键码值存入该地址中。最简单的探测序列为线性探测序列,即若发生碰撞的地址为d,则探测的地址序列为:
d+1,d+2,...,m-1,0,1,...,d-1
其中,m是散列表存储区域大小。
(2)拉链法:就是给散列列表每个结点增加一个link字段,当碰撞发生时利用link字段拉链,建立链接方式的同义词于表。每个同义词子表的第一个元素都在散列表基本区域中、同义词其他元素,采用建立溢出区的方法,即另开辟一片存储区间作为溢出区,用于存放各同义词表的其他元素。
传输层是TCP/IP模型中的核心层次,提供面可靠地向连接的TCP协议和不可靠面向无连接的UDP协议,为信息互联提供了基础。传输层的安全协议弥补了网际层安全的协议如IPSec等协议的不足,同时也为高层应用层的进程和安全协议如S-HTTP、HTTPS等协议提供了有力的保障。
第三篇:安全套接层(Secure Sockets Layer)协议实验报告实验报告
安全套接层(Secure Sockets Layer)协议实验报告
一、实验目的
1、学习掌握 SSL 协议的工作原理;
2、学习如何为网站实施 SSL 协议;
二、实验准备
1.上机前到机房网站上下载网络监控软件 EtherDetect 并安装好;.到机房网站上下载 upfile(测试用网站)到自己的机器上并用IIS 进行发布。
3.每两个同学一个小组,分组后到实验教师处登记。
三、实验内容步骤
1.SSL 证书的申请与安装(在局域网内部实现): 第一步:生成 CSR(证书请求申请)(1)访问 IIS Microsoft 管理控制台(MMC)。做法是:右键单击我的电脑并单击管理。此时就打开了计算机管理控制台,然后展开服务和应用程序部分,找到 Internet 信息服务并展开 IIS控制台。(2)选择自己希望安装服务器证书的特定 Web 站点,右键单击该站点并单击属性。(3)单击目录安全性选项卡,在安全通信部分单击服务器证书,这将启动 Web 服务器证书向导,单击下一步。
(4)选择创建一个新证书并单击下一步。
(5)选择现在准备请求,但稍后发送并单击下一步。
(6)在名称字段输入自己喜欢的名称,该名称将默认为为其生成CSR的Web站点的名称。
(7)在组织信息部分,输入自己的组织和部门信息,该信息必须准确无误,因为这将把这些凭证提供给第三方证书颁发机构,而我必须符合他们的证书授权。单击下一步进入站点的公用名称部分。
(8)站点的公用名称部分负责将证书绑定到我的Web 站点。对于 SSL 证书,输入主机名称和域名称。对于 Intranet 服务器,可以使用寄存站点的计算机的 NetBIOS 名称。单击下一步访问信息。
(9)输入国家、省/州、县市或地区信息。写出您的省/州以及国家或地区的全称,不要使用缩写。单击下一步。
(10)将文件保存为.txt 文件。当我实际向证书颁发机构发送请求时,必须将该文件的内容粘贴到请求中。该文件将被加密,并包含内容的标题和脚注。请求证书时必须同时包含标题和脚注。
(11)确认请求的细节,然后单击下一步完成,并退出 Web 服务器证书向导。
第二步:申请并安装SSL 证书(WEB 服务证书)(1)请登录颁发数字证书的网站,如下图所示:
选择“申请一个证书”,之后选择“高级申请”。
(2)在接着出现的界面上选择base64 编码方式来提交证书申请,然后点击“下一步”。
(3)在“提交一个保存的申请”栏目下,把刚刚生成的CRS 的*.txt 文本文件的内容复制到“base64 编码证书申请”框里,然后按“提交”。(4)下载你所申请的证书。请再次登录那个网址,点击如上图所示的 “查看挂起的证书申请的状态”,可下载并安装自已所申请的证书。第三步:安装证书:
(1)按“生成 CSR”一节中所描述的步骤打开 IIS MMC;(2)进入要在上面安装证书的 Web 站点的属性对话框;(3)单击目录安全性选项卡并单击服务器证书。这将启动 Web 服务器证书向导,单击下一步;
(4)选择处理挂起的请求并安装证书并单击下一步;
(5)浏览到你所保存的server.cer 文件。单击下一步两次,然后单击完成。你就可以看到“查看证书”和“编辑”两个按扭可用了你就可以点击“查看证书”查看你所安装的证书的相关信息。如下图所示 2.实施 SSL 连接
(1)从计算机的IIS 管理控制台中,右键单击您希望实施 SSL的Web站点,然后单击属性;
(2)单击Web站点选项卡。在Web站点标识部分,确保SSL端口字段的数值为443;(3)单击高级可以看到两个字段,IP 地址和Web站点的端口应该已经在此,Web站点有多个标识字段中列出。如果没有列出端口443,在此Web站点有多个 SSL 标识字段下面,单击添加。选择服务器的IP地址,并在SS 端口字段键入数值443。单击确定。
(4)单击目录安全性选项卡。请注意现在在安全通信部分,编辑是可用的。单击编辑,如下图所示
(5)选择需要安全通道(SSL)。备注:如果指定128位加密,使用40或56位加密 强度浏览器的客户将无法与您的站点通讯,除非他们升级加密强度;(6)如果指定 128 位加密,使用 40 或 56 位加密强度浏览器的客户将无法与您的站点通讯,除非他们升级加密强度。打开浏览器,试着用标准 http:// 协议连接您的 Web 服务器。如果实施了 SSL,您将收到如下错误消息:
The page must be viewed over a secure channel,The page you are trying to view requires the use of “https” in the address.(网页必须通过安全渠道查看。要求在您试图查看的网页地址中使
用“https”)。如下图所示
四、问题思考
1、SSL 实施到网站上后是如何保证数据安全的? 答:安全套接层协议采用Hash 函数和机密共享的方法来提供信息的完整性服务,建立客户机与服务器之间的安全通道,使所有经过安全套接层协议处理的业务在传输过程中能全部完整准确无误地到达目的地。
2、CSR 是如何产生的?
答:CSR的产生过程在上面的报告中我们已经做了陈述,具体是:(1)访问 IISMicrosoft 管理控制台(MMC)。(2)选择自己希望安装服务器证书的特定 Web 站点,右键单击该站点并单击属性。(3)单击目录安全性选项卡,在安全通信部分单击服务器证书,这将启动 Web 服务器证书向导,单击下一步。
(4)选择创建一个新证书并单击下一步。
(5)选择现在准备请求,但稍后发送并单击下一步。
(6)在名称字段输入自己喜欢的名称,该名称将默认为为其生成CSR的Web站点的名称。
(7)在组织信息部分,输入自己的组织和部门信息,该信息必须准确无误,因为这将把这些凭证提供给第三方证书颁发机构,而我必须符合他们的证书授权。单击下一步进入站点的公用名称部分。
(8)站点的公用名称部分负责将证书绑定到我的Web 站点。对于 SSL 证书,输入主机名称和域名称。对于 Intranet 服务器,可以使用寄存站点的计算机的 NetBIOS 名称。单击下一步访问信息。
(9)输入国家、省/州、县市或地区信息。写出您的省/州以及国家或地区的全称,不要使用缩写。单击下一步。
(10)将文件保存为.txt 文件。当我实际向证书颁发机构发送请求时,必须将该文件的内容粘贴到请求中。该文件将被加密,并包含内容的标题和脚注。请求证书时必须同时包含标题和脚注。
(11)确认请求的细节,然后单击下一步完成,并退出 Web 服务器证书向导
3、为何在我们申请的数字证书中,安装好后会有一个惊叹号?
答:对这个问题我们思考的结果是因为Windows没有足够的信息,不能验证该证书的缘故导致安装好后会有一个惊叹号。
五、心得体会:从本次实验中,我们学习了证书的申请和安装过程,掌握了ssl协议的工作原理,安全套层协议是一个保证计算机通信安全的协议,对通信对话进行安全,在ssl协议的实现过程中,我们了解了基本的流程,同时对密钥的使用也由了更深入的理解。对于信息管理与信息系统的形势来说,掌握基本的信息安全知识是十分必要的,这次使用为我们以后的工作也起到了一个基石的作用。虽然在使用过程中我们还有很多问题,但是我们会努力学习计算机知识,为以后工作做准备。
第四篇:网络原理实验报告网络层
苏州科技学院
电子信息实验中心
实验报告
课
程 学
号 姓
名 班
级 专
业 指导教师 学年 / 学期
计算机网络原理 *** 闫自立 软件1311 计算机科学与技术
陶滔
2015~2016学年第1学期
实验三
网络层实验
实验项目性质:设计性
计划学时:4 实
验 环 境:Microsoft Visual Studio 2010
实验日期:2015年12月2日
一、实验目的
1.理解通信子网的完整概念,掌握网络层的作用和功能。2.掌握分组数据包格式设计方法、分组的分片与重装的方法。3.掌握网络层简单路由选择协议的实现方法。
二、实验内容
在已经实现的数据链路层基础上:
(1)设计简易实用的分组数据包格式;
(2)设计并实现类IP的网络层协议,路由选择采用静态路选择协议。(3)设计并实现分组的分片与重装。
(4)设计一个应用程序,利用网络层的功能直接将文件传输到目标主机的接收窗口中。(5)编写路由配置route_tab.cfg及本机主机地址local.cfg文件,以便与远地的其他计算机进行通信。
三、实验(设计)仪器设备和材料清单
计算机一台,串行电缆一根。
四、实验指导
本实验采用静态路由选择算法,每个结点上通过配置文件route_tab.cfg确定路由选择的结果,该文件的格式可设计如下:
主机地址
端口号
注释
555
#主机地址555的转发端口号为COM1
556
558
888
*
#默认路由
其中,端口号指PC的COM1(对应端口号1)或COM2(对应端口号2)等。同时为简化设计,去掉流量控制和拥塞控制,数据包的格式参考IP数据包格式,但尽可能简化。分组及其他数据结构设计
网络层的分组设计一方面要考虑到路由选择的实现,即分组中应含有路由寻址所必要的信息,另一方面要考虑到分组太大时的分片与重装,主机地址用4位数字字符表示。设计的分组格式如下。
(1)分组(“数据报”)的首部
typedef struct{ //定义数据报首部格式
unsigned char
vers_hlen;
//高4位是版本, 低4 位是首部长度
unsigned char
type;
//类型(保留)
unsigned short
Dlen;
//数据报数据部分长度
unsigned short ident;
//数据报标识
unsigned short frag;
//分片标识,1-分片,0-不分片 unsigned short offset;
//数据报分片偏移量
unsigned char
TTL;
//生存期
unsigned char
prot[3];
//保留
unsigned short checksum;
//校验和
IPhost source;
//源主机地址
IPhost dest;
//目标主机地址
} TIPheader;typedef struct { unsigned char cAddr[4];}IPhost;(2)数据报格式
typedef struct { unsigned char cData[MTU];} Msg;typedef struct{
//定义数据报格式
TIPheader
IpHdr;
//分组首部
Msg
Info;
//分组信息部分 } TPacket;(3)分片与重装的结构
typedef struct fid{
//用于识别同一IP 分组的各分片结构,用于组装分组
IPhost
source;
//源主机地址
IPhost
dest;
//目标主机地址
unsigned short
ident;
//IP分组标识
long int iLength;
//已接收到的数据长度
unsigned short iCount;//已接收到的分组数 }FragId;typedef struct fragif{
//包含一个分片的结构
unsigned char frgData[MTU];//分片的数据部分
unsigned short iMsgLength;
//当前分片数据部分的长度 unsigned short frag;
//分片标识,1-分片,0-不分片
unsigned short offset;
//分片在数据报中的偏移量
struct fragif *next;
//下一个分片 }FragInfo;(4)路由表结构
typedef struct { //定义路由表
unsigned char cHostAddr[4];//主机地址 char cPort;
//转发端口
char cComment[30];
//注释 } TRouteItem;2 分片与重装
在一个异构的网络的集合中,提供统一的主机到主机服务模型需要面对的问题之一是每种网络技术都试图自己定义分组的大小。例如,以太网能接收的长度最多为1500字节的分组,而FDDI能够接收的分组长度可达到4500字节。因此网络层要确保所有的分组足够小,使得其适合任何网络技术的分组;或者当分组对某一网络技术来说太大时,提供一种方法将分组拆分和重组。后一种方法是一种理想的选择,TCP/IP中的IP数据报传输就采用了后一种技术。
这样每一种网络类型有一个最大传输单元(Maximum Transmission Unit,MTU),这是一帧中所能携带的最大数据报,而这个值应比网络上的最大分组要小。
五、结果分析(可根据需要附加页)
六、主要源代码(可根据需要附加页)#pragma hdrstop #include
#include “..includeNllEntity.h” #include “..includeFtpClass.h” //-------------#pragma package(smart_init)//---------void TNLLNetEntity::readroute(){
#define MAXITEMS 100
// 路由表最大表项数
#define MAXLINE 81
// 路由表文件最大行长度
char fileName[]=“.route_tab.cfg”;
if(fst.fail())return;fst.getline(line,MAXLINE);while(!fst.fail()&&!fst.eof())// 当文件有内容时 {
} iRouteEntries=i;if(iRouteEntries){
routeTab=new TRouteItem[iRouteEntries];for(i=0;i