小凉学网络之掩码套娃

2023-10-06 21:59
文章标签 网络 掩码 套娃 小凉学

本文主要是介绍小凉学网络之掩码套娃,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

小凉学网络之掩码套娃

  • 一、WIFI怎么玩?
    • 1、fps是什么?
    • 2、双频路由2.4GHz和5GHz
  • 二、用子网掩码套娃缓解IP枯竭
    • 1、想得美,根本套不了
    • 2、从通信角度看掩码
    • 3、还是能套,但只能套一点
    • 4、提高网络应用性
  • 三、计算机网络?
    • 1、路由协议?选路协议
    • 2、谁是甲方?4G还是TCP/IP
    • 3、TCP流量控制与BBR流量调度算法
  • 四、十分钟组个网
    • 算了,就这样吧

一、WIFI怎么玩?

1、fps是什么?

无线信道是对无线通信中发送端和接收端之间通路的一种形象比喻,对于无线电波而言,它从发送端传送到接收端,其间并没有一个有形的连接, 它的传播路径也有可能不只一条,我们为了形象地描述发送端与接收端之间的工作,可以想象两者之间有一个看不见的道路衔接,把这条衔接通路称为信道, 无线信道也就是常说的无线的 “ 频段(Channel)”。

信道容量反映了信道所能传输的最大信息量。 信道容量可以表示为单位时间内可传输的二进制位的位数(称信道的数据传输速率,位速率),以位/秒(b/s)形式予以表示,简记为bps。
bps bit/s: 每秒钟有多少bit的数据经过
fps: frame per second 每秒钟有多少个数据帧经过

2、双频路由2.4GHz和5GHz

  • 2.4GHz标准频段 ,微波炉、无线摄像头、蓝牙设备,很多设备都用,信号就会变得过于拥挤。他有11个信道可供选择,但是只有三个是不重叠的,所以基本上只有三个可靠信道可供选择。但是他传输距离远呀,还能穿墙,这就很棒。
    在这里插入图片描述
  • 5GHz 新频段用的比较少,可以缓解网络速度慢的问题,值得一说,他有25个不重叠信道,有时候受到其他无线设备的干扰,可能就需要切换到不同的信道,这时候就有很多信道可以切换啦。但是频率越高,波长越短,穿墙难度越大。

二、用子网掩码套娃缓解IP枯竭

初学计算机的时候,一直有一个疑问。由于有子网掩码,相同的IP可以指代不同的计算机,使用网络掩码就可以让IP地址变多,IPv4地址枯竭根本不存在呀。
1.1.1.1/1,1.1.1.1/2,1.1.1.1/3 … 1.1.1.1/30,1.1.1/31,1.1.1.1/32 可以给32台计算机使用,全球60亿人口,232 *32=237=1374亿个,每人最少可以分几十个玩吧。怎么会不够用?

1、想得美,根本套不了

假命题:条件为假,结论必然为假。
首先IP是唯一标识,就像身份证号,使用子网掩码,他还是同一个IP,多人使用必然会冲突,也就是根本不能套娃。
但是上百度一搜,子网掩码的作用:

一是用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。二是用于将一个大的IP网络划分为若干小的子网络。
使用子网是为了减少IP的浪费。因为随着互联网的发展,越来越多的网络产生,有的网络多则几百台,有的只有区区几台,这样就浪费了很多IP地址,所以要划分子网。使用子网可以提高网络应用的效率。

认真研读了一下这段话,好像并没有说能增加IP,那这网上说的减少了IP的浪费,提高了网络应用的效率,到底是个啥意思?

2、从通信角度看掩码

