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

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 【传输层】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后直接重传那个报文

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

    相关实践学习
    容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
    通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
    容器应用与集群管理
    欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
    相关文章
    |
    2月前
    |
    网络协议 Python
    TCP传输的三次握手、四次挥手策略是什么
    TCP传输的三次握手、四次挥手策略是什么
    24 0
    |
    2月前
    |
    缓存 网络协议 算法
    【计算机网络-传输层】TCP可靠传输、TCP流量控制、拥塞控制
    【计算机网络-传输层】TCP可靠传输、TCP流量控制、拥塞控制
    |
    11月前
    |
    网络协议 程序员 测试技术
    用了TCP协议,就一定不会丢包吗? 1
    用了TCP协议,就一定不会丢包吗?
    150 0
    用了TCP协议,就一定不会丢包吗? 1
    |
    15天前
    |
    网络协议
    TCP传输的三次握手四次挥手策略
    TCP传输的三次握手四次挥手策略
    13 0
    |
    2月前
    |
    网络协议 算法 网络性能优化
    TCP 重传、滑动窗口、流量控制、拥塞控制
    TCP 重传、滑动窗口、流量控制、拥塞控制
    |
    2月前
    |
    网络协议 算法 网络性能优化
    |
    11月前
    |
    运维 网络协议 Linux
    用了TCP协议,就一定不会丢包吗? 2
    用了TCP协议,就一定不会丢包吗?
    138 0
    |
    12月前
    |
    机器学习/深度学习 监控 网络协议
    浅谈 TCP 握手/数据传输/挥手过程以及 tcpdump 抓包工具使用
    浅谈 TCP 握手/数据传输/挥手过程以及 tcpdump 抓包工具使用
    242 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)滑动窗口:
    206 0
    |
    网络协议 算法 网络性能优化
    理解TCP协议三次握手、四次挥手、流量控制、拥塞控制 、重传机制
    TCP概述 TCP是一种面向连接的协议,在发送数据前通信双方必须在彼此间建立一条连接 所谓的连接其实就是客户端和服务器的内存里保存一份关于对方的信息,如IP地址、端口 TCP是一种字节流,它会处理IP层的丢包、重复以及错误问题 在建立连接的过程中,双方交换的一些参数可以放到TCP的头部 总结 :TCP提供了一种可靠、面向连接、字节流、传输层的服务,采用三次握手建立一个连接,四次挥手关闭一个连接
    233 2
    理解TCP协议三次握手、四次挥手、流量控制、拥塞控制 、重传机制