1. 程序工作的时候网络各层的状态
如下图所示:
1. TCP 在进行三次握手的时候,IP 层和 MAC 层对应都有什么操作呢?
TCP 三次握手是通过在传输层建立连接的一个过程,在这个过程中,TCP 和 IP 层、MAC 层都起到了重要的作用。
-
IP 层:在进行三次握手时,IP 层主要负责传递分组数据。IP 层为每个分组分配了一个 IP 地址,以确定数据的发送者和接收者。IP 层也为每个分组标识了一个 Time-to-Live(TTL)值,以避免分组在网络中循环传输。
-
MAC 层:在三次握手的过程中,MAC 层负责将分组数据从一个网络节点传递到另一个网络节点。MAC 层使用 Media Access Control(MAC)地址将分组数据附加到以太网帧中,以确保数据的安全传递。
综上所述,IP 层和 MAC 层在三次握手中都起到了保证数据传输正确和有效的作用,而不同的是 IP 层主要负责数据分组和分配地址,而 MAC 层主要负责数据的物理传输。
2. A 知道自己的下一个中转站是 B,那从 A 发出来的包,应该把 B 的 IP 地址放在哪里呢?B 知道自己的下一个中转站是 C,从 B 发出来的包,应该把 C 的 IP 地址放在哪里呢?如果放在 IP 协议中的目标地址,那包到了中转站,怎么知道最终的目的地址是 D 呢?
A 发出的包,应该把 B 的 IP 地址放在 IP 协议中的目标地址,即 Destination IP Address。这是因为 A 的下一个中转站是 B,所以 A 认为 B 就是目标节点,将 B 的 IP 地址放在目标地址中。
同样,B 发出的包,应该把 C 的 IP 地址放在 IP 协议中的目标地址,即 Destination IP Address。这是因为 B 的下一个中转站是 C,所以 B 认为 C 就是目标节点,将 C 的 IP 地址放在目标地址中。
如果包到达中转站,中转站会对包进行解析,通过解析 IP 协议中的源地址(Source IP Address)和目标地址(Destination IP Address)来确定包的最终目的地址。如果目标地址不是该中转站的地址,那么中转站就会转发该包到下一个中转站,直到到达目标节点。在这个过程中,包的目标地址将会不断更新,直到到达目标节点 D。
3. 从你的电脑,通过 SSH 登录到公有云主机里面,都需要经历哪些过程?
从电脑通过 SSH 登录到公有云主机的过程如下:
-
域名解析:首先,通过域名系统(DNS)将主机名解析为 IP 地址,以便确定公有云主机的位置。
-
建立 TCP 连接:然后,电脑使用 TCP 协议与公有云主机的 SSH 服务器建立一个连接。这需要进行三次握手,以确保两个节点之间的通信线路是正确和可靠的。
-
身份验证:一旦建立连接,电脑需要向 SSH 服务器发送凭证,以验证其身份。这通常包括用户名和密码,或者是私钥。
-
加密通信:如果身份验证成功,那么连接就会被加密,以确保数据传输的安全性。
-
会话建立:最后,电脑和公有云主机之间就会建立一个 SSH 会话,允许用户在远程服务器上执行命令和传输文件。
4. MAC 地址的作用以及它在网络协议中的那一层?
MAC (Media Access Control) 地址是一种物理地址,是网络设备(如计算机,路由器,交换机等)的唯一标识。它用于在局域网 (LAN) 或广域网 (WAN) 中识别网络设备,是网络协议中的 Data Link Layer (数据链路层) 的一部分。
在传输数据时,MAC 地址用于将数据从一台计算机发送到另一台计算机,并在途中确保数据包通过正确的路径到达目标。在发送数据时,源设备通过使用其 MAC 地址来标识它作为数据的发送者,而目标设备则通过接收到的 MAC 地址确定数据是要发送到它。
因此,MAC 地址是在网络协议中非常重要的一个组成部分,在网络通信中起到了至关重要的作用。
2. 网络中的IP地址
IP地址是32位的,一般呗分成5类,如下图:
其中abc三类地址所能包含的主机数量如下:
类别 | IP地址范围 | 最大主机数 | 私有IP地址范围 |
---|---|---|---|
A | 0.0.0.0 - 127.255.255.255 | 2 24 2^{24} 224 = 16777214 | 10.0.0.0-10.255.255.255 |
B | 128.0.0.0 - 191.255.255.255 | 2 16 2^{16} 216 = 65534 | 172.16.0.0-172.31.255.255 |
C | 192.0.0.0 - 223.255.255.255 | 2 8 2^{8} 28 = 254 | 1 92.168.0.0-192.168.255.255 |
需要注意的是:现在已经不再使用 A、B、C 类 IP 地址,而是使用 IPv4 地址和 IPv6 地址。因此,IP 地址分类可能受到相关限制。 |
1. 你怎么查看 IP 地址吗?说说现有各个平台的方式
查看 IP 地址的方法因平台而异:
- Windows:
打开命令提示符,输入 “ipconfig
” 并回车。您可以在 “IPv4 地址” 下面找到您的 IP 地址。 - macOS:
打开终端,输入 “ifconfig” 并回车。您可以在 “inet” 下面找到您的 IP 地址。 - Linux:
打开终端,输入 “ifconfig” (或者ip addr
)并回车。您可以在 “inet addr” 下面找到您的 IP 地址。 - 网络设备:
登录路由器或交换机的管理界面,找到 “状态” 或 “网络信息” 部分,您可以在那里找到设备的 IP 地址。 - 通过浏览器查看:
在浏览器中输入 “what is my IP”,您将看到您的公共 IP 地址。
在 Linux 系统中,可以使用 “ip addr
” 命令查询 IP 地址。该命令会列出所有网络接口的详细信息,其中包括 IP 地址。
例如:
$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
valid_lft 85916sec preferred_lft 85916sec
在此示例中,网络接口 eth0 的 IP 地址为 192.168.1.100/24。在 IP 地址的后面有个 scope,对于 eth0 这张网卡来讲,是 global,说明这张网卡是可以对外的,可以接收来自各个地方的包。对于 lo 网卡来说,是 host,说明这张网卡仅仅可以供本机相互通信。
lo 全称是loopback,又称环回接口,往往会被分配到 127.0.0.1 这个地址。这个地址用于本机通信(可以用于Socket进程间通信),经过内核处理后直接返回,不会在任何网络中出现;
2. 什么是无类型域间选路(CIDR)?
CIDR (Classless Inter-Domain Routing) 是一种对 IP 地址分配的编址方法,用于减少冗余的 IP 地址数量和提高 IP 地址的利用率。CIDR 取代了传统的 IP 地址分配方式,即 IP 地址分类。
CIDR 可以在不增加 IP 地址总数的情况下,通过使用子网掩码更高效地分配 IP 地址。子网掩码是一个二进制字符串,可以用来指示一个网络的 IP 地址范围。例如,如果某个 IP 地址的子网掩码为 /24,则该地址可以分配给每个子网中的最多 256 个主机。
总的来说,CIDR 是一种更灵活和高效的 IP 地址分配方式,有助于管理大量的 IP 地址。
3. 什么是公有 IP 地址和私有 IP 地址?
公有 IP 地址是可以被全球范围内任意网络终端访问的 IP 地址,唯一的。它是由 Internet Assigned Numbers Authority(IANA)分配的。
私有 IP 地址是在私有网络内部使用的 IP 地址,它不能在 Internet 上访问。私有 IP 地址由 Internet Assigned Numbers Authority 为不同类型的私有网络分配。
公有 IP 地址的范围是:
- IPv4:从 1.0.0.0 到 223.255.255.255
- IPv6:从 2000:: 到 3FFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
私有 IP 地址的范围是:
IPv4:
- 10.0.0.0/8,从 10.0.0.0 到 10.255.255.255
- 172.16.0.0/12,从 172.16.0.0 到 172.31.255.255
- 192.168.0.0/16,从 192.168.0.0 到 192.168.255.255
IPv6: - fc00::/7, 从 fc00:: 到 fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
4. 已知16.158.165.91/22 这个 CIDR,求一下这个网络的第一个地址、子网掩码和广播地址:
首先我们将 16.158.165.91/22 转化为 IP 地址和子网掩码的形式。
- IP 地址: 16.158.165.91
- 子网掩码: 255.255.252.0
第一个地址:网络的第一个地址为该网络的网络地址,网络地址是 IP 地址与子网掩码的二进制 AND 运算的结果,我们可以使用下面的方法计算:
16.158.165.91 = 10000000.10011110.10100101.01011011
255.255.252.0 = 11111111.11111111.11111100.00000000
-----------------------------
Network address: 10000000.10011110.10100000.00000000 = 16.158.160.0
子网掩码:已经给出,子网掩码是 255.255.252.0。
广播地址:广播地址是指该网络内的所有主机都可以接收到该地址发出的数据包,广播地址为该网络地址加上该网络中最大主机数减一,即:
Broadcast address: 10000000.10011110.10101111.11111111 = 16.158.167.255
综上所述:
- 第一个地址:16.158.160.0
- 子网掩码:255.255.252.0
- 广播地址:16.158.167.255
5. 介绍一下MAC 地址和网络设备的状态标识
MAC 地址(Media Access Control Address)是一个物理地址,是网络设备在网络中的唯一标识。它用于在以太网、Wi-Fi、以及其他局域网技术中识别网络设备。
网络设备的状态标识是指网络设备所处的当前状态。状态标识可以是设备的在线状态,或者是它的当前功能状态。例如,如果一台路由器的状态标识是“路由表已更新”,那么它就处于“工作中”的状态。
总的来说,MAC 地址和网络设备的状态标识是网络管理的重要信息,它们有助于识别和监控网络中的设备,从而保证网络的稳定性和正常工作。
6. net-tools 和 iproute2 的“历史”故事
Net-tools 是一组 Unix 下网络工具的集合,包括 ifconfig、route 和 netstat 等命令。它们在 1990 年代初受到广泛推广,并被广泛使用在 Linux 和 Unix 系统上。然而,随着网络技术的发展,net-tools 变得陈旧和不灵活,不再能满足现代网络的需求。
Iproute2 是一组用于管理 TCP/IP 网络的工具,包括 ip、tc、ss 和 rtacct 等命令。它是 net-tools 的一个替代品,并且提供了更多的功能,更强的灵活性和更高的性能。它首次在 Linux 内核 2.2 中发布,并且已经成为现代 Linux 系统的标准网络工具。
因此,iproute2 取代了 net-tools,成为新一代 Linux 网络管理的标准工具。
7. IP 地址的由来
IP地址是由Internet Assigned Numbers Authority(IANA)颁发的。 IANA 是一个组织,负责全球互联网的地址和协议标识符的分配。
在 Internet 还未广泛普及的时候,IP地址是通过手动分配的。随着 Internet 的发展,分配 IP 地址的需求不断增加,因此 IANA 开始组织地址分配,以确保足够的 IP 地址资源,同时管理分配的 IP 地址。
现在,IP地址通过 Internet Service Providers(ISP)或私有网络进行分配。IPv4 地址是通过在 32 位地址中编码的数字来识别的,而 IPv6 地址则是通过在 128 位地址中编码的数字识别的。