首页 > 其他分享 >网易面经:深剖TCP协议的流量控制和拥塞控制,你懂了吗?

网易面经:深剖TCP协议的流量控制和拥塞控制,你懂了吗?

时间:2023-05-28 20:33:56浏览次数:43  
标签:控制 窗口 深剖 面经 TCP 发送 拥塞 接收

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。TCP提供全双工通信、数据可靠传输和拥塞控制等功能,适用于因特网等应用场景。TCP位于OSI七层协议模型的网络层,与用户数据报协议(UDP)一起构成了传输层协议。

TCP通过拥塞控制和流量控制来实现对网络流量的控制。拥塞控制确保了网络不会因为数据传输量过大而造成拥塞,而流量控制则确保了发送方不会发送过多的数据导致接收方无法处理。

  1. 拥塞控制:

拥塞控制的主要目标是避免网络因数据传输量过大而造成拥塞。为此,TCP采用了一种基于拥塞窗口(Congestion Window)的算法来实现拥塞控制。

在发送数据时,拥塞窗口是一个限制数据发送速率的值,它可以动态地调整。在发送端,TCP使用拥塞窗口来控制每次发送的数据量。如果网络拥塞,TCP会将拥塞窗口减半,并暂停发送数据。当网络恢复畅通时,TCP会逐渐增加拥塞窗口,直到达到原来的值。

  1. 流量控制:

流量控制的主要目标是确保发送方不会发送过多的数据导致接收方无法处理。为此,TCP采用了一种基于滑动窗口(Window)的算法来实现流量控制。

在接收数据时,接收方会向发送方发送一个通告,告诉发送方可以发送多少数据。这个通告被称为“接收窗口”(Receiver Window)。发送方会根据接收窗口的大小来控制发送数据的速率,以避免接收方无法处理。如果发送方发送的数据量超过了接收窗口的大小,接收方会丢弃一些数据,并通知发送方减少发送速率。

TCP协议的优点在于其可靠性、稳定性和面向连接的特点。TCP通过拥塞控制和流量控制实现了对网络流量的控制,避免了因数据传输量过大而造成的网络拥塞和丢包等问题。此外,TCP还提供了数据可靠传输机制,包括确认机制、重传机制和拥塞控制机制等,保证了数据的完整性。这些优点使得TCP成为因特网等应用场景下的首选传输协议。

TCP协议的缺点在于其相对较慢的传输速度和占用系统资源较高的特点。由于TCP是面向连接的协议,所以在数据传输之前需要建立连接,这需要消耗一定的时间和资源。此外,在拥塞控制和流量控制的过程中,TCP需要不断地进行控制和调整,这也会消耗大量的时间和系统资源。因此,在某些对传输速度要求较高的应用场景下,TCP可能不是最佳选择。

标签:控制,窗口,深剖,面经,TCP,发送,拥塞,接收
From: https://blog.51cto.com/u_14540126/6366323

相关文章

  • Rust Web 全栈开发之自建TCP、HTTP Server
    RustWeb全栈开发之自建TCP、HTTPServer课程简介预备知识Rust编程语言入门https://www.bilibili.com/video/BV1hp4y1k7SV课程主要内容WebService服务器端WebApp客户端WebApp(WebAssembly)Web框架:Actix数据库:PostgreSQL数据库连接:SQLx全部使用纯Rust编写!一......
  • net7下的tcpip示例
    2023-05-27测试,直接用百度文心一言搜索的,结果出来的代码能运行得通,不错不错服务器端: usingSystem.Net;usingSystem.Net.Sockets;usingSystem.Text;namespacetcpipdemo_server;classProgram{staticvoidMain(string[]args){//创建TCP......
  • 性能测试-分析TCP连接数
    TCP连接数TCP连接数对应的是网络IO,也就是网络数据传输的输入输出。TCP连接是一种面向连接的协议,它通过建立连接来保证数据传输的可靠性和完整性。在建立TCP连接时,会进行三次握手,建立连接后,数据的传输就可以进行了。TCP连接数的增加会导致网络IO的增加,因为每个TCP连接都需要进行......
  • Modbus TCP通信
    ModbusTCP是Modbus协议的一种变体,它是一种基于TCP/IP协议的工业通信协议。ModbusTCP协议使用标准的Ethernet网络作为物理层,支持以太网、WiFi等多种网络类型,并且提供了传统Modbus协议的数据传输方式和寻址方式,可以实现设备之间的数据交换和控制。ModbusTCP协议的特点包括:1.基......
  • 【tcpdump】安装及常用操作
    tcpdump是一款功能强大的网络抓包工具,可以用来实时显示和记录网络数据包,以及对数据包进行过滤和分析。本文将介绍tcpdump的安装和使用方法,帮助用户更好地使用该工具。安装tcpdumptcpdump是一款开源软件,可以通过包管理器进行安装。以Ubuntu系统为例,可以使用以下命令进行安装:sudo......
  • #yyds干货盘点#TCP的报文格式
    TCP的报文格式源端口号:本次TCP连接中,发起连接的主机使用的端口号;目的端口号:本次TCP连接主,接受连接的主机使用的端口号;序号:通过TCP传输的每一个数据段,都有一个序号,作用是为了确认此数据段的顺序。网络中允许传输的数据长度是有限制的,所以当我们要通过TCP传输一个较大的数据时,TCP会将......
  • 我对TCP三次握手的理解
    客户端:买菜大妈服务端:菜贩两次握手买菜大妈:这萝卜2毛一斤卖不?菜贩:卖。你要几斤?如果这两个人是在app上买的。互相之间看不到,那么大妈不想卖,走了。菜贩还在等她回话,这就浪费时间了。三次握手买菜大妈:这萝卜2毛一斤卖不?菜贩:卖。你要几斤?买菜大妈:我不买,我就问问。买卖不成情谊在,都不......
  • 计算机网络(二)OSI七层模型、TCPIP四层模型与原理五层模型
    1OSI参考七层模型(法律上的标准)OSI七层模型OSI:开放式互连通信参考模型分层的原因:标准化、降低各个层之间的关联依赖①应用层:能产生流量能够和用户交互的应用②表示层:加密压缩,开发人员考虑的问题③会话层:服务器和客户端建立的会话netstat-nb④传输层:进行可靠传输、不......
  • SICK CLV69x TCP/IP与PC通讯调试实例
    ​第一部分:现场需求/问题描述客户购买了CLV690+CMF400TCP/IP模块以及手持枪IDM261,有以下要求: 1.  CLV690读取钢卷信息,没有读到通过手持枪补扫; 2.  条码信息通过TCP/IP与PC端通讯; ​ 第二部分:现场工作内容1.产品功能和参数设置:  a. 安装和电......
  • tracee源码初探(二)TCP处理流程
    handleEvents(ctx),processNetCaptureEvents(若开启Capture.Net)协程一直常驻,并等待netCapChannel消息通知.当有事件传过来时,程序先看该事件是否需要处理,也就是说tracee是上报所有事件的,然后过滤来处理事件。在tracee.go中的initBPF函数里t.bpfModule.InitPerfBuf( "net_cap_......