TCP知识点总结

本文详细介绍了TCP协议的头部结构,三次握手与四次挥手的过程,包括同时打开、同时关闭、拒绝连接的情况,以及流量控制、差错控制和拥塞控制策略。TCP的特点包括其流交付服务、可靠性和面向连接的特性,并与UDP进行了对比。
摘要由CSDN通过智能技术生成

1 头部

image

  • 16位端口号:包括了源端口号和目的端口号。进行TCP通信时,客户端通常使用系统自动选择的临时端口号(一般都很大),而服务器则使用知服务端口号或服务器管理员自定义的端口号。
  • 32位序号:一次TCP通信过程中对一个传输方向上的字节流的每个字节的编号(从这个方向第一个报文段依次排列)。假设主机A和主机B进行TCP通信,A发送给B的第一个TCP报文段中的序号值是系统初始化的一个随机值ISN(初始序号值)。那么之后在A到B的方向上发送的TCP报文段中的序号值将会被系统设置为ISN加上该报文段所携带数据的第一个字节在整个数据字节流中的偏移。
  • 32位确认号:用作对另一方发送来的TCP报文段做出相应。其值是收到对方的报文段的序号值加1。
  • 4位头部长度:标识该TCP头部有多少个32bit字(4字节)。一共有4位,所以最大能表示TCP头部大小为60字节。6位标志位包含如下几项:
    • URG标志,表示紧急指针是否有效。
    • ACK标志,表示确认号是否有效。一般称携带ACK标志的报文段是确认报文段。
    • PSH标志,提示接收端应用程序立即从TCP接受缓冲区读走数据。
    • RST标志,表示要求对方重新建立连接。称携带RST标志的TCP报文段为复位报文段。
    • SYN标志,表示请求建立一个连接。称携带SYN标志的TCP报文段为同步报文段。
    • FIN标志,表示通知对方本端将关闭连接。称携带FIN标志的TCP报文段为结束报文段。
  • 16位窗口大小:是TCP流量控制的一个手段。这里说的窗口指的是接收通告窗口(RWND)。它告诉对方本端TCP接收缓冲区还能容纳多少字节的数据,以让对方控制发送数据的速度。
  • 16位校验和:由发送端填充,接收端对TCP报文段执行CRC算法以效验TCP报文段在传输过程中是否损坏(包括TCP头部和数据部分)。这也是TCP可靠传输的一个重要保障。
  • 16位紧急指针:是一个正的偏移量。它和序号字段的值相加表示最后一个紧急数据的下一字节的序号。即这个字段是紧急指针相对当前序号的偏移,为紧急偏移。以让接收端迅速接受到紧急数据。TCP的紧急指针是发送端向接收端发送紧急数据的方法。

2 三次握手与四次挥手

2.1 三次握手

image

  1. 客户发送第一个报文(SYN),这个报文的作用是同步序号,这个报文选择一个随机序号x作为初始序号。SYN不包含数据,但消耗一个序号。
  2. 服务端发送第二个报文(SYN+ACK)。它是另一个方向的SYN报文,服务器用这个报文同步它的初始序号y,然后ACK表示确认x+1已经收到了客户的SYN报文,并且这个报文还包含了窗口大小。SYN+ACK报文也不包含数据,但消耗一个序号。
  3. 客户发送第三个报文(ACK)。用ACK和确认号y+1表示确认收到了第二个报文。ACK报文不携带数据就不消耗序号。

第三次握手的原因&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值