1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 9 网络知识(路由交换和ARP协议)+配置单网卡多ip和配置默认路由

9 网络知识(路由交换和ARP协议)+配置单网卡多ip和配置默认路由

时间:2020-02-16 10:27:10

相关推荐

9 网络知识(路由交换和ARP协议)+配置单网卡多ip和配置默认路由

网络知识详解

提问:网络到底是什么?

我们在电缆中传输的都是电信号(高电压或者是低电压),所以高电压就是1,低电压就是0,所以规定一定的时间传输固定的高低电压来当做是接收的数据

我们所谓的10Mbps:每秒中可以传输10M个bit

所以别人说你的是4M的带宽,指的就是4Mbps,要除以8才是实际的速率

那就是4Mbps=4/8MBs=0.5MBs=0.51024KBs=(41024)Kbps=512KB/s的下载速率

我们平时说的下载速度就是以KB/s为单位的

1KB/S=8Kbps 512KB/S=8K*512bps=4096Kbps=4Mbps

信号传输遵循的一种规定,叫做协议

协议:protocol

网络类型

1.总线型网络(上图就是一个总线型网络):

遵循着CSMA/CD:Carrier sense multi access collision detection载波侦听多路访问,冲突检测。在某一个时刻,一条线缆只能传输一个信号,因此就必须有一个线路仲裁的约定(说白了就是哪一个时刻谁可以使用谁不能使用的意思)

要想实现线路仲裁,就要知道以下的知识点

CSMA/CD:Carrier Sense Mutil Access Collision Detection载波侦听多路访问,冲突检测

检测有数据,就退出不发了,边发送边侦听,这样的一种机制就是以太网

以太网最核心的标识就是上面这个东西

MAC:Media Access Control

我们给每一个主机一个识别码,一种标示,在发送信号的时候,这个信号的首部就放着接收方的mac地址,接收的时候根据mac去匹配这个数据是不是发给你的,不是你的就不接收

无论是首部还是数据,其实在电信号上都是01代码来的。

2.环形网络(IBM的专用技术):

令牌在不断的环形网络中游走,谁要发送信息的时候,只要抓住这个令牌就可以了

令牌环网:只有持有令牌的人才能发信息

所以他也是解决一种网络仲裁的

3.星型网络

(从逻辑上来讲,他还是一个总线型的网络,只是更方便接线的,当A发送B的时候,C也是可以收到信号的):

提问:电压是什么?

在电源的两极间产生了电位差,也就是我们常说的电压;一加压,电子是从负极流向正极的。

中继器:我们电压如果在传输的过程中,线路太长,他会因为电阻,线缆质量,等因素,电信号是会不断的衰减的,所以引入一个新的概念,就是中继器,她能将缩减的信号,重新放大,再进行传送。

比如说我们的网线,实际传输距离不可以超过100m,是因为长度越长,衰减越大,就需要一个交换机再将信号放大,在传送,这个实例中的交换机就是类似于中继器的概念

提问:网桥的作用?

网桥就是来连接两岸的,所以当A和C需要通信的时候,而B的链路是收不到的(如果A不知道C在哪里,那B会收到A发过来的广播包,而之后网桥形成了自己的MAC地址表的时候下一次A和C的通信B就不会收到了),而A要和B通信的时候,也是通过网桥来进行传输的

那么网桥是怎么知道A要发给B的呢?

其实它本身就有一个表,通过广播之后就会形成MAC地址表在网桥内。

就是根据MAC地址表来发送的

那么表中的数据从何而来?

提问:假如网桥中没有任何信息,那是怎么通信的呢?

其实通信的开始就是通过广播机制的方式得知的,就是通过不断的学习,然后交换机不断的强大自己的MAC地址表,然后就得知所有的内部网络了,外部的当然被路由器给隔绝了

那我们假如每一台主机都接到网桥的一个接口,如下图所示

全双工和半双工

A可以发信号给B,但是同一时刻B不能发送数据。就是:半双工(如对讲机设备;)

A可以发信号给B,同一时刻B也能发送数据给A就是:全双工(如电话设备;)

网线,其实有用的只有4根,绞线的原因是防止干扰的

而我们的这个网桥设备,能够用自己的MAC地址表识别整个网络,就是叫做交换机

交换机:隔绝了冲突域,不能隔离广播域

路由器:可以隔绝广播域,

冲突域:

广播域:

我们原来用的是物理地址去通信,通过MAC地址去广播,这样就能广播所有的主机,万一整个网络很大,那所有的主机都要被广播,而且链路中也充满了广播,所以大大的加大了链路的负载

