TCP/IP协议及常见状态码(SYN,FIN,ACK,PSH,RST)
TCP/IP协议\TCP协议原理\报文格式\三次握手的状态码

1、TCP/IP协议
TCP/IP协议(Transmission Control Protocol/Internet Protocol),中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。

TCP/IP 定义了电子设备如何连入因特网,及数据如何在它们之间传输的标准。协议采用了4层的层级结构(应用层、传输层、网际层,网络接口层),每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。

OSI模型分为七层,分别是应用层、表示层、会话层,传输层,网络层,数据链路层、物理层

2、TCP协议原理
TCP每发送一个报文段,便启动一个定时器,若在定时器超时之间还未收到ACK请求确认,就重传该报文,如图,数据包由A的缓冲区发往B,B在收到数据包之后,回发一个ACK确认包给A,之后将数据包从缓冲区释放。

因此,该数据包会一直缓冲在A的缓冲区,直到一个ACK确认为止。

3、TCP报文格式
TCP报文格式
下面介绍几个重要字段的含义

1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。
2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。
3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等。

标志位以及含义
URG 指示报文段里存在着被发送方的上层实体标记为”紧急”数据,当URG=1时,其后的紧急指针指示紧急数据在当前数据段中的位置(相对于当前序列号的字节偏移量),TCP接收方必须通知上层实体。
ACK 当ACK=0时,表示该数据段不包含确认信息,当ACK=1时,表示该报文段包括一个对已被成功接收报文段的确认。
PSH 当PSH=1时,接收方在收到数据后立即将数据交给上层,而不是直到整个缓冲区满。
RST 用于重置一个已经混乱的连接(如主崩溃),也可用于拒绝一个无效的数据段或者拒绝一个连接请求。一般而言,如果你得到的数据段被设置了RST位,那说明你这一端有问题了。
SYN 用于建立连接过程,在连接请求中,SYN=1和ACK=0表示该数据段没有使用捎带的确认域,而连接应答捎带一个确认,即SYN=1和ACK=1。注:捎带是指对客户机到服务器数据的确认被装载在一个承载服务器到客户机的数据
FIN 用于释放一个连接,表示发送方已经没有数据要传输了。此时,接收方可能继续接收数据,好在SYN和FIN数据段都有序列号,从而保证了这两种数据段以正确顺序被处理


URG:长1位,表示紧急指针字段有效;
ACK:长1位,置位表示确认号字段有效;TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1
PSH:长1位,表示当前报文需要请求推(push)操作;
RST:长1位,置位表示复位TCP连接;
SYN:长1位,在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此,SYN置1就表示这是一个连接请求或连接接受报文。
FIN:长1位,用于释放TCP连接时标识发送方比特流结束;即完,终结的意思, 用来释放一个连接。当 FIN = 1时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。

窗口大小:长度为16位,2个字节。
校验和:长度为16位,2个字节。
紧急指针:长度为16位,2个字节。
以上是TCP包头必须要有的字段,也称固有字段,长度为20个字节。

TCP/IP协议及常见状态码说明(SYN,FIN,ACK,PSH,RST)相关推荐

  1. TCP的连接状态标识 (SYN, FIN, ACK, PSH, RST, URG)

    TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段.它们的含义是: (1)SYN表示建立 ...

  2. TCP的几个状态(SYN/FIN/ACK/PSH/RST)

    在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段. 含义: SYN 表示建立连接, ...

  3. TCP的状态 (SYN, FIN, ACK, PSH, RST, URG)

    在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段. 它们的含义是: SYN表示建立连 ...

  4. TCP的几个状态 (SYN, FIN, ACK, PSH, RST, URG)

    在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段. 它们的含义是: SYN表示建立连 ...

  5. TCP的状态(SYN,FIN,ACK,PSH,RST,URG)

    在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段. 它们的含义是: SYN表示建立连 ...

  6. TCP的状态:SYN, FIN, ACK, PSH, RST, URG 简介及 ACK确认机制

    1.TCP的状态FLAGS字段状态 在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 对于我们日常的分析有用的就是前面的五个字段:它们 ...

  7. TCP包的类型 (SYN, FIN, ACK, PSH, RST, URG)

    http://blog.csdn.net/season_hangzhou/article/details/9161969 在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, A ...

  8. WiresharkTCP的状态 (SYN, FIN, ACK, PSH, RST, URG)

    在TCP层,有个FLAGS字段,这个字段有以下几个标识:SYN, FIN, ACK, PSH, RST, URG. 其中,对于我们日常的分析有用的就是前面的五个字段. 它们的含义是: SYN表示建立连 ...

  9. java tcp fin_TCP报文中的SYN,FIN,ACK,PSH,RST,URG

    TCP的三次握手是怎么进行的:发送端发送一个SYN=1,ACK=0标志的数据包给接收端,请求进行连接,这是第一次握手:接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发 ...

最新文章

  1. Pandas中 DateFrame 修改列名
  2. iphonex黑屏开不了机_iphonex黑屏就算强制开机也开不了,是什么原因?_杭州维修...
  3. js库prototype中的$()
  4. JFinal开发框架简介
  5. 【目录】《剑指Offer》Java实现
  6. 用vim替代source insight
  7. JNI_OnLoad
  8. 使用pjsip传输已经编码的视频,源码在github
  9. Android Sqlite 工具类封装
  10. Idea修改项目的包名
  11. 从《大国崛起》(英国)看中国软件的发展
  12. 臭可乐,怎么才能让你不吃便便呢,唉
  13. 使用 Python 和 Bitly 缩短您的 URL
  14. MindManager2022免序列号弹窗解除功能限制
  15. 201771010137 赵栋《面向对象程序设计(java)》第十一周学习总结
  16. 密码学历史及近40年人物技术里程碑(公号回复“密码学”下载PDF资料,欢迎转发、赞赏、支持科普)
  17. Apache Cordova development lands on Visual Studio Code
  18. python 读excel中的sheet_python实现读取excel文件中所有sheet操作示例
  19. 情侣间为不吵架而“约法三章”,12条可参考理由!
  20. IDM最新下载地址(搬运自俄国大佬)

热门文章

  1. 快速排序算法(两个指针一前一后逐步向后扫描)
  2. php编程输出心形图案_PHP纯代码生成心形图片并自定义文字
  3. CAD文件如何在线转换成JPG格式
  4. [bzoj4011][DP]落忆枫音
  5. Design with the User in Mind--从用户角度进行设计
  6. RPG类型的游戏革命
  7. SQL操作全集[自己收藏]|Findnet.com.cn
  8. 计算机音乐关键词,音乐达人的几个关键词
  9. 亿赛通喜获 “2015年度中国软件和信息服务数据安全领域杰出企业奖”
  10. JZOJ[5971]【北大2019冬令营模拟12.1】 party(1s,256MB)