tcp是什么层协议(tcp协议详细说明)

TCP/IP

计算机与网络设备之间如果要相互通信, 双方就必须基于相同的规则(例如由哪一方先发起通信, 使用哪种语言进行通信, 怎样发送与接收数据,怎样结束通信等,不同的硬件,操作系统之间如何通信),这种规则称为协议 (protocol)。而 TCP/IP 是互联网相关各类协议族的总称。

TCP/IP协议族按层次分别为:应用层,传输层,网络层,数据链路层,物理层。

传输层
该层为两台主机上的应用程序提供端到端的通信。传输层有两个传输协议:TCP (传输控制协议) 和 UDP (用户数据报协议)。

传输控制协议 TCP(Transmission Control Protocol)

  • 是一种面向连接的、可靠的、全双工的、基于字节流的传输层通信协议。

用户数据报协议 UDP(User Datagram Protocol)

  • UDP 在传送数据之前不需要先建立连接,远程主机在收到 UDP 报文后,不需要给出任何确认。
  • 虽然 UDP 不提供可靠交付,但在某些情况下 UDP 确是一种最有效的工作方式(一般用于即时通信),比如: QQ 语音、 QQ 视频 、直播等等

TCP 报文段首部格式

tcp是什么层协议(tcp协议详细说明)

  • 源端口和目的端口:各占 2 个字节,分别是源端口和目的端口。IP 地址 + 端口号就可以确定一个地址。
  • 序号/序列号(Sequense Number,seq):在一个 TCP 连接中传送的字节流中的每一个字节都按顺序编号。该字段表示本报文段所发送的数据的第一个字节的序号。初始序号称为 Init Sequense Number, ISN。

    例如,一报文段的序号是 101,共有 100 字节的数据。这就表明:本报文段数据的第一个字节的序号是 101,最后一个字节的序号是 200。显然,下一个报文段的数据序号应当从 201 开始,即下一个报文段的序号字段值应为 201。

  • 确认号 ack:期望收到对方下一个报文段的第一个数据字节的序号。若确认号为 N,则表明:到序号 N-1 为止的所有数据都已正确收到。

保留位右边是 6 个控制位, 用来说明该报文段性质。

  • 紧急位 URG:当 URG = 1 时,表明此报文段中有紧急数据,是高优先级的数据,应尽快发送,不用在缓存中排队。
  • 确认 ACK:仅当 ACK = 1 时确认号字段才有效,当 ACK = 0 时确认号无效。TCP 规定,在连接建立后所有传送的报文段都必须把 ACK 置为 1。
  • 推送 PSH:当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能收到对方的响应。在这种情况下,TCP 就可以使用推送(push)操作。这时,发送方 TCP 把 PSH 置为 1,并立即创建一个报文段发送出去。接收方 TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程。而不用等到整个缓存都填满了后再向上交付。
  • 复位 RST:当 RST = 1 时,表明 TCP 连接中出现了严重错误(如由于主机崩溃或其他原因),必须释放连接,重新建立传输连接。
  • 同步 SYN:SYN = 1 表示这是一个连接请求或连接接受报文。

    当 SYN = 1 而 ACK = 0 时,表明这是一个连接请求报文段。对*同意建立连接,则应在响应的报文段中使 SYN = 1 且 ACK = 1。

  • 终止 FIN:当 FIN = 1时,表明此报文段的发送发的数据已发送完毕,并要求释放运输连接。
上一篇:传输层 transport TCP UDP


下一篇:经受时延的确认(Delay ACK)