TCP 协议灵魂问题,巩固你的网路底层基础
原标题:TCP协议灵魂问题 , 巩固你的网路底层基础
先亮出这篇文章的思维导图
文章图片
TCP作为传输层的协议 , 是一个软件工程师素养的体现 , 也是面试中经常被问到的知识点 。 在此 , 我将TCP核心的一些问题梳理了一下 , 希望能帮到各位 。
001.能不能说一说TCP和UDP的区别?
首先概括一下基本的区别:
TCP是一个面向连接的、可靠的、基于字节流的传输层协议 。
而UDP是一个面向无连接的传输层协议 。 (就这么简单 , 其它TCP的特性也就没有了) 。
具体来分析 , 和UDP相比 , TCP有三大核心特性:
面向连接 。 所谓的连接 , 指的是客户端和服务器的连接 , 在双方互相通信之前 , TCP需要三次握手建立连接 , 而UDP没有相应建立连接的过程 。 可靠性 。 TCP花了非常多的功夫保证连接的可靠 , 这个可靠性体现在哪些方面呢?一个是有状态 , 另一个是可控制 。TCP会精准记录哪些数据发送了 , 哪些数据被对方接收了 , 哪些没有被接收到 , 而且保证数据包按序到达 , 不允许半点差错 。 这是有状态 。
当意识到丢包了或者网络环境不佳 , TCP会根据具体情况调整自己的行为 , 控制自己的发送速度或者重发 。 这是可控制 。
相应的 , UDP就是无状态,不可控的 。
面向字节流 。 UDP的数据传输是基于数据报的 , 这是因为仅仅只是继承了IP层的特性 , 而TCP为了维护状态 , 将一个个IP包变成了字节流 。002:说说TCP三次握手的过程?为什么是三次而不是两次、四次?
恋爱模拟
以谈恋爱为例 , 两个人能够在一起最重要的事情是首先确认各自爱和被爱的能力 。 接下来我们以此来模拟三次握手的过程 。
第一次:
男:我爱你 。
女方收到 。
由此证明男方拥有爱的能力 。
第二次:
女:我收到了你的爱 , 我也爱你 。
男方收到 。
OK , 现在的情况说明 , 女方拥有爱和被爱的能力 。
第三次:
男:我收到了你的爱 。
女方收到 。
现在能够保证男方具备被爱的能力 。
由此完整地确认了双方爱和被爱的能力 , 两人开始一段甜蜜的爱情 。
真实握手
当然刚刚那段属于扯淡 , 不代表本人价值观 , 目的是让大家理解整个握手过程的意义 , 因为两个过程非常相似 。 对应到TCP的三次握手 , 也是需要确认双方的两样能力:发送的能力和接收的能力 。 于是便会有下面的三次握手的过程:
文章图片
从最开始双方都处于CLOSED状态 。 然后服务端开始监听某个端口 , 进入了LISTEN状态 。
然后客户端主动发起连接 , 发送SYN,自己变成了SYN-SENT状态 。
服务端接收到 , 返回SYN和ACK(对应客户端发来的SYN) , 自己变成了SYN-REVD 。
之后客户端再发送ACK给服务端 , 自己变成了ESTABLISHED状态;服务端收到ACK之后 , 也变成了ESTABLISHED状态 。
另外需要提醒你注意的是 , 从图中可以看出 , SYN是需要消耗一个序列号的 , 下次发送对应的ACK序列号要加1 , 为什么呢?只需要记住一个规则:
凡是需要对端确认的 , 一定消耗TCP报文的序列号 。SYN需要对端的确认 , 而ACK并不需要 , 因此SYN消耗一个序列号而ACK不需要 。
为什么不是两次?
根本原因:无法确认客户端的接收能力 。
分析如下:
如果是两次 , 你现在发了SYN报文想握手 , 但是这个包滞留在了当前的网络中迟迟没有到达 , TCP以为这是丢了包 , 于是重传 , 两次握手建立好了连接 。
看似没有问题 , 但是连接关闭后 , 如果这个滞留在网路中的包到达了服务端呢?这时候由于是两次握手 , 服务端只要接收到然后发送相应的数据包 , 就默认建立连接 , 但是现在客户端已经断开了 。
看到问题的吧 , 这就带来了连接资源的浪费 。
为什么不是四次?
三次握手的目的是确认双方发送和接收的能力 , 那四次握手可以嘛?
当然可以 , 100次都可以 。 但为了解决问题 , 三次就足够了 , 再多用处就不大了 。
三次握手过程中可以携带数据么?
第三次握手的时候 , 可以携带 。 前两次握手不能携带数据 。
如果前两次握手能够携带数据 , 那么一旦有人想攻击服务器 , 那么他只需要在第一次握手中的SYN报文中放大量数据 , 那么服务器势必会消耗更多的时间和内存空间去处理这些数据 , 增大了服务器被攻击的风险 。
- 历史上的今天:灵魂献祭 (3月7日)
- 喜欢吹毛求疵,有精神洁癖的星座,远离喧嚣尘世,保持灵魂高洁
- 相识久了,反倒关系疏远的星座,注重灵魂契合,不掺杂利益和目的
- 巨兴茂:郭靖宇的千里马,《灵魂摆渡》五公子,貌丑才高娶美娇妻
- 抽卡方面,抽卡是好多游戏的灵魂所在,方舟也不例外
- 赋有“灵魂”的美裤时尚修身醒目,苗条的女生迫不及待
- 正午空间主案说 · 一个殚精竭虑的设计创造的灵魂,这才是家装的根本价值
- 拒绝千篇一律!最有灵魂的三大星座,远离庸俗,做独一无二的自己
- 伟鸿集团(03321-HK)与广东汇徽隆投资签框架合作补充协议
- 灵魂有趣,不管谁有负能量,这些星座小天使都能帮你赶走正能量满满,生活总是充满阳光的星座喜欢新鲜感,爱情三分钟热度的星座女没事别追这些星座
