学习干货|一篇文章学习计算机网络技术基础那点事

本篇文章共6000字+1视频,完全阅读全篇约60分钟

州弟学安全,只学有用的知识

0x01 前言

    本篇问针对于计算机网络专业期末考试、计算机网络爱好者、网工小白进行共同学习复现的环境,从原始的直连环境到BGP之间的过程,然后为IP划分,最后了解一下我们常见的协议

    以下思维导图为本次文章和视频的知识点,视频全长约48分钟,如认为视频较长,可根据文章进行学习复现,文章和视频内如有问题烦请指出

# 本地实验工具

Ubuntu操作系统

H3C模拟器

wireshark流量分析工具

以下为在互联网收集的网工面试题、本次实验环境下载地址

https://pan.quark.cn/s/ba75afc25d54

* 如您认为本篇文章帮到了您,麻烦一键三连支持一下

* 本篇文章仅代表个人看法,仅供参考


0x02 知识学习

视频学习(48分钟)视频中在IP划分题目中有小瑕疵,已改正

一条视频学会计算机网络技术基础那点事

计算机网络技术基础

直连

在传统的网络中,我们将一台设备与另一台设备用双绞线的方式直接连接,被称为直连

想要这两台设备以人为的方式通信,他们还需要有一个地址,我们称之为IP地址

在我们进行布线做线时,一般还需要根据T568A和T568B的线序进行做线,理论上来讲,这样可以减少干扰和串扰


交换机

当多台设备需要连接时,我们也可以互相连接,但是这样成本高,排错也麻烦,所以我们此时用到了集线器,将几台设备连接聚合到一块

集线器属于老式设备,缺点明显,当多台机器发送信息时,集线器会将消息发送给所有设备,这样会造成干扰和不必要的成本,所以我们有称集线器为傻HUB,此时我们用到了交换机

设备接入到交换机有一个前提:你的设备需要有MAC地址,我会记录你的MAC地址到MAC地址表,MAC地址是唯一的,可以理解为设备的UID

此时交换机内还没有其它设备的MAC地址

当设备进行首次通信时,交换机会记录设备的MAC地址,携带这个MAC地址去访问目标地址MAC,而此时交换机也不知道对方MAC哪台设备,所以交换机会首先发给所有设备,这个叫:泛洪

在进行了首次请求之后,交换机获取到了两个设备的MAC地址记录到了MAC地址表,其它设备设备发现自己MAC地址不匹配,则进行丢包,等下次在进行请求时,交换机直接从地址表内获取到MAC地址,不再进行泛洪


IP地址的含义

MAC地址是跟随网卡出厂进行配置的,假如当我们的设备损坏,需要更换网卡,则需要重新记录MAC地址,这样效率较低,所以此时IP地址诞生了

当PC_3发送请求PC_5时,PC_3也不知道PC_5的MAC地址,只知道IP地址:相当于机房或互联网,我们只知道对方的IP

然后PC_3发送请求命令,相关数据包(自己MAC和IP地址)会发给交换机,交换机看到IP地址所对应的MAC地址为:NULL,则会发起泛洪,其它设备发现IP地址和自己对不上,则丢包,最后PC_5发现请求的是自己的地址,则将自己的MAC和IP及响应返回给交换机,交换机在此期间将PC_3和PC_5的MAC地址和IP地址对应绑定,下次二者再次请求时,则不在泛洪

此时查看交换机记录地址表,已经将所有的MAC地址对应接口进行记录

这个过程叫做:ARP,MAC地址和IP地址绑定记录的表叫做ARP表

其次还有一个基础面试题,调研过很多人,回答出来的很少,包括我自己一开始也没回答上来

问:在两台新设备上网时,为什么新设备进行ping时,第一个包总是丢包?


二进制

在学习计算机网络或计算机其它知识之前,我们需要首先了解到二进制,我们在执行程序或代码时,计算机所看到的并不是我们写的代码,而是一堆的0和1,由0和1组成的基数即为二进制

如上图所示,上面8个1在计算机表示为255,为什么呢?首先我们通常将二进制称为一二四八码,0就是0或false,1就是1或true

上方从右往左开始,1为初始值,往左依次以2倍形式相乘,直到最后为128,然后将其加一块即为255,没错有很多同学很眼熟的,子网掩码的255.255.255.0就是24个1和8个0组成

