文章目录
集线器器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上

集线器的特点:
交换机一般用于局域网中,主要功能是根据MAC地址来进行数据的交换和转发

交换机的特点:
独享带宽不隔绝广播路由器是一类网络互联设备,它基于OSI第3层地址在网络间传递数据分组。路由器能作出决定为网络上的数据分组选择最佳传递路径,因此路由器根据网络地址转发数据,路由器的目的是检查每一个进来的分组(第3层数据),为它们选择穿过网络的最佳路径,然后将它们交换到适当的出口。在大型网络中,路由器是最重要的通信调节设备。实际上,路由器可以使任何种类的计算机与世界上任何地方的其他计算机进行通信。
路由器的特点;
网关在传输层上以实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互
连。基本功能是实现不同网络协议之间的转换。

特点:
568A标准:绿白-1,绿-2,橙白-3,蓝-4,蓝白-5,橙-6,棕白-7,棕-8568B标准:橙白-1,橙-2,绿白-3,蓝-4,蓝白-5,绿-6,棕白-7,棕-8568B568A,另一头是568B
不同设备互联相同设备互联
与其它传输介质比较,光纤的电磁绝缘性能好、信号衰小、频带宽、传输速度快、传输距离大。主要用于要求
传输距离较长、布线条件特殊的主干网连接。具有不受外界电磁场的影响,无限制的带宽等特点,可以实现每
秒万兆位的数据传送,尺寸小、重量轻,数据可传送几百千米,价格昂贵。
全球唯一;IP地址需要绑定在网卡上,并且同一个IP地址不能绑定在多个网卡上。MAC地址是48位的十六进制数,IPv4地址是32位的二进制数,IPv6地址是128位,通常写成8组,每
组为四个十六进制数的形式。
IPv4地址使用**“点分十进制"法表示;IPv6地址使用"冒分十六进制”**法表示
IPV4地址:192.168.1.1 十进制数
IPV6地址:FE80:0000:0000:0000:AAAA:0000:00C2:0002
MAC地址:00-E1-8C-D8-EC-FE 十六进制
IP地址应用于OSI第三层,即网络层
MAC地址应用在OSI第二层,即数据链路层
MAC地址分为
前24位(称为组织唯一标志符,是由 1 的注册管理机构给厂商分配)和后24位(称为扩展标
识符,由厂家自己分配)
P地址是由网络拓扑结构决定分配
为了便于根据IP地址寻找到该地址所代表的主机,这个32位的二进制数被分为2个部分:
192.168.10.1——>网络号+主机号
网络ID(网络号)和主机ID(主机号)
注意:互联网这里所说的互联网是有两个或者两个以上的网络进行互联
每个IP地址都分割成网络号和主机号两部分,目的是便于IP地址的寻址操作;那么IP地址的网络号和主机号各是多少位呢?如何确定?
子网掩码的特点:
只有一个作用,就是将某个IP划分成网络地址和主机地址两部分,用来判断两个IP是否子同一个网络下网络地址的所有位置都为1,对应于主机地址的所有位置都为0| 范围(公网地址) | 分类 | 私有IP | 网络类型 | 备注 |
|---|---|---|---|---|
| 0.0.0.0 ~ 127.255.255.255 | A类 | 10.0.0.0~10.255.255.255 | 大规模 | |
| 128.0.0.0 ~ 191.255.255.255 | B类 | 172.16.0.0~172.31.255.255 | 中型规模 | |
| 192.0.0.0 ~ 223.255.255.255 | C类 | 192.168.0.0~192.168.255.255 | 小型规模 | |
| 224.0.0.0 ~ 239.255.255.255 | D类 | 广播地址 | ||
| 240.0.0.0 ~ 247.255.255.255 | E类 | 保留 |

