tcp建链和断链

tcp建链和断链

tcp抓包中的seq和ack

seq标识包序号
ack标识上一个接收到包的seq已经接收,请求发送下一个包,所以ack=prev_seq+pkg_len+1,当ack_git被置位后,才会有ack字段
syn_bit三次握手时的发起字段
rst_bit重置,一般用于异常断链情况

tcp的三次握手建连

方向 | seq | ack | syn_bit | ack_bit
A->B | 0 | 0 | 1 | 0
B->A | 0 | 0+1 = 1 | 1 | 1
A->B | 1 | 0+1 = 1 | 0 | 1

这里写图片描述

tcp的断链过程

方向 | seq | ack | fin_bit | ack_bit
A->B | n | 1 | 1 | 1
B->A | 1 | n+1 | 0 | 1
… | 等待B的业务层处理完关闭逻辑
B->A | 1 | n+1 | 1 | 1
A->B | n+1 | 1+k+1 | 0 | 1

上面的k表示第三步的B->A的消息报长度,一般会是0
这里写图片描述

  • TCP的异常断链情况,使用RST标识位

方向 | seq | ack | fin_bit | ack_bit | rst_bit
A->B | n | 1 | 1 | 1 | 0
B->A | 1 | n+1 | 0 | 1 | 0
… | 等待B的业务层处理完关闭逻辑
A->B | n+1 | 1+k+1 | 0 | 1 | 1

A->B第一步骤A向B发送了关闭连接请求,
之后等待B的Ack和fin消息,如果B没有发送fin,标识B还有业务逻辑或者缓存没有清理,这时A直接发送RST消息,标识强制断开连接, B接收到RST后,不会等待缓存发送,也不会发送fin和ack,直接关闭连接
这里写图片描述

03-13
### TCP UDP 的主要区别 #### 连接方式 TCP 是面向连接的传输层协议,在实际的数据传输前必须先连接[^1]。相比之下,UDP 属于无连接的方式,无需事先连接即可直接发送数据。 #### 可靠性保障 TCP 提供高度可靠的传输服务,能够确保数据按照顺序、无误地抵达目的地,并且可以处理丢重传等问题[^2]。而 UDP 则是一种尽力而为的服务模式,不具备内在机制来保证消息的成功传递或者保持其原始次序。 #### 数据流管理 对于 TCP 来说,它不仅维持着字节流的概念,还负责维护这些字节之间的逻辑关系以及相应的确认应答过程。与此同时,TCP 协议栈会对来自上层应用的数据进行分割重组操作以适应底层网络条件的变化。相反,UDP 不会改变应用程序提交给它的任何信息结构——既不会合并也不会拆分用户提供的数据单元。 #### 性能特点 由于 TCP 需要执行额外的任务如三次握手、四次挥手连、滑动窗口算法实现流量控制等功能,所以通常会有更大的头部开销(最小 20 字节),这使得整体性能可能不如仅有固定8字节头的小巧精悍的 UDP高效。 #### 流量与拥塞控制 TCP 实现了复杂的拥塞避免策略,可以根据当前互联网状况调整自身的发送速度从而防止过载现象的发生;然而 UDP 并未内置此类特性,这意味着即使在网络拥堵的情况下也会持续高速度转发报文直到目标节点收到为止,这对某些类型的多媒体业务特别有利[^3]。 ### 应用场景对比 - **适合使用 TCP 的场合** - 当对数据完整性准确性有着严格要求的应用程序时,比如文件下载上传、电子邮件交换或是数据库同步等任务。 - **更适合采用 UDP 的情形** - 对延迟敏感但又允许一定程度错误存在的交互式媒体播放器或者是在线游戏平台往往更倾向于选择 UDP 方案,因为这类应用更加看重快速反馈而非绝对精确的内容呈现. ```python import socket def create_tcp_socket(): """创一个基于TCP的套接字""" sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) return sock def create_udp_socket(): """创一个基于UDP的套接字""" sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return sock ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值