这是我参与「第三届青训营 -后端场」笔记创作活动的的第3篇笔记
1、刷抖音网络是怎么交互的
1.1 网络接入 互联网
路由:同网段或者跨网段 掩码在子网IP内的 叫同网段 同网段接入:并不是直接把几个服务器连起来,因为可能有很多服务器,实现互联的话最好是要经过交换机的。 早期可能是集线器,现在一般都是交换机了。 集线器是广播,不管要发到哪个机器去,只要发出来就把这个包发到所有的机器上。 交换机是根据目标mac来发送包的,比集线器效率高很多。
SDN:
SDN软件定义网络,用上层的虚拟网络实现通信。 比如overlay网络,在underlay上再封一层,这一层的目的是去进行路由,寻找目标主机,找到后,让目标主机去解包,得到原来的包所携带的信息。
路由对称:
路由不一定是对称的,发出去走一条路,回来的时候可能走另一条路。 从A到C可能是ABC,但是从C回来可能是CFEA 也就是说去的路和回来的路未必是同一条。
路由工作在哪一层呢?
查IP的下一跳才会用路由 但是路由协议工作在哪一层?
其实工作在IP层及以上 这个比较合适
路由改IP地址吗?
不改IP地址,改的是mac地址! IP地址应该是一直不变的
路由是为了找路,最终目标是目标IP 这个肯定不变的。 路由是为了找下一跳,然后把目标MAC地址修改为下一跳,让包传过去。
然后到了下一跳,再根据路由算法,把目标MAC修改为下一跳,继续传输。
指定网卡是因为是以网卡为单位的,
怎么找下一跳的MAC呢?
用ARP协议
ARP的请求不能跨网段,他的广播只会在同网段内,想跨网段必须先找到下一跳的路由,然后到那个路由去发ARP请求才能得到这个子网内的mac地址。
新增IP的时候会发送免费ARP,你会告诉我你的IP地址对应的MAC地址,如果这个网段已经有这个IP了,那么这个新增的设备就会收到回复,告诉他这个IP已经有人用了,不能设置为这个IP,得换一个。 (为了防止IP冲突)
ARP代理是把某个arp请求发往其他的地方,处理完再发回来。。。
Mac为什么不能代替IP地址?
mac是二层的协议,mac是以太网的协议,但是二层有很多协议。。。(互联网历史遗留问题)
IP协议对二层协议做了个统一,这样就支持二层的全部的协议了。
ipv4不够用 ,一般怎么解决的?
用nat
nat是IP+端口一起改变的,在nat设备上弄一个映射表。
这样才能解决多个内网客户端访问同一个目标地址+端口,源端口恰好一样的冲突。