【传输层】TCP、三次握手、四次挥手、可靠传输、TCP拥塞控制、慢开始、拥塞避免、快重传、快恢复

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 【传输层】TCP、三次握手、四次挥手、可靠传输、TCP拥塞控制、慢开始、拥塞避免、快重传、快恢复



    🌸I could be bounded in a nutshell and count myself a king of infinite space.

    特别鸣谢:木芯工作室 、Ivan from Russia


    TCP------打电话----可靠有序、不丢不重复--------提供全双工-------------发送接收缓存----------面向字节流--------搬砖一样加个头运走

    TCP首部格式-----源端口目的端口一共4B-------序号字段(报文第一个字节的序号)--------确认号(期待收到的内容的第一个字节的序号)-------以4B单位

    数据偏移--------首部长度–4B为单位-------URG–urgent紧急位–有紧急情况可以插队处理(发送方)---------配合紧急指针字段使用----------确认位ACK=1有效----------建立连接后ACK必须为1---------PSH=1(接收端插队)------RST复位------TCP出现严重偏差必须释放连接—再重新连接-------------同步SYN=1—表明是一个请求/接受报文----------------终值位FIN----表明报文段发送方已经发完要求释放连接

    窗口—表明接收窗口允许发送方发送的数据量----根据这个设置发送缓存------------检验和-----和IP报文一样—先加上12B的伪首部—计算完去除-------选项–额外的选项

    TCP连接管理

    TCP连接管理-----B/S方式-------

    三次握手---------1.客户端发送连接请求报文段SYN=1,seq=x随机------------------------------2.服务器为TCP分配缓存和变量,并返回确认报文SYN=1,ACK=1,seq=y随机,ack=x+1(序号想收到的)------------------------3.客户端为TCP分配缓存和变量,返回确认SYN=0,ACK=1,seq=x+1,ack=y+1

    SYN洪范攻击-------黑客发送第一个确认包-------服务器一直发送确认等待确认---------服务器也分配了缓存和变量--------导致服务器资源耗尽--------------------解决方法设置 SYN cookie

    TCP的连接释放------------四次握手-------1.服务端发送释放报文连接FIN=1,seq=u(报文段第一个字节的序号一般没有,为0)------------2.服务器返回一个确认报文,客户到服务器这个方向就关闭了(半关闭)ACK=1,seq=v,ack=u+1-----------------3.服务器发送连接释放报文FIN=1,ACK=1,seq=w,ack=u+1-----------------4.客户端回复确认 等待2MSL----最长报文段寿命后彻底关闭—万一对方没收到可以重传----ACK=1,seq=u+1,ack=w+1

    TCP可靠传输-------校验—伪首部、序号、确认、重传

    网络层------------不可靠-----------最大努力交付----------------用tcp来保证----------如果用了UDP-------------只能应用层来保证可靠传输了---------------------实际发送用报文段来传输-------不是纯依靠字节流和序号

    确认----接收方返回确认报文---------也可以捎带着自己要发的信息-------序号写下次期待收到的----------如果456丢了,但是78到了,也会返回期待收到4号

    重传--------超时重传------RTTs—自适应算法—加权的平均往返时间------------可能会等太久了!!!----------冗余ACK----------发送方收到3个对于某个序号的冗余ACK---------认为报文丢失,重传此号报文-------------------快速重传

    TCP流量控制-------让发送方慢点---------滑动窗口-------动态调整发送方的窗口大小----通过回传的确认报文段的窗口字段--------------发送窗口 选取------------接收窗口rwnd 拥塞窗口cwnd的最小值

    TCP流量控制过程--------收到对方的0窗口通知,启动持续计时器--------持续计时器时间到就发送零窗口探测报文------------接收方收到给出现在的窗口值----------------如果再是0继续计时

    TCP拥塞控制-------资源供应不足、全局性性能变差------------过多数据注入网络------------全局性

    拥塞控制4算法---------慢开始–拥塞避免–快重传–快恢复-----------拥塞窗口—发送方设置

    慢开始------开始设置cwnd=1,---------随后每次指数增加------一个往返时延RRT—传输伦次---------------------------指数 到 加法 增加—拥塞避免(线性增加)

    之前一旦遇到拥塞-----------设置新的门限值—ssthresh—发生拥塞时候大小的一半--------------------到了门限值就线性增大

    之前直接回到慢开始

    快重传------就是收到三个冗余ACK后直接重传那个报文

    快恢复------拥塞后不从慢开始开始,直接从新的门限值开始线性增加

    相关实践学习
    通过Ingress进行灰度发布
    本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
    容器应用与集群管理
    欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
    相关文章
    |
    6月前
    |
    网络协议 Python
    TCP传输的三次握手、四次挥手策略是什么
    TCP传输的三次握手、四次挥手策略是什么
    47 0
    |
    6月前
    |
    缓存 网络协议 算法
    【计算机网络-传输层】TCP可靠传输、TCP流量控制、拥塞控制
    【计算机网络-传输层】TCP可靠传输、TCP流量控制、拥塞控制
    |
    网络协议 程序员 测试技术
    用了TCP协议,就一定不会丢包吗? 1
    用了TCP协议,就一定不会丢包吗?
    217 0
    用了TCP协议,就一定不会丢包吗? 1
    |
    15天前
    |
    网络协议 算法 网络性能优化
    计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
    计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
    |
    5月前
    |
    网络协议
    TCP传输的三次握手四次挥手策略
    TCP传输的三次握手四次挥手策略
    31 0
    |
    6月前
    |
    网络协议 算法 网络性能优化
    TCP 重传、滑动窗口、流量控制、拥塞控制
    TCP 重传、滑动窗口、流量控制、拥塞控制
    |
    6月前
    |
    网络协议 算法 网络性能优化
    |
    运维 网络协议 Linux
    用了TCP协议,就一定不会丢包吗? 2
    用了TCP协议,就一定不会丢包吗?
    202 0
    |
    机器学习/深度学习 监控 网络协议
    浅谈 TCP 握手/数据传输/挥手过程以及 tcpdump 抓包工具使用
    浅谈 TCP 握手/数据传输/挥手过程以及 tcpdump 抓包工具使用
    302 0
    |
    网络协议 算法 网络性能优化
    详解 TCP(三次握手 + 四次挥手 + 滑动窗口 + 拥塞控制 + 和 UDP 做对比)
    1. TCP / IP五层模型和OSI七层模型 1)OSI七层模型 2)TCP/IP 五层模型 2. TCP和UDP 1) TCP首部结构 2)UDP首部结构 3)TCP和UDP的区别 2.2 UDP和TCP对应的应用场景 3. TCP 建立连接时的三次握手 1)为什么需要三次握手,而不是两次 2)为什么是三次握手,而不是四次握手 3)如果第三次握手的 ACK 报文丢失,会发生什么 4. TCP 建立连接时的四次挥手 1)为什么需要四次挥手 2)为什么主动断开方的 TIME_WAIT 状态必须等待 2MSL 5. TCP 如何保证可靠性 1)检验和 2)序列号/确认应答: 3)滑动窗口:
    282 0