一.TCP的报文结构 红色圈标出的是在讨论三次握手和四次挥手时会用到的首部字段: 顺序号(seq):TCP对从网络层传下来的数据报文进行分组,分成一段一段的TCP报文段,并对这些报文段进行编号.seq为该TCP报文段的序号. 应答号(ack):期望收到的对方的报文段的序号,用来对已经收到的报文进行确认,如果ack=a+1,那么表示seq<=a的报文都已经收到了. ACK:应答号有效性标志(只有当ACK=1时,ack字段才有效).一旦一个连接建立起来,该标志总被置为1. SYN:同步序号标志(建立…
TCP 三次握手是一道经典的面试题,它是指 TCP 在传递数据之前,需要进行 3 次交互才能正式建立起连接,并进行数据传递. TCP 之所以需要 3 次握手是因为 TCP 双方都是全双工的.所谓全双工指的是,TCP 任何一端既是发送数据方,又是接收数据方,因此这就要求 TCP 通讯双方既要保证自己的发送能力,又要保证自己的接收能力才行. 这就好像打电话时,通讯双方都要保证自己能话筒(传递声音)和耳机(接收声音)都是正常的才行,这样才能进行有效的交流,通常打电话时,都是这样开头的: 我:喂,能听到…
相比于 UDP 来说,TCP 的主要特性是三个:有连接.可靠.面向数据流.所谓的"有连接"指的是 TCP 中的连接管理机制,也就是著名的三次握手和四次挥手,就像打电话一样,想要正常的交流,必须先和对方建立起连接,这就是所谓的"有连接",而面向数据流的机制咱们以后再讲,我们今天要讨论的主题是:TCP 是如何保证可靠性的? TCP 之所以能保证可靠性,主要是通过以下 6 个手段: 校验和 确认应答 超时重传 流量控制 拥塞控制 丢弃重复数据 接下来,我们详细来看这几种手…
能坚持别人不能坚持的,才能拥有别人不能拥有的.关注编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>--Redis都有哪些数据类型?分别在哪些场景下使用比较合适? 在这个系列里,我会整理一些面试题与大家分享,帮助年后和我一样想要在金三银四准备跳槽的同学.我们一起巩固.突击面试官常问的一些面试题,加油!! 1.面试题 Redis都有哪些数据类型?分别适用于哪些场景? 2.面试官心理分析 除非是面试官看你的简历,感觉你就是一个工作3年以内的.比较初级的一个同学,…
能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>-- Redis的线程模型了解吗?为啥单线程效率还这么高? 在这个系列里,我会整理一些面试题与大家分享,帮助年后和我一样想要在金三银四准备跳槽的同学. 我们一起巩固.突击面试官常问的一些面试题,加油!! 1.面试题 Redis和Memcached有什么区别?Redis的线程模型是什么?为什么Redis是单线程的但是还可以支撑高并发? 2.面试官心理分析 问这个…
能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注左上角编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>-- Redis的主从复制?哨兵机制? 在这个系列里,我会整理一些面试题与大家分享,帮助年后和我一样想要在金三银四准备跳槽的同学.我们一起巩固.突击面试官常问的一些面试题,加油!! <[面试突击]— Redis篇>--Redis数据类型?适用于哪些场景? <[面试突击]— Redis篇>--Redis的线程模型了解吗?为啥单线程效…
能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>-- Redis哨兵原理及持久化机制 在这个系列里,我会整理一些面试题与大家分享,帮助年后和我一样想要在金三银四准备跳槽的同学.我们一起巩固.突击面试官常问的一些面试题,加油!! <[面试突击]— Redis篇>--Redis数据类型?适用于哪些场景? <[面试突击]— Redis篇>--Redis的线程模型了解吗?为啥单线程效率还这么…
能坚持别人不能坚持的,才能拥有别人未曾拥有的.关注编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>--Redis Cluster及缓存使用和架构设计的常见问题 在这个系列里,我会整理一些面试题与大家分享,帮助年后和我一样想要在金三银四准备跳槽的同学.我们一起巩固.突击面试官常问的一些面试题,加油!! <[面试突击]— Redis篇>--Redis数据类型?适用于哪些场景? <[面试突击]— Redis篇>--Redis的线程模型了解…
TCP 的三次握手和四次挥手,可以说是老生常谈的经典问题了,通常也作为各大公司常见的面试考题,具有一定的水平区分度.看似是简单的面试问题,如果你的回答不符合面试官期待的水准,有可能就直接凉凉了. 本文会围绕,三次握手和四次挥手相关的一些列核心问题,分享如何更准确的回答和应对常见的面试问题,以后面对再刁钻的面试官,你都可以随意地跟他扯皮了. 面试TCP的意义 我想要先说明一个重要问题,到底面试 TCP 的意义何在? 经常会听到这样抱怨:我是做业务程序开发的,面试官竟然问我 TCP 三次握手.TCP…
候选者:面试官你好,请问面试可以开始了吗 面试官:嗯,开始吧 面试官:今天来聊聊TCP吧,TCP的各个状态还有印象吗? 候选者:还有些许印象的,要不我就来简单说下TCP的三次握手和四次挥手的流程吧 候选者:说完这两个流程,就能把TCP的状态给涵盖上了 面试官:可以吧 候选者:在说TCP的三次握手和四次挥手之前,我先给你画下TCP的头部格式呗(: 候选者:对于TCP三次握手和四次挥手,我们最主要的就是关注TCP头部的序列号.确认号以及几个标记位(SYN/FIN/ACK/RST) 候选者:序列号:在…