为了不用广播到所有网络中,要的就是一个逻辑地址去通信,指定要通信的对方,而这个逻辑地址就是我们所谓的IP地址

广义上的IP包不再看MAC地址是什么,只看我们的ip地址是什么,这样来传输

比如说1.1->2.1(这是两个网段)的时候就是跨网络的传播,到了对端,也不会和MAC地址一样,到了对端还广播找设备,而有一个设备就有专门的表,他记载的是不同接口的ip地址,而这种跨网段的数据连接,主机都是交给自己的网关去处理,而到了其他网段的时候,就根据这个表去将数据包发给指定的网段的主机,而这个设备就是路由器,这个表就是路由器的路由表

当然第一次的时候也是需要广播的,广播之后,就记载了所有网段之间的对应的网段的

网络通信过程(路由器和交换机)

网络早先就是一个总线型网络,虽然用了网桥集合了所有端口,也改变不了实质是总线型的概念

当我们的AB通信,整个链路都没办法通信的,因为传输的是电信号,整个线路都充斥着这个电信号

所以CD也是不能通信的(总线型的缺点)

那我们就需要的是隔离这种冲突,我们用一种设备将他们隔离开来(就是网桥)

用了网桥,如果AC需要通信的话,如果A是刚接入网络中来的,第一次想发送数据给C的话,A首先发送的报文是这样的(广播包)(MA|MBrodcost)(也就是记录了本地的MAC地址和发送一个广播地址的包),因为A压根不知道C的MAC地址是什么,所以首个报文的目的就是广播的,而网桥也是无条件去转发这一种广播包的,也同时让所有设备知道有A的存在,也让网桥在MAC地址表记载A的信息

本地通信的话是一定要依赖于广播的,不然怎么内部通信?

网桥在以前就只接多个网络的,而现在是有多端口的网桥,命名就叫做交换机

其中广播和交换机没有什么关系,就看主机发送的是不是广播包,而交换机是无条件发送广播的

所以如果整个网络都无条件接收广播的话,那整个网络链路会有多么的混乱和增大链路负载

这就引入了一个新的设备:

路由器(隔绝广播域)

路由器区分不同区域的话,如果用MAC地址,他根本不知道怎么区分MAC地址属于哪一个区域,因为MAC地址在记载到网卡上,网卡上的辨识是不同的厂商提供的,所以辨别不同的区域用的是逻辑地址,也就是ip地址和子网掩码合起来去区分。

所以有了路由器发的报文就是这样子的

只要发现目标主机和当前主机不是同一个网段,就把包交给路由器(用来转换非本地通讯的,本地通讯依赖于广播包)

逻辑地址是附加上主机上的,其实最终通讯的话,还是要根据MAC地址去通讯的

我们ping的是ip地址,但是在进程中是靠MAC地址去通信的

我们不通过路由器的内部网络,无论如何,本地通讯都是先通过广播先进行通信的,然后将对应的MAC地址和主机的ip地址记载到了交换机的MAC地址表,而我们本地通讯依靠的广播,就是依靠ARP协议进行ip地址和MAC地址之间查询的

ARP协议

第一次的找目标主机发送的是广播,而是通过就是逻辑地址找MAC地址的,就是ARP协议,而反过来的通过MAC地址找逻辑地址的就是RARP协议

我们区分1.0和2.0是不同网络的是子网掩码(判断哪一部分是指网络的,哪一部分是取的主机的)

像192.168.1.0和192.168.2.0的话,如果子网掩码是24的话,就是不同网络,

而如果子网掩码是22的话,那这两个就是同一个子网

因为22就是255.255.252.0,则网络就是192.168.0.0-192.168.3.255都是同一个网络

不在同一网络的话,就是通过网关去转发

如果网关不跟自己内部的地址在同一个网络是不行的,一定要在同一个网络,这个是常识

理解下图的逻辑(如主机是192.168.1.1/24,网关肯定是属于192.168.1.0/24的网络)

从1.1到2.1的通讯,MAC地址先用的是路由器的1.1的网关的MAC

到了路由器的时候,再重新封装成目标2.1的MAC地址,目标ip是不会变化的

所以说数据包在传输的过程中,MAC地址都是一直变化的,而变化的范围就是本网段的源MAC和目的MAC之间的转换,目的MAC就是下一跳的设备的MAC

之后到了2.1就去掉MAC了,然后查看是到自己的网络IP,就继续解包,最后就可以得到数据了

所以为什么我们发报文的是时候,要有ip首部地址和MAC首部地址了

路由器的路由表

IP和路由器端口号

交换机的MAC地址表

IP和MAC地址

深度去理解互联网中多个路由器的概念:要指定网络到路由表去

