当前位置: 首页 > news >正文

TCP与IP协议

一、常见协议头分析

1.1 TCP首部

字段作用
源端口发送端应用程序的端口号,用于接收方回传数据时定位发送方进程
目的端口接收端应用程序的端口号,用于定位数据要交给哪个进程
序号标识发送数据的字节流编号,用于数据重组、确认和重传
确认号期望收到的下一个字节序号,表示之前的数据已成功接收
源IP地址发送端的IP地址,在网络层标识数据包来源
数据偏移表示TCP首部的长度(以4字节为单位),用于定位数据部分的起始位置
保留预留字段,供未来使用,目前必须置为0
URG紧急指针标志位,为1时表示紧急指针有效
ACK确认标志位,为1时确认号字段有效(连接建立后必须为1)
PSH推送标志位,为1时要求接收方尽快将数据交给应用层
RST复位标志位,为1时表示连接出现异常,强制断开
SYN同步标志位,为1时表示请求建立连接(三次握手中的同步序号)
FIN结束标志位,为1时表示发送方数据已发送完毕,请求断开连接
校验和对整个TCP报文段(首部+数据)进行校验,检测传输错误
紧急指针指向紧急数据的末尾位置(与序号字段配合使用),仅在URG=1时有效
选项可选字段,如最大报文段长度(MSS)、窗口扩大因子、时间戳等
填充用于保证TCP首部是4字节的整数倍(数据偏移字段的单位)
TCP数据部分上层应用协议(如HTTP、FTP)的实际数据内容

1.2 IP首部

字段长度功能
版本号4bit标识 IP 版本(IPv4=4,IPv6=6)
首部长度4bitIP 头部的长度(单位:4字节,最小5=20字节,最大15=60字节)
服务类型(TOS)8bit

定义优先级、延迟、吞吐量;现用于区分服务(DSCP)

标记流量类别(如视频、语音优先级)

总长度16bit

整个 IP 数据包总长度(头部+数据),最大 65535 字节

超过MTU时需要分片

标识16bit

唯一标识一个数据包,同一数据包的不同分片共享相同标识

便于重组

标志3bit第一位保留为0;第二位禁止分片(1=不分片,超过MTU则丢弃);第三位更多分片(1=后续还有分片,0=最后一个分片)
片偏移13bit指示当前分片在原始数据包中的位置(单位:8字节)
生存时间(TTL)8bit

防止数据包无限循环,每经过一个路由器减1

TTL=0时丢弃并发送 ICMP 超时消息

协议8bit标识上层协议:6=TCP,17=UDP,1=ICMP
首部检验和16bit仅校验头部数据完整性,不包括数据部分
源IP地址32bit发送方的 IPv4 地址
目的IP地址32bit接收方的 IPv4 地址
选项字段

可变(最多40字节)

扩展功能(如记录路由、时间戳),较少使用
填充可变确保头部长度为4字节的整数倍
数据可变上层协议数据(TCP段、UDP数据报等)

版本号到目的IP地址总共占20字节

1.3 TCP/IP协议数据封装过程

层级数据单元作用
应用层用户数据应用程序实际要发送的原始数据(如 HTTP 请求、文件内容等)
应用层Appl首部应用层协议添加的头部信息(如 HTTP 头、FTP 命令等),用于应用层解析
传输层TCP段将应用数据加上 TCP 首部封装成段,负责端到端的可靠传输、流量控制、顺序保证
传输层TCP首部包含源端口、目的端口、序号、确认号、标志位等,用于建立连接、确认、重传等机制
网络层IP数据报将 TCP 段加上 IP 首部封装成数据报,负责跨网络的寻址和路由转发
网络层IP首部包含源 IP、目的 IP、TTL、协议类型等,用于网络层路由选择和数据报转发
数据链路层以太网帧将 IP 数据报加上以太网首部和尾部封装成帧,负责同一网络内的物理传输
数据链路层以太网首部包含目的 MAC 地址、源 MAC 地址、帧类型等,用于局域网内标识设备
数据链路层以太网尾部通常包含帧校验序列(FCS),用于检测数据在传输过程中是否出错

二、wireshark抓包工具

项目内容
解析数据包的作用将网络中抓取的二进制原始数据包,按照 TCP/IP 协议栈逐层拆解,还原成人类可读的协议字段(如源IP、目的端口、标志位等),帮助分析网络通信细节。
常见使用场景① 网络故障排查(如连接失败、丢包、延迟高)
② 协议分析与学习(观察 TCP 三次握手、HTTP 请求响应过程)
③ 网络安全分析(检测异常流量、恶意攻击、数据泄露)
④ 应用性能调试(分析 API 响应慢、重传过多等问题)
⑤ 开发调试网络程序(验证自己写的 socket 程序收发数据是否正确)
一句话总结Wireshark 解析包就是把网络上的“天书”翻译成“人话”,用于排查网络问题、学习协议和调试程序。

win连接的是WLIE,linux是Loopback

三、TCP沾包问题及解决方案

