TCP详解

本文详细解析TCP协议,涵盖协议头、三次握手/四次挥手、TCP滑动窗口、定时器、慢启动与拥塞控制等内容。深入探讨TCP如何保证数据有序、实现流量控制,以及解决死锁和糊涂窗口综合征等问题。
摘要由CSDN通过智能技术生成

TCP详解

零声学院TCP/IP训练营笔记。

协议头

TCP的头部结构为:
请添加图片描述
  (1) 16位的源端口号/目的端口号
  告知目的机器报文段来自哪里(源端口号)以及传给传递给哪个上层协议或者应用程序(目的端口号)。进行TCP通讯时,客户端通常使用系统自动选择的临时端口号,而服务器则使用知名端口号。在Linux系统中,一些知名服务使用的端口号定义在/etc/services中。
  (2) 32位序号
  一次TCP通讯(从TCP连接的建立到断开)整个过程中,一个传输方向上的字节流的每一个报文的编号。例如主机A和主机B进行TCP通讯,A发送给B的第一个TCP报文中,序号值就被系统设置为某个随机值(ISN, Initial Sequence Number),在该传输方向(A->B)的后续TCP报文的序号子将被系统设置为ISN加上该报文所携带的第一个字节在整个字节流的偏移。假设某个TCP报文段传输的数据是整个字节流中的第1024~2048字节,那么该报文的序号值为ISN+1025,下一个报文为ISN+2049。
  (3) 32位的确认号
  用于对对方发来的TCP报文段的响应,其值为收到的TCP报文段的序号值加1。
  (4) 4位头部长度
  标志该TCP头部具有多长,单位为字(4字节),可见TCP头部最长为60字节。
  (5) 6位保留
  (6) 6个标志位
  ① URG: 表示紧急指针是否有效
  ② ACK: 表示确认号是否有效(携带ACK标志的TCP报文段称为确认报文段)
  ③ PSH: 提示接收端应用程序要立即从TCP接收缓冲区读走数据,以腾出空间接收后续的数据。(若应用程序不读走数据,数据会一直留在TCP模块的接收缓冲区)
  ④ RST: 表示要求对方重新建立连接(携带RST标志的TCP报文段为复位报文段)
  ⑤ SYN: 表示请求建立一个连接(携带SYN标志的TCP报文段称为同步报文段)
  ⑥ FIN: 表示通知对方要关闭连接(携带FIN标志的TCP报文段为结束报文段)
  (7) 16位窗口大小
  这是TCP流量控制的一个手段。此处的窗口指的是接收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

殇弑天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值