tcp数据报头解析

2023-11-20 16:18
文章标签 数据 报头 解析 tcp

本文主要是介绍tcp数据报头解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

tcp数据报报头解析:
        16bits:        源端口,即发送端的端口
        16bits:        目标端口,即到达端的端口
        32bits:        Seq,tcp数据报序号,tcp数据报太大超过ip数据报容许,需要分段,标记分段序号
        32bits:        Ack number,回应序号,确认码
        4bits:           tcp数据报报头大小,4个字节为一个单位
        6bits:          保留,尚未使用
        6bits:          控制标志码,0关闭,1启动
                                        URG:1紧急数据包,接收端紧急处理
                                        ACK:1响应数据报,和32bits,Ack number有关
                                        PSH:1要求对方立刻传送缓冲区内对应数据包,无需等待满再传送
                                        RST:1表示立刻结束连接,无需等待手续,此时发送方已强制断线
                                        SYN:1表示发送方希望建立连接,表示开始连接的意思
                                        FIN:1表示传送结束,通知对方完毕,是否同意断线,此时发送端还在等待回复
        16bits:        window(滑动窗口),告诉对方本机的缓存器还可以接收的数据,单位-字节,0表示满,应暂停传输数据
        16bits:        数据效验码,如若不等,表示数据报损毁,进而请求重发数据包
        16bits:        紧急数据位置,仅当URG=1时启用,表示紧急数据所在的位置
        nbits:          任意数据,一般表示接收端可以接收的最大数据容量等
        36-nbits:    补足任意数据,使达到32bits,tcp头部需要时32bits整数倍

tcp3次握手建立连接:
        first:               发送端发送一个        SYN=1;                 seq=n,ack=0      的数据报
        second:        接收端发送一个        SYN=1,ACK=1;seq=i,  ack=n+1 的数据报
        third:              发送端发送一个       ACK=1;                 seq=m,ack=i+1  的数据报    

这篇关于tcp数据报头解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/395863

相关文章

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

全面解析Golang 中的 Gorilla CORS 中间件正确用法

《全面解析Golang中的GorillaCORS中间件正确用法》Golang中使用gorilla/mux路由器配合rs/cors中间件库可以优雅地解决这个问题,然而,很多人刚开始使用时会遇到配... 目录如何让 golang 中的 Gorilla CORS 中间件正确工作一、基础依赖二、错误用法(很多人一开

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

MySQL CTE (Common Table Expressions)示例全解析

《MySQLCTE(CommonTableExpressions)示例全解析》MySQL8.0引入CTE,支持递归查询,可创建临时命名结果集,提升复杂查询的可读性与维护性,适用于层次结构数据处... 目录基本语法CTE 主要特点非递归 CTE简单 CTE 示例多 CTE 示例递归 CTE基本递归 CTE 结

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使