Wireshark简介


更多有关Wireshark的教程、软件下载等,请见:http://www.52im.net/thread-259-1-1.html,本文只作简要介绍。

1Wireshark 是什么?


Wireshark 是最著名的网络通讯抓包分析工具。功能十分强大,可以截取各种网络封包,显示网络封包的详细信息。

你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样(当然比那个更高级)。过去的此类工具要么是过于昂贵,要么是属于某人私有,或者是二者兼顾。 Wireshark出现以后,这种现状得以改变。 Wireshark可能算得上是今天能使用的最好的开源网络分析通讯抓包分析工具软件。

2Wireshark的使用对象


Wireshark可以用在许多场合下,以下只是典型的使用对象举例:

  • 用来解决网络问题网络管理员;
  • 用来检测安全隐患网络安全工程师;
  • 用来测试诸如即时通讯软件的协议执行情况的开发人员;
  • 用来学习网络通讯协议的学习、教师或爱好者。


使用wireshark的人必须了解网络协议,否则就看不懂wireshark了。据说,华为、中兴的大部分工程师都会用到wireshark。

相关资源


你也可查看即时通讯网(52im.net)的另一篇同类文章《理论经典:TCP协议的3次握手与4次挥手过程详解》:http://www.52im.net/thread-258-1-1.html

更多资料请查阅《TCP/IP 详解》这本书,目前即时通讯网(52im.net)已整理出了在线阅读版。经典著作,值得收藏和随时查阅,地址是:http://www.52im.net/topic-tcpipvol1.html

TCP/IP协议族


TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负责不同的通信功能。包含以下四个层次:

http://www.52im.net/thread-180-1-1.html)

TCP协议简介


TCP是一种面向连接(连接导向)的、可靠的基于字节流的传输层通信协议。TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到的数据进行确认、对失序的数据重新排序、丢弃重复数据。

TCP的特点有:

  • TCP是面向连接的运输层协议
  • 每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
  • TCP提供可靠交付的服务
  • TCP提供全双工通信。数据在两个方向上独立的进行传输。因此,连接的每一端必须保持每个方向上的传输数据序号。
  • 面向字节流。面向字节流的含义:虽然应用程序和TCP交互是一次一个数据块,但TCP应用程序交下来的数据仅仅是一连串的无结构的字节流。


TCP报文首部,如下图所示:(您也可参见《TCP/IP详解》这本书里的对应介绍:http://docs.52im.net/extend/docs/book/tcpip/vol1/17/#h17_3

 

通过Wireshark来理解TCP 3次握手过程


TCP建立连接时,会有三次握手过程,如下图所示,wireshark截获到了三次握手的三个数据包。第四个包才是http的,说明http的确是使用TCP建立连接的。

 

下面来逐步分析三次握手过程。

1第一次握手


客户端向服务器发送连接请求包,标志位SYN(同步序号)置为1,序号为X=0。

 

2第二次握手


服务器收到客户端发过来报文,由SYN=1知道客户端要求建立联机。向客户端发送一个SYN和ACK都置为1的TCP报文,设置初始序号Y=0,将确认序号(Acknowledgement Number)设置为客户的序列号加1,即X+1 = 0+1=1, 如下图。

 

3第三次握手


客户端收到服务器发来的包后检查确认序号(Acknowledgement Number)是否正确,即第一次发送的序号加1(X+1=1)。以及标志位ACK是否为1。若正确,服务器再次发送确认包,ACK标志位为1,SYN标志位为0。确认序号(Acknowledgement Number)=Y+1=0+1=1,发送序号为X+1=1。客户端收到后确认序号值与ACK=1则连接建立成功,可以传送数据了。

 

通过Wireshark来理解TCP 4次挥手过程


TCP断开连接时,会有四次挥手过程,如下图所示,wireshark截获到了四次挥手的四个数据包。

 

下面来逐步分析四次挥手过程。

1第一次挥手


客户端给服务器发送TCP包,用来关闭客户端到服务器的数据传送。将标志位FIN和ACK置为1,序号为X=1,确认序号为Z=1。

 

2第二次挥手


服务器收到FIN后,发回一个ACK(标志位ACK=1),确认序号为收到的序号加1,即X=X+1=2。序号为收到的确认序号=Z。

 

3第三次挥手


服务器关闭与客户端的连接,发送一个FIN。标志位FIN和ACK置为1,序号为Y=1,确认序号为X=2。

 

4第四次挥手


客户端收到服务器发送的FIN之后,发回ACK确认(标志位ACK=1),确认序号为收到的序号加1,即Y+1=2。序号为收到的确认序号X=2。

原文: http://blog.csdn.net/yanxi252515237/article/details/51955675

 

相关文章:

  • 2022-01-06
  • 2021-12-19
  • 2021-07-18
  • 2021-04-04
  • 2021-08-27
  • 2021-05-10
  • 2022-12-23
  • 2021-12-27
猜你喜欢
  • 2022-12-23
  • 2021-11-06
  • 2021-05-05
  • 2021-04-10
  • 2021-10-02
  • 2021-10-30
  • 2021-05-11
相关资源
相似解决方案