网络到底是什么,网络听起来好抽象的样子,计算机网络,简化来说就是计算机连接而成的网。而计算机网络世界的计算机通信,其实就三种通信模式:

  • 1)主机和自己通信
    比如 主机=1.1.1.1,当与自己通信时,目的IP=1.1.1.1。当这个IP报文到达本机的IP路由转发模块时,目的IP = 自己接口IP。按照预先设定,将其从发送链表删除并移到接收链表尾部。

    常见操作,ping 127.0.0.1,回环地址,目的就是检测本机的回路是否正常, 如果正常,则说明本机的TCP/IP协议安装正常。如果连这个都不正常,则说明连TCP/IP协议都出了问题,那就需要从系统层面,先修复TCP/IP协议来解决所碰到的网络故障了。

    整个过程,IP报文不过在TCP/IP内部兜了一圈,没有到达硬件网卡。这里根本没有掩码什么事。

  • 2)主机和广播域内其他主机通信
    如果主机1.1.1.1与1.1.1.200通信,该如何通信?
    这不是个问题,既然和自己的IP不相同,那么只要从硬件网卡发出就ok了。

    那网卡如何填写目的MAC地址?
    这也不是问题,可以用ARP广播请求1.1.1.200的MAC地址。

    假设主机1.1.1.1使用24位掩码,即1.1.1.1/24,那么主机用24位掩码,mask自己的IP,得到1.1.1。
    同样,mask 1.1.1.200,得到同样的1.1.1。故两者位于相同的广播域,就可以通信。

    但是ARP广播消息无法跨越不同广播域传输。
    假设主机1.1.1.1使用25位掩码,即1.1.1.1/25,那么主机用25位掩码,mask自己的IP,得到1.1.1.0。
    同样的,mask 1.1.1.200,得到不一样的1.1.1.128。
    由于1.1.1.0 ≠ 1.1.1.128,不在一个广播域,这样的方式就无法通信了。

  • 3)主机和广播域外其他主机通信
    主机1.1.1.1/25发现1.1.1.200位于另外的广播域,但是ARP广播消息无法跨越不同广播域传输。于是决定将其扔给自己的网关1.1.1.126代为转发。

    问题是怎么扔?目的MAC填谁的?
    当然填网关的MAC了,否则到达网关的网卡也会被丢弃。

    可以ARP广播发现网关的MAC吗?(arp地址表的存在,不会让他每次都广播)
    当然可以了,因为网关和自己在一个广播域。

    怎么就在同一个广播域了?
    因为1.1.1.126 使用25位掩码做mask操作,与1.1.1.1 是相同的。

    当报文到达网关,剥离以太帧头,网关发现目的IP = 1.1.1.200 和自己另外一个接口 = 1.1.1.254 在一个相同的广播域。于是ARP广播发现其MAC地址,于是将IP报文完成封装,将其发给真正的目的地主机 = 1.1.1.200。

    如果网关发现目的IP= 8.8.8.8,自己的任何端口都和它都不在一个广播域,如何处理?
    这依然是不同广播域之间的通信,网关最坏的情况,查询路由表匹配到0.0.0.0/0,并按照0.0.0.0/0的指示,将其发给更靠近目的地的下一跳网关。通过N次相同迭代,和8.8.8.8相同广播域(物理直连)网关,再完成相同广播域主机之间通信,整个迭代过程完成收敛。

3、还是能套,但只能套一点

全球IP地址:全球IP配置在TCP/IP协议栈里,可以与世界任何终端自由自在通信,这是一个美好的愿望。 但是呢,TCP/IP协议的设计者没有什么远见,IP地址只有32位,全球IP只有40亿+,很快全球IP被瓜分完毕。

全球IP,供不应求,IPv6蓄势待发,私有IP应运而生。
IPv6国内没有城市使用,只有一部分高校在试用。根本还没有用起来。

我们会发现ipconfig和浏览器查询出的ip不一样。其实就是使用的私有IP。
互联网管理机构颁布一项新的规定,无法拥有全球IP的电脑、手机终端可以自由使用以下三个号段的IP地址:
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16

但是互联网管理机构又规定,私有IP报文不能进入Internet。
诶,就是玩?私有IP报文既然不能进入Internet,意味着无法上网,配置这些私有IP又有何用呢?
看这个图,可能就顶端那一个路由器网口使用公有IP
在这里插入图片描述
互联网管理机构早就想好了,用户私有IP报文,当流经网关时,修改成网关的全球IP不就可以了吗?这就是上文所说的从通信角度看掩码,多台终端从共用同一个公有IP,这不就是解决了IP的浪费嘛。从结果看,还是能套娃,但只能套一点。

