实验3 UDP与TCP协议
【实验目的】
1、理解UDP协议的工作原理及工作过程;
2、掌握UDP的数据包格式;
3、了解基本的端口分配。
4、掌握TCP协议的工作原理;
5、理解TCP协议的通信过程。
【实验学时】
4学时
【实验类型】
综合型
【实验内容】
1、学习UDP协议的通信过程;
2、学会手工计算UDP校验和;
3、理解TCP首部中各字段的含义及作用;
4、理解三次握手的过程;
5、能够分析TCP协议的建立连接、会话和断开连接的全过程;
6、学会计算TCP校验和的方法;
7、了解TCP的标志字段的作用。
【实验原理】
一、UDP协议
UDP是面向非连接的协议,发送端与接收端在传输数据包之前不建立连接,而只是简单地把数据包发送到网络上,或者从网络上接收数据包。UDP提供不可靠的数据传输服务。
1、UDP封装在IP数据报
图1 UDP的封装
2、UDP字段组成
图2 UDP分组格式
3、关于UDP“校验和”的计算方法
尽管UDP校验和的基本计算方法与IP首部“校验和”的计算方法类似(16bit的二进制反码和),但是它们之间存在不同的地方。
首先,UDP数据报长度可以为奇数字节,但是“校验和”的算法是把若干个16bit字相加。解决方法是必要时在最后增加填充字节0,这只是为了“校验和”的计算(也就是说,可能增加的填充字节不被传送)。
其次,UDP数据报包含一个12字节长的伪首部,它是为了计算“校验和”而设置的。伪首部包含IP首部一些字段。其目的是让UDP两次检查数据是否已经正确到达目的地。发送时不用传送伪首部,但接收时将IP头中的信息构建伪首部,然后计算“校验和”用以判错。
UDP“校验和”是一个端到端的“校验和”。它由发送端计算,然后由接收端验证。其目的是为了发现UDP首部和数据在从发送端到接收端之间发生的任何改动。
UDP数据报中的伪首部格式如图5-3:
图3 UDP分组的伪首部
二、TCP协议
TCP协议是面向连接的、端到端的可靠传输协议,它支持多种网络应用程序。TCP必须解决可靠性,流量控制的问题,能够为上层应用程序提供多个接口,同时为多个应用程序提供数据,TCP也必须能够解决通信安全性的问题。
1、TCP的封装
图4 TCP的封装
2、TCP首部格式:
各字段含义:
16位源端口号和16位目的端口号:端口号通常也称为进程地址。
32位序号:序号用来标识从TCP发送端向TCP接收端发送的数据字节流。
32位确认序列号:表示一个准备接收包的序列号。
4位首部长度:首部长度指出了首部中32 bit字的数目。正常的TCP首部长度是20字节。
6个标志字段:U R G 紧急指针;A C K 确认序号;P S H 推标志;R S T 重建连接;S Y N 同步序号;F I N 结束标志。
16位窗口:TCP的流量控制由连接的每一端通过声明的滑动窗口大小来提供,窗口大小为字节数。
16位检验和:检验和字段覆盖了TCP首部和TCP数据。TCP检验和的计算方法和UDP检验和的计算方法一样,计算时需要考虑伪报头。
16位紧急指针:URG标志置1时紧急指针才有效。
图5 TCP分组格式示意图
【实验步骤】
一、UDP协议练习
练习1:编辑并发送UDP数据包
实验3 UDP协议与TCP协议 来自淘豆网m.daumloan.com转载请标明出处.