基本没问八股,大部分都是计网拷打,个人感觉比腾讯问的更难
- 从网卡收到一个包,到应用层的整个过程(以太网协议+ipv4分片如何标识+udp/tcp的分情况处理+tcp状态机切换)
- 你的协议栈是如何处理乱序的情况?(rcv.iss+rcv.seq)
- ip层如何路由(手动输入多网卡ip,配置子网掩码构成基础路由表项,通过手动添加网关,或者ARP宣告来获取路由器的ip)
- 接收阶段的路由怎么做(项目只做了发送的路由,没有做接收中转的路由)
- ip层的差错控制(校验和算法)
- 协议栈跟网卡的互动,网卡的硬件功能(这个只答了发送和接收数据包+crc循环冗余校验,被说真实的网卡作用不止这个)
- 网卡收到包,一直到应用层,中间经过了哪些拷贝(DMA拷贝+cpu拷贝?)
- DMA拷贝如何通知完成?(中断)
- ARP的功能(查询包+响应包+嗅探包+宣告包+缓存+超时控制)
- ip往下发,在没有ARP缓存的时候,如何操作?(发ARP查询包)
- 那你发ARP包的时候,原来的那个数据包如何处理?(挂载+超时控制)
- 协议栈内部一次能挂几个?(5个,不能太多)
- 拥塞控制算法详细讲解
- 免费ARP(讲一下ARP的包体结构)
- tcp连接建立的过程中,涉及到的系统函数,包括这些函数内部协议栈的处理(底层原理+发包+状态机变化)
- 三次握手协商哪些信息(iss.win.mss)
- tcp选项了解哪些(送分题)
- mss的作用(送分题)
- TSO了解吗(啥玩意儿?)
- listen状态下,tcp会回复rst吗(yep)
- 没有listen,发syn回复啥,为什么(送分题)
- udp呢,收到未知的报文怎么处理(送分题)
- icmp不可达报文有哪些(30.31.32.33,只知道这四个)
- 你实现的有哪些(33.00.80)
- timewait状态的作用
- 大量timewait如何处理
- closewait呢
- 除了网络之外,你还对什么比较熟悉?答说c++的语言特性,数据库和分布式,后面就是一些常规八股,但是问的很深,有一些没答出来
面试官说我网络模块基础非常扎实,许愿二面