1是使用指定静态路由(做这个的话要做双向的指定,不然去的了目的网络,却回不来的)

2是采取协议来实行(如ospf,rip,eigrp这些路由协议这些去学习)

这是属于思科的网络知识

假如一个信息由一个口告诉另外一个口,那这个口不能告诉我告诉你的网络,不然的话会形成环路的,(水平分割);所以动态学习的机制,还是需要更多的去配置,这里的话就是一个水平分割的知识点

在通信过程中

MAC地址是用来标记本地网络的地址通信(所以一个数据包,MAC地址是不断的变化的)

而ip地址呢?是从源主机到目标主机都不会改变的

我们来通过端口来识别

同一台主机上的不同进程

端口都是0-65536之间的

端口和进程之间是没有必然的关系

比如http服务器是80端口,而在客户机上的是随意的端口去辨识http的进程

而这个http的80端口,是专门分配给web服务的

某一些著名的服务,必须用固定的端口的,ssh是22,dns是53,你更换成其他是可以使用,但是必须要加上你指定的端口去访问,而默认的不用指定,内部就指定了,比如打开网址,默认就是80端口

实际上客户机来讲自己打开的端口是随机的。

我们著名的服务,端口必须一致打开,这叫做监听(监听就是必须要打开一个端口)

一个端口只能属于一个进程

所以有人访问,就随时可以访问

客户端是主动打开,服务器是被动打开

要理解什么叫监听

端口和ip其实还是有关联关系的

ip:port绑定起来就叫做一个套接字:Socket

协议的分层(这是因为数据报文必须交给对应的层去解析的):

有专门管理MAC的

装专门管理IP的

有专门管理端口的

也就是osi七层模型

应用层

表示层

会话层

传输层

网络层

数据链路层

物理层

学网络最核心的就是传输层(解析端口的)和网络层(解析IP地址的)

实际每一个都是非常难的

就比如说网络层的ip,一个IP Header(ip首部)如下图所示

4位的版本号

4位的标识首部长度

服务类型(TOS)

Total Length整体长度

Identification(Fragment ID):标记符(片标识符)

Fragment Offser:片偏移量,一共有13位

DF:标识不分片(不准分片)

MF:标识有更多的分片

Time-to-Live:存活时间

Protocol:由于标记在data当中的上一个协议标识(常见的是TCP,UDP)

Header Checksum:首部校验和

Source IP:逻辑源ip地址

上图是学习网络的基础知识

当然TCP首部会比这个IP首部还要麻烦

OSI7层参考模型,而现在都是以TCP/IP这种协议来学习,而且反而这种TCP/IP、是现在现实中正在使用的模型

IP层首部有20个字节

4位的版本号 4位的标识首部长度 8位服务类型(TOS) Total Length整体长度

Identification(Fragment ID):标记符(片标识符)

Fragment Offser:片偏移量,一共有13位

DF:标识不分片(不准分片)

MF:标识有更多的分片

Time-to-Live:存活时间

Protocol:由于标记在data当中的上一个协议标识(常见的是TCP,UDP)

Header Checksum:首部校验和

Source IP:逻辑源ip地址

IPv4点分十进制学习(网络基础)

一个ip地址是分为网络地址和主机地址

A类的是首位是0,其他7位可变化

127个A类,127用于回环,有用的就是1-126,2^7-1个A类

(实际设计用127的A类做回环,是非常浪费的)

B类是以10开头,后面7位随意变化

64个B类网络,2^14个B类网络

C类是以110开头,后面随意变化

32个C类地址,2^21个C类网络

D类:

224-239

E类:

所有的IP地址都由

国际组织NIC(Network Information Center)负责统一分配.

目前全世界共有三个这样的网络信息中心。

InterNIC:负责美国及其他地区;

ENIC:负责欧洲地区;

APNIC:负责亚太地区。

我国申请IP地址要通过APNIC,APNIC的总部设在日本东京大学。申请时要考虑申请哪一类的IP地址,然后向国内的代理机构提出

私有地址(这些地址也是不能被路由的,作为源地址是可以的,作为目标地址在互联网中是不会传送的):

路由(选择路径的,有很多考虑的因素:如cost值,跳数之类的)

目标是一个主机的就是主机路由(如7.1主机)

目标是一个网络的就是网络路由(如到达7.0的网络)

最佳匹配我们默认是选择主机路由优先的(默认选择会觉得主机路由是为我专用铺设的,而网络范围大的次选)

一个路由器如果没有匹配的条目,一般都会设置一个默认路由0.0.0.0/0

划分子网:简单来说就是把主机位拿过来给网络位来用

TCP详解

TCP也是沙漏的模型

