TCP提供一种面向连接的、可靠的字节流服务。
在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。
TCP数据被封装在一个IP数据报中如下图:
TCP数据在IP数据报中的封装
显示TCP首部的数据格式。如果不计任选字段,它通常是20个字节。
序号用来标识从tcp发端到tcp收端发送的数据字节流,它表示在这个报文段中的第一个数据字节。如果将字节流看做在两个应用程序间的单向流动,则tcp序号对每个字节进行计数。序号是32bit的无符号数,序号到达2(32)-1后又从0开始。
tcp为应用层提供全双工服务。这意味着数据能在两个方向上独立地进行传输。因此,连接的每一端必须保持每个方向上的传输数据序号。
首部长度给出首部中的32bit字的数目。这个字段占4bit,因此tcp最多有60字节的首部。然而,没有任选字段,正常的长度是20字节。
TCP将用户数据打包构成报文段;它发送数据后启动一个定时器;另一端对收到的数据进行确认,对失序的数据进行重新排序,丢弃重复数据;TCP提供端到端的流量控制,并计算和验证一个强制性的端到端检验和。
许多流行的应用程序如Telnet,Rlogin,FTP和SMTP都使用tcp。