Overall
记录不是很清楚的地方or重难点部分(加**),以及面试常见题,主要参考小林coding & 各大面经。
小林coding链接:计算机网络
updating ...
QuickStart
ComputerNetwork
2. 基础篇
2.2 输入网址到网页显示期间发生了什么
- 公网服务器的Mac地址是在什么时机通过什么方式获取到的?ARP获取Mac地址只能获取到内网机器的Mac地址吧?
在发送数据包时,如果目标主机不是本地局域网,则填入的MAC地址是路由器**(默认网关?)**,也就是把数据包转发给路由器,路由器一直转发下一个路由器,直到转发到目标主机的路由器,发现IP地址是自己局域网内的主机,就会ARP请求获取目标主机的MAC地址,从而转发到这个服务器主机。
转发的过程中,源IP地址和目标IP地址是不会变的(前提:没有使用NAT网络的),源MAC地址和目标MAC地址是会变化的。
如果是主机连接路由器的话,主机会发送数据包的默认网关(一般是路由器)。 详情请看2.2 路由器Part
**2.3 Linux如何收发网络包
所以为了解决频繁中断带来的性能开销,Linux 内核在2.6版本中引入了NAPI机制 ,它是混合「中断和轮询」的方式来接收网络包,它的核心概念就是不采用中断的方式读取数据 ,而是首先采用中断唤醒数据接收的服务程序,然后 poll 的方法来轮询数据。
3. HTTP
HTTP是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据的「约定和规范」。