OSI 参考模型与 TCP/IP 模型(协议)的不同与共同点比较

共同点:
1、两者都以协议栈的概念为基础,并且协议中的协议彼此独立;
2、两个模型中的各个层的功能也大体相似;
3、两个模型传输层之上的各层也都是传输服务的用户,并且用户是面向应用的用户;

不同点:
1、对于 OSI/RM 模型有三个明确的核心概念:(1) 服务,(2) 接口,(3) 协议,而 TCP/IP 对此没有明确的区分;
2、OSI/RM 模型是在协议发明之前设计的,而 TCP/IP 是在协议出现之后设计的;
3、一个更在的区别在于 OSI/RM 模型有 7 层,而 TCP/IP 只有 4 层;
4、OSI/RM 的网络层同时支持无连接和面向连接的通信,但是在传输层上只支持面向连接的通信,而 TCP/IP 模型的网络层上只有一种无连接通信模式,但是在传输层上同时支持两种通信模式。

证明 IP 地址 0.0.0.0 就是本机地址

Microsoft Windows [版本 10.0.15063]
(c) 2017 Microsoft Corporation。保留所有权利。

C:\Users\Administrator>ping 0.0.0.0

正在 Ping 0.0.0.0 具有 32 字节的数据:
PING:传输失败。常见故障。
PING:传输失败。常见故障。
PING:传输失败。常见故障。
PING:传输失败。常见故障。

0.0.0.0 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),

// 以上 ping 发生常见故障。

C:\Users\Administrator>ping -a 0.0.0.0

正在 Ping DESKTOP-T1H4V3O [0.0.0.0] 具有 32 字节的数据:
PING:传输失败。常见故障。
PING:传输失败。常见故障。
PING:传输失败。常见故障。
PING:传输失败。常见故障。

0.0.0.0 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 0,丢失 = 4 (100% 丢失),

// 以上 ping 虽然发生常见故障,但是可以找到本机的计算机名,本机的计算机名为 DESKTOP-T1H4V3O。

C:\Users\Administrator>ping -a localhost

正在 Ping DESKTOP-T1H4V3O [::1] 具有 32 字节的数据:
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms
来自 ::1 的回复: 时间<1ms

