这是我参与「第三届青训营 -后端场」笔记创作活动的的第三篇笔记。
计算机网络
网络接入
互联网
机房的服务器应该与各大运营商连接,与国外的网络用光缆连接。
路由
同网段
IP在掩码的子网以内叫做同网段,同网段内也有路由,接入通过中间设备比如交换机(有IP)。同网段发包把目标mac改成查到的mac
不同网段
- 路由一定是对称的吗?不一定,有多条路,不一定对称返回。
- 路由工作在那一层?一般认为IP层
- 路由改的是IP地址吗?不是,改的是mac地址,目标地址的ip应该是不变的。
ARP协议
- 逻辑同网段才能发送ARP,跨网段不能。广播请求不能跨网段,而要一级级请求。
- ARP请求是广播,应答是单播。
- 免费ARP?告诉其它服务器要刷新,这里新增了一个服务器,同时会避免IP冲突。(免费指随便发)
- ARP代理?发送ARP时中间设备劫持,发往另一个地方。
- ARP本质上是查找下一跳的MAC,不是请求布标地址。
IP协议
- 唯一标识,互联网统用,服务端一个,客户端一个。
- MAC为什么不能代替IP地址?MAC二层以太网协议,但二层协议不止有以太网协议,由于互联网遗留问题,不能向下兼容,IP做了一层封装。MAC地址难记。
- ipv4不够咋办?ipv6,不支持Ipv6的还有NAT
NAT协议
- 内部局域网设备改源地址接入外部。
- 多个内网客户端同时访问同一个目标地址+端口,源端口恰好一样,会有冲突吗?不会,NAT不仅改IP地址,也改端口。
DNS协议
- 把域名映射到IP
- 递归迭代请求
- DNS协议基于的传输层协议是UDP
UDP协议
- 如何保证可靠?如何避免分片(需要避免分片,提高效率),如何知道没有丢包?每次发包发多少?
- 链路层具有最大传输单元MTU这个特性,它限制了数据帧的最大长度,不同的网络类型都有一个上限值。以太网的MTU是1500,你可以用 netstat -i 命令查看这个值。如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分片(fragmentation)操作,使每一片的长度都小于或等于MTU。我们假设要传输一个UDP数据包,以太网的MTU为1500字节,一般IP首部为20字节,UDP首部为8字节,数据的净荷(payload)部分预留是1500-20-8=1472字节。如果数据部分大于1472字节,就会出现分片现象。RFC 1191描述了“路径MTU发现”,该技术用于确定两台IP主机间的路径MTU,这样就可以避免IP分片。在Internet协议IPv4版本和较新的IPv6版本中,分片机制的细节和分片机制的整体框架是有所不同的。
TCP协议
- 拔了网线连接会断吗?不会立刻断,会根据是否有探活,心跳包来决定。
网络提速
HTTP2.0
- 多路复用,在tcp跑多个http请求
- 多路复用/stream 其实是串行的一个一个包传,
HTTP3.0/QUIC
- 解决http队头阻塞问题
- 高效传输