4、提高网络应用性

那又说用子网掩码可以提高网络应用性,是怎么回事?
对于主机来说,仅仅是判断要通信的主机是否和自己在相同广播域。对于网关(路由器)来说,掩码长度长短,仅仅表示哪条路径更可信。
比如一个包裹收件人地址 = 广东省深圳市南山区南十二路 xxx

网关现在有四条路:

1 广东省
2 广东省深圳市
3 广东省深圳市南山区
4.广东省深圳市南山区南十二路

做为网关应该优选哪条路?

当然是4,因为它更具体,更可信!这个原理跟路由器转发IP报文的原理是几乎一致的。


三、计算机网络?

1、路由协议?选路协议

当然,路由器是有路由表的, 路由表存储着指向特定网络地址的路径(有时候还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。路由表建立的主要目标是为了实现路由协议和静态路由选择。
缺省路由,一般是0.0.0.0,也可以自己配置。
静态路由,自己配就完了。

动态路由,那就得说路由协议了,有点抽象,其实就是选路协议

按照范围分:
IGP(内部网关协议):RIP OSPF IS-IS
EGP(外部网关协议):BGP EIGRP

按照算法分:
距离矢量:RIP
链路状态:OSPF、IS-IS
混合型:BGP EIGRP

能够竞争进入路由表的协议有:OSPF(10)、IS-IS Level1(15)、IS-IS Level2(20)、RIP(120)、EIGRP(90)、BGP(20,200),还有直连路由(0)以及静态路由(1), 括号里为它们AD优先级,外部BGP为20,内部BGP为200。

EBGP 外部边界网关协议,不同AS自治系统间交换路由信息。
IBGP 内部边界网关协议,同一个AS间路由信息,使用统一的内部路由协议的网络就是一个AS。

目前常用路由协议的AD优先级为:
直连路由> 静态路由 > EBGP > EIGRP > OSPF> ISIS > RIP > IBGP

优先级度量标准:路径长度、可靠性、延迟、带宽、负载 -> 可信度和cost(成本)

OSPF的AD优先级高,IS-IS的AD优先级低,如果同时运行OSPF和IS-IS,则IS-IS所有路由条目都不会进入路由表。是这样吗?
当然不是,只有同等的路由条目才可以使用AD值的优先级来决定去留,如果不是同等的路由条目,压根不会去比较AD优先级。

2、谁是甲方?4G还是TCP/IP

可以把TCP/IP比作快递物流公司,把4G可以比作高速公路
甲方: 浏览器、聊天软件
乙方: TCP/IP
乙方的乙方: 4G

4G代表是硬件实力,而TCP/IP则代表软件实力。只有软硬全面发展,才能带来飞速的流量速度与效率。

  • 1)硬实力提升:5G (5G > 4G > H > 3G > E > 2G)
    4G,Forth Generation的缩写,经常还写作LTE,Long Term Evolution的缩写,意思是人类与移动通信的斗争是持久战。

  • 2)软实力提升:
    传统的TCP流量调度算法,基于丢包来决定发送速率,已经严重制约了人类对高速通信的追求。后来通过增加路由器的的缓冲队列,来缓冲互联网上无法及时转发的IP报文,本意是提高物流速度,可是无限制增加缓冲队列非但没有增加网速,反而让互联网更慢了。
    Google公司BBR流量调度算法,实时测量IP报文的吞吐效率,然后让TCP的发送速率等于或接近实时测量IP报文的吞吐效率,可以更有效地利用网络,从而提高网速。

3、TCP流量控制与BBR流量调度算法

TCP需要有自己的流量调度,滑动窗口机制。

发送窗口只有收到对端对于本段发送窗口内字节的ACK确认,才会移动发送窗口的左边界。
接收窗口只有在前面所有的段都确认的情况下才会移动左边界。当在前面还有字节未接收但收到后面字节的情况下,窗口不会移动,并不对后续字节确认。以此确保对端会对这些数据重传。
在这里插入图片描述
BBR流量调度算法,引自[dog250]的博客,我不太懂,就不班门弄斧了。


