实验3 UDP协议与TCP协议
tcp协议与udp协议的区别

TCP协议与UDP协议的区别1. 概述TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是互联网传输层常用的两种协议。
它们在传输数据时有着不同的特点和用途。
本文将详细介绍TCP协议和UDP协议的区别。
2. 连接性TCP是一种面向连接的协议,而UDP是一种无连接的协议。
在使用TCP协议传输数据之前,发送方和接收方需要先建立一个连接,而使用UDP协议则不需要。
3. 可靠性TCP协议提供可靠的数据传输。
它使用确认和重传机制来确保数据的完整性和正确性。
如果数据包丢失或损坏,TCP会自动重新发送丢失的数据。
而UDP协议不提供可靠性,它只是简单地将数据包发送出去,并不关心是否能够成功到达接收方。
4. 速度由于TCP协议的可靠性机制会引入较多的开销,因此在速度方面,UDP协议要比TCP协议快。
UDP没有拥塞控制和流量控制等机制,使得它的传输效率更高。
因此,对于一些实时性要求较高的应用场景(如视频直播、实时游戏等),通常会选择使用UDP协议。
5. 数据量限制TCP协议没有固定的数据包大小限制,它会根据网络的情况和其他因素自动调整数据包的大小。
而UDP协议每个数据包的大小被限制在64KB以内。
当数据量超过UDP的限制时,需要将数据分割成多个数据包进行传输。
6. 适用场景TCP协议适用于对数据可靠性要求较高的应用场景,如文件传输、电子邮件等。
由于TCP协议提供了流量控制和拥塞控制等机制,它能够保证数据的正确有序地传输。
而UDP协议适用于实时性要求较高的应用场景,如音频、视频的实时传输等。
由于UDP的传输效率高,能够更好地满足实时性要求。
7. 安全性由于TCP协议具有可靠性和连接性,它在安全性方面相对于UDP更加可靠。
TCP协议可以使用加密算法对数据进行加密传输,从而保证数据的安全性。
而UDP协议没有内置的加密机制,传输的数据相对较为不安全。
8. 应用示例TCP协议广泛应用于Web浏览器与服务器的通信、文件传输协议(FTP)等。
[vip专享]UDP和TCP网络实验报告
![[vip专享]UDP和TCP网络实验报告](https://img.taocdn.com/s3/m/9820d415b307e87101f69657.png)
43m1m“-”J520Gm01m24“492k-Z(1)g2L3-”3060@k%3-g“/1”7mD2%BJ/Tg0d1-ZP318¬-A_2"o70)Xc0?y258z6n”217 NE)
import .InetAddress; import .SocketException;
public class UdpSendDemo1 {
/** * @param args * @throws IOException */
public static void main(String[] args) throws IOException {
/** * 需求:通过UDP发送一段信息给指定主机 */
package .udp; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import .DatagramPacket; import .DatagramSocket;
通本实验深入理解tcpБайду номын сангаасudp协议的异同点了解网络协议的工作过程学会网络通讯编程的基本方法能够编制网络应用程序
计算机网络实验报告
--TCP/UDP 网络通信
班级: 姓名: 学号:
1
43m1m“-”5J2Gm001m244“92Zk-(1g2L)33-0”@6%0k3g-“1/”m7D%2BJ/Tg0d1Z-P318¬A-_2o"70X)c0?y2586zn”217 NE)
byte [] data =dp.getData();
String text =new String(data, 0, dp.getLength());
UDP协议和TCP协议

UDP协议和TCP协议一、协议介绍UDP(User Datagram Protocol)协议和TCP(Transmission Control Protocol)协议是互联网传输层的两种常用协议。
它们都是在IP(Internet Protocol)协议的基础上进行的开发,用于在网络中传输数据。
本协议旨在详细描述UDP协议和TCP协议的基本特点、使用场景、数据传输方式、可靠性以及优缺点等方面。
二、UDP协议1. 基本特点UDP协议是一种无连接的传输协议,不需要在发送数据之前先建立连接。
它提供了一种简单的、不可靠的数据传输方式,适用于对实时性要求较高、对数据可靠性要求较低的应用场景。
2. 使用场景UDP协议常用于音频、视频和实时游戏等需要快速传输的应用中。
由于UDP 协议不需要建立连接和维护状态,因此在网络负载较高的情况下,UDP协议的性能更好。
3. 数据传输方式UDP协议采用数据报方式进行数据传输。
发送方将数据分割成小的数据报,每个数据报都带有源端口和目标端口信息,然后通过网络独立传输。
接收方根据端口信息将数据报重新组装成完整的数据。
4. 可靠性UDP协议不提供可靠性保证,因此在数据传输过程中可能会出现丢包、重复包和乱序等问题。
为了提高可靠性,应用层可以自行实现重传、确认和校验等机制。
5. 优缺点UDP协议的优点是传输速度快、实时性高,适用于对数据可靠性要求较低的应用。
缺点是不提供可靠性保证,需要应用层进行额外的处理。
三、TCP协议1. 基本特点TCP协议是一种面向连接的传输协议,通过三次握手建立连接,并提供可靠的数据传输。
它适用于对数据可靠性要求较高的应用场景。
2. 使用场景TCP协议常用于文件传输、电子邮件和网页浏览等需要可靠传输的应用中。
由于TCP协议提供了可靠性保证,因此在网络负载较高的情况下,TCP协议的性能相对较低。
3. 数据传输方式TCP协议采用字节流方式进行数据传输。
发送方将数据拆分成多个数据段,并通过网络按序传输。
实验三、TCP协议与UDP协议分析实验

实验三、TCP协议与UDP协议分析实验
一、实验目的
1、理解TCP协议包格式和工作原理,理解TCP连接的建立和释放过程。
2、理解UDP协议包格式。
二、实验类型
验证类实验
三、实验课时
2学时
四、实验原理
2、TCP连接的建立
TCP是面向连接的协议。
在面向连接的环境中,开始传输数据之前,在两个终端之间必须先建立一个连接。
对于一个要建立的连接,通信双方必须用彼此的初始化序列号seq和来自对方成功传输确认的应答号ack(指明希望收到的下一个八位组的编号)来同步,习惯上将同步信号写为SYN,应答信号写为ACK。
整个同步的过程称为三次握手,如下图。
3、TCP连接的释放
对于一个已经建立的连接,TCP使用四次握手来结束通话(使用一个带有FIN附加标记的报文段)。
五、实验步骤
1、主机A运行协议分析软件wireshark,打开捕获窗口进行数据捕获。
2、在主机B上启动TELNET服务,从主机A上向主机B发起telnet连接登陆到B上,并进行有关操作(如dir,cd / 等),然后退出telnet,捕获通信过程中的TCP数据包,记录并分析各字段的含义,并与TCP数据包格式进行比较。
3、查看TCP连接的建立过程,分析并画出三次握手的连接过程图。
4、查看TCP连接的释放过程,分析并画出连接释放的过程图。
5、在主机A的DOS仿真环境下,运行net send 命令向主机B发送一个UDP消息,捕获UDP数据包,记录并分析各字段的含义,并与UDP数据包格式进行比较。
六、实验结果。
主要协议分析实验报告(3篇)

第1篇一、实验背景随着计算机网络技术的飞速发展,网络协议作为计算机网络通信的基础,扮演着至关重要的角色。
为了更好地理解网络协议的工作原理和功能,我们开展了主要协议分析实验。
本实验旨在通过分析常用网络协议的报文格式和工作机制,加深对网络协议的理解。
二、实验目的1. 熟悉常用网络协议的报文格式和工作机制。
2. 掌握网络协议分析工具的使用方法。
3. 培养网络故障排查和问题解决能力。
三、实验环境1. 实验设备:PC机、网线、Wireshark软件。
2. 实验网络:局域网环境,包括路由器、交换机、PC等设备。
四、实验内容本实验主要分析以下协议:1. IP协议2. TCP协议3. UDP协议4. HTTP协议5. FTP协议五、实验步骤1. IP协议分析(1)启动Wireshark软件,选择合适的抓包接口。
(2)观察并分析IP数据报的报文格式,包括版本、头部长度、服务类型、总长度、标识、标志、片偏移、生存时间、协议、头部校验和、源IP地址、目的IP地址等字段。
(3)分析IP分片和重组过程,观察TTL值的变化。
2. TCP协议分析(1)观察TCP数据报的报文格式,包括源端口号、目的端口号、序号、确认号、数据偏移、标志、窗口、校验和、紧急指针等字段。
(2)分析TCP连接建立、数据传输、连接终止的过程。
(3)观察TCP的重传机制和流量控制机制。
3. UDP协议分析(1)观察UDP数据报的报文格式,包括源端口号、目的端口号、长度、校验和等字段。
(2)分析UDP的无连接特性,观察UDP报文的传输过程。
4. HTTP协议分析(1)观察HTTP请求报文和响应报文的格式,包括请求行、头部字段、实体等。
(2)分析HTTP协议的请求方法、状态码、缓存控制等特性。
(3)观察HTTPS协议的加密传输过程。
5. FTP协议分析(1)观察FTP数据报的报文格式,包括命令、响应等。
(2)分析FTP的文件传输过程,包括数据传输模式和端口映射。
TCPUDP协议分析实验

TCPUDP协议分析实验TCP和UDP是网络传输中最常用的两个协议。
它们都属于传输层协议,但是在很多方面有着不同的特点和用途。
为了更好地理解这两个协议的工作原理和性能表现,我们可以进行一些实验来分析它们。
首先,我们可以比较TCP和UDP的连接建立过程。
TCP是一种面向连接的协议,连接的建立需要三次握手,而UDP是无连接的协议,不需要建立连接。
在实验中,我们可以编写一个客户端和一个服务器端来模拟TCP和UDP连接建立过程,并分析连接的建立时间和所占用的网络资源。
从实验结果可以看出,TCP的连接建立时间通常比UDP要长,因为它需要进行三次握手的过程来确保连接的可靠性,而UDP直接发送数据包,不进行握手过程。
其次,我们可以比较TCP和UDP在数据传输过程中的可靠性。
TCP是一种可靠的协议,它使用了序列号、确认应答和重传等机制来确保数据的可靠传输。
而UDP是一种不可靠的协议,它不会对数据进行检查和重传,只是简单地将数据发送给接收方。
在实验中,我们可以通过在网络中引入一些丢包或延迟的条件来模拟不同的网络环境,然后观察TCP和UDP的表现。
从实验结果可以看出,TCP在丢包或延迟的情况下仍能保证数据的可靠传输,而UDP在这种情况下可能会丢失一些数据。
另外,我们还可以比较TCP和UDP的传输效率。
TCP使用了拥塞控制和流量控制等机制来优化传输效率,但是也会因此增加了一些额外的开销。
而UDP没有这些机制,所以在传输效率方面可能会更高。
在实验中,我们可以通过在网络中增加一些流量或者限制带宽等条件来模拟不同的网络负载,并分析TCP和UDP的传输速度。
从实验结果可以看出,UDP在传输效率方面通常比TCP要高,但是也会因为没有拥塞控制而可能导致网络的拥堵。
最后,我们还可以比较TCP和UDP在不同应用场景下的适用性。
TCP 适用于对数据可靠性要求较高的应用,例如文件传输和网页浏览等。
而UDP适用于对实时性要求较高的应用,例如视频流和音频传输等。
UDP协议和TCP协议

UDP协议和TCP协议协议名称:UDP协议和TCP协议1. 引言本协议旨在详细描述用户数据报协议(UDP)和传输控制协议(TCP)的基本原理、特点、功能以及使用场景。
UDP和TCP是两种常用的传输层协议,用于在计算机网络中传输数据。
本协议将从协议的定义、特点、功能、优缺点、使用场景等方面进行详细阐述。
2. 协议定义2.1 UDP协议UDP是一种无连接的传输协议,它将数据分割成小的数据报并通过网络传输。
UDP协议提供了简单的数据传输服务,但不保证数据的可靠性和顺序。
2.2 TCP协议TCP是一种面向连接的传输协议,它提供了可靠的数据传输服务。
TCP协议通过三次握手建立连接,并使用流控制、拥塞控制等机制来保证数据的可靠性和有序性。
3. 协议特点3.1 UDP协议特点- 无连接:UDP协议不需要在发送数据前建立连接,减少了连接的时间和开销。
- 快速:UDP协议没有TCP协议的一些机制,使得传输速度更快。
- 不可靠:UDP协议不保证数据的可靠性,数据包可能丢失、重复或乱序。
- 无拥塞控制:UDP协议没有拥塞控制机制,可能导致网络拥塞。
3.2 TCP协议特点- 面向连接:TCP协议在传输数据前需要建立连接,保证了数据的可靠性和有序性。
- 可靠:TCP协议通过确认和重传机制,保证数据的可靠性。
- 慢启动和拥塞控制:TCP协议具有慢启动和拥塞控制机制,可以避免网络拥塞。
- 有序性:TCP协议保证数据按照发送顺序到达目的地。
4. 协议功能4.1 UDP协议功能- 数据传输:UDP协议可以快速地传输数据,适用于实时性要求较高的应用,如音频和视频传输。
- 广播和多播:UDP协议支持广播和多播,可以同时向多个主机发送数据。
- 无连接性:UDP协议不需要建立连接,适用于一对多的通信模式。
4.2 TCP协议功能- 数据传输:TCP协议提供可靠的数据传输,适用于对数据完整性要求较高的应用,如文件传输。
- 流控制:TCP协议通过滑动窗口机制控制发送和接收数据的速度,避免了数据丢失和网络拥塞。
TCP_UDP通信过程学习及实验报告[五篇]
![TCP_UDP通信过程学习及实验报告[五篇]](https://img.taocdn.com/s3/m/b3fd9cca900ef12d2af90242a8956bec0975a5e5.png)
TCP_UDP通信过程学习及实验报告[五篇]第一篇:TCP_UDP通信过程学习及实验报告1.当两台计算机分别和中继器、二层交换机、三层交换、路由器相连时,请分别画出计算机与交换设备五层参考模型;计算机A应用层计算机B应用层传输层传输层网络层网络层数据链路层数据链路层中继器物理层物理层物理层计算机A应用层计算机B应用层传输层传输层网络层二层交换机数据链路层网络层数据链路层数据链路层物理层物理层物理层计算机A应用层计算机B应用层传输层三层交换机网络层传输层网络层网络层数据链路层数据链路层数据链路层物理层物理层物理层计算机A应用层计算机B应用层传输层路由器网络层传输层网络层网络层数据链路层数据链路层数据链路层物理层物理层物理层2.学习SOCKET编程,写出TCP、UDP通信流程;将实例程序两个同学一组,实现两台计算机之间通信。
并写出学习报告;(a)TCP通信流程准备阶段:服务器程序首先进行初始化操作:(1)调用socket创建一个套接字(2)函数bind将这个套接字与服务器公认地址绑定在一起(3)函数listen将这个套接字转换成倾听套接字(listening socket)(4)调用函数accept来接受客户机的请求。
客户机程序初始化操作:(1)客户机调用函数socket创建一个套接字(2)调用函数connect 来与服务器建立连接。
连接建立之后,客户机与服务器通过读(read())、写(write())套接字来进行通信。
如下图:服务器端SocketTCP通信流程客户端bindSocketListenconnectwritesendsendwritecloseclose(b)UDP通信流程准备阶段:服务器程序首先进行初始化操作:(1)调用socket创建一个套接字(2)函数bind将这个套接字与服务器公认地址绑定在一起客户机程序初始化操作:(1)客户机调用函数socket创建一个套接字客户机与服务器通过读(sendto())、写(recvfrom())套接字来进行通信。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验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的封装UDP字段组成2、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时紧急指针才有效。
1161732图5 TCP分组格式示意图【实验步骤】一、UDP协议练习练习1:编辑并发送UDP数据包1、打开协议仿真编辑器,在工具栏选择“新建”,建立一个以太网帧(也可以利用协议仿真编辑器打开时默认的以太网帧进行编辑);2、填写该帧的以太网协议首部:⑴源MAC地址:发送方的MAC地址;⑵目的MAC地址:接收方的MAC地址。
注意:当选择的目的主机与本机不在同一子网的情况,目的MAC地址该怎样填写;⑶类型或长度:该字段值应为0800(即IP协议的类型值);3、填写IP协议头信息:⑴高层协议字段:即上层协议类型应为17(UDP协议的类型为17);⑵总长度字段:应包括UDP长度;⑶填写源、目的IP地址;⑷计算IP头校验和。
4、填写UDP协议信息,见图6:⑴16位源端口号:自选⑵16位目的端口号:自选(对于本实验,选择大于1024)⑶16位UDP长度:UDP报头长度(8个字节)与UDP数据长度之和。
⑷校验和:覆盖UDP首部(含伪首部)和数据两部分。
⑸数据字段:可有可无。
图6 UDP 协议树示意图⑹校验和的计算方法:请先参考原理的内容进行手工计算,然后利用协议仿真编辑器来计算(方法二),比较二者的结果,检验手工计算结果的正确性。
5、“校验和”的计算⑴方法一:手工计算按照参考原理3中介绍的内容,计算好UDP 伪首部和首部中的各项值,然后按16bit 进行反码求和(方法同计算IP 校验和),将结果填入相应字段。
⑵方法二:利用协议仿真编辑器来计算。
步骤为:①将UDP 长度填写到16位UDP 校验和字段中作为伪首部中UDP 长度字段值;②选中IP 首部中的32位源IP 地址和32位目的IP 地址作为UDP 伪首部中的32位源IP 地址和32位目的IP 地址;③选中IP 首部中8位的协议字段作为UDP 伪首部中的8位的协议字段;④在8位的协议字段之前选择一个8位的0作为UDP 伪首部中的8位0;⑤再选中UDP 首部及数据各字段;⑥点击鼠标右键,选择“计算校验和”;⑦将得到的校验和值填写到16位UDP 校验和字段。
下面是一个计算UDP 校验和的例子:一个不含数据部分的UDP 数据报的十六进制对照表如下:其中含有MAC 地址和IP 首部: IP首部UDP类型UDP部分00 01 02 03 04 05 06 07 08 09 0A 0B 08 00 45 0000 4F 94 48 40 00 80 11 E4 9D C0 A8 00 20 C0 A800 52 00 00 00 00 00 08 00 08目的IP地址图7 计算UDP 检验和示意图其中下划线部分为用来计算校验和的UDP 伪首部和UDP 首部,其中:00 11(十进制的17):为UDP 伪首部中8位的0和8位的协议字段;C0 A8 00 20:为UDP 伪首部中32位源IP 地址;C0 A8 00 52:为UDP 伪首部中32位目的IP 地址;00 00 00 00 00 08 00 08:为8字节的UDP 首部;由于缺少伪首部中16位UDP 长度,故该值暂时存放在16位UDP 校验和字段中,在本例中该值为00 08。
对上述选中部分计算校验和即可。
⑶方法三:利用协议仿真编辑器来计算。
步骤为:①先计算UDP校验和,后计算IP校验和;②将0011添到IP头校验和字段中作为UDP伪首部中的8位0和8位的协议字段;③将UDP长度填写到16位UDP校验和字段作为伪首部中UDP长度字段值;④从IP校验和字段开始选中直到UDP尾;⑤点击鼠标右键,选择“计算校验和”。
将计算结果添到UDP校验和字段中;⑥将IP校验和字段清零,计算IP头的校验和;⑦将得到的IP校验和值填写到IP头的16位校验和字段中。
如果要发送多个UDP数据报,可重复上述步骤,并可在多帧编辑器中设置每一帧的发送次数和发送每帧的时间间隔;5、点击工具栏或菜单栏中的“发送”,在弹出对话框中选择“发送”按钮,发送UDP报文;6、在协议分析器一端截获相应的报文并分析,注意观察“会话分析”中的UDP会话过程。
7、将编辑正确的UDP数据报保存到文件:UDP.pkt。
练习2:编辑并发送UDP广播包1、实验步骤同上;注意:以太网协议首部中的目的MAC地址应怎样填写?IP首部中的目的IP地址该怎样填写?2、在协议分析器一端截获相应的报文并分析。
练习3:运行netstat命令netstat命令是用于显示网络使用协议的统计;1、在命令行方式下运行:netstat –s ;显示每个协议的使用状态,观察UDP协议的使用情况。
2、在命令行方式下运行:netstat –a ;显示所有主机的端口号,观察与UDP协议相关的内容。
二、TCP协议练习注意:本实验要求服务器端启动TELNET服务。
练习1:运行netstat命令1、在浏览器的地址栏输入:,在命令行下输入: netstat -n 回车。
2、观察TCP状态,记录Local Address、Foreign Address和State。
3、在浏览器的地址栏输入:,在命令行下输入: netstat -n 回车。
4、观察TCP状态,记录Local Address、Foreign Address和State。
5、再开一个命令行窗口,输入:telnet ,6、观察TCP状态,记录Local Address、Foreign Address和State。
7、三次记录有什么不同,为什么?8、使用带其他参数的netstat命令,查看网络状态。
例如:netstat –anetstat –b练习2:利用仿真编辑器编辑并发送TCP数据包说明:●在本实验中由于TCP连接有超时时间的限制,故仿真编辑器端和协议分析器端的两位同学要默契配合,某些步骤(如计算TCP校验和)要求熟练、迅速。
●为了实现TCP三次握手过程的仿真,发送第一个连接请求帧之前,应该暂停仿真编辑器端的TCP/IP协议(否则计算机系统的网络会对该请求帧的应答帧发出拒绝响应)。
●通过手工编辑TCP数据包实验,要求理解实现TCP连接建立、数据传输以及断开连接的全过程。
在编辑的过程中注意体会TCP首部中的序列号和标志位的作用。
首先选择服务器主机上的一个进程作服务器进程,并向该服务器进程发送一个建立连接请求报文,对应答的确认报文和断开连接的报文也编辑发送。
其步骤如下:1、打开协议仿真编辑器,在界面初始状态下,程序会自动新建一个单帧,可以利用协议仿真编辑器打开时默认的以太网帧进行编辑;2、填写该帧的以太网协议首部:⑴源MAC地址:本机MAC地址;⑵目的MAC地址:服务器的MAC地址;⑶类型或长度:0800,选择IP协议;3、填写IP协议头信息:⑴协议字段:协议类型值为6,即上层协议类型应为TCP;⑵总长度字段:修改IP总长度字段为40(20IP头部+20TCP头部);⑶计算IP头部校验和,应用前面学到的知识进行计算;⑷源IP地址:本机IP地址;⑸目的IP地址:服务器的IP地址;⑹其它字段任意;4、填写TCP协议信息:⑴源端口号:任意大于1024的数,不要用下拉选择;⑵目的端口号:可以设80(HTTP协议);⑶32位序号:选择一个序号ISN(假设1942589885),以后的数据都按照这个来填写;⑷32位确认序号:设置为0;⑸首部长度和标志位:首部长度和标志位设为5002(即长度20字节,标志SYN=1);⑹窗口大小:任意;⑺紧急指针:0;⑻校验和:覆盖TCP首部(包含伪首部)和TCP数据两部分,计算方法同UDP协议一样。
值得注意的是伪首部中的协议号是0006,而不是UDP时的0011;⑼将设置完成的数据帧复制3份;修改第二帧的TCP首部长度和标志位为5010(即标志位ACK=1),TCP层序号为1942589885+1。