最高位必须是00.0.0.0~127.255.255.255,默认子网掩码为:255.0.0.0或/8255.0.0.0 = 11111111.00000000.00000000.00000000
因为255转2进制有8个比特位是1所以可以表示为/8
0表示保留不能用127.x.x.x/8表示保留,用于本机回环测试,比如127.0.0.1。0代表本主机所在网络地址,主机号全为1代表网络上所有主机,所以这些IP地址不能分配
比如
113.0.0.0和113.255.255.255
总结
126个(减去全为0和全为1)
128.0.0.0到191.255.255.255,默认子网掩码为:255.255.0.0或/161)0代表本主机所在的网络地址;主机号全为1代表该网络上的所有主机.故不能分配总结
16383个65534台
110;192.0.0.0到223.255.255.255;默认子网掩码为:255.255.255.0或/24;0代表本主机所在的网络地址;主机号全为1代表该网络上的所有主机.故不能分配总结
2097151个254台;| IP地址 | 说明 | 备注 |
|---|---|---|
| 0.0.0.0 | 表示整个网络 | 可表示本机源地址,也可以表示特定主机 |
| 255.255.255.255 | 一个特殊的广播地址,意味着所有主机 | x.255.255.255/x.x.255.255/x.x.x.255 |
| 127.x.x.x | 回环测试地址,默认127.0.0.1 | 127.0.0.2 127.1.1.1都可以代表本机回环地址 |
借用主机位来制造新的网络
IP地址=网络号+主机号(子网位+主机位)
IP地址 = 网络位 + 子网位 + 主机位
IP = 网络号 + 主机号
主机号 = 子网位(n) + 主机位(m)
假设子网位为n,主机位为m,则子网数为2n个,主机数为2m-2个
子网掩码都是由一串连续的0和连续的1组成,这里可以将n看作后面有多少个1,m看做后面有多少个0
由于主机位全0表示本网络,全1留作广播地址,减掉2
子网掩码:网络位为全为1,主机位全为0
示例1:
根据子网掩码判断主机数
子网掩码为255.255.255.0时,可以容纳多个台设备?
分析:
255.255.255.0255.255.128.0示例2:
根据主机和子网判断子网掩码
有一个B类网络145.38.0.0需要划分为20个能容纳200台主机的子网网络,子网掩码设置多少合适?
2^n=子网数=20
2^m-2=主机数=200
子网掩码=n个连续的1和m个连续的0 11111111.11111111.11111000.00000000
分析:
B类网络 255.255.0.0 /16
网络数大于等于20个子网;主机数大于等于200个主机
网络数:
11111111.11111111.11111000.00000000=255.255.248.0
2n>=20 n=5,m=11
主机数:
11111111.11111111.11111111.00000000=255.255.255.0
2m-2>=200 m=8,n=8
示例3:
已知192.168.0.0/255.255.255.128网络,请问最多可以划分几个子网,每个子网范围分别是多少?
思路:
1.根据IP分类和子网掩码判断出向主机号借了几位(子网位)
2.根据所借的子网位数算出子网数和主机IP范围
步骤:
192.168.0.0-------192.168.0.0~192.168.0.127192.168.0.1~192.168.0.126/255.255.255.128192.168.0.1-------192.168.0.128~192.168.0.255192.168.0.128~192.168.0.254/2592.168.0.255这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
Ⅰ软件测试基础一、软件测试基础理论1、软件测试的必要性所有的产品或者服务上线都需要测试2、测试的发展过程3、什么是软件测试找bug,发现缺陷4、测试的定义使用人工或自动的手段来运行或者测试某个系统的过程。目的在于检测它是否满足规定的需求。弄清预期结果和实际结果的差别。5、测试的目的以最小的人力、物力和时间找出软件中潜在的错误和缺陷6、测试的原则28原则:20%的主要功能要重点测(eg:支付宝的支付功能,其他功能都是次要的)80%的错误存在于20%的代码中7、测试标准8、测试的基本要求功能测试性能测试安全性测试兼容性测试易用性测试外观界面测试可靠性测试二、质量模型衡量一个优秀软件的维度①功能性功
项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU
ES一、简介1、ElasticStackES技术栈:ElasticSearch:存数据+搜索;QL;Kibana:Web可视化平台,分析。LogStash:日志收集,Log4j:产生日志;log.info(xxx)。。。。使用场景:metrics:指标监控…2、基本概念Index(索引)动词:保存(插入)名词:类似MySQL数据库,给数据Type(类型)已废弃,以前类似MySQL的表现在用索引对数据分类Document(文档)真正要保存的一个JSON数据{name:"tcx"}二、入门实战{"name":"DESKTOP-1TSVGKG","cluster_name":"elasticsear
我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我
给定一个nxmbool数组:[[true,true,false],[false,true,true],[false,true,true]]有什么简单的方法可以返回“该列中有多少个true?”结果应该是[1,3,2] 最佳答案 使用转置得到一个数组,其中每个子数组代表一列,然后将每一列映射到其中的true数:arr.transpose.map{|subarr|subarr.count(true)}这是一个带有inject的版本,应该在1.8.6上运行,没有任何依赖:arr.transpose.map{|subarr|subarr.in
给定两个大小相等的数组,如何找到不考虑位置的匹配元素的数量?例如:[0,0,5]和[0,5,5]将返回2的匹配项,因为有一个0和一个5共同;[1,0,0,3]和[0,0,1,4]将返回3的匹配项,因为0有两场,1有一场;[1,2,2,3]和[1,2,3,4]将返回3的匹配项。我尝试了很多想法,但它们都变得相当粗糙和令人费解。我猜想有一些不错的Ruby习惯用法,或者可能是一个正则表达式,可以很好地回答这个解决方案。 最佳答案 您可以使用count完成它:a.count{|e|index=b.index(e)andb.delete_at