TCP协议学习总结

本文主要介绍了TCP协议的基础知识,包括TCP报文格式、三次握手的建立连接过程、四次挥手的拆除连接步骤以及TCP连接中的状态转换。通过详细解读TCP报文的各个字段,阐述了TCP如何确保数据传输的可靠性。此外,还探讨了TCP协议中的常见计时器及其在解决网络通信问题中的作用。
摘要由CSDN通过智能技术生成

     我们知道在TCP/IP模型中,有时也叫DoD(Department of Defense)模型,TCP/IP简化OSI的七层模型为四层,由下而上分别为:网络接口层网际层传输层应用层。而今天我学习的就是传输层的TCP协议(传输控制协议)。

      本文目录:

      1.TCP协议简介

      2.TCP报文格式

      3.TCP的三次握手建立连接和四次挥手拆除连接

      4.TCP中的常见状态

      5.TCP中的常见计时器

  一.TCP协议简介

      TCP是TCP/IP协议栈中的传输层的协议,TCP协议又叫传输控制协议(Transport Control Protocal),是面向连接的可靠的字节流服务。它的可靠性体现在:3次握手建立连接,滑动窗口机制,一定的拥塞避免算法,流量控制,以及一定的超时重传机制。在本文中并不介绍它的可靠性的实现机制。。。

      要学习TCP协议,首先要了解TCP报文的报文格式,下面是TCP的报文格式及分析。。。

  二.TCP报文格式

      

     

       1).16位的源端口号和目的端口号,我们知道端口号就是标识特定主机上的唯一进程的,而IP地址是用来标识网络中的不同主机的,这两个源和目的端口号和IP首部中的源和目的IP地址则标识互联网上的唯一进程,所以套接字的定义说白了就是IP地址和端口号共同组成。

       2).32位的序是用来标识从TCP发送端向TCP接收端发送的数据字节流的,是一个32位的无符号数。它表示在这个报文段中的的第一个数据字节在数据流中的序号。如果将字节流看作在两个应用程序间的单向流动,则TCP用序列号对每个字节进行计数。用来保证到达数据顺序的编号。

    3).32位的确认序号,上一个字段的序号是对数据的编号,所以确认序号是下一个期望接收的TCP分段号,相当于是对对方所发送的并且已经被本方所正确接受的分段的确认。确认序号应当是上次已成功收到数据字节序号加1。不过,只有当标志位中的ACK标志为1时该确认序列号的字段才有效。所以顺序号和确认号共同作用于TCP服务中的确认,差错控制,是用于确保TCP的安全性和可靠性的

   4).4位的报头长度,以32位字长为单位,需要这个值是因为任选字段的长度是可变的。这个字段占4bit(最多能表示15(四位全为1)个32bit的的字,即4*15=60个字节的首部长度),因此TCP最多有60字节的首部。不存在任选字段正常的报头长度是20字节其实相当于给出数据在数据段中的开始位置

   5).保留位,占6比特,为将来的应用而保留,目前置为'0'。

   6).编码位,占有6个比特位,他们中可以有多个为置为1,依次为:URG,ACK,PSH,RST,SYN,FIN

     URG:该位为1说明表示TCP包的紧急指针域有效,用来保证TCP连接不被中断,并且督促中间层设备要尽快处理这些数据。

       ACK:该位为1时说明确认字段是有效,反之为0。

       PSH:请求急迫操作,这个标志位表示Push操作。所谓Push操作就是指在数据包到达接收端以后,立即传送给应用程序,而不是在缓冲区中排队。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值