本文来源于公众号:刘卡卡
大家好,我是刘卡卡,一名大厂奶爸程序员,持续探索副业中。
在跳槽到大厂的过程中,用思维导图工具整理了下网络编程相关的一些八股文。
现在分享给你,希望对你有点帮助。
(想获取原思维导图的话,欢迎关注刘卡卡 回复 888 就可)
又或者,你可以访问 www.processon.com/u/5f0ff035f…
-
网络编程
-
IO复用函数
-
select()
-
有哪些IO事件
-
网络通信
- 分支主题
-
宏
-
-
不足
-
底层结构
-
某个套接字准备好可读,表示什么样的事件发生呢
-
-
poll()
-
API
-
网络通信
-
代码
- 不足
-
-
底层结构
- 子主题
-
-
epoll()
-
三个函数
-
网络通信
- 分支主题
-
-
底层原理
-
epoll_wait()实现
- epoll_ctl()
-
-
边缘触发和水平触发?
-
-
概念
- 适用哪些场合?
- 有100万个客户端同时与一个服务器进程保持着TCP连接。而每一时刻,通常只有几百上千个TCP连接是活跃的(事实上大部分场景都是这种情况)。如何实现这样的高并发?
-
-
Reactor
-
fock() exec()
-
fock()
- 分支主题
-
写时复制
- Redis 的Fock 子进程进行AOF重写
-
-
为什么会有?
-
1、PPC 和 TPC 无法支撑高并发场景
-
PPC
-
优缺点
- prefork
-
-
TPC
-
基本流程
-
优缺点
- prethread
-
-
-
-
2、IO复用技术+线程池
-
-
是什么
-
1、事件类型
- 2、三个关键角色
-
-
分类
-
单 Reactor 单进程
-
优缺点
- 案例:Redis
-
-
单 Reactor 多线程
-
-
-
IO模型
-
Unix 常见的IO模型
- 阻塞IO
-
-
基本概念
-
协议栈基础
-
TCP/IP 网络模型
-
网络包封装原理
- s
-
-
Linux 网络收发流程
-
收
- 发
-
-
如何观察网络的性能情况
-
网络性能指标
- 工具
-
-
C10K
-
-
【案例】-使用 tcpdump 和 Wireshark 分析网络流量
-
-
Socket基本函数
-
服务端
- 分支主题
-
客户端
- 分支主题
-
阻塞函数说明
-
整个交互过程
-
交互图
- 分支主题
-
-
建立连接
-
socket()
-
listen()
-
TCP三次连接,这个listen backLog有什么作用
- 未完成连接队列(SYN 队列) 、已完成连接队列(Accpet 队列)
-
TCP服务端套接字编程中,执行完listen后,而没有执行accept,客户端是建立连接么?
-
-
accept()
- accept 发生在三次握手的哪一步?
- 监听套接字和已连接套接字
-
关闭连接
-
close()
- close 函数具体是如何关闭两个方向的数据流呢?
- 客户端调用 close 了,连接是断开的流程是什么?
-
shutdown ()
- 和close()区别
-
-
-
收发数据
-
write()
-
发送缓冲区
- 操作系统内核的发送缓冲区不足以容纳应用程序数据?
-
-
read()
-
-
其他收发数据
- recv和send
-
-
非阻塞函数
-
read() 和 write()
- 分支主题
-
accept()
-
connect()
-
-
-