对TCP/IP协议的一些看法(9):TCP协议(1)

今天介绍一下一个很重要的传输层协议——传输控制协议,又叫TCP。之所以重要,是因为它是唯一能保证通信可靠的协议。前面讲过,IP数据包不能保证数据传输的可靠性,需要上层的协议来确保,即TCP协议。

TCP协议具有以下几个特点:

1.确保IP数据包成功传递

2.对程序发送的大块数据进行分段和重组

3.确保正确排序和按顺序传递分段数据

4.经过计算校验和进行数据的完整性检查

5.根据数据是否接收成功发送确定信息

因此,说TCP具有可靠性,主要从以下几个方面来说明:

1.传输前要进行3次握手建立连接

2.传输过程中通信双方要对传输的数据进行确认

3.传输结束需要采用4次握手关闭链接

今天再介绍下TCP报文的格式,由TCP首部和TCP数据组成,TCP首部的各个字段如下:

1.端口号:源端口和目标端口各占16位,最大可到65536

2.32位序列号:简称SEQ,用于对发送的数据包进行编号

3.32位确认号:简称ACK,确认号对发送的数据报进行确认,其值为序列号加1

4.4位首部长度

5.URG:紧急指针,告诉接收TCP模块紧要指针域指着紧要数据

6.ACK:置1表示确认号

7.PSH:置1请求的数据段在接收方得到后直接送到应用程序,不用等到接收缓冲区满再传送

8.RST:置1重建连接,通常是发生了错误。

9.SYN:置1发起一个连接

10.FN:置1释放连接

11.16位窗口大小:TCP流量控制由每一端通过申明的窗口大小来提供,最大为65535字节

12.16位校验和:校验和覆盖首部和数据段

13.16位紧急指针:当URG置1才有效

14.选项:包括MSS,时间戳等重要信息

原文地址:https://www.cnblogs.com/elninohjh/p/4238940.html