文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

TCP的三次握手与四次挥手

2024-11-30 02:35

关注

主要特点:

  1. 面向连接:在传输数据之前,必须先建立TCP连接。连接是可靠的服务,具有固定的连接端点。
  2. 可靠传输:TCP提供了数据传输的确认和重传机制,以确保数据的顺序和完整性。如果数据在传输过程中丢失或损坏,TCP会重新发送数据,以确保接收端能够正确地接收到数据。
  3. 流量控制:TCP提供了一种机制,用于控制发送方发送数据的速度,以防止接收方来不及接收数据而造成数据丢失。
  4. 拥塞控制:当网络拥塞时,TCP会降低发送数据的速度,以减少网络拥塞。TCP使用一系列算法来检测和防止网络拥塞。
  5. 字节流:TCP将应用程序中的数据作为字节流发送,没有消息边界的概念。这意味着发送端可以连续发送数据,而接收端必须按顺序接收字节流并重新组合成有意义的数据。

TCP广泛应用于互联网协议(IP)网络中,是互联网协议(IP)的重要组成部分。许多应用程序和协议都使用TCP作为其传输层协议,例如HTTP、FTP、SMTP和许多其他协议。

在发送数据前,通信双方必须在彼此间建立一条连接。所谓的“连接”,其实是客户端和服务端保存的一份关于对方的信息,如ip地址、端口号等。TCP可以看成是一种字节流,它会处理IP层或以下的层的丢包、重复以及错误问题。在连接的建立过程中,双方需要交换一些连接的参数。这些参数可以放在TCP头部。一个TCP连接由一个4元组构成,分别是两个IP地址和两个端口号。一个TCP连接通常分为三个阶段:连接、数据传输、退出(关闭)。通过三次握手建立一个链接,通过四次挥手来关闭一个连接。当一个连接被建立或被终止时,交换的报文段只包含TCP头部,而没有数据。

TCP报文头部结构

图片

  1. 源端口和目的端口:用于标识发送和接收数据的进程。
  2. 序号:seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记,以便在接收端重新排序并组装数据。
  3. 确认号:ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,ack=seq+1,用于确认接收到的数据,并告诉发送端下一个期望接收的字节号。
  4. 头部长度:指示TCP头部的大小(以32位字为单位)。
  5. 标志位:URG、ACK、PSH、RST、SYN和FIN等标志,用于指示TCP的状态和操作。标志位具体含义如下:
  1. 窗口大小:用于流量控制,指示接收端可接收的最大数据量。
  2. 校验和:用于检测数据在传输过程中的错误。
  3. 紧急指针:用于标识紧急数据的字节号。
  4. TCP选项:可变长的可选信息,例如最大段大小、时间戳等。

三次握手

TCP的三次握手过程是建立TCP连接的过程,目的是为了初始化通信双方sequence number的初始值。

图片

四次挥手

四次挥手过程是用于正常关闭TCP连接的过程。

图片

比如客户端初始化的序列号ISA=100,服务端初始化的序列号ISA=300。TCP连接成功后客户端总共发送了1000个字节的数据,服务端在客户端发FIN报文前总共回复了2000个字节的数据。


来源:沐雨花飞蝶内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