TCP,IP详解,卷一:协议学习笔记之第十七章 TCP:传输控制协议

时间:2022-12-20 10:20:19
 1,TCP提供一种面向连接的,可靠的字节流服务。8bit字节构成字节流。2,在一个TCP连接中,仅有两方进行彼此的通信,对于广播和多播不能用TCP。3,TCP通过以下方式来提供可靠性:      1》应用数据被分割成TCP认为最合适的数据块。      2》超时及重发策略。      3》发送确认。      4》TCP将保持它首部和数据的检验和。      5》TCP将对收到的数据进行重新排序,以正确的顺序交给应用层。      6》TCP接收端丢弃重复的数据。      7》TCP提供流量控制,防止较快主机导致较慢主机的缓冲区溢出。4,TCP对字节流的内容不作任何解释。TCP不知道传输的数据字节流是二进制数据,还是ASCII字符,EBCDIC字符或者其它类型数据,对于字节流的解释由TCP连接双方的应用层解释。这种对字节流处理方式与Unix操作系统对文件的处理方式很类似。Unix的内核对一个应用读或写的内容不作任何解释,而是交给应用程序处理。对Unix的内核来说,它无法区分一个二进制文件还是一个文本文件。5,由TCP传递给IP的信息单位称为报文段或段(segment)。6,TCP数据被封装在一个IP数据报中,如下图:TCP,IP详解,卷一:协议学习笔记之第十七章 TCP:传输控制协议7,显示TCP首部的数据格式:TCP,IP详解,卷一:协议学习笔记之第十七章 TCP:传输控制协议
1》源端与目的端的端口号用于需找发送端和收端应用程序。这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个TCP连接(一个IP地址和一个端口号也称为一个插口即socket)。 2》序号用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的第一个数据字节即初始序号ISN(Initial Sequence Number),SYN标志为1。该主机发送数据的第一个字节序号为这个ISN加1,因为SYN标志消耗了一个序号。 3》确认号包含发送确认的的一端所期望收到的下一个序号。因此,确认号应当是上次已成功收到数据字节序号加1,只有ACK标志位1时,序列号字段才有效。 4》首部长度是32bit字的数目,因此TCP最多有60字节的首部,没有任选字段,正常的长度是20字节。 5》TCP首部中6个标志比特,它们中的多个可以同时被设置为1。      URC ——紧急指针(urgent pointer)有效。      ACK——确认序号有效。      PSH——接收方应该尽快将这个报文段交给应用层。      RST——重新连接。      SYN——同步序列号用来发起一个连接。      FIN——发端完成发送任务。 6》16位窗口大小:TCP的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节。 7》检验和覆盖了整个TCP报文段:TCP首部和TCP数据。这是个强制性的字段,一定是由发端计算和存储,并由收端进行验证。 8》只有当URG标志设置为1时紧急指针才有效。紧急指针是一个正的偏移量,和序列号字段中的值相加表示紧急数据最后一个字节的序号。 9》最常见的可选字段是最长报文大小,又称为MSS(Maximun Segment Size)。 8,许多流行的应用程序如Telnet,Rlogin,FTP和SMTP都使用TCP。