《TCPIP协议原理》实验指导书.doc_第1页
《TCPIP协议原理》实验指导书.doc_第2页
《TCPIP协议原理》实验指导书.doc_第3页
《TCPIP协议原理》实验指导书.doc_第4页
《TCPIP协议原理》实验指导书.doc_第5页
已阅读5页,还剩20页未读, 继续免费阅读

下载本文档

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

文档简介

TCP/IP协议原理 实验指导书班级: 1100310514 姓名: 梁彦漳 计算机科学与工程学院2014年12月一、 数据链路层协议分析 TCP/IP 协议栈分为四层,从下往上依次为网络接口层、网际层、传输层和应用层,而网 络接口层没有专门的协议,而是使用连接在 Internet 网上的各通信子网本身所固有的协议。 如以太网 (Ethernet)的802.3 协议、令牌环网 (TokenRing)的802.5 协议、分组交换网的X.25 协议等。 目前Ethernet 网得到了广泛的应用,它几乎成为局域网代名词。因此,这一部分将对以 太网链路层的帧格式和 802.1Q 帧格式进行分析验证,使学生初步了解TCP/IP 链路层的主要协议以及这些协议的主要用途和帧结构。 1. 以太网链路层帧格式分析实验 1以太网简介IEEE 802 参考模型把数据链路层分为逻辑链路控制子层 (LLC,Logical Link Control) 和介质访问控制子层 (MAC,Media Access Control)。与各种传输介质有关的控制问题都放 在MAC 层中,而与传输介质无关的问题都放在LLC 层。因此,局域网对LLC 子层是透明的,只有具体到MAC 子层才能发现所连接的是什么标准的局域网。 IEEE 802.3 是一种基带总线局域网,最初是由美国施乐 (Xerox )于1975 年研制成功的,并以曾经在历史上表示传播电磁波的以太 (Ether)来命名。1981 年,施乐公司、数字设备公司(Digital)和英特尔(Intel)联合提出了以太网的规约。1982 年修改为第二版,即DIX Ethernet V2,成为世界上第一个局域网产品的规范。这个标准后来成为IEEE 802.3 标准的基础。 在 802.3 中使用1 坚持的CSMA/CD(Carrier Sense Multiple Access with Collision Detection )协议。现在流行的以太网的MAC 子层的帧结构有两种标准,一种是802.3 标准, 另一种是DIX Ethernet V2 标准。 图14 802.3 和Ethernet V2 MAC 帧结构 图14 画出了两种标准的MAC 帧结构。它们都是由五个字段组成。MAC 帧的前两个 字段分别是目的地址字段和源地址字段,长度是2 或6 字节。但在IEEE 802.3 标准规定对 10Mb/s 的基带以太网则使用6 字节的地址字段。 两种标准的主要区别在于第三个字段 (2 字节)。在 802.3 标准中,这个字段是长度字段,它指后面的数据字段的字节数,数据字段就是 LLC 子层交下来的 LLC 帧,其最小长度 46字节,最大长度 1500 字节。在Ethernet V2 标准中,这个字段是类型字段,它指出LLC 层使用的协议类型。由于数据字段的最大长度为1500 字节,因此,以太网V2 标准中将各种协议的代码规定为大于 1500 的数值,这样就不至于发生误解,并借此实现兼容。最后一个字段是一个长度为4 字节的帧校验序列FCS,它对前四个字段进行循环冗余 (CRC)校验。 为了使发送方和接收方同步,MAC 帧在总线上传输时还需要增加7 个字节的前同步码 字段和 1 字节的起始定界符 (它们是由硬件生成的),其中前同步码是 1 和0 的交替序列, 供接收方进行比特同步之用;紧跟在前同步码之后的起始定界符为10101011,接收方一旦接 收到两个连续的 1 后,就知道后面的信息就是MAC 帧了。需要注意的是前同步码、起始定 界符和MAC 帧中的FCS 字段在网卡接收MAC 帧时已经被取消,因此,在截获的数据报中 看不到这些字段。 注意:由于802.3 标准在MAC 帧中封装802.2 帧,相比Ethernet V2 增加了 8 个字节的开销,而且实践表明,这样做过于繁琐,使得其在实际中很少得到使用。因此,本节实验中重点分析Ethernet V2 MAC 帧格式,802.3MAC 帧不作具体讨论。 2实验环境与说明(1)实验目的 了解EthernetV2 标准规定的EthernetV2 MAC 帧结构,初步了解TCP/IP 的主要协议和协议的层次结构。 (2)实验设备和连接 实验设备和连接图如图15 所示,用华为eNSP建立虚拟网络。 图15 Ethernet 链路层帧结构实验连接图 3实验步骤 步骤1:按照如图15 所示连接好设备,配置PC1 和PC2 的IP 地址;(编者注:实验室中任何一台PC都可以作为模型中的PC1或PC2。) 步骤2:在:PC1 和PC2 上运行Ethereal 截获报文,为了只截获和实验内容有关的报文; 步骤3:在: PC1 的“运行”对话框中输入命令 “Ping ”,单击 “确定”按钮; 步骤4:停止截获报文:结果如下,并对截获的报文进行分析: 列出截获的报文中的协议类型,观察这些协议之间的关系。 数据段前6个字节是目的MAC地址,为54-89-98-A7-48-77,后面6个字节是源MAC地址,为54-89-98-39-3E-27,后面2个字节是协议类型,为0806(ARP协议类型),数据为16字节长,加上最后4个字节的FCS。4. 实验总结 通过此次实验我们可以很简单的使用wireshark软件,并可以从捕获的数据中分析出所需的结果,比如:分析源IP地址和目的IP地址,源MAC地址和目的MAC地址,来了解数据链路层的协议。 二、 网络层协议分析 该层是网络互联层,负责相邻计算机之间的通信。该层上的主要协议是IP 协议,此外, 这一层还包括三个子协议:ICMP 协议、ARP 协议和RARP 协议。 * 互联网控制信息协议 (ICMP,Internet Control Message Protocol) ICMP 是TCP/IP 协议簇的的一个子协议,它和IP 协议属于同一层, 但ICMP 数据报是 被封装在IP 数据报中发送的。ICMP 协议通常被用于在IP 主机、路由器之间传递控制消息。 控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息 虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。该协议经常被用作调试 和监视网络。 * 网际协议 (IP,Internet Protocol) 这个协议是 TCP/IP 协议中最主要的协议之一,他负责处理来之传输层的分组发送请求 和输入的数据报文。该层以上各层的协议都要使用IP 协议。 * 地址解析协议 (ARP )和反地址解析协议 (RARP,Reverse Address Resolution Protocol) 它们分别负责实现从IP 地址到物理地址 (如以太网网卡MAC 地址)和从物理地址到IP 地址的映射。 1. ICMP 协议分析实验 1 ICMP 协议介绍ICMP(Internet Control Message Protocol)是因特网控制报文协议RFC792的缩写,是因特网的标准协议。ICMP允许路由器或主机报告差错情况和提供有关信息,用以调试、监视网络。 (1)ICMP 的报文格式 图20 ICMP 回送请求和应答报文格式 在网络中,ICMP 报文将封装在IP 数据报中进行传输。由于ICMP 的报文类型很多,且 又有各自的代码,因此,ICMP 并没有一个统一的报文格式供全部 ICMP 信息使用,不同的 ICMP 类别分别有不同的报文字段。 ICMP 报文只在前 4 个字节有统一的格式,即类型、代码和校验和 3 个字段。接着的4 个字节的内容与ICMP 报文类型有关。图20 描述了ICMP 的回送请求和应答报文格式,ICMP 报文分为首部和数据区两大部分。其中: * 类型:一个字节,表示ICMP 消息的类型,内容参见表5; * 代码:一个字节,用于进一步区分某种类型的几种不同情况; * 校验和:两个字节,提供对整个ICMP 报文的校验和; (2)ICMP 的报文类型 ICMP 报文的种类可以分为ICMP 差错报告报文和ICMP 询问报文两种,表5 列出了已定义的几种ICMP 消息。 表5 ICMP 消息及类型码 类型的值ICMP 消息类型类型的值ICMP 消息类型0回送(Echo)应答12参数出错报告3目的站点不可达13时间戳(Timestamp)请求4源站点抑制(Source quench)14时间戳(Timestamp)应答5路由重定向(Redirect)15信息请求8回送请求16信息应答9路由器询问17地址掩码(Address mask)请求10路由器通告18地址掩码(Address mask) 应答11超时报告 其中差错报告报文主要有目的站点不可达、源站点抑制、超时、参数问题和路由重定向 5 种;ICMP 询问报文有回送请求和应答、时间戳请求和应答、地址掩码请求和应答以及路由 器询问和通告4 种。 (3)ICMP 常见的消息类型 下面介绍几种常用的ICMP 消息类型。 * 目的站点不可达(3) 产生 “目的站点不可达”的原因有多种。在路由器不知道如何到达目的网络、数据报指 定的源路由不稳定、路由器必须将一个设置了不可分段标志的数据报分段等情况下,路由器 都会返回此消息。如果由于指明的协议模块或进程端口未被激活而导致目的主机的IP 不能传送数据报,这时目的主机也会向源主机发送 “目的站点不可达”的消息。 为了进一步区分同一类型信息中的几种不同情况,在ICMP 报文格式中引入了代码字段, 该类型常见信息代码及其意义如下: 表6 ICMP 类型3 的常见代码 代码 描述 处理代码 描述 处理 0 网络不可达; 无路由到达主机1 主机不可达; 无路由到达主机 2 协议不可用; 连接被拒绝3 端口不可达; 连接被拒绝 4 需分段但DF 值为 0; 报文太长5 源路由失败; 无路由到达主机 * 源站点抑制 (4) 此消息类型提供了流控制的一种基本形式。当数据报到达得太快,路由器或主机来不及 处理时,这些数据报就必须被丢弃。丢弃数据报的计算机就会发一条“源站点抑制”的ICMP 报文。“源站点抑制”消息的接收者就会降低向该消息发送站点发送数据报的速度。 * 回送请求 (8)和回送应答 (0) 这两种ICMP 消息提供了一种用于确定两台计算机之间是否可以进行通信的机制。当一 个主机或路由器向一个特定的目的主机发出ICMP 回送请求报文时,该报文的接收者应当向 源主机发送ICMP 回送应答报文。 * 时间戳请求 (15)和时间戳应答 (16) 这两种消息提供了一种对网络延迟进行取样的机制。时间戳请求的发送者在其报文的信 息字段中写入发送消息的时间。接收者在发送时间戳之后添加一个接收时间戳,并作为时间 戳应答消息报文返回。 * 地址掩码请求 (17)和地址掩码应答 (18) 主机可以用 “地址掩码请求”消息来查找其所连接网络的子网掩码。主机在网络上广播 请求,并等待路由器的包含子网掩码的 “地址掩码应答”消息报文的到来。 * 超时报告 (11) 当一个数据报的TTL 值到达 0 时,路由器将会给源主机发送超时报文。 2基于ICMP 的应用程序 目前网络中常用的基于ICMP 的应用程序主要有ping 命令和tracert 命令。 (1)ping 命令 Ping 命令是调试网络常用的工具之一。它通过发出ICMP Echo 请求报文并监听其回应来检测网络的连通性。图21 显示了Ethereal 捕获的ICMP Echo 请求报文和应答报文。 图21 ICMP Echo 请求报文和应答报文 Ping 命令只有在安装了TCP/IP 协议之后才可以使用,其命令格式如下: ping -t -a -n count -l size -f -i TTL -v TOS -r count -s count -j host-list | -k host-list -w timeout target_name 这里对实验中可能用到的参数解释如下: * -t :用户所在主机不断向目标主机发送回送请求报文,直到用户中断; * -n count:指定要Ping 多少次,具体次数由后面的count 来指定 ,缺省值为4; * -l size:指定发送到目标主机的数据包的大小 ,默认为32字节,最大值是65,527; * -w timeout:指定超时间隔,单位为毫秒; * target_name:指定要 ping 的远程计算机。 (2)Traceroute 命令 Traceroute 命令用来获得从本地计算机到目的主机的路径信息。在MS Windows中该命 令为Tracert,而UNIX 系统中为Traceroute。 Tracert 先发送 TTL 为 1 的回显请求报文,并在随后的每次发送过程将TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。它所返回的信息要比ping 命令详细得多, 它把您送出的到某一站点的请求包,所走的全部路由均告诉您,并且告诉您通过该路由的IP 是多少,通过该IP 的时延是多少。 Tracert 命令同样要在安装了TCP/IP 协议之后才可以使用,其命令格式为: tracert -d -h maximum_hops -j computer-list -w timeout target_name 参数含义为: * -d:不解析目标主机的名称; * -h:指定搜索到目标地址的最大跳跃数; * -j:按照主机列表中的地址释放源路由; * -w:指定超时时间间隔,程序默认的时间单位是毫秒。 3实验环境与说明 (1)实验目的 掌握ping 和tracert 命令的使用方法,了解ICMP 协议报文类型及其作用。 执行ping 和tracert 命令,分别截获报文,分析截获的ICMP 报文类型和ICMP 报文格式,理解ICMP 协议的作用。 (2)实验设备和连接 实验设备和连接图如图22 所示建立连接图。 图22 ICMP 协议分析实验连接图 4实验步骤步骤1:按照如图22 所示连接好设备;步骤2:完成路由器和PC1、PC2 的相关配置;步骤3:分别在PC1 和PC2 上运行 Ethereal,开始截获报文,为了只截获和实验内容有关的报文,将Ethereal 的Captrue Filter 设置为 “No Broadcast and no Multicast ”; 步骤4:在PC1上以PC2 为目标主机,在命令行窗口执行Ping 命令; 步骤 5:停止截获报文,将截获的结果保存为 ICMP-1-学号,分析截获的结果,回答下 列问题: 截获的结果如下: 分析截获的ICMP 报文,查看表7 中要求的字段值,填入表中。 表7 ICMP 报文分析报文号源IP目标IPICMP 报文格式类型代码标识序列号808b1373000b1373 2. IP 协议分析实验 1 IP 协议介绍 (1)IP 地址的编址方法 IP 地址是为每个连接在互联网上的主机分配的唯一识别的 32 位标识符。IP 地址的编址方法共经历了三个阶段: * 分类的IP 地址 这是一种基于分类的两级IP 地址编址的方法。 表8 IP 地址的分类IP 地址类型第一字节十进制范围二进制固定最高位二进制网络位二进制主机位A 类1-12608 位24 位B 类128 1911016 位16 位C 类192 22311024 位8 位D 类224 2391110组播地址E 类240 2541111保留试验使用 如表8 所示,IP 地址分为A,B,C,D,E 五类,其中A、B、C 类地址为可分配主机 地址,而D 类地址为组播地址,E 类地址保留以备将来的特殊使用。IP 地址采用点分十进制方式记录,每个地址表被视为4 个以点分隔开的十进制整数,每个整数对应一个字节。 A、B、C 三类地址由两部分组成:网络地址和主机地址,这三类地址的网络地址部分的 长度不一样。每个A 类地址的网络中可以有 1600 万台主机;每个B 类地址的网络中可以有 65534 台主机;每个C 类地址的网络中可以有254 台主机。 * 划分子网的IP 地址 子网就是将一个A 类、B 类或 C 类网络分割成许多小的网络,每一个小的网络就称为子网。划分子网采用 “网络号”“子网号”“主机号”三级编址的方法。在划分了子网的网络地址中,子网掩码用于确定网络地址。 子网掩码是一个和IP 地址对应的 32 位二进制数。子网掩码中与IP 地址的网络地址对应的部分为 1,与主机地址对应的部分为0。这样把网络接口的IP 地址与该接口上的掩码相与就得到该接口所在网络的网络地址,而把该IP 地址与掩码的反码相与则可得到主机地址。 * 无分类域间路由选择CIDR 无分类域间路由选择CIDR 是根据划分子网阶段的问题提出的编址方法。IP 地址采用“网络前缀”“主机号”的编址方式。目前CIDR 是应用最广泛的编址方法,它消除了传统的A、B、C 类地址和划分子网的概念,提高了IP 地址资源的利用率,并使得路由聚合的实现成为可能。 (2)IP 报文格式 IP 报文由报头和数据两部分组成,如图23 所示: 图23 IP 报文格式 其中主要字段的意义和功能如下: * 版本:指IP 协议的版本; * 头长:是指IP 数据报的报头长度,它以4 字节为单位。IP 报头长度至少为 20 字节, 如果选项部分不是4 字节的整数倍时,由填充补齐; * 总长度:为整个IP 数据报的长度; * 服务类型:规定对数据报的处理方式; * 标识:是IP 协议赋予数据报的标志,用于目的主机确定数据分片属于哪个报文; * 标志:为三个比特,其中只有低两位有效,这两位分别表示该数据报文能否分段和是 否该分段是否为源报文的最后一个分段; * 生存周期:为数据报在网络中的生存时间,报文每经过一个路由器时,其值减 1,当生存周期变为 0 时,丢弃该报文;从而防止网络中出现循环路由; * 协议:指IP 数据部分是由哪一种协议发送的; * 校验和:只对IP 报头的头部进行校验,保证头部的完整性; * 源IP 地址和目的IP 地址:分别指发送和接收数据报的主机的IP 地址。 (3)IP 数据报的传输过程 在互联网中,IP 数据报根据其目的地址不同,经过的路径和投递次数也不同。当一台主 机要发送 IP 数据报时,主机将待发送数据报的目的地址和自己的子网掩码按位 “与”,判断其结果是否与其所在网络的网络地址相同,若相同,则将数据报直接投递给目的主机,否则,将其投递给下一跳路由器。 路由器转发数据报的过程如下: 当路由器收到一个数据报文时,对和该路由器直接相连的网络逐个进行检查,即用 目的地址和每个网络的子网掩码按位 “与”,若与某网络的网地址相匹配,则直接投递;否 则,执行2。 对路由表的每一行,将其中的子网屏蔽码与数据报的目的地址按位 “与”,若与该行 的目的网络地址相等,则将该数据报发往该行的下一跳路由器;否则,执行3。 若路由表中有一个默认路由,则将数据报发送给路由表所指定的默认路由器。否则, 报告转发出错。 2实验环境与说明(1)实验目的 使用 Ping 命令在两台计算机之间发送数据报,用Ethereal 截获数据报,分析IP 数据报的格式,理解IP V4 地址的编址方法,加深对IP 协议的理解。 (2)实验设备和连接 用两台电脑来进行连接,通过wireshark来进行捕获数据。 3实验步骤 步骤1:按照以上连接好设备; 步骤2:捕获的数据如下: 步骤4:任取一个数据报,分析IP 协议的报文格式,完成下列各题: 1)分析IP 数据报头的格式,完成表9; 表9 IP 协议报文分析 字段报文信息说明 版本 4IPv4,互联网协议(Internet Protocol,IP)的第四版 头长 54个字节,IP数据报报头区的长度 服务类型 00IP协议服务类型 总长度 0224数据总长度 标识 0409IP的标识 标志 00表示为IP数据报最后一个分段 片偏移 00 生存周期 80IP数据报在网络中传输最长时间 协议 0101为ICMP协议发出的数据报文 校验和 32b0保证数据报文在传输过程中的正确性和完整性 源地址 c0a8400a源IP地址:0 目的地址 c0a8400c目的IP地址:24.实验小结 了解到我们生活中经常使用的网站地址是如何在网络层传输的和保证传输过程中的正确性、完整性,这不仅仅是我们平时上网打一个网址而已,其中包含了许许多多的协议和校验方法,让我们能正确的打开所需的、安全的网站。三、 传输层协议分析 TCP/IP 的传输层有两个协议,即:传输控制协议TCP(Transmission Control Protocal)和用户数据报 (User Datagram Protocol )。在TCP 体系中,根据所使用的协议是TCP 或UDP,传输的数据单元分别称之为TCP 报文段或UDP 数据报。 TCP 提供面向连接的可靠的传输服务。在传输数据之前必须建立连接,数据传送结束后 释放连接。因此,不可避免地增加了很多开销,如确认、流量控制、计时器以及连接管理等。 这样不仅使协议数据单元的首部加长,还要占用许多处理器资源。 UDP 在传输数据前不需要建立连接,远程主机的传输层在收到 UDP 数据报后不需要提 供任何确认信息。虽然UDP 提供的是一种不可靠的传输服务,但在某些请况下,UDP 是一 种有效率的工作方式。 在一台主机上,常常有多个应用程序运行,为了区分一台主机上的多个应用程序,TCP/IP 协议中引入了端口的概念。每个端口都有一个 16 位的标志符,这个标志符被称为端口号, TCP 和UDP 都有自己的端口号。 1. IP 数据报分片实验 我们已经从前边的实验中看到,IP 报文要交给数据链路层封装后才能发送。 理想情况下,每个IP 报文正好能放在同一个物理帧中发送。但在实际应用中,每种网络技术所支持的最大帧长各不相同。例如:以太网的帧中最多可容纳 1500 字节的数据;FDDI 帧最多可容纳4470 字节的数据。这个上限被称为物理网络的最大传输单元 (MTU,Maxium Transfer Unit)。 TCP/IP 协议在发送 IP 数据报文时,一般选择一个合适的初始长度。当这个报文要从一个 MTU 大的子网发送到一个 MTU 小的网络时,IP 协议就把这个报文的数据部分分割成能被目的子网所容纳的较小数据分片,组成较小的报文发送。每个较小的报文被称为一个分片 (Fragment)。每个分片都有一个 IP 报文头,分片后的数据报的 IP 报头和原始 IP 报头除分片偏移、MF 标志位和校验字段不同外,其他都一样。图25 显示了Ethereal 捕获的IP 数据报分片的分析情况,可参考。 图25 IP 数据报分片示例 重组是分片的逆过程,分片只有到达目的主机时才进行重组。当目的主机收到IP 报文时,根据其片偏移和标志MF 位判断其是否一个分片。若MF 为0,片偏移为0,则表明它是一个完整的报文;否则,则表明它是一个分片。当一个报文的全部分片都到达目的主机时,IP 就根据报头中的标识符和片偏移将它们重新组成一个完整的报文交给上层协议处理。 2实验环境与说明 (1)实验目的 使用Ping 命令在两台计算机之间发送发送大于MTU 的数据报,验证分片过程,加深对 IP 协议的理解。 (2)实验设备和连接 用两台电脑分别安装一个为server服务器端和client客户端,从客户端发送数据包给服务器端,通过wireshark软件来进行对服务器来截获。3实验步骤 1、检查实验用机网络连接是否正常2、在一台主机上运行给定服务器程序server.exe,需要带一个TCP端口号参数 例如:server 20003、在另一台主机上(1)运行wireshark,设置捕获过滤器,开始捕捉报文(2)运行给定客户端程序client.exe,需带2个参数,分别是服务器端ip地址、端口号 例如:client 9 20004、从客户端,选择一个长度为10k字节左右的数据文件,经网络传输到服务器端。5、对捕获到的整个通信过程报文进行分析,主要内容有: TCP协议的报文形式;TCP连接的建立和释放过程;TCP数据传输中编号与确认的过程; TCP重传机制。6、反复进行4次传输文件,按下表每次分别选择不同的文件分割尺度,借助于网络协议解码工具所捕获数据,通过统计、计算填写下表,并进行分析。序号文件分割尺度(字节)文件总长(字节)文件分割块数(个)经网络传输的数据块数传输效率(对发送方)1101031110321010311/11463=0.8995210010311104910311/11341=0.909231460103118910311/11347=0.908746000103112910311/11219=0.91902. TCP 协议分析实验 1TCP 协议介绍 TCP 是传输控制协议 (Transmission Control Protocal)的缩写,提供面向连接的可靠的传输服务。在TCP/IP 体系中,HTTP、FTP、SMTP 等协议都是使用TCP 传输方式的。 (1)TCP 报文格式 图28 TCP 报文段格式 TCP 报文分为首部和数据两个部分。如图28 所示,TCP 报文段首部的前20 字节是固 定的,后面有4 n 字节是可选项。其中: * 源端口和目的端口:各2 字节,用于区分源端和目的端的多个应用程序; * 序号:4 字节,指本报文段所发送的数据的第一字节的序号; * 确认序号:4 字节,是期望下次接收的数据的第一字节的编号,表示该编号以前的数据 已安全接收。 * 数据偏移:4 位,指数据开始部分距报文段开始的距离,即报文段首部的长度,以32bit 为单位。 * 标志字段:共有六个标志位: 紧急位URG=1 时,表明该报文要尽快传送,紧急指针启用; 确认位ACK=1 时,表头的确认号才有效;ACK=0,是连接请求报文; 急迫位 PSH=1 时,表示请求接收端的TCP 将本报文段立即传送到其应用层,而不 是等到整个缓存都填满后才向上传递; 复位位RST=1 时,表明出现了严重差错,必须释放连接,然后再重建连接; 同步位 SYN=1 时,表明该报文段是一个连接请求或连接响应报文, 终止位FIN=1 时,表明要发送的字符串已经发送完毕,并要求释放连接。 * 窗口:2 字节,指该报文段发送者的接收窗口的大小,单位为字节; * 校验和:2 字节,对报文的首部和数据部分进行校验; * 紧急指针:2 字节,指明本报文段中紧急数据的最后一个字节的序号,和紧急位 URG 配合使用; * 选项:长度可变,若该字段长度不够四字节,有填充补齐。 (2)TCP 连接的建立 TCP 连接的建立采用 “三次握手”的方法。 一般情况下,双方连接的建立由其中一方发起。如图29(a)所示: * 主机A 首先向主机B 发出连接请求报文段,其首部的SYN 同步位为1,同时选择一个 序号x; * 主机B 收到此连接请求报文后,若同意建立连接,则向主机A 发连接响应报文段。在 响应报文段中,SYN 同步位为1,确认序号为x+1,同时也为自己选择一个序列号y; * 主机A 收到此确认报文后,也向主机B 确认,这时,序号为x+1,确认序号为y+1 。 当连接建立后,A、B 主机就可以利用TCP 进行数据传输了。 图29 TCP 的连接和释放 (3)TCP 连接的释放 在数据传输结束后,任何一方都可以发出释放连接的请求,释放连接采用所谓的 “四次 握手”方法。如图29(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 能提供全双工通信,因此,通信中的每一方不必专门发送确认报文段,而可以 在发送数据时,捎带传送确认信息,以此来提高传输效率。 截获报文结果如下seq 为报文的编号(本机第一个编号随机生成,后面是有规律的)相对 0 seq=0syn=1是请求建立连接客户端返回数据的报文编号也是第一次 为0要画三次握手的图FIN为1是请求关闭连接报文编号是前报文编号加数据长度(DATA)第一次是敏感期不能丢报文同步位 SYN=1 时,表明该报文段是一个连接请求或连接响应报文2. 实验小结 通过这次实验可以加深对TCP三次握手规则的理解,并了解到TCP释放时的四次握手规则,让我们从课本上走向了实践中来,对动手能力有了很大的提高。四、应用层协议分析 1HTTP 协议简HTTP 是超文本传输协议 (Hyper Text Transfer Protocol)的缩写,用于WWW 服务。 (1)HTTP 的工作原理 HTTP 是一个面向事务的客户服务器协议。尽管HTTP 使用TCP 作为底层传输协议,但 HTTP 协议是无状态的。也就是说,每个事务都是独立地进行处理。当一个事务开始时,就 在万维网客户和服务器之间建立一个TCP 连接,而当事务结束时就释放这个连接。此外,客 户可以使用多个端口和和服务器 (80 端口)之间建立多个连接。其工作过程包括以下几个阶段。 服务器监听TCP 端口 80,以便发现是否有浏览器 (客户进程)向它发出连接请求; 一旦监听到连接请求,立即建立连接。 浏览器向服务器发出浏览某个页面的请求,服务器接着返回所请求的页面作为响应。 释放TCP 连接。 在浏览器和服务器之间的请求和响应的交互,必须遵循HTTP 规定的格式和规则。 当用户在浏览器的地址栏输入要访问的HTTP 服务器地址时,浏览器和被访问HTTP 服 务器的工作过程如下: 浏览器分析待访问页面的URL 并向本地DNS 服务器请求IP 地解析; DNS 服务器解析出该HTTP 服务器的IP 地址并将IP 地址返回给浏览器; 浏览器与HTTP 服务器建立TCP 连接,若连接成功,则进入下一步; 浏览器向HTTP 服务器发出请求报文 (含GET 信息),请求访问服务器的指定页面; 服务器作出响应,将浏览器要访问的页面发送给浏览器,在页面传输过程中,浏览 器会打开多个端口,与服务器建立多个连接; 释放TCP 连接; 浏览器收到页面并显示给用户。 (2)HTTP 报文格式 HTTP 有两类报文:从客户到服务器的请求报文和从服务器到客户的响应报文。图 5.46 显示了两种报文的结构。 图46 HTTP 的请求报文和响应报文结构 在图46 中,每个字段之间有空格分隔,每行的行尾有回车换行符。各字段的意义如下: 请求行由三个字段组成: * 方法字段,最常用的方法为 “GET”,表示请求读取一个万维网的页面。常用的方法 还有 “HEAD(指读取页面的首部)”和“POST(请求接受所附加的信息); * URL 字段为主机上的文件名,这时因为在建立TCP 连接时已经有了主机名; * 版本字段说明所使用的HTTP 协议的版本,一般为 “HTTP/1.1”。 状态行也有三个字段: * 第一个字段等同请求行的第三字段; * 第二个字段一般为 “200”,表示一切正常,状态码共有41 种,常用的有:301 (网站已转移),400(服务器无法理解请求报文),404(服务器没有锁请求的对象)等; * 第三个字段时解释状态码的短语。 根据具体情况,首部行的行数是可变的。请求首部有Accept 字段,其值表示浏览器 可以接受何种类型的媒体;Accept-language,其值表示浏览器使用的语言;User-agent 表明可用的浏览器类型。响应首部中有Date、Server、Content-Type、Content-Length 等字

温馨提示

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

评论

0/150

提交评论