硬核! 30张图解HT TP常见面试题
前言
在面试过程中,HTTP 被提问的概率还是比较高的。小林我搜集了5大类HTTP面试常问的题目,同时这5大类题跟HtTP的发展和演变关联性是比较大的,通过问答+图解的形式由浅入深的方式帮助大家进步的学习和理解 HTTP。
- 01 HTTP基本概念
- 02 GET与POST
- 03 HTTP特性
- 04 HTTP与HTTPS
- 05 HTTP/1.1. HTTP/2、HTTP/3 滴变
需要获取这份《图解网络协议》文档的小伙伴可以直接转发+关注后
IP基础知识全家桶,45张图一套带走
前言
前段时间,有读者希望我写篇关于IP分类地址、 子网划分等的文章, 他的反馈常常混淆,摸不着头脑。那么,说来就来!而且要盘就盘全一点,顺便挑战下小林的图解功力,所以就来个IP基础知识全家桶。吃完这个IP基础知识全家桶,包你撑着肚子喊出:“真香!”
不多说,直接上菜,共分为三道菜:
- 首先是前菜「 IP基本认识」
- .其次是主菜「IP地址的基础知识」
- .最后是点心「IP协议相关技术」
听说你ping用得很6 ?给我图解一下ping的工作原理
前言
在日常生活或工作中,我们在判断与对方网络是否畅通,使用得最多的莫过于ping 命令了。“那你知道ping 是如何工作的吗?”--来自小林的灵魂拷问可能有的小伙伴奇怪地问:“我 虽然不明白它的工作,但ping我也用得贼6啊!”你用的是6,但你在面试官面前,你就6不起来了,毕竟他们也爱问。
不知道的小伙伴也没关系,今天我们就来搞定它,搞懂它。消除本次的问号,让问号少一点。
键入网址后,其间发生了什么?
前言
想必不少小伙伴面试过程中,会遇到「当键入网址后,到网页显示,其间发生了什么」的面试题。还别说,这真是挺常问的问题,前几天坐在我旁边的主管电话面试应聘者的时候,也问了这个问题。这次,小林我带大家一起探究下, 一个数据包在网络中的心路历程。每个阶段都有数据包的「心路历程」,我们一 看看它说了什么?
接下来以下图较简单的网络拓扑模型作为例子,探究探究其间发生了什么?
硬不硬你说了算!近40张图解被问了千百遍的TCP三次握手和四次挥手面试题
前言
不管面试Java、C/C++、 Python 等开发岗位,TCP 的知识点可以说是必问的了。任TCP虐我千百遍,我仍待TCP如初恋。遥想小林当年校招时常因TCP 面试题被刷,真是又爱又恨...过去不会没关系,今天就让我们来消除这份恐惧,微笑着勇敢地面对它吧!所以小林整理了关于TCP三次握手和四次挥手的面试题型,跟大家起探讨探讨。
1:TCP的基本认识
2:TCP连接建立
3:TCP链接断开
4:Socket 编程
你还在为TCP重传、滑动窗口、流量控制、拥塞控制发愁吗?看完图解就不愁了
前言
相信大家都知道TCP是一个可靠传输的协议,那它是如何保证可靠的呢?
为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。
那么,TCP是通过序列号、确认应答、重复控制、连接管理以及窗口控制等机制实现可靠性传输的。
今天,将重点介绍TCP的重传机制、滑动窗口、流量控制、拥塞控制。
超时重传
重传机制的其中一个方式,就是在发送数据时,设定个定时器, 当超过指定的时间后,没有收到对方的ACK确认应答报文,就会重发该数据,也就是我们常说的超时重传。
TCP会在以下两种情况发生超时重传:
- .数据包丢失
- 确认应答丢失
实战!我用Wireshark让你「看得见」TCP
前言
为了让大家更容易「看得见」TCP, 我搭建不少测试环境,并且数据包抓很多次,花费了不少时间,才抓到比较容易分析的数据包。接下来丢包、乱序、超时重传、快速重传、选择性确认、流量控制等等TCP的特性,都能「一览无余」
没错,我把TCP的"衣服扒光"了,就为了给大家看得清楚,嘻嘻。
TCP半连接队列和全连接队列满了会发生什么?又该如何应对?
前言
网上许多博客针对增大TCP半连接队列和全连接队列的方式如下:
- 增大TCP半连接队列的方式是增大/proc/sys/netipv4/tcp_ max_ syn. _backlog
- 增大TCP全连接队列的方式是增大listen0 函数中的backlog ;
这里先跟大家说下,上面的方式都是不准确的。
什么?我怎么知道上面的是不准确的?
很简单呀,因为我做了实验和看了TCP协议栈的内核源码,发现要增大这两个队列长度,不是简简单单增大某一个参数就可以的。
接下来,就会以实战+源码分析,带大家解密TCP半连接队列和全连接队列。
在TCP三次握手的时候,Linux 内核会维护两个队列,分别是:
- 半连接队列,也称SYN队列;
- 全连接队列,也称accepet队列;
服务端收到客户端发起的SYN请求后,内核会把该连接存储到半连接队列,并向客户端响应SYN+ACK,接着客户端会返回ACK,服务端收到第三次握手的ACK后,内核会把连接从半连接队列移除,然后创建新的完全的连接,并将其添加到accept队列,等待进程调用accept函数时把连接取出来。
面试官:换人!他连TCP这几个参数都不懂
前言
TCP性能的提升不仅考察TCP的理论知识,还考察了对于操作系统提供的内核参数的理解与应用。
TCP协议是由操作系统实现,所以操作系统提供了不少调节TCP的参数。
接下来,将以三个角度来阐述提升TCP的策略,分别是:
- TCP三次握手的性能提升;
- TCP 四次挥手的性能提升;
- TCP数据传输的性能提升;
需要获取这份《图解网络协议》文档的小伙伴可以直接转发+关注后