无论底层的传输介质什么不同,到了第三层的ip就都是一样的,如下

底下是以太网的,或者是点对点的拨号网络:ppp,ATM的

这些底层机制都不一样,但是到了IP都服服帖帖都变成可识别的了

TCP: Transmission Control Protocol

有连接可靠的协议

试探性的找到对方,然后在进行连接,然后才进行报文发送的

经典的三次握手

双向通道,双向断开的

(断开需要四次握手(比如模拟断开:tom说分手(主动断开),对方同意,等一下对方也要说一次分手,tom同意)

tom提出分手的就是主动关闭,提出之后,time-wait1等待对方说同意,time-wait2等待对方说一次分手)

下面我们来看一下TCP的首部

TCP首部 4个字节

源端口和目标端口

序列号

确认号

首部长度(4bit) 3位Reserved URG(紧急位)ACK(确认位)PSH(不在缓冲区停留,而是赶紧的发送出去)RST(连接重置(不需要像三次握手这样做))SYN(追求的)FIN(说分手的) Window Size窗口大小(接收方可接受的缓冲区的报文的个数,所以数据报文传送多少要取决于接收方的窗口大小)

TCP的校验和

紧急指针

Options

我们现在看一下三次握手和四次断开,如下图

TCP的有限状态机,而且TCP就是在这些状态里不断的转换的,他一定属于上面的某一次握手或者断开,所以在抓包的时候就可以看到了.

资源子网:资源的共享或者是子网的获取.

网络功能是内核的层次

路由器(其实就是扁平化的一台电脑而已,只是系统和硬件专门对网络转发等做了优化而已,一般底层也都是Linux来的)

网卡的绑定机制:bonding

我们作为系统管理员,完全可以将两块网卡同时工作(负载也好,主备也好)

UDP:User Datagram Protocol

无连接不可靠的协议

直接把报文丢到网络去,对方能不能收到不理会

QQ用的就是UDP(他会返回对方未收到之类的信息是在应用层的部署,他在传输层就是UDP的协议)

要知道哪一些是TCP的,哪一些是UDP的

点对点的拨号网络:ppp

网络配置与管理:

在这个网络基础有详细的笔记

冲突域:老的总线型网络是各个终端处在一个冲突域的

网桥:

多接口:交换机

学习:

广播域:

8位2进制数据:0-255

0-255.0-255

Hub有MAC地址(各个Host处在同一个广播域)

路由器有路由表

在的教程中有详细的学习

1.1 --> 2.2

1111 1111. 0000 0000

1.0

2.0

IP: 4段

1.1.1.1

32位:

大:0 000 0000 - 0 111 1111:0-127

中:10 00 0000 - 10 11 1111:128-191

小:110 0 0000 - 110 1 1111:192-223

d1110 0000 - 1110 1111:224-239

e1111 0000 - 1111 1111:240-255

全0:网络地址

全1:广播地址

A:1-126

126个网络

每个网络中的主机:2^24-2

B:128-191

2^14个网络

每个网络中的主机:2^16-2

C:192-223

2^21个网络

每个网络中的主机:2^8-2

172.16.0.0

255.255.0.0

子网划分

172.16.0.0/255.255.255.0

172.16.255.0/255.255.255.0

172.16.255.255

子网汇聚;超网

192.168.0.0/255.255.255.0 --> 192.168.255.0/255.255.255.0

192.168.0.0/255.255.0.0

ip地址划分

A类:

1-126个网络,127用于回环,2^7-1(127网段用作回环地址其实是非常浪费的,当时肯定划分的时候一定是非常多地址,其实我们ping回环地址不只是127.0.0.1,其实是127网段的可用地址都是通的,比如127.0.0.5)

容纳的主机数:2^24-2

默认掩码:255.0.0.0

主机位全0:网络地址

主机位全1:广播地址

B类:

2^14个网络

容纳的主机数:2^16-2

默认掩码:255.255.0.0

C类:

2^21个网络

容纳的主机数:2^8-2

默认掩码:255.255.255.0

私有地址

A类:

1个:10.0.0.0/255.0.0.0

B类:

16个:172.16.0.0/255.255.0.0-172.31.0.0/255.255.0.0

C类:

256个:192.168.0.0/255.255.255.0-192.168.255.0/255.255.255.0

路由表生产方法:

1、静态设置

2、动态生成(rip,ospf,eigrp之类的)

cost: 成本

rip特性:经过的跳数越少就越小

时长

路由协议:RIP2, OSPF, EIGRP(生产路由条路,对路由进行匹配传输的)

可路由协议:IP协议

其实是进程与进程之间的交互(有一个概念就是叫做进程监听器)

