TCP:传输控制协议

1:TCP的概念

TCP和UDP使用IP层,但是和UDP提供不一样的服务,TCP提供的是一种面向连接的,可靠字节流服务,广播和多播是不适用于TCP的

2:TCP所提供保证可靠性的措施

2.1应用数据被分成最适合TCP发送的数据块,TCP传递给IP的信息单位称为报文段或者段

2.2TCP发送一个段后,它启动一个定时器,当定时器到达时还没有收到应答,则应该重发此报文短

2.3TCP收到一个报文,应答并不是立即发送的,而是应该推迟几分之一秒

2.4TCP将保持他首部和数据的校验和,如果接收方得知数据有错误,并不发送一个应答,等待发送方超时重传

2.5TCP必须提供重排算法,因为数据报到达会失序

2.5TCP应该提供流量控制

3:TCP数据格式

2.1:16位源端口号:表示发送TCP报文段的是哪一个应用程序端口

16位目的端口号:表示接受的主机是哪一个端口号,和目的IP地址配对

以上两个用来确定一条唯一的TCP连接

2.2:32位序号:序号用来标示从TCP发端到TCP收端的数据字节流,这个数字表示此报文段的第一个数据字节

序号到达2^32-1后重新从0开始

此标志开始时的初始状态和SYN有关,当建立一个新的连接的时候,SYN变为一,序号字段采用初始序号ISN,发送第一个数据的时候,序号为这个ISN+1,因为SYN标志消耗了一个序号

2.3:32位确认序号,比如TCP发放发送一个数据0-1024,如果接收方接收到则返回1025,首先,此确认序号,必须在ACK置一的条件下才起作用。

我们说TCP是一个没有选择确认的或否认的滑动窗口协议,没有选择确认指的是比如发放1-1024,2048-3072,则返回的确认只能是1025,同时他也不能进行报文段否认,即如果1-1024这个报文段出错,不能返回一个指明此报文段错误的标志,只可以等待重传

2.4:校验和,包括了TCP的头部和数据部分,是一个强制性的

2.5:16位窗口大小,表示现在的窗口是多大,一般是由发送方发送窗口大小





原文地址:https://www.cnblogs.com/SmileLion/p/5863547.html