其次就是我们所用到的手机,硬盘,内存等都是以8G、16G、32G、64G、128G、256G、521G、1024G(1T)等进行表示,就是这个原理


IP分类与子网划分
IP地址

IP地址由4个字节、32位组成的逻辑地址,将32位分成4组,每组8个二进制

以上意为248.179.203.134

网络号与主机号/IP分类

无论是学习网络还是安全人员,有时候对网络划分特别的容易被绕,很难啃

网络号代表着主机的范围,主机号代表着某一台主机的地址,网络号范围越小,容纳主机越多

A类子网地址

A类子网地址默认子网掩码是255.0.0.0,由于是二进制计算,所以在快捷填写掩码的时候,以8进行表达,网络ID是0开头(二进制),在A类地址中127为保留地址,意为本地地址,127.0.0.1为本地回环地址,在A类地址中,第一位取值范围:1-126,其余都是0-255,所以可容纳主机数量:256x256x256-2(网络地址和广播地址)

要求开头必须是0,所以范围是1-127

B类子网地址

B类子网地址默认子网掩码是255.255.0.0,由于是二进制计算,所以在快捷填写掩码的时候,以16进行表达,网络ID是10开头(二进制),在B类地址中169.254.0.0到169.254.255.255为保留地址在DHCP不可用是会自动分配此地址,172.16.0.0-172.31.255.255为私网地址,不会在公网中进行路由,在B类地址中,第一位取值范围:128-191,其余都是0-255,所以可容纳主机数量:256x256-2(网络地址和广播地址)

要求开头必须是10,所以范围是128-191

C类子网地址

C类子网地址默认子网掩码是255.255.255.0,由于是二进制计算,所以在快捷填写掩码的时候,以24进行表达,网络ID是110开头(二进制),在C类地址中192.168.0.0到192.168.255.255为保留地址在私有网络中进行使用,不会在公网中进行路由,在C类地址中,第一位取值范围:192-223,其余都是0-255,所以可容纳主机数量:256-2(网络地址和广播地址)

要求开头必须是110,所以范围是192-224

D类子网地址

D类地址:以1110开头,用于多播,没有子网掩码,第一部分取值224-239,其余部分0-255

怎么求网络地址

例如,IP地址为192.168.1.10,子网掩码为255.255.255.0。

  • 192.168.1.10的二进制形式为:11000000.10101000.00000001.00001010

  • 255.255.255.0的二进制形式为:11111111.11111111.11111111.00000000

网络地址是通过将IP地址的二进制形式与子网掩码的二进制形式进行逻辑与(AND)运算得到的。

11000000.10101000.00000001.00001010(IP地址)

11111111.11111111.11111111.00000000(子网掩码)

11000000.10101000.00000001.00000000

逻辑与运算结果:11000000.10101000.00000001.00000000

将结果转换回十进制形式:192.168.1.0

所以,网络地址是192.168.1.0。

怎么求广播地址
  • 广播地址是通过将网络地址的二进制形式与子网掩码的反码(即子网掩码的二进制形式中0变为1,1变为0)进行逻辑或(OR)运算得到的。

255.255.255.0

子网掩码:11111111.11111111.11111111.00000000

反转:00000000.00000000.00000000.11111111

  • 11000000.10101000.00000001.00000000(IP地址)

  • 00000000.00000000.00000000.11111111(子网掩码的反码)

  • 逻辑或运算结果:11000000.10101000.00000001.11111111

  • 将结果转换回十进制形式:192.168.1.255

  • 所以,广播地址是192.168.1.255。

子网掩码

当全网中有多台设备时,多个大型拓扑时,我们当然也可以利用交换机进行连接,但是由于计算机泛洪的原因,可能导致网络不稳定,紊乱其次不好管理的情况,所以需要将网络进行隔离,将网络分为不同的段,交换机只用来传输不同段的消息,以此提高效率,此时我们需要用到子网掩码


子网划分题目
题目1

192.168.1.100/29=255.255.255.248求网络地址、主机范围和广播地址

求网络地址:

    网络地址转二进制:11000000.10101000.00000001.01100100
​
•   子网掩码转二进制:11111111.11111111.11111111.11111000
​
•   逻辑与:11000000.10101000.00000001.01100000
​
•   二进制转十进制:192.168.1.96

