【网络原理】TCP 协议中比较重要的一些特性(二)

这篇具有很好参考价值的文章主要介绍了【网络原理】TCP 协议中比较重要的一些特性(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、TCP 状态转换

1.1、三次握手状态

1.2、四次挥手状态

2、滑动窗口

3、流量控制



【网络原理】TCP 协议中比较重要的一些特性(二),网络,tcp/ip,服务器,笔记,网络协议

1、TCP 状态转换

TCP 状态和“线程状态”是类似的概念,用于描述 TCP 连接过程中正在执行什么操作。

TCP 服务器和客户端都有一定的数据结构来保存连接信息,而这个数据结构中有一个属性叫“状态”,操作系统内核根据状态的不同,决定当前应该执行什么操作。

【网络原理】TCP 协议中比较重要的一些特性(二),网络,tcp/ip,服务器,笔记,网络协议
TCP 状态转换图

1.1、三次握手状态

【网络原理】TCP 协议中比较重要的一些特性(二),网络,tcp/ip,服务器,笔记,网络协议

  • LISTEN 状态表示服务器创建好了 serverSocket,并且绑定客户端完成,等待客户端 new Socket 进行三次握手连接。
  • ESTABLISHED 状态表示连接已经建立完毕,三次握手完成。图中的两个 ESTABLISHED 状态可以认为是几乎同时进入。

1.2、四次挥手状态

【网络原理】TCP 协议中比较重要的一些特性(二),网络,tcp/ip,服务器,笔记,网络协议

  • CLOSE_WAIT 表示收到对方发送过来的 fin,接下来的代码中需要调用 close 来主动返回 fin,由于关闭速度 socket 非常快,该状态不太容易被察觉到。【谁被动断开连接,谁进入 CLOSE_WAIT】
  • TIME_WAIT 表示本端给对方发起 fin 之后,对方也给返回了 fin,该状态存在的意义是给最后一个 ack 重传留有一定时间,防止最后一个 ack 丢包,只要该状态还存在,就依然会保存对端的信息,才能为连接提供各种操作(包括返回 ack )。【谁主动断开连接,谁进入 TIME_WAIT】

需要注意的是:TIME_WAIT 也不会无休止的等待,最多等待 2 MSL(MSL 是系统内核的配置项,表示客户端到服务器之间,允许消耗的最长时间),一旦超过这个时间,就再也不会发送 ack 了。

2、滑动窗口

滑动窗口时是 TCP 中非常有特点的机制。

【网络原理】TCP 协议中比较重要的一些特性(二),网络,tcp/ip,服务器,笔记,网络协议
正常机制下
【网络原理】TCP 协议中比较重要的一些特性(二),网络,tcp/ip,服务器,笔记,网络协议
滑动窗口下

正常的确认应答机制下,每次发送放收到一个 ack 后才会发送下一个数据,导致大量的时间都消耗在等 ack 上。

滑动窗口就可以在保证可靠性传输的基础上,提高效率(减少损失的速度,而不是增加速度),通过批量传输,把多次请求的等待时间,使用同一份时间来等,减少了总的等待时间。

例如:此时批量4个数据,对应4个 ack,这4个 ack 到达的时间各异,此时不需要等所有 ack 都到达,只要有一个 ack到达,就发送下一个数据,不需要管 ack 的顺序。

【网络原理】TCP 协议中比较重要的一些特性(二),网络,tcp/ip,服务器,笔记,网络协议

当采用滑动窗口的策略时,如果出现丢包,如何进行重传?这里分两种情况讨论

1、ack 丢了
这种情况下, 部分 ack 丢了并不要紧,对可靠性没有影响,不需要进行重传,因为可以通过后续的 ack 进行确认。

【网络原理】TCP 协议中比较重要的一些特性(二),网络,tcp/ip,服务器,笔记,网络协议

2、数据丢了

数据丢了必然需要重传。 上述重传的过程中,整体的效率是非常高的,因为这里的重传做到了“针对性”重传,不会有重复发送,整体的效率没有额外的损失,这种重传称为“快速重传”

TCP 有接收缓冲区(生产者消费者模型),发送的数据先放到缓冲区里排队,当发现缓冲区中的数据不连续时证明数据丢失,就会重传对应的数据,待数据补齐后再继续接收后面的数据。

【网络原理】TCP 协议中比较重要的一些特性(二),网络,tcp/ip,服务器,笔记,网络协议

3、流量控制

滑动窗口的窗口大小不能无限大,如果窗口过大导致发送速度大于接收方的处理速度(导致接收缓冲区满了),就会出现丢包问题,进而影响了 TCP 的可靠传输。【任何提升效率的行为都不应该影响到可靠性】

为了让发送速度与处理速度保持步调一致,就需要根据接收方的处理能力反过来影响发送方的发送速率称为“流量控制”。通过这个字段来给发送方反馈发送速度。该字段在普通报文中无意义,在 ack 报文中才有意义。接收方会按照自身接收缓冲区的剩余空间大小(又称为“接收窗口”)作为 ack 中窗口大小的数值,发送方就能根据该数值调整窗口大小。

【网络原理】TCP 协议中比较重要的一些特性(二),网络,tcp/ip,服务器,笔记,网络协议

当接收窗口逐渐较少,直至到 0 后,此时接收方的接收缓存区已满,发送方将停止发送。然后发送方会周期性发送窗口探测包(不携带载荷),用于查询窗口大小,当查询到窗口大小不为 0 时继续发送。

【网络原理】TCP 协议中比较重要的一些特性(二),网络,tcp/ip,服务器,笔记,网络协议

【网络原理】TCP 协议中比较重要的一些特性(二),网络,tcp/ip,服务器,笔记,网络协议

JVM 的垃圾回收机制以及垃圾回收算法的详解-CSDN博客https://blog.csdn.net/zzzzzhxxx/article/details/136530845?spm=1001.2014.3001.5501对 JVM 的类加载机制以及寻找字节码文件的“双亲委派模型”的理解-CSDN博客https://blog.csdn.net/zzzzzhxxx/article/details/136529700?spm=1001.2014.3001.5501【网络编程】理解客户端和服务器并使用Java提供的api实现回显服务器-CSDN博客https://blog.csdn.net/zzzzzhxxx/article/details/136322678?spm=1001.2014.3001.5501

如果觉得作者写的不错,求给博主一个大大的点赞支持一下,你们的支持是我更新的最大动力!文章来源地址https://www.toymoban.com/news/detail-840122.html

如果觉得作者写的不错,求给博主一个大大的点赞支持一下,你们的支持是我更新的最大动力!

如果觉得作者写的不错,求给博主一个大大的点赞支持一下,你们的支持是我更新的最大动力!

到了这里,关于【网络原理】TCP 协议中比较重要的一些特性(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TCP/IP网络编程(二) 套接字协议及其数据传输特性

    关于协议 如果相隔比较远的两人进行通话,必须先决定通话方式,如果一方选择电话,另一方也必须选择电话,否则接受不到消息。 总之,协议就是为了完成数据交换而定好的约定。 创建套接字 协议族 通过socket函数的第一个参数传递套接字中使用的协议分类信息,此协议

    2024年02月10日
    浏览(58)
  • 网络原理TCP协议

    hi,我们又见面了,今天为大家带来TCP协议,一共为大家介绍TCP协议的十个核心特性 TCP协议位于传输层,我们知道TCP有一个特点是可靠性,也就是我们知道传输过去的数据是否传到了对端程序,也会尽可能传过去,不论是否传过去,都会有结果 是咋样保证可靠性的呢? 确认应答+超时重传

    2023年04月23日
    浏览(34)
  • 网络原理——TCP协议

    目录 一.TCP概念及其特性       二.TCP原理 1.确认应答机制 2.超时重传机制 3.连接管理机制 三次握手的过程 四次挥手断开连接过程 四次挥手断开连接变形情况: 为什么连接阶段时三次握手,断开连接是四次挥手?  服务器上面出现大量的CLOSE_WAIT状态的TCP连接,请问这种现象

    2024年02月06日
    浏览(81)
  • 【网络原理】TCP/IP协议

    目录 1.应用层 2.传输层(核心问题) 2.1 UDP协议 2.1.2 UDP的特点 2.1.3 基于UDP的应用层协议 2.2 TCP协议(重点内容) 2.2.1 TCP/IP 协议含义 2.2.2 TCP协议端格式: 2.2.3 TCP的特点 2.3 TCP原理 2.4 确认应答机制(安全机制) 2.5 超时重传机制(安全机制) 2.5.1 数据直接丢了,接收方没

    2023年04月13日
    浏览(52)
  • 【网络原理】TCP/IP协议(续)

    目录 🔥网络层重点协议(IP 协议) 一、地址管理 1.如何解决上述地址不够用问题? 2.NAT 机制 2.1 NAPT 2.2 在 NAT 背景下如何通信? 3.IPv6 4.IP地址 4.1 ABCDE类 4.2 子网掩码 4.3 特殊的 IP 地址 二、路由选择 1.路由器 1.1 网关 1.2 路由 🌴数据链路层重点协议 1.以太网 1.1 认识以太网

    2023年04月19日
    浏览(60)
  • 网络原理(四):传输层协议 TCP/UDP

    目录 应用层 传输层 udp 协议  端口号 报文长度(udp 长度) 校验和 TCP 协议 确认应答 超时重传 链接管理 滑动窗口 流量控制 拥塞控制 延时应答 捎带应答 总结 我们第一章让我们对网络有了一个初步认识,第二章和第三章我们通过代码感受了网络通信程序。 而本章的 通信原

    2023年04月27日
    浏览(52)
  • JavaEE-轻松了解网络原理之TCP协议

    TCP,即Transmission Control Protocol,传输控制协议. 16位源端口号与16位目的端口号表示数据 从那个进程来要到那个进程去 . 32位序号表示 一次TCP通信(从TCP连接建立到断开)过程中某一个传输方向上的字节流的每个字节的编号 (TCP将每个字节的数据都进行了编号,称为序列号). 32为

    2024年02月01日
    浏览(48)
  • 【网络原理】TCP/IP协议五层模型

    🥊作者:一只爱打拳的程序猿,Java领域新星创作者,CSDN、阿里云社区优质创作者。 🤼专栏收录于:计算机网络原理 本期讲解协议、OSI七层模型、TCP/IP五层模型、网络设备所在的分层、数据的封装和分佣。 目录 1. 什么要有协议? 2. 协议的分层 2.1 协议分层的好处 3. OSI七层

    2024年02月08日
    浏览(48)
  • 【JavaEE】网络原理——传输层协议:UDP和TCP

    目录 1、简单了解应用层协议 2、传输层UDP协议 3、传输层TCP协议  3.1、TCP报文介绍 3.2、TCP实现可靠传输的核心机制 3.2.1、确认应答 3.2.2、超时重传  3.3、连接管理 (三次挥手,四次握手) 3.3.1、建立连接(三次握手) 3.3.2、断开连接(四次挥手)  3.4、滑动窗口  3.5、流量

    2024年02月10日
    浏览(78)
  • 【网络原理】TCP协议如何实现可靠传输(确认应答机制)

    🥊作者:一只爱打拳的程序猿,Java领域新星创作者,CSDN、阿里云社区优质创作者。 🤼专栏收录于:计算机网络原理 本篇主要讲解:TCP协议段格式,TCP的序列号,SYN、ACK标志位,确认应答机制。 目录 1、TCP协议段格式 1.1 TCP格式段 1.2 TCP协议段格式 2、确认应答机制 2.1 后发

    2024年02月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包