类型现象原因
正常包发送一次,接收端一次收到完整的一条消息数据大小合适,发送和接收时机匹配
粘包发送多次,接收端一次收到了多条消息粘在一起发送端多次小数据发送,接收缓冲区积累后一次性读取;或 Nagle 算法合并小包
拆包发送一次,接收端分多次才收到完整消息发送的数据大于接收缓冲区大小;或 TCP 分段传输(MSS 限制)

TCP粘包问题

分类具体原因说明
TCP协议特性面向字节流TCP 没有消息边界,数据像流水一样传输,不保留发送时的消息分隔
缓冲区机制发送方和接收方都有缓冲区,数据在缓冲区中积累,可能导致多条消息合并或拆分
发送方行为数据写入方式多次小数据写入,可能被合并成一个 TCP 段发送
Nagle 算法为减少小包数量,延迟发送并合并多个小数据包(默认开启)
接收方行为读取粒度应用程序一次recv读取的数据长度可能与发送长度不一致,可能读多或读少
缓冲区读取接收缓冲区有数据时,应用程序可能一次读完所有积压的数据,导致粘包
网络传输因素分片与重组IP 层可能对大数据包分片传输,接收端再重组,导致应用层看到的数据边界变化
MTU/MSS 限制当发送数据超过 MSS,TCP 会自动分段,导致一条消息被拆成多个包发送
对比项MTUMSS
定义

网络接口层所能传输的最大数据包大小

(包含 IP 首部 + TCP 首部 + 数据)

TCP 数据段中数据部分的最大大小

(不含 TCP 首部和 IP 首部)

所在层级网络接口层 / IP 层传输层(TCP)
典型值以太网中通常为 1500 字节通常为 1460 字节(1500 - 20 IP首部 - 20 TCP首部)
计算关系MSS = MTU - IP首部大小 - TCP首部大小
作用限制单个网络帧能携带的总数据量限制 TCP 段中数据部分的最大大小
双方协商由网络链路决定,通常无需协商TCP 三次握手时双方协商,取较小值
超出后果需要 IP 分片,降低传输效率超出 MSS 的数据会被 TCP 分段
http://www.jsqmd.com/news/720329/

相关文章:

  • ARM CoreSight ETM11架构与调试技术详解
  • 2026最新单招培训学校/高中/单招学校推荐!东北优质权威榜单发布,实力突出辽宁沈阳等地学校放心选 - 十大品牌榜
  • 详解 PS 四种改色方法:色相替换 / 可选颜色 / 蒙版调色
  • 2026年北京专业消杀公司排名:臻洁虫控与业界标杆深度横评|官方联系方式+避坑指南 - 企业名录优选推荐
  • PHP 9.0 Fiber + AI Bot推理流水线:单机万级并发下LLM Token流低延迟投递方案(含v8引擎JIT协同优化细节)
  • 什麼是Web Scraper?
  • 全球AI贡献梯队解析!!!!
  • 过来人实测报告:2026主管药师网课口碑排行榜,基础差也能过! - 医考机构品牌测评专家
  • 如何在群晖NAS上安装Realtek USB网卡驱动实现2.5G网络升级
  • 48.网络基础
  • 2026卫生高级职称考试押题哪家强?最新押题命中率排行榜出炉! - 医考机构品牌测评专家
  • 不规则图片怎么贴合?PS 透视变形贴图方法大全
  • R语言在LLM偏见分析中的统计建模实战(2024最新F1-Bias检验框架首次公开)
  • 2026年北京专业消杀公司深度横评:臻洁虫控vs行业竞品选购指南 - 企业名录优选推荐
  • 从STOUT到Transformer:聊聊化学结构式转换背后的AI黑科技(附在线工具推荐)
  • 2026卫生初中级职称考试课程最新实力榜:高通过率课程深度解析 - 医考机构品牌测评专家
  • POE供电选型避坑指南:从802.3af到802.3bt,你的摄像头/AP到底该用哪种?
  • 终极指南:3分钟掌握Windows本地OCR神器Text-Grab,图片转文字效率提升500%
  • 2026年北京消杀公司深度横评:专业除四害、病媒防制、PCO虫控服务商完全选购指南 - 企业名录优选推荐
  • 新开发的一款物联网分布式光伏集中管控平台
  • 外包经历对程序员职业生涯的影响
  • 别再只看K线了!用Python+TA-Lib实战分析A股成交量(附完整代码)
  • 电竞生高强度用眼专属!奕鸣眼科全飞秒精准4.0+ICL晶体植入 - 深度智识库
  • 2026年北京消杀公司怎么选?臻洁虫控官方联系电话与专业防治深度横评 - 企业名录优选推荐
  • theone陪伴ai免费版theone陪伴ai下载教程
  • 2026最新学技术学校/技校/单招学校推荐!东北优质权威榜单发布,辽宁沈阳等地院校综合实力突出 - 十大品牌榜
  • 2026 全自动咖啡机选购指南,商用热门品牌推荐 - 品牌2026
  • WebGL技术驱动的MDX与M3游戏模型浏览器解决方案
  • EL PSY CONGROO!请查收这份来自《命运石之门:线形拘束的表征图》的入坑邀约
  • Windows热键冲突终极指南:如何用Hotkey Detective快速定位占用进程