TCP的序列号与确认号

序列号是TCP协议的可靠性的保证,三次握手就是交换初始序列号的过程。

TCP为什么叫传输控制协议

先聊个题外话,TCP,全称是Transmission Control Protocol,为什么叫传输控制协议?

根据RFC文档:https://tools.ietf.org/html/rfc793

1.5.  Operation

  As noted above, the primary purpose of the TCP is to provide reliable,
  securable logical circuit or connection service between pairs of
  processes.  To provide this service on top of a less reliable internet
  communication system requires facilities in the following areas:

    Basic Data Transfer
    Reliability
    Flow Control
    Multiplexing
    Connections
    Precedence and Security

  The basic operation of the TCP in each of these areas is described in
  the following paragraphs.

提到TCP协议需要实现 Flow Control 的特性,Flow Control是什么意思?
Flow Control即流控制。数据在传输过程中容易出现数据丢失的现象,例如:两台计算机通过串口传输数据时,或者台式机与单片机之间进行通信时,可能由于两端计算机的处理速度不同,出现接收端的数据缓冲区已满,而发送端依然继续发送数据的情况,导致数据丢失。流控制的出现就是为了解决这种数据丢失的问题。

TCP对数据传输的控制包括很多方面,包括:确认应答,超时重传,流量控制,拥塞控制等都是对数据流的传输进行控制,从而确保数据传输的可靠性与高效性,使得数据能完整可靠的传输到对端。而像UDP就没有对传输的数据进行任何控制,直接发出去就完事了,不管对方有没有收到,因此UDP协议也极其简单。

网络虚拟世界中的很多模型都来自于物理世界中,只不过网络中传输的是比特流,真实的物理世界中可能运输的是真实的可以摸得着的包裹。

有些问题思考不明白,就想象一下物理世界中的很多场景。

TCP报文格式

在这里插入图片描述

TCP报文的标志位

TCP报文的头部有6bit用于存储六个标志位:

  • SYN(synchronous 同步标志位,用于建立链接)
  • ACK(acknowledgement 确认标志位,用于对发送的数据进行应答确认)
  • PSH(push 传送)
  • FIN(finish 结束)
  • RST(reset 重置)
  • URG(urgent 紧急)

六个标志位中常用的是:SYN,ACK,FIN

除了标志位外,TCP报文的头部还有两个区域是开发中常用的:
Sequence number(序列号)
Acknowledge number(确认号)

参考:
理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
TCP三次握手及四次挥手详解及常见面试题
“三次握手,四次挥手”你真的懂吗?
理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
流控制
TCPIP协议叫做传输控制网际协议剖析
tcp 协议为什么叫传输控制协议,控制了什么?
TCP(传输控制协议详解)详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值