这是我参与「第三届青训营 -后端场」笔记创作活动的的第五篇笔记
刷抖音网络是怎么交互的?
网络接入
-
路由一定是对称的吗?
不一定
A->H 有多条路可达,同样,H->A 返回时也有多条路,所以路由不一定是对称的。 -
路由是工作在哪一层协议?
路由工作在网络层,但路由协议不一定在网络层。
如果一定在划分的话,单纯地从层次上讲的话,RIP,BGP应该在应用层,OSPF,EIGRP在传输层。 -
路由是改的ip地址吗?
路由改的是MAC地址。
-
怎么找到下一跳的MAC?
ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址\
主机A想要获取主机B的 MAC 地址,通过主机A会通过广播的方式向以太网上的所有主机发送一个ARP请求包,这个ARP请求包中包含了主机 A 想要知道的主机B的IP地址。主机A发送的ARP请求包会被同一链路上的所有主机/路由器接收并进行解析。每个主机/路由器都会检查ARP请求包中的信息,如果ARP请求包中的目标IP地址和自己的相同,就会将自己主机的MAC地址写入响应包返回主机A(单播)。由此,可以通过ARP从IP地址获取 MAC 地址,实现同一链路内的通信。
- MAC地址不能代替IP地址吗?
当年设计 IP 地址的目的是什么呢?当年设计出 IP 地址这个东西,就是因为随着网络中的设备逐渐增多,人们发现路由(也就是寻找数据包从发送方到接收方的路径)变得越来越困难了。于是人们想了一个办法,就是把网络划分成很多个子网。这样,在路由的时候,路由器可以把其他子网看成一个整体来进行计算。对于目的地在其他子网的数据包,路由器只需要让数据包到达那个子网即可,而剩下的工作就由子网内部解决了。虽然这种方法只能让寻找到的路径接近最优而不保证最优,不过它大大减少了路由器的计算量,利大于弊,所以被采用了。
那么为什么我们需要 IP 地址呢?因为如果我们只用 MAC 地址的话,我们会发现路由器需要记住每个 MAC 地址所在的子网是哪一个(不然每一次收到数据包的时候路由器都要重新满世界地去找这个 MAC 地址的位置)。而世界上有 2的48次方个 MAC 地址,这就意味着即使我们给每个 MAC 地址只留 1 字节的储存空间,每个路由器也需要 256 TB 的内存!这显然是不可能实现的。
这就是我们需要 IP 地址的原因了。和 MAC 不同的是,IP 地址是和地域相关的。对于位于同一个子网上的设备,我们给他们分配的 IP 地址前缀都是一样的。这个前缀就像邮政编码一样。这样,路由器过 IP 地址的前缀就能知道这个设备在哪个子网上了。现在,路由器只需要记住每个子网的位置即可,大大减少了路由器所需要的内存。 既然 IP 地址不能去掉,那么能不能去掉 MAC 地址呢?也不能。因为 IP 地址是要设备上线以后,才能根据他进入了哪个子网来分配的,在设备还没有 IP 地址的时候(或者分配 IP 地址的过程中),我们还需要用 MAC 地址来区分不同的设备。
总之,MAC 地址就像自己的 ID 号,而 IP 地址就像带着邮政编码的住址,各有各的用途。所以我们需要两个地址,缺一不可。 (www.zhihu.com/question/21… @楼宇)
-
IPv4不够用,一般怎么解决的?
-
IPv6
-
NAT(Network Address Translator,网络地址转换)
-
网络传输
- 什么是TCP连接?
TCP(Transmission Control Protocol,传输控制协议) 为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。由于运输层提供了高可靠性的端到端的通信,因此应用层可以忽略所有这些细节。为了提供可靠的服务,TCP采用了超时重传、发送和接收端到端的确认分组等机制。
-
为什么互联网上那么多HTTP通信?为什么不直接用TCP通信呢?
其实HTTP只是多加了一层规矩。HTTP依然是TCP,只是这个规矩让用户更清晰/更简洁。
-
传输中被插入小网站怎么办?
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。