求广播地址:

    子网掩码转二进制:11111111.11111111.11111111.11111000
​
•   反转:00000000.00000000.00000000.00000111
​
•   IP地址转二进制:11000000.10101000.00000001.01100100
​
•   逻辑或:11000000.10101000.00000001.01100111
​
•   二进制转十进制:192.168.1.103

主机范围:192.1681.96-192.168.1.103

较为简单的方法

C类网络24位(192为C类网络),此处29相当于借了5位,32=2^5,每个子网可以容纳2^3-2=6个主机(网络地址和广播地址)

2^3(主机位)=256-248(给出的掩码)=8

8的倍数最接近于100的为96

网络地址:192.168.1.96

主机范围:192.168.1.97-192.168.1.102

广播地址:192.168.1.103


静态路由

我们学会了IP地址的划分,那么设备是怎么来识别出内网还是外网的IP呢

当将子网掩码和IP地址的二进制进行逻辑与后,计算机知道了IP的当前网段属于内网还是外网,对于外网的IP,计算机将发给外网的设备进行转发,这个设备叫做路由器

以上拓扑中,所有设备都是不同网段,理论是无法进行互通的,所以我们需要手动进行配置静态路由

​​​​[H3C]sysname R1
[R1]int g 0/1
[R1-GigabitEthernet0/1]ip add 192.168.0.1 24
[R1-GigabitEthernet0/1]int g 0/0
[R1-GigabitEthernet0/0]ip add 192.168.1.1 30
[R1-GigabitEthernet0/0]exit
[R1]ip route-static 192.168.2.0 24 192.168.1.2

[H3C]sysname R2
[R2]int g0/1
[R2-GigabitEthernet0/1]ip add 192.168.2.1 24
[R2-GigabitEthernet0/1]int g 0/0
[R2-GigabitEthernet0/0]ip add 192.168.1.2 30
[R2-GigabitEthernet0/0]exit
[R2]ip route-static 192.168.0.0 24 192.168.1.1

就这样我们在两台交换机中加了各自的路由,此时我们的PC可以进行互通

如我们在自己Windows系统输入route print即可获取到自己电脑的路由表,当然这些都是自动路由


当我们网络规模很大时,由人工一个个管理路由的时候会很麻烦,这个时候OSPF技术进行自动学习和管理路由协议,当网络规模更大时,OSPF也会逐渐疲软,这个时候会使用BGP等协议

当然以上这些都是和网工息息相关,在使用者、客户视角中还是类似于傻瓜式直连这么简单,无需操心这么多


VLAN/WLAN/MAN等讲解

LAN: LAN就是局域网,如一个办公室,一个机房,使用交换机将它们连接实现互通,一般称为LAN

WLAN: 与LAN的意思差不多,但WLAN使用无线技术连接通信的局域网,可以在范围内进行连接,我们目前称为WIFI

VLAN: VLAN相较于以上不同,是使用特殊技术将不同位置的网络设备组合在一起,VLAN可以让通信更加灵活和安全,常用于网络规划和网络隔离等

VPN: 与其它网络协议不同,VPN虚拟私有网络,指的是在公有网络中连接私有网络的环境,VPN是通过加密和安全隧道的方式进行创建,用于保护用户的隐私性和安全性

举例:某医院内网环境有大量的数据,医生出差,但可能有急事需要查数据或开处方,这个时候又不能马上回去,可以使用分发的个人VPN账号进行接入内网,通过已分配给自己的权限进行工作,这样收敛了在公网的数据安全暴露面,又保护了隐私


VLAN

VLAN指的是通过特殊的技术将不同位置的机器进行划分连接,以方便通信、安全性,易于管理

实验环节

本次使用HCL模拟器进行实验,搭建VLAN环境进行通信,来理解VLAN的意义

实验拓扑如上,设环境:上述环境为某内网,都在同一个段内

要求:PC3和PC5为财务部门,PC4和PC6为运维部门机器,使用vlan进行划分,要求运维部和财务部不互通

目前未划分的情况下是互通的

首先,在第一台交换机1口和2台交换机1口创建vlan,将其划入vlan10中,并创建trunk

# SW1
sys
hostname S1
vlan 10
port GigabitEthernet 1/0/1
vlan 20
port GigabitEthernet 1/0/2
int g 1/0/24
port link-type trunk
port trunk permit vlan 10 20

