TCP是一种面向连接的、可靠的字节流服务。
tcp是一种单播协议,不能用于广播和多播。
1.应用数据被分割成TCP认为最适合发送的数据块
2.当tcp发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段
3.当TCP收到发自TCP连接的另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒。
4、由于IP协议是一个不可靠协议。IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序,如果必要,TCP将对收到的数据进行重新排序,将收到的数据一正确的顺序交给应用层。
5、TCP将保持它首部和数据的检验和。
6、流量控制。为防止较快的主机致使较慢的主机缓存区溢出,TCP的连接的每一端都可以有固定大小的缓冲空间,接收端只允许另一端发送接受端缓冲区所能接纳的数据。
TCP对字节流的内容不作任何解释。字节流可以是二进制数据,ASCII字符等任何数据。
1、16位端口65525
2、32位序列号(Sequence number(顺序号码))
3、32位确认号(Acknowledge number(确认号码))
4、4位头部长度(数据偏移):TCP首部长度为15(行)*32bit(每一行)
5、位码即TCP标志位,有6种标示:
URG(urgent紧急)
ACK(acknowledgement 确认序号有效)
PSH(push传送,接受方尽快将这个报文段交给应用层)
RST(reset重置)
SYN(synchronous建立联机)
FIN(finish结束)
我们常用的是以下三个标志位:
SYN - 创建一个连接
FIN - 终结一个连接
ACK - 确认接收到的数据
6、16bit的窗口大小
流量控制:TCP的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字节数,这个值是接受方控制发送方可以连续发送“未经确认的报文的数量”,窗口大小最大为2^16字节,即65535字节。
7、检验和
同UDP一样
8、紧急指针
只有URG=1时,紧急指针才生效。紧急指针指向数据中“紧急内容”的位置。
9、选项
原文:https://www.cnblogs.com/getonechao/p/14520829.html