• TCP/IP学习


    TCP–可靠和效率

    【Transmission Control Protocol----TCP】
    目标:process to process,保障可靠性(非安全性)

    什么是可靠性

    1、尽最大努力将数据发送给对方,不保证百分百
    2、数据发送失败后会给应用层提示
    3、保证收方(应用层)严格按照发送时的数据顺序接收

    确认机制 ack – acknowledge确认

    Q:如果发送方同时发送很多数据,怎么直到对方收到哪一份?
    在这里插入图片描述
    Q:如果没有收到对方的确认,接下来怎么办?
    在这里插入图片描述

    序列号–Sequence Number—SN–发送的数据编号

    确认序列号–Acknowledge Sequence Number–ASN–确认的数据编号

    编号规则

    在这里插入图片描述

    在这里插入图片描述

    SN在TCP Segment的Header中如何体现?

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    重传

    在这里插入图片描述
    【对于发送方来说,1.1和2.1的情况直接重发即可,收到重复的ack和sn都没有关系,直接扔掉重复的了】

    超时重传

    在这里插入图片描述
    在这里插入图片描述
    【不重发了以后:】
    在这里插入图片描述
    在这里插入图片描述

    TCP有发送缓冲区,UDP没有

    在这里插入图片描述

    为什么ISN(初始序列号)不设置从0开始?

    在这里插入图片描述
    在这里插入图片描述

    三次握手

    握手阶段–双方同步(synchronize)信息
    在这里插入图片描述

    在这里插入图片描述

    三次握手是否可以携带payload?

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    三次握手状态变换

    在这里插入图片描述
    在这里插入图片描述

    四次挥手

    标志位:FIN
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    为什么要设置TIME_WAIT状态?

    在这里插入图片描述

    为什么TIME_WAIT是2SML?

    在这里插入图片描述

    服务器上出现了大量的TIME_WAIT状态的TCP连接,是否合理?如果合理说出理由。不合理请给出修复意见。

    在这里插入图片描述

    TCP中异常情况

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    【乙在读数据察觉不到甲已经消失怎么办】
    在这里插入图片描述

    net(网络)stat(状态)—命令查询主机上TCP连接情况

    在这里插入图片描述
    在这里插入图片描述

    流量控制

    在这里插入图片描述

    如何知道对方的接受能力?

    在这里插入图片描述
    【时不时发送ack+window】
    在这里插入图片描述


    在这里插入图片描述

    如何控制发送量?–滑动窗口机制

    在这里插入图片描述
    在这里插入图片描述

    拥塞控制

    作为发送方如何直到当前网络承载能力?

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    发送最大流量(发送窗口) = f(拥塞窗口,接收窗口)?

    在这里插入图片描述

    如何进行控制?

    仍然是滑动窗口。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    【总结】

    在这里插入图片描述

    面试题

    在这里插入图片描述

    协议

    在这里插入图片描述

  • 相关阅读:
    【SpringBoot】薛定谔的yaml
    记录docker 部署nessus
    机器语言编写helloworld
    NTP授时服务器(GPS授时器)在DCS系统应用
    Android studio2021工程将动态库so编译进apk
    公众号h5授权链接显示redirect_uri域名与后台配置不一致
    flutter环境之安装FVM
    搭建第一个区块链网络
    Python多进程
    docker容器日常维护指南
  • 原文地址:https://blog.csdn.net/k1159/article/details/126510193