::1 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间 (以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms

// 以上 ping 本地主机,证明本机的计算机名为 DESKTOP-T1H4V3O。

C:\Users\Administrator>ping -a 10.1.8.10

正在 Ping DESKTOP-T1H4V3O [10.1.8.10] 具有 32 字节的数据:
来自 10.1.8.10 的回复: 字节=32 时间<1ms TTL=128
来自 10.1.8.10 的回复: 字节=32 时间<1ms TTL=128
来自 10.1.8.10 的回复: 字节=32 时间<1ms TTL=128
来自 10.1.8.10 的回复: 字节=32 时间<1ms TTL=128

10.1.8.10 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间 (以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms

// 以上 ping 本地 IP,证明本机的计算机名为 DESKTOP-T1H4V3O。

通过 IPv4 地址获取对方计算机名

首先可选通过 arp -a 命令查询局域网所有在线的计算机

已知 IPv4 地址,获取其计算机名。
nbtstat -a [IPv4]
// 回复 NetBIOS 远程计算机名称表 和 MAC 地址

ping -a [IPv4]
// 回复 Ping IP 地址解析的主机名(计算机名)

tracert [IPv4]
// 回复跟踪 IP 地址解析的计算机名和 IP

pathping [IPv4]
// 回复跟踪 IP 地址解析的本地和对方的计算机名和 IP


已知计算机名,获取其 IPv4 地址。

ping -4 [Computer Name]
// 回复 Ping 主机的 IPv4 地址

ping -f [Computer Name]
// 回复 Ping 主机的 IPv4 地址

说说我们常用的 ping baidu.com

正在 Ping baidu.com [180.149.132.47] 具有 32 字节的数据:
来自 180.149.132.47 的回复: 字节=32 时间=30ms TTL=52
来自 180.149.132.47 的回复: 字节=32 时间=29ms TTL=52
来自 180.149.132.47 的回复: 字节=32 时间=30ms TTL=52
来自 180.149.132.47 的回复: 字节=32 时间=29ms TTL=52

180.149.132.47 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间 (以毫秒为单位):
最短 = 29ms,最长 = 30ms,平均 = 29ms

回复结果数据分析:
字节:发送的数据包位数,字节=32,指发送并返回了 32 个字节,可调整为更大或更小,追加 “-i [值]” 字段;
时间:从你发送给对方的 32 字节数据包,花费了 30ms 完成了一次网络交互;
TTL:指存在时间值,表示从服务器返回经过多少个路由器,可以用服务器的操作系统 TTL 值(Unix:255;Linux:64;Windows:128)减去返回的 TTL,如以上返回的 TTL 值为 52,那么由 64 – 52 = 12。

回复结果统计分析:
已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失):发送接收 4 个 32 字节的数据包,没有发生丢失;
最短 = 29ms,最长 = 30ms,平均 = 29ms:整个发送接收的行程时间信息,平均为 29ms。

hosts 文件之 localhost 和 127.0.0.1

localhost 是本地 DNS 解析到 127.0.0.1 的域名,由 hosts 文件配置,文件放在 C:\Windows\System32\drivers\etc 目录下,这个文件没有后缀名,所以无法正常打开,可以使用 .txt 的文本文档方式打开,打开后在最后会有以下字段:127.0.0.1         localhost,这表示,当访问 localhost 时将由本地 DNS 解析到 127.0.0.1。
按照这个原理,那么是否修改 hosts 内的这条字段呢?答案是可以的,比如将 localhost 修改为 hxx.cn ,此时访问 hxx.cn 将解析到 127.0.0.1 回送地址上,也就是本地主机;既然可以修改 localhost ,那么 127.0.0.1 也可以修改吗?答案也是可以的,比如将 127.0.0.1 修改为 百度的 111.13.101.208,这样,访问 localhost 后会打开百度网站,但是前提是对方没有禁止此类访问方式;同理,localhost 和 127.0.0.1 都可以修改,最终可以以此样式达到效果:111.13.101.208         cc.cc,这样,访问 http://cc.cc 域名后,会打开百度网站。
// 根据以上举例配置后,所涉及的 hxx.cn 和 cc.cc 域名将默认由本地 DNS 解析,而不由公网 DNS 解析,所以即使公网上 hxx.cn 和 cc.cc 已经由域名持有人解析到公网服务器,这里本地访问不受限制,依然按照 hosts 文件的配置解析。

广播地址(Broadcast Address)@x.x.x.255

广播地址(Broadcast Address)是专门用于同时向网络中所有工作站进行发送的一个地址。
在使用 TCP/IP 协议的网络中,主机标识段 host ID 为全 1 的 IP 地址为广播地址,广播的分组传送给 host ID 段所涉及的所有计算机。
例如,对于 10.1.1.0(255.255.255.0)网段,其广播地址为 10.1.1.255(255 即为 二进制的 11111111),当发出一个目的地址为 10.1.1.255 的分组(封包)时,它将被分发给该网段上的所有计算机。

网关(Gateway)@x.x.x.254

网关(Gateway)又称网间连接器、协议转换器。默认网关在网络层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关的结构也和路由器类似,不同的是互连层。网关既可以用于广域网互连,也可以用于局域网互连网关实质上是一个网络通向其他网络的 IP 地址。
例如有网络 A 和网络 B,网络 A 的 IP 地址范围为 “192.168.1.1 ~ 192.168.1.254”,子网掩码为 255.255.255.0;网络 B 的 IP 地址范围为 “192.168.2.1 ~ 192.168.2.254”,子网掩码为 255.255.255.0。
在没有路由器的情况下,两个网络之间是不能进行 TCP/IP 通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP 协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。
而要实现这两个网络之间的通信,则必须通过网关。如果网络 A 中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络 B 的网关,网络 B 的网关再转发给网络 B 的某个主机。
默认情况下以 x.x.x.254 做为网关,但在 255.255.255.0 子网掩码环境下,x.x.x.1-255 都可以做为网关之用。

子网掩码(Subnet Mask)@255.x.x.0

子网掩码(Subnet Mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个 IP 地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。
子网掩码——屏蔽一个 IP 地址的网络部分的 “全 1” 比特模式。对于 A 类地址来说,默认的子网掩码是 255.0.0.0;对于 B 类地址来说默认的子网掩码是 255.255.0.0;对于 C 类地址来说默认的子网掩码是 255.255.255.0。

例:IP 192.168.0.19/24(11111111.11111111.11111111.00000000)
子网掩码是:255.255.255.0(C 类 IP 地址)
网络 ID:192.168.0
主机 ID:19

例:IP 129.158.79.68/16(11111111.11111111.00000000.00000000)
子网掩码是:255.255.0.0(B 类 IP 地址)
网络 ID:129.158
主机 ID:79.68

例:IP 18.129.12.185/8(11111111.00000000.00000000.00000000)
子网掩码是:255.0.0.0(A 类 IP 地址)
网络 ID:18
主机 ID:129.15.185

/24=11111111.11111111.11111111.00000000=255.255.255.0
/16=11111111.11111111.00000000.00000000=255.255.0.0
/8=11111111.00000000.00000000.00000000=255.0.0.0

子网掩码:与 IP 地址配合使用,能够规范当前 IP 地址中有多少位是可配置的,如:
相同的 IP 地址:192.268.111.111
不同的子网掩码标志着你的网段内最多有多少台机器
255.255.255.0 掩码,意味着只有最后一个 111 是可配置的,既,你的网段内有 1-254 个 IP 地址可配置
255.255.0.0 掩码,意味着后两个 111 都是可配置的,网段内有 254*254 个 IP 地址可配置。

话题延伸:
请问 192.168.0.105 和 192.168.0.110 是在同一个 IP 段吗?
答:判断是不是在同一网段要看它们的子网掩码,单独看 IP 无法判断。
如果是子网掩码是 /24(255.255.255.0),那它们是在同一个 IP 网段;如果是 /16(255.255.0.0)或 /8(255.0.0.0)即不在同一网段。