聊聊TCP协议-------协议头详解
来源:互联网 发布:淘宝代销产品图片搬家 编辑:程序博客网 时间:2024/05/16 00:45
最近工作不是特别忙,又开始学习一些东西,之前因为对netstat命令显示的tcp状态不是很了解,加上之前看了一下tcp/ip那本黑色的书,准备整理一下tcp的相关内容。
首先看一下tcp header 的内容,大概有这么几个字段
source port: 2字节,也就是16位,表明发送端的端口号
destination port:2字节,16位,标示接收端的端口号
tcp作为一个端到端的协议,只需要关注端口号,是不需要关注具体ip的,IP地址封装在ip层,这点也是我觉得tcp/ip协议栈的美妙之处,一层包含着一层,将整个网络抽象的非常好,以致应用层不需要太关心底层协议。
sequence no:表示tcp数据中第一个数据字节的编号
acknowledgment no: 表示对上次收到包的确认,和下次期待收到的包。
offset: 4bit,tcp头的的大小,单位是4字节。这个最小为5 ,就是不包含任何数据和tcp option的大小。
reserve:6 bit 保留字段,现在没用
tcp flags: tcp 控制位 6 bit,从左到右分别是:
URG: 紧急标示位,同urgent pointer一块使用,标示从sequence no 指示的位置偏移urgent pointer 位 为紧急内容,之后是正常内容ACK: 表示是确认包
PSH: 表明不是用tcp缓存,尽快把包给应用层
RST: tcp 复位标识,用于异常终止连接,或者检测半打开
SYN: Synchronize sequence numbers 同步序号,用于tcp建立FIN: No more data from sender 表示没有数据需要发送
window: 2字节 发送者期望接收的字节流的大小,用于滑动窗口协议
checksum: 2字节 tcp头和tcp数据段的校验和
urgent pointer: 2字节 和control flag的urg 一块使用,表示紧急数据的偏移量,计算方式是sequence no + urgent pointer
tcp options: 多个字节,不太常用,要结合具体指令来看
Padding:填充,主要用来保证tcp头部是4字节的整数倍 ,对应offset
- 聊聊TCP协议-------协议头详解
- 协议头详解一:TCP首部
- TCP 协议 头结构
- 聊聊iOS中TCP / UDP 协议
- TCP/IP协议相关协议头
- HTTP协议头详解
- HTTP协议头详解
- HTTP协议头详解
- HTTP协议头详解
- HTTP协议头详解
- HTTP 协议头详解
- HTTP协议头详解
- HTTP协议头详解
- TCP、UDP协议详解
- TCP、UDP协议详解
- TCP/IP协议详解:
- TCP/IP协议详解
- TCP/IP协议详解
- php简单防盗链实现方法
- Node.js 创建第一个应用
- (第四周项目1)建立单链表
- 设计模式之策略模式01
- 用setitimer函数和signal信号处理函数实现简单的timer的代码
- 聊聊TCP协议-------协议头详解
- 51Nod-1420-数袋鼠好有趣
- 亿能
- 论文笔记:Deep Residual Learning for Image Recognition
- 重装WIN10
- php应用篇-百度图片的防盗链
- jQuery基础总结(一)
- Ubuntu安装Opencv记录(附人脸识别和人眼识别例子)
- android 底部弹出dailog