传输层(二)网络抓包分析TCP协议的传输可靠性

本文深入探讨TCP协议如何确保网络传输的可靠性,包括确认应答机制、超时重传、滑动窗口、拥塞控制(慢启动、拥塞避免、快重传、快恢复)以及捎带应答、延时应答和保活计时器等机制。通过实例分析了三次握手过程和数据传输过程,揭示了TCP保证数据传输完整性的核心策略。
摘要由CSDN通过智能技术生成

Tcp协议的特点就是面向连接,传输可靠,面向字节流

抓包的工具:linux下使用tcpdump,windows下使用wireshark

抓包过程:

  • 先在linux下,使用tcpdump命令监听将要通信的端口,获取通信过程中的数据信息
  • 再在windows下使用wireshark打开数据信息,开始死磕的过程。。。。。

在这里插入图片描述

可靠传输的原因:

确认应答机制
超时重传机制
滑动窗口机制
拥塞控制机制
捎带应答机制
延时应答机制

确认应答机制

  1. 当发送方发送一个报文的时候,需要带上序号。
  2. 接收方收到报文后,需要对该报文进行确认。也就是给对方发送一个确认报文,报文中的确认序号就是告诉对方,自己期望的下一个序号

从三次握手的角度而言

第一步:让服务端确定客户端的发送数据的能力
第二步:让客户端确定服务端的接收数据和发送数据的能力
第三步:让服务端知道客户端接收数据的能力
在这里插入图片描述

  1. 连接发起方率先向对端发起连接请求(SYN),并协商了一个序列号(Seq=0)

  2. 被动连接方收到了发起方的连接请求,他收到了连接方为0的序号,再告诉给连接方我想要你的下一个序号0+1,这里是(ACK=1)
    然后再告诉对方自己的起始序号,这里是(Seq=0)

  3. 连接方收到了对方确认的信号,回复对方期待的数据(Seq=1),并确认自己收到了对方的期待的信号(Ack=1)

SYN(Seq=0)

这是连接发起方告诉对端,我要连接拉,起始序号是0,并且消耗了0这个序号。

ACK(Ack=1) + SYN(Seq=0)

这个过程分为两步:

  1. 首先是被动连接方收到了连接方的SYN报文,知道了对端发送SYN报文的序号为0,告诉对方自己收到了这个0,告诉的方式就是发送下一步所期待的报文的序号,也就是0+1ACK(Ack=1)

  2. 然后再告诉连接方,自己的起始序号,并且消耗掉了这个序号,告诉的方式就是SYN(Seq=0)

ACK(Seq=1,ACK=1)

这个过程也是分为两步

  1. 连接方收到了对方发送的序号为0的数据包,并告诉对方,我想要你之后发送的数据包的序号是从0+1开始的,也就是ACK=1

  2. Seq=1,告诉对方,我这个ACK维护的数据序号是1,但是我这个ACK没有消耗这个序号

三次握手之后
对于连接发起方而言:自己维护序号的有效范围是 1 ~ 2^32
对于被动连接方而言:自己维护序号的有效范

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值