TCP协议分析

TCP协议-----传输控制协议

---一种面向连接的可靠传输协议

---TCP协议建立的连接是双向连接

TCP特点

TCP是一种面向广域网通信协议,目的是在跨越多个网络通信时,为两个通信端点之间提供一条具有下列特点的通信方式: 

(1)基于流的方式;

(2)面向连接;

(3)可靠通信方式;

(4)在网络状况不佳的时候尽量降低系统由于重传带来的带宽开销;

(5)通信连接维护是面向通信的两个端点的,而不考虑中间网段和节点。

为满足TCP协议的这些特点,TCP协议做了如下的规定:

数据分片:在发送端对用户数据进行分片,在接收端进行重组,由TCP确定分片的大小并控制分片和重组;

②到达确认:接收端接收到分片数据时,根据分片数据序号向发送端发送一个确认;

超时重发:发送方在发送分片时启动超时定时器,如果在定时器超时之后没有收到相应的确认,重发分片;

滑动窗口:TCP连接每一方的接收缓冲空间大小都固定,接收端只允许另一端发送接收端缓冲区所能接纳的数据,TCP在滑动窗口的基础上提供流量控制,防止较快主机致使较慢主机的缓冲区溢出;

⑤失序处理:作为IP数据报来传输的TCP分片到达时可能会失序,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层;

⑥重复处理:作为IP数据报来传输的TCP分片会发生重复,TCP的接收端必须丢弃重复的数据;

数据校验:TCP将保持它首部和数据的检验和,这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到分片的检验和有差错,TCP将丢弃这个分片,并不确认收到此报文段导致对端超时并重发。

首部格式

---Source Port是源端口,16位。

---Destination Port是目的端口,16位。

---Sequence Number是发送数据包中的第一个字节的序列号,32位。

---Acknowledgment Number是确认序列号,32位。

---Data Offset是数据偏移,4位,该字段的值是TCP首部(包括选项)长度除以4。

---标志位: 6位

​​​                 URG表示Urgent Pointer字段有意义;

                 ACK表示Acknowledgment Number字段有意义;

                PSH表示Push功能;

                RST表示复位TCP连接;

                表示SYN报文(在建立TCP连接的时候使用);

                FIN表示没有数据需要发送了(在关闭TCP连接的时候使用)。

---Window表示接收缓冲区的空闲空间,16位,用来告诉TCP连接对端自己能够接收的最大数据长度。

---Checksum是校验和,16位。

---Urgent Pointers是紧急指针,16位,只有URG标志位被设置时该字段才有意义,表示紧急数据相对序列号(Sequence Number字段的值)的偏移。 

TCP分段:因为IP分片后,TCP协议无法保证数据的可靠性传输;故而使用TCP协议进行封装的文件不允 许进行IP分片,而又因为MTU存在,需要将大文件分为小文件,该操作由TCP协议完成。

MSS---最大传输段===MTU-IP头部-TCP头部

在TCP协议中,每一个报文都需要有序列号信息。

可靠性

确认机制----每收到一个TCP数据段,都需要发送一次确认报文。

重传机制----超时重传,当一个数据段中的某个报文丢失,发送端会主动重新发送一次该报文。

排序机制----传输数据段时,被分为多个报文,从不同路径传输,最终达到目的地的顺序会被打乱, 需要根据序列号字段进行重新排序。

流控机制(滑动窗口机制):可以通过调节窗口大小(Windows)来对流量进行控制。

面向连接

三次握手

四次挥手

MSL---120S,指一个数据包在网络中传递的最大时间。

协议对比

TCP 是面向连接的传输控制协议,而UDP 提供了无连接数据报服务;TCP 具有高可靠性,确保传输数据的正确性,不出现丢失或乱序;UDP 在传输数据前不建立连接,不对数据报进行检查与修改,无须等待对方的应答,所以会出现分组丢失、重复、乱序,应用程序需要负责传输可靠性方面的所有工作;UDP 具有较好的实时性工作效率较 TCP 协议高;UDP 段结构比 TCP 的段结构简单,因此网络开销也小。TCP 协议可以保证接收端毫无差错地接收到发送端发出的字节流,为应用程序提供可靠的通信服务。对可靠性要求高的通信系统往往使用 TCP 传输数据。比如 HTTP 运用 TCP 进行数据的传输。

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Wireshark是一款开源的网络协议分析工具,它可以用于捕获和分析网络数据包。通过Wireshark,你可以深入了解TCP协议的工作原理和网络通信过程。 在进行TCP协议分析时,你可以使用Wireshark来捕获网络数据包,并对这些数据包进行详细的解析和分析。以下是使用Wireshark进行TCP协议分析的一般步骤: 1. 下载和安装Wireshark:你可以从Wireshark官方网站下载并安装适合你操作系统的版本。 2. 打开Wireshark并选择网络接口:启动Wireshark后,选择你要进行抓包的网络接口。Wireshark将开始捕获该接口上的数据包。 3. 过滤TCP协议:在Wireshark的过滤器栏中输入"tcp",以便只显示与TCP协议相关的数据包。 4. 分析捕获的数据包:Wireshark将显示捕获到的数据包列表。你可以点击每个数据包以查看其详细信息,包括源IP地址、目标IP地址、端口号、序列号、确认号等。 5. 分析TCP会话:通过查看TCP数据包的序列号和确认号,你可以了解TCP会话的建立、维护和关闭过程。你还可以查看TCP头部中的各个字段,如标志位(SYN、ACK、FIN等)和窗口大小等。 6. 分析TCP流:Wireshark还提供了TCP流功能,可以将同一TCP会话中的数据包组合在一起,以便更好地分析和理解数据传输过程。 7. 进行统计和过滤:Wireshark还提供了各种统计功能,如流量统计、延迟分析等。你可以使用过滤器来筛选出特定条件下的数据包,以便更精确地进行分析

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值