(1)TCP首部格式

源端口:   用来传输数据报的端口

目标端口: 数据包将要发送到的端口

序号: 用来表示一个TCP片段。这个值用来表示数据流中的部分数据没有丢失

确认号:  表示通信中希望从另一个设备得到的下一个数据包的序号

数据偏移: 表示此块数据在整块数据中的偏移

保留: 包括Reserved, Nonce, CWR和ECN-Echo,共6个比特位

标记:用来表示所传输的TCP数据包类型。该字段中可用的标记包括URG, ACK, PSH, RST,    SYN, FIN

窗口: TCP接受者缓冲区的大小

检验和: 用来保证TCP首部和数据部分的完整性

紧急指针: 如果设置了URG位,这个值将被检查作为额外的指令

选项: 各种可选的域,可以在TCP数据包中进行指定

上面提到了TCP传输时,可用的标记有URG, ACK, PSH, RST, SYN, FIN。 下面分别介绍这几个标记

URG:    紧急标志。此标志表示TCP包的紧急指针域有效,用来保证TCP连接补被中断。

ACK:     确认标志。此标志表示应答域有效。1表示应答域有效,0表示无效

PSH:    此标志表示Push操作,所谓Push操作就是指在数据包到达接收端以后,立刻传送到应用程序,而不在缓冲区排队。

RST:    该标志表示连接复位请求。

SYN:    表示同步序号,用来建立连接。SYN标志位和ACK标志位搭配使用。当连接请求时SYN=1, ACK=0。 当连接被响应的时候,SYN=1, ACK=1.

FIN:     表示发送端已经达到数据的末尾,也就是说双方的数据传输完成,没有数据可以传输了。此时发送FIN标志位的TCP数据包后,连接将被断开。

(2)捕获TCP数据包

  TCP 端口
·1~1023 :标准端口组,特定服务会用到标准端口。
·1024~65535 :临时端口组,操作系统会随机地选择一个源端口让某个通信单独使用。

(3)TCP三次握手

第一次握手:SYN=1、ACK=0

第二次握手:Syn=1,Ack=1,Seq number=0,Ack number=1

第三次握手: Ack=1,Seq number=1,Ack number=1

(4)TCP的四次断开

(5)登陆成功,用户名和密码都是明文传输,显示Location字段

红色部分是客户端向服务器发送的请求

蓝色部分是服务器发送给客户端的数据

(6)登陆失败,并不显示Location字段

Wireshark分析之TCP协议(二)的更多相关文章

  1. 2.wireshark分析之TCP协议(一)

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

  2. TCP协议(二)——TIME_WAIT状态

    当TCP主动关闭套接字时,采用四步握手机制来彻底关闭连接.如图: 客户端主动关闭连接,发送FIN段到服务端.TCP状态由ESTABLISHED(连接状态)转为FIN_WAIT1(表示,发送的FIN需要 ...

  3. [转]使用wireshark分析TCP/IP协议中TCP包头的格式

    本文简单介绍了TCP面向连接理论知识,详细讲述了TCP报文各个字段含义,并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析. 一.概述 TCP是面向连接的可靠传输协议,两个进程互发数 ...

  4. FTP协议的粗浅学习--利用wireshark抓包分析相关tcp连接

    一.为什么写这个 昨天遇到个ftp相关的问题,关于ftp匿名访问的.花费了大量的脑细胞后,终于搞定了服务端的配置,现在客户端可以像下图一样,直接在浏览器输入url,即可直接访问. 期间不会弹出输入用户 ...

  5. wireshark tcp 协议分析 z

    虽然知道wireshark是抓包神器,只会大概大概用一下,还用一下下tcpdump,略懂一点BPF过滤器,也知道一点怎么用 wirkshark过滤相关的报文,但是对于详细的字段的含义,如何查看TCP的 ...

  6. wireshark tcp 协议分析

      虽然知道wireshark是抓包神器,只会大概大概用一下,还用一下下tcpdump,略懂一点BPF过滤器,也知道一点怎么用wirkshark过滤相关的报文,但是对于详细的字段的含义,如何查看TCP ...

  7. Wireshark抓包分析TCP协议

      版权声明:本文为作者原创文章,可以随意转载,但必须在明确位置表明出处!!! 之前有一篇文章介绍了http协议「初识http协议」, http协议协议是基于tcp协议的,所以作者觉得有必要针对tcp ...

  8. TCP协议基础知识及wireshark抓包分析实战

    TCP相关知识 应swoole长连接开发调研相关TCP知识并记录. 数据封包流程 如图,如果我需要发送一条数据给用户,实际的大小肯定是大于你发送的大小,在各个数据层都进行了数据的封包,以便你的数据能完 ...

  9. Linux网络编程--wireshark分析TCP包头的格式

    摘要:     本文简介了TCP面向连接理论知识,具体讲述了TCP报文各个字段含义.并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析. 一.概述     TCP是面向连接的可靠传输 ...

随机推荐

  1. 【Java NIO的深入研究5】字符集Charset

    Java 语言被定义为基于Unicode.一个字符实体由二个字节表示(如果是用UCS-2).但众多文件和数据流都是基于其它字符编码并以byte传输,操作文件内容就成了一个问题. 操作一个文件首先要对文 ...

  2. html文档流和事件流

    文档流: 标准文档流,float position: relative.absolute.fixed可以脱离标准文档流: 回归标准文档流: https://blog.csdn.net/Welkin_q ...

  3. Spring-Resource接口

    4.1.1 概述 在日常程序开发中,处理外部资源是很繁琐的事情,我们可能需要处理URL资源.File资源资源.ClassPath相关资源.服务器相关资源(JBoss AS 5.x上的VFS资源)等等很 ...

  4. MyEclipse安装EGit插件方法

    摘要: 先了解自己的MyEclipse是基于哪个版本的Eclipse优化的,然后到EGit网站找对应的EGit版本,下载压缩包,解压安装. 在网上看到有人说并不是任意版本的EGit插件都能适配你的My ...

  5. scala 官方教程

    http://zh.scala-tour.com/#/expression-and-values scala

  6. 怎么将unbuntu Linux iOS 文件从U盘或者移动硬盘启动?用win32diskimager_cn

    win32diskimager_cn 选择文件类型的时候选择*

  7. Oracle行列转换的思考与总结

    最近几天一直在弄Oracle-SQL的问题,涉及到了一些平时没有用到的东西,也因此而在这里郁闷了好久.现在问题得到了解决虽说不算完美.但是还是和大家一起分享一下. 行列转换之一:sum(case wh ...

  8. Yii2自带验证码实现

    总共分为三个方面:控制器配置.模型rules配置和视图配置. 第一步:控制器配置 将下列代码配置在actions中,请求验证码链接对应为 “控制器/captcha” 'captcha' => [ ...

  9. Unity工程3D和2D开发模式切换

    在新建工程时,经常会选择默认的3D工程,但是如果想做2D游戏又不小心选了3D工程呢,总不能把工程删了重新建吧,有个办法就是打开 Edit > Project Settings > Edit ...

  10. MFC中编辑框Edit Control添加“变量”后