传输控制协议TCP

传输控制协议为应用程序提供可靠的面向连接的通信服务,适用于要求得到响应的应用程序。
目前,许多流行的应用程序都使用TCP。
1.TCP协议的报文格式:整个报文由报文头部和数据两部分组成。

每个TCP报文头部都包含源端口号( Source Port)和目的端口号( Destination Port),用

于标识和区分源端设备和目的端设备的应用进程。在 TCP/IP协议中,源端口号和目的

端口号分别与源P地址和目的P地址组成套接字( Socket),唯一的确定一条TCP连接。

序列号( Sequence Number)字段用来标识TCP源端设备向目的端设备发送的字节流,它
表示在这个报文段中的第一个数据字节。如果将字节流看作在两个应用程序间的单向流
动,则TCP用序列号对每个字节进行计数。
确认号( Acknowledgement Number,32bits)包含发送确认的一端所期望接收到的下一个
序号。因此,确认序号应该是上次已成功收到的数据字节序列号加1。
首部长度一一占4位,指出TCP首部共有多少个4字节字,首部长度在20-60字节之间,
所以,该字段值在5-15之间。
保留字段一一占6位,保留为今后使用,但目前应置为0。
紧急URG
当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧
急数据,应尽快传送(相当于高优先级的数据)
确认ACK一一只有当ACKロ1时确认号字段才有效。当ACK0时,确认号无效。
推送PSH(PuSH)
接收TCP收到PSH=1的报文段,就尽快地交付接收应用进
程,而不再等到整个缓存都填满了后再向上交付
复位RST( Reset)当RST=1时,表明TCP连接中出现严重差错(如由于主机
崩溃或其他原因),必须释放连接,然后再重新建立传输连接。
同步SYN
同步SYN=1表示这是一个连接请求或连接接受报文。
终止FN( FINIS)
用来释放一个连接。FNニ1表明此报文段的发送端的数据已发
送完毕,并要求释放传输连接
窗口字段一一占2字节,用来设置发送窗口的依据,单位为字节。窗口大小用
字节数来表示,例如 Windows size=I024,表示一次可以发送1024字节的数据。窗口大小
起始于确认字段指明的值,是一个16bis字段。窗口的大小可以由接收方调节。窗口实
际上是一种流量控制的机制・張収大小由収ロ大小
校验和( Checksum)一-占2字节。校验和字段检验的范围包
分。校验和字段用于校验TCP报头部分和数据部分的正确性。
紧急指针字段
占16位,指出在本报文段中紧急数据共有多少个字节(紧急数据
放在本报文段数据的最前面)。
选项字段一一长度可变。TCP最初只规定了一种选项,即最大报文段长度MSS。MS
告诉对方TCP:“我的缓存所能接收的报文段的数据字段的最大长度是MSS个字节。”
填充字段一一这是为了使整个首部长度是4字节的整数倍

 

 

 

 

 

 

posted @ 2019-05-21 23:07  邓冰琦  阅读(218)  评论(0编辑  收藏  举报