sys
hostname S2
vlan 10
port GigabitEthernet 1/0/1
vlan 20
port GigabitEthernet 1/0/2
int g 1/0/24
port link-type trunk
port trunk permit vlan 10 20

此时将相关端口加入到相关vlan中,并在两台交换机之间的网口中放行vlan10和vlan20

此时满足要求,PC3不通PC4,但是可以通PC5

也满足了PC4可通PC6,但不通其它的要求


TCP协议

在以往我们以IP地址和端口的形式去访问,是以UDP形式访问的,UDP形式简单粗暴,但稳定性低,比如我们现在常见的DNS协议走的就是UDP,有些同学会很懵,什么UDP协议和DNS协议

这个时候我们需要搞懂一个东西叫做OSI模型的东西,不同的协议在不同的层

OSI七层网络模型TCP/IP四层概念模型对应网络协议
应用层(Application)应用层HTTP、TFTP, FTP, NFS, WAIS、SMTP
表示层(Presentation)Telnet, Rlogin, SNMP, Gopher
会话层(Session)SMTP, DNS
传输层(Transport)传输层TCP, UDP
网络层(Network)网络层IP, ICMP, ARP, RARP, AKP, UUCP
数据链路层(Data Link)数据链路层FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
物理层(Physical)IEEE 802.1A, IEEE 802.2到IEEE 802.11

我们已经知道了网络是不稳定的,发送消息的途中会有丢包的可能性,所以设置了重试机制,为了知道我们消息是否发送成功,还得要让对方发送确认消息,这样一来一回就确保了消息送达

当我们数据较大时,比如传个文件,则需要采用分包机制来提高传输率,为了不让每个包乱序,所以在每个数据包之前加了序号标签,到达时则进行按序排列,没有送达的则进行重新发送

因为TCP协议的稳定性,所以我们在进行连接和会话时,需要进行三次握手和四次挥手,其次为了防止一直重试来影响稳定和浪费资源,我们需设置超时机制,如我浏览器访问一个没有开放的端口,这时候肯定不可达,则未建立连接

在尝试几次后回显超时,这样就不会一直进行发包,我们所数值的DDOS泛洪就是这个原理,对方端口开着,攻击者发送请求,服务器收到响应,在三次握手和四次挥手中,最后的时候攻击者不在给回应,服务器会一直等待,这样会浪费资源直至宕机,所以需要设置超时机制


NAT协议

在当下我们的IPV4地址已资源匮乏,想要一机一IP是不可能实现的,所以就想到了NAT协议,比如在我们的办公或内网中,通常都是以10.x.x.x或172.16.x.x或192.168.x.x的IP,这个就是内网IP对外进行请求时,请求会交给内网网关,网关根据路由表向外进行发送请求,以达到我们使用外网IP的任一端口访问网络资源,达到多人用一个IP的目的

这里打开两个wireshark抓包,一个抓我能上网的网卡,另一个抓我VMware的NAT网卡进行实验

VMnet8网卡为NAT网卡,我们发出请求后,会自动路由可以出网的网卡,我这里可以出网的网卡为WLAN,所以另一个wireshark线程抓取WLAN网卡

我用虚拟机访问了百度,然后我们筛选一下流量

通过抓取百度的流量后,可以看到非常完整的TCP流量,首先通过DNS进行解析的域名,然后进行了TCP连接,然后我们本地的端口为37726,目标端口为443,此时本地端口是NAT网卡本机地址的端口

由于wlan网卡流量太多,简单筛选过滤一下后看到,我们的请求通过路由WLAN网卡进行了对外请求,先进行了DNS解析,然后进行访问,不同于刚才虚拟机建立的源端口,我们WLAN网卡使用的端口为36430

然后我们的请求会通过路由器,交换机,出口IP逐一进行对外访问,这期间,每个设备都会开放自己任一端口进行访问目标地址,并记录源地址和目标地址,回包的时候通过记录的地址和相应端口进行返回响应信息,这个过程使用者是无需操心的


0x03 结语

    希望这篇文章在帮助我复习和总结的时候,也能帮助到你,如您是学生,希望您能考试顺利,勇攀高峰,如您是就业人员,希望您可以步步高升,每天学习一点新技术,日积月累就是大牛

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值