四、十分钟组个网

算了,就这样吧

画图板画了个简图,是有点丑呀。。。
在这里插入图片描述

该文章部分引用B站比尔迈克视频。
BBR流量调度算法,引自[dog250]的博客。
该文章部分引自微信公众号车小胖谈网络。

这篇关于小凉学网络之掩码套娃的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/154131

相关文章

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

poj 3181 网络流,建图。

题意: 农夫约翰为他的牛准备了F种食物和D种饮料。 每头牛都有各自喜欢的食物和饮料,而每种食物和饮料都只能分配给一头牛。 问最多能有多少头牛可以同时得到喜欢的食物和饮料。 解析: 由于要同时得到喜欢的食物和饮料,所以网络流建图的时候要把牛拆点了。 如下建图: s -> 食物 -> 牛1 -> 牛2 -> 饮料 -> t 所以分配一下点: s  =  0, 牛1= 1~

poj 3068 有流量限制的最小费用网络流

题意: m条有向边连接了n个仓库,每条边都有一定费用。 将两种危险品从0运到n-1,除了起点和终点外,危险品不能放在一起,也不能走相同的路径。 求最小的费用是多少。 解析: 抽象出一个源点s一个汇点t,源点与0相连,费用为0,容量为2。 汇点与n - 1相连,费用为0,容量为2。 每条边之间也相连,费用为每条边的费用,容量为1。 建图完毕之后,求一条流量为2的最小费用流就行了

poj 2112 网络流+二分

题意: k台挤奶机,c头牛,每台挤奶机可以挤m头牛。 现在给出每只牛到挤奶机的距离矩阵,求最小化牛的最大路程。 解析: 最大值最小化,最小值最大化,用二分来做。 先求出两点之间的最短距离。 然后二分匹配牛到挤奶机的最大路程,匹配中的判断是在这个最大路程下,是否牛的数量达到c只。 如何求牛的数量呢,用网络流来做。 从源点到牛引一条容量为1的边,然后挤奶机到汇点引一条容量为m的边

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络 服务器端配置 在服务器端,你需要确保安装了必要的驱动程序和软件包,并且正确配置了网络接口。 安装 OFED 首先,安装 Open Fabrics Enterprise Distribution (OFED),它包含了 InfiniBand 所需的驱动程序和库。 sudo

【机器学习】高斯网络的基本概念和应用领域

引言 高斯网络(Gaussian Network)通常指的是一个概率图模型,其中所有的随机变量(或节点)都遵循高斯分布 文章目录 引言一、高斯网络(Gaussian Network)1.1 高斯过程(Gaussian Process)1.2 高斯混合模型(Gaussian Mixture Model)1.3 应用1.4 总结 二、高斯网络的应用2.1 机器学习2.2 统计学2.3

网络学习-eNSP配置NAT

NAT实现内网和外网互通 #给路由器接口设置IP地址模拟实验环境<Huawei>system-viewEnter system view, return user view with Ctrl+Z.[Huawei]undo info-center enableInfo: Information center is disabled.[Huawei]interface gigabit

Golang 网络爬虫框架gocolly/colly(五)

gcocolly+goquery可以非常好地抓取HTML页面中的数据,但碰到页面是由Javascript动态生成时,用goquery就显得捉襟见肘了。解决方法有很多种: 一,最笨拙但有效的方法是字符串处理,go语言string底层对应字节数组,复制任何长度的字符串的开销都很低廉,搜索性能比较高; 二,利用正则表达式,要提取的数据往往有明显的特征,所以正则表达式写起来比较简单,不必非常严谨; 三,使

Golang网络爬虫框架gocolly/colly(四)

爬虫靠演技,表演得越像浏览器,抓取数据越容易,这是我多年爬虫经验的感悟。回顾下个人的爬虫经历,共分三个阶段:第一阶段,09年左右开始接触爬虫,那时由于项目需要,要访问各大国际社交网站,Facebook,myspace,filcker,youtube等等,国际上叫得上名字的社交网站都爬过,大部分网站提供restful api,有些功能没有api,就只能用http抓包工具分析协议,自己爬;国内的优酷、