赞
踩
- 理解并掌握TCP协议、UDP协议通信机制
- 熟悉使用抓包软件wireshark的流程和操作
- 学会分析连接时TCP三次握手过程
- 学会分析接收方如何应答
计算机,wireshark,Server.exe,Client.exe,textbook.txt
- TCP三次握手协议
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)
第二次握手:服务器收到syn包,必须确认客户的SYN(ACK=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手
- TCP四次握手
1.客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送
2.服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号
3.服务器B关闭与客户端A的连接,发送一个FIN给客户端A
4.客户端A发回ACK报文确认,并将确认序号设置为收到序号加1
设计思路:
1.首先要有两台计算机,一台作为客户端,一台作为服务端
2.假设有计算机1和计算机2。在计算机1上运行已有的Server.exe,并设置端口号;在计算机2上运行已有的Client.exe,输入计算机1的IP地址和设置的端口号,上传准备好的textbook.txt文件。
3.此时wireshark抓取发送的包,并显示,观察并分析已抓取的数据。
关键细节:第一,在打开Server.exe和Client.exe时,一定要先打开Server.exe,否则会出现错误;第二,在用Client.exe发送数据时,一定要先把wireshark打开,否则将抓不到
关键细节:
- 注意Server端设置的端口要与在Client中输入的端口号一致;
- 要先开wireshark开启捕获,再开Server.exe,最后开启Client.exe;
- textbook.txt文件最好要大一些,太小则可能会影响实验数据
当设置Server处端口设置为8888,block size为1,捕获条件为校园网下,host 10.33.114.39 and host 10.33.87.94时,结果如下
三次握手:
四次握手:
(block size为其它值时图略)
结果分析:
第一次握手:两台计算机建立连接时,客户端发送SYN包到服务器,并进入SYN_SENT状态,等待服务器确认;SYN就是同步序列编号,代表客户端请求连接。示例如图
第二次握手:
服务器收到SYN包,必须确认客户端的SYN,同时自己也民送一个SYN包,即SYN+ACK包,此时服务器进入SYN_RECV状态
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
服务端和客户端通信过程中,在三次握手完成后,连接建立,客户端开始向服务端传输发送的数据。而包的确认序号就是期望收到对方下一个报文段的第一个数据字节序号,从开始传输数据产生,序列号都是上一个确认序号加上上一个包的长度。
由下图可知,文件总长为16936字节不变,三次传输的分割尺度分别为1,1460和3000。相应的分割块数也是逐次递减,网络传输的数据块数是先增大后减小。但整体效率还是一致的
序号 | 文件分割尺度 | 文件总长 | 文件分割块数 | 经网络传输的数据块数 | 文件传输网络带宽效率 |
---|---|---|---|---|---|
1 | 1 | 16936 | 16936 | 16 | 16936/x*100%=98.5% |
2 | 1460 | 16936 | 12 | 22 | 16936/x*100%=98.5% |
3 | 3000 | 16936 | 6 | 17 | 16936/x*100%=98.5% |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。