ip是真正实现主机到主机之间的通信的,目的地址是不会变的

物理介质:物理层,物理层协议

链路层:数据帧,链接层协议(PPP等等);只能完成同层的设备之间进行通信

网络层:数据包,IP协议

传输层:传输层 (TCP,UDP)

TCP:0-65535

UDP:0-65535

应用层:标记资源

端口:用于标记进程

0-65535:

Socket: IP:port(套接字就是IP和端口的组合)进程之间通信是通过套接字的

172.16.100.7:80

172.16.100.8:80

协议栈:内核

TCP/IP协议簇

主机名:FQDN完全合格;完全限定的域名

Full Qulified Domain Name

名称解析:DNS

理解其中一些概念?

Fragment: IP分片(分开传输,到达时候再合并)

我们本地传输这么快,和远程传输这么慢

源于帧,源于MTU:Maximum Translate Unit(最大传输单元)

我们发送的本地是1500的传输单元,而路由器有一些还有一些不支持这么大的MTU,就必须再分片去传输

Fragment: IP分片(分开传输,到达时候再合并)

所以分片的会非常的小去传输,而且中间很多路由器,会不断拆和不断去封装

合并的话要怎么去合呢?

TCP Header

FIN结束关系,SYN建立关系

ACK确认号,URG紧急位

下图是三次握手和四次断开

TCP被称为:有限状态机

FSM: Finite State Machine

Bonding的模式一共有7种:

#define BOND_MODE_ROUNDROBIN 0 (balance-rr模式)网卡的负载均衡模式

#define BOND_MODE_ACTIVEBACKUP 1 (active-backup模式)网卡的容错模式

#define BOND_MODE_XOR 2 (balance-xor模式)需要交换机支持

#define BOND_MODE_BROADCAST 3 (broadcast模式)

#define BOND_MODE_8023AD 4 (IEEE 802.3ad动态链路聚合模式)需要交换机支持

#define BOND_MODE_TLB 5 自适应传输负载均衡模式

#define BOND_MODE_ALB 6 网卡虚拟化方式

bonding模块的所有工作模式可以分为两类:多主型工作模式和主备型工作模式,balance-rr 和broadcast属于多主型工作模式而active-backup属于主备型工作模式。(balance-xor、自适应传输负载均衡模式(balance-tlb)和自适应负载均衡模式(balance-alb)也属于多主型工作模式,IEEE 802.3ad动态链路聚合模式(802.3ad)属于主备型工作模式.

回顾:网络基础知识

ARP:协议

本地通信必须要通过MAC地址来通信

在一个局域网内,A需要知道B的MAC地址,A就需要发送一个广播,然后通过ARP协议知道B端的MAC地址

涉及到了一个ARP欺骗.

比如在一个局域网内,A要和B通信,A要获取B的mac地址,但是是C主机作为***主机,他截取收到,给A发送了一个回去的包,A以为C就是B,而这时候A需要回包给B的时候,就回包给了C,然后C再回包给B,整个流程就形成了一个ARP欺骗,每一次数据A到B的时候,C都会收到一份

Hostname: 主机名

ifconfig route

ifconfig ethX IP/Mask {up}

ifconfig ethX IP netmask Mask

ip addr add dev ethX IP/Mask [label LABEL]

以上是立即生效,但不会永久有效,而下面的是不会立即生效重启有效

/etc/sysconfig/network-scripts/ifcfg-ethX

配置主机名的方法:FQDN(Fully Qualified Domain Name 正式域名)

hostname HOSTNAME

/etc/sysconfig/network

NETWORKING={yes|no}

HOSTNAME=

GATEWAY=这里也可以配置网关的,(作用范围越小,有效性越高)

[root@www ~]# cat /etc/sysconfig/network

NETWORKING=yes 网络开关

HOSTNAME=www 主机名

默认网关只有一个,但是路由可以有很多条

路由:

route add {-host|-net} gw GATEWAY 添加主机路由或者是网络路由

route add default gw GATEWAY 添加默认路由

ip route add DEST [via NEXT_HOP|dev DEVICE] [src SOURCE]

常用的网络状态的选项是-tan

netstat -tan (t表示tcp,a表示的是ESTABLISHED和LISTEN都显示出来,一般我们显示LISTEN就好,因为显示建立连接的可能会很多,n表示以数字显示)

netstat -untlp 常用这个(没有显示ESTABLISHED)

ss -untlp

proc是伪文件系统,所以很多proc的都是不能直接vim编辑器去编辑的

所以是通过sys接口去修改内核参数的

我们的主机名是保存在内核文件中的/proc/sys/kernel/hostname

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。