重学计算机网络(二) - 曾记否,查IP地址(下)

简介: 重学计算机网络(二) - 曾记否,查IP地址(下)

4 CIDR可不好算

16.158.165.91/22

这个CIDR,求该网络的第一个地址、子网掩码和广播地址。

首先声明16.158.165.1是错的!

/22不是8的整数倍,只能先变成二进制。

  • 16.158的部分不会动,占了前16位
  • 中间的165,二进制为‭10100101‬。除了前面的16位,还剩6位。所以,这8位中前6位是网络号,16.158.<101001>,而<01>.91是机器号。

第一个地址是16.158.<101001><00>.1,即16.158.164.1

子网掩码是255.255.<111111><00>.0,即255.255.252.0

广播地址为16.158.<101001><11>.255,即16.158.167.255。


IP : 192.168.124.7

子网掩码:255.255.255.192

网络地址:192.168.124.0

广播地址:192.168.124.63

255.255.255.192=》11111111.11111111.11111111.11000000
所以可划分网段:2^2=4个:
0~63  192.168.124.7属于该网段
64~127
128~191
192~255

所以广播地址为:192.168.124.63。所以广播地址最后一位不一定是 255。

广播通信问题

主机一:192.168.124.7 子网掩码 : 255.255.255.192

主机二: 192.168.124.100 子网掩码: 255.255.255.192


主机一广播地址: 192.168.124.63

主机二广播地址: 192.168.124.127

所以无法互相通信。


D类是组播地址

使用这一类地址,属于某个组的机器都能收到

这有点类似在公司里面大家都加入了一个邮件组。发送邮件,加入这个组的都能收到

在IP地址的后面有个scope


对于eth0这张网卡来讲,是global,说明这张网卡是可以对外的,可以接收来自各个地方的包


对于lo来讲,是host,说明仅可以供本机相互通信。

lo全称是loopback,又称环回接口,往往会被分配到127.0.0.1这个地址

这个地址用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。

5 MAC地址

在IP地址的上一行是link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff

这个被称为MAC地址

是一个网卡的物理地址,用十六进制,6个byte表示

MAC地址号称全局唯一,不会有两个网卡有相同的MAC地址,而且网卡自生产出来,就带着这个地址

很多人看到这里就会想,既然这样,整个互联网的通信,全部用MAC地址好了,只要知道了对方的MAC地址,就可以把信息传过去。


这样当然是不行的

一个网络包要从一个地方传到另一个地方,除了要有确定的地址,还需要有定位功能

而有门牌号码属性的IP地址,才是有远程定位功能


例如,你去XX市XX路XX号X楼X层找XX,你在路上问路,可能被问的人不知道X楼是哪个,但是可以给你指网商路怎么去

但是如果你问一个人,你知道这个身份证号的人在哪里吗?可想而知,没有人知道。


MAC地址更像是身份证,是一个唯一的标识

它的唯一性设计是为了组网的时候,不同的网卡放在一个网络里面的时候,可以不用担心冲突

从硬件角度,保证不同的网卡有不同的标识。


MAC地址是有一定定位功能的,只不过范围非常有限


你可以根据IP地址,找到XX市XX路XX号X楼X层,但是依然找不到我,你就可以靠吼了,大声喊身份证XXXX的是哪位?我听到了,我就会站起来说,是我啊

但是如果你在上海,到处喊身份证XXXX的是哪位,我不在现场,当然不会回答,因为我在杭州不在上海。


所以,MAC地址的通信范围比较小,局限在一个子网里面

例如,从192.168.0.2/24访问192.168.0.3/24是可以用MAC地址的

一旦跨子网,即从192.168.0.2/24到192.168.1.2/24,MAC地址就不行了,需要IP地址起作用了


6 网络设备的状态标识

<BROADCAST,MULTICAST,UP,LOWER_UP>net_device flags,网络设备的状态标识

  • UP
    网卡处于启动的状态
  • BROADCAST
    网卡有广播地址,可以发送广播包
  • MULTICAST
    网卡可以发送多播包
  • LOWER_UP
    L1是启动的,也即网线插着呢
  • MTU1500
    最大传输单元MTU为1500,这是以太网的默认值。


网络包是层层封装的

MTU是二层MAC层的概念。MAC层有MAC的头,以太网规定连MAC头带正文合起来,不允许超过1500个字节。正文里面有IP的头、TCP的头、HTTP的头。如果放不下,就需要分片来传输。


qdisc pfifo_fast (queueing discipline,排队规则)

内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的qdisc(排队规则)把数据包加入队列。


最简单的qdisc是pfifo,它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列

pfifo_fast稍微复杂一些,它的队列包括三个波段(band)。在每个波段里面,使用先进先出规则。


三个波段(band)的优先级也不相同。band 0的优先级最高,band 2的最低。如果band 0里面有数据包,系统就不会处理band 1里面的数据包,band 1和band 2之间也是一样。


数据包是按照服务类型(Type of Service,TOS) 被分配到三个波段(band)里面的

TOS是IP头里面的一个字段,代表了当前的包是高优先级的,还是低优先级的。

7 总结

  • IP是地址,有定位功能;MAC是身份证,无定位功能
  • CIDR可以用来判断是不是本地人
  • IP分公有IP、私有IP
目录
相关文章
|
2月前
|
算法 网络协议 网络架构
计算机网络-网络层:IP协议
【2月更文挑战第1天】
46 0
|
3月前
|
网络协议 网络架构
【计算机网络】TCP|IP协议
【计算机网络】TCP|IP协议
46 0
|
4月前
|
网络协议
地址重叠时,用户如何通过NAT访问对端IP网络?
地址重叠时,用户如何通过NAT访问对端IP网络?
87 0
|
4月前
|
网络协议 网络架构
【计算机网络】OSI、TCP/IP、五层模型
【计算机网络】OSI、TCP/IP、五层模型
|
30天前
|
网络协议 Linux C++
Linux C/C++ 网络编程中地址格式转换(inet_pton和inet_ntop函数)
Linux C/C++ 网络编程中地址格式转换(inet_pton和inet_ntop函数)
24 0
|
1月前
|
域名解析 缓存 网络协议
探索Qt 网络编程:网络地址与服务类全解析
探索Qt 网络编程:网络地址与服务类全解析
54 0
|
5月前
|
Java
java代码实现使用网络地址下载文件
java代码实现使用网络地址下载文件
|
1月前
|
网络协议 网络性能优化 网络安全
【计算机网络】IP协议
【计算机网络】IP协议
|
6月前
|
存储 网络协议 安全
IP地址、MAC地址、互联网、WLAN、运营商、子网掩码、网络地址、网段、网关、集线器、光纤、基站
IP地址、MAC地址、互联网、WLAN、运营商、子网掩码、网络地址、网段、网关、集线器、光纤、基站
68 0
|
6月前
|
网络协议 Linux 定位技术
计算机网络 | I/O模型、网络模型(OSI七层及TCP/IP四层)
计算机网络 | I/O模型、网络模型(OSI七层及TCP/IP四层)
37 0