77范文网 - 专业文章范例文档资料分享平台

实验二 传输层协议分析

来源:网络收集 时间:2020-06-24 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

实验二 传输层协议分析

专业班级 实验学时 实验时间 实验成绩 4 学 号 实验类型 指导老师 综合 姓 名 实验地点 数计学院实验中心 年 月 日 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 15 31 源端口 目的端口 序号 确认号 头部 长度(4bit) 保留 U A P R S F R C S S Y I G K H T N 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次握手”。如图

ABFIN,SEQ-XACK,SEQ=Y,ACK=X+1FIN,ACK,SEQ=Y,ACK=X+1①②通知主机应用进程确认 应用进程释放连接B不再发送报文 应用进程释放连接A不再发送报文确认ACK,SEQ=X+1,ACK=Y+1

图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.sina.com.,完成后,保存截获的报文并命名为“TCP学号”,分析捕获的报文。

这里,TCP的连接和建立采用的是:三次握手方式,本机是120.192.249.45,远端主机是111.20.240.144。

步骤3 分析TCP连接建立过程的前3个报文,填写下表1:

表1 TCP建立过程的三个报文信息

字段名称 报文序号 Sequence Nunber ACK Number ACK SYN 第一条报文 6182 375 157 1 1 第二条报文 6282 375 157 376 1 第三条报文 6382 157 1 1 1

步骤4 分析截获报文中数据发送部分的第一条TCP报文及其确认报文,将报文中的字段值填写在表格2

表2 TCP报文首部信息 字段 版本 头长 服务类型 总长度 标识 标志 片偏移 生存周期 协议 校验和 源地址 目的地址

表2 TCP报文首部信息 字段名 源端口(80) 目标端口(52159) 序号 长度(bytes) 16 16 32 字段值 发送报文 确认报文 发送 确认 端口号是唯一标识 字段意义 报文信息 4 20 bytes 0x00 40 0x0210 0 64 TCP 0x2828 10.63.50.241 111.13.100.91 说明 528 6 Validation disabled 192.168.3.185 192.168.3.255 确认号 头部长度(4bit) 保留 窗口 校验和 紧急指针 选项(长度可变) 填充 32 4 6 16 16 16 确认 保留字段 可有可无 步骤5 TCP连接建立时,其报文首部与其它TCP报文不同,有一个字段,它的作用是什么?结合IEEE802.3协议规定的以太网最大帧长分析此数据是怎么得出来的? 答:option选项字段实现的是特殊功能。比如时间截,SACK,MAX SEGMENT 步骤6分析TCP数据传送阶段的前8个报文,将报文信息填入表3:

表3 TCP数据传送部分的前8个报文 报文序号 6082 6182 6382 6482 6582 6682 6782 6882 报文种类 发送 发送 确认 发送 发送 确认 发送 发送 序号字段 1 566 1 2026 3486 1 4946 6460 确认号字段 1 1 566 1 1 2026 1 1

数据长度 566 1460 0 1460 1460 0 1460 1460 被确认报文序号 6182 6582 窗口 6144 7168 66300 6524 65924 7168 7168 0 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; };

2)构建UDP报文数据 int build_udp_Package(struct socket_pair * sp,const unsigned char *buf,int len,unsigned char *udpPacket[],int *udpPacketLen){ } //UDP中校验使用的伪首部 struct pseudo_header{ int srcIp; 1. 2. 3. 4. 5. 6. 7. 8. 9. }; int dstIp; short udp_len; char rsv; char protocol; unsigned short src_port; unsigned short dst_port; unsigned short len; unsigned short check_sum; char data[2];

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库实验二 传输层协议分析在线全文阅读。

实验二 传输层协议分析.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1125010.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: