ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-08-19 14:35:32  阅读:197  来源: 互联网

标签:协议 字节 ACK 报文 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 报文段首部格式

  • 源端口和目的端口:各占 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时,表明此报文段的发送发的数据已发送完毕,并要求释放运输连接。

标签:协议,字节,ACK,报文,tcp,TCP,详细,序号,连接
来源: https://www.cnblogs.com/crack1/p/15161611.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有