此文为本人在CCNA学习过程中自我总结归纳的知识点 若有不足或错误之处欢迎指正。
首先我们了解两个概念:
最原始的网络是一个使用集线器连接起来的简单局域网(LAN)。这种网络只有一个广播域和一个冲突域。实际上这样的网络是非常糟糕的,我们学习的目标便是学会如何搭建高效的网络并正确划分网段,从而最大限度地避免网络设备无序的混乱。 这便需要我们将庞大的网络划分为众多小网络,我们称之为网络分段。
因此,首先我们要知道的是,想要让一个网络更加顺畅便需要增加它的广播域和冲突域(实际为:确保广播域较小,并使设备尽量位于独立的冲突域),否则将会导致不必要的堵塞。
→为什么对广播域进行分割如此重要?
because主机或服务器发送网络广播时,网络中的所有设备都必须读取并处理这个广播——除非在网络中使用了路由器(分割网络)。路由器的接口收到广播后,可执行这样的响应:将广播丢弃,而不转发给其他网络。
广播域越大,用户可用的带宽就越少,必须处理的广播就越多,而网络的响应速度就会越来越慢,因此要确保广播域较小!
导致LAN拥堵的常见原因:
集线器、交换机、路由器之间的差别:
除此之外路由器还能提供广域网(WAN)连接,路由器使用串行接口来建立WAN连接。
在网络中使用路由器有两个优点:
在网络中,路由器有如下4项功能:
交换机的主要用途是让LAN更好地运行:向LAN用户提供更高的带宽,从而优化LAN的性能。
虽然交换机可以用来将网络分段,但是不能隔离广播和组播分组。
OSI模型旨在一协议的形式帮助厂商生产可互操作的网络设备和软件,让不同厂商的网络能够协同工作。
OSI分层模型的一些重要优点如下:
OSI是逻辑模型,而非物理模型。它是一组指导原则,开发人员可据此来开发可在网络中运行的应用程序。
OSI模型包含七层。这些层分为两组,上三层指定终端中的应用程序如何彼此通信以及如何与用户交流,下四层指定如何进行端到端的数据传输。
应用层 | ·提供用户界面 |
---|---|
表示层 | ·表示数据 ·进行加密等处理 |
会话层 | ·将不同应用程序的数据予以处理 |
用户通过应用层与计算机交互。同时,上三层还负责主机之间的应用程序通信。这三层都对联网和网络地址一无所知。
传输层 | ·提供可靠或不可靠的传输 ·在重传前执行纠错 |
---|---|
网络层 | ·提供逻辑地址,路由器使用他们来选择路径 |
数据链路层 | ·将分组拆分为字节,并将字节组合成帧 ·使用MAC地址提供介质访问 ·执行错误检测,但不纠错 |
物理层 | ·在设备之间传输比特 ·指定电平、电缆速度和电缆针脚 |
这四层定义了数据是如何通过物理介质、交换机和路由器进行传输的,还定义了如何在发送方主机和目标主机的应用程序直接重建数据流。
各层功能总结如下:
应用层 | 文本、打印、消息、数据库和应用程序服务 |
---|---|
表示层 | 数据加密、压缩和转换服务 |
会话层 | 对话控制 |
传输层 | 端到端连接 |
---|---|
网络层 | 路由选择 |
数据链路层 | 成帧 |
---|---|
物理层 | 物理拓扑 |
我将其分为3组:上层、中层、下层。
上层负责与用户界面和应用程序通信
中层负责与远程网络可靠地通信及路由到远程网络
下层负责与本地网络通信
1.2.1应用层
应用层是用户与计算机交流的场所,仅当马上需要访问网络时,这一层才会发挥作用。
应用层还负责确定目标通信方的可用性并判断是否有足够的资源进行所需的通信。
应用层是实际应用程序之间的接口。
1.2.2表示层
表示层向应用层提供数据,并负责数据转换和代码格式化。在OSI中提供编码和转化服务。
通过提供转换服务,表示层确保来自一个系统的应用层的数据可被另一个系统的应用层读取。
1.2.3会话层
会话层主要做以下几个工作:
会话层提供了三种不同的模式:
1.2.4传输层
传输层将数据进行分段并重组为数据流。
TCP和UDP是传输层的两个著名协议,这些协议提供了端到端数据传输服务,可在互联网络中的发送主机和目标主机直接建立逻辑连接。需要注意的是,TCP是一种可靠的协议,而UDP不是。
传输层提供如下机制:对上层应用程序进行多路复用,建立会话以及拆除虚电路。它还提供透明的数据传输,并对高层隐藏随网络而异的信息。
①面向连接的通信
为了进行可靠的传输,要进行传输数据的设备首先必须建立到远程设备的面向连接通信会话,我们称之为呼叫建立或三次握手。
三次握手看似简单,但是如果主机接收到大量的数据报,超出了其处理能力,那么会将这些数据报存储在称为缓冲区的内存中。但是仅当突发的数据报的数量比较少的时候,这种缓冲方式才能解决问题。
②流量控制
针对上述问题,我们采取了流量控制,其职责是在传输层确保数据的完整性。其原理是通过允许应用程式请求在系统间进行可靠的数据传输实现的。
其确保数据传输能达到以下目标:
流量控制提供一种机制,使接收方能够控制发送方发送的数据量。
当服务具备创建三次握手、使用排序技术、使用确认、使用流量控制,那么它就是面向连接的。
③窗口技术
在收到确认前,传输方可以发送的数据段的数量称为窗口大小。
窗口用于控制未确认的数据段数量。
eg.窗口大小为7,当发送方发送完7个数据段后,倘若接收方还未对其作出确认,那么发送方将不再继续发送数据段。又比如发送方在发送完1、2、3、4、5号数据段后,收到了来自接收方对前三个数据段的确认(1、2、3号),那么此时窗口中有4、5号数据段,那么在收到下一个确认数据段前,发送方还可以继续发送后面的5个数据段(即6、7、8、9、10号)。
1.2.5网络层
网络层设备编制、跟踪设备在网络中的位置并确定最佳的数据传输路径,即负责位于不同网络中的设备之间传输流量。路由器位于网络层。
其过程为:在接口上收到分组后,路由器首先检查分组的目标IP地址,如果分组的目的地不是当前路由器,将在路由选择表中查找目标网络地址。然后选择出站接口,路由器将分组发送到该接口,后者将分组封装成帧,将其在本地网络中传输。倘若在路由选择表中找不到目标网络对应的条目,路由器会将分组丢弃。
路由器的每个接口都属于不同的网络,因此必须给每个接口分配不同的网络标识号且与同一个接口相连的每台主机都必须使用相同的网络号。
1.2.6数据链路层
数据链路层提供数据的物理传输,并处理错误通知、网络拓扑和流量控制。
数据链路层将报文封装成数据帧并添加定制的报头,其中包含目标硬件地址和源硬件地址。
数据链路层包含两个子层:
1.2.7物理层
物理层有两个功能:发送和接收比特。
关于拓扑,网络的物理拓扑指的是设备的物理布局,但主要是电缆和电缆布局。逻辑拓扑定义了信号在物理拓扑中的逻辑传输路径。
现如今几乎所有网络都使用物理星型拓扑和逻辑总线拓扑。
2.1.1直通电缆
直通电缆使用4根导线来连接以太网。只使用了1、2、3、6号针脚,只需将两个1号针脚、两个2号针脚、两个3号针脚、两个6号针脚相连即可。
在发送方上,用1、2号针脚传输,3、6号针脚接收;接收方则相反。
需要注意的是直通电缆只用于10/1001Mbit/s的以太网,并且不能用于语言网络、其他LAN和WAN。
直通电缆用于连接:
总结起来就是用于连接 交换机/集线器 到 主机或路由器
2.1.2交叉电缆
也是使用4根导线,但是不同的是将1号针脚与3号针脚相连,2号针脚与6号针脚相连。
发送方与接收方,均在3、6号针脚上传输,在1、2号针脚上接收。
交叉电缆用于连接:
总结:用于 交换机、集线器、主机、路由器的自连(两边设备一样)以及路由器到主机、交换机到集线器。
2.1.3反转电缆
使用全部8根导线进行来连接串行设备。
即1-8,2-7,3-6,4-5的连接方式。
虽然它不用于组建以太网,但可以将主机的接口连接到路由器的控制台串行通信(COM)端口。
主机通过网络将数据传输给另一台设备时,数据将经过封装,在OSI模式的每一层都使用协议信息将数据包装起来。
为了通信和交换信息每一层都使用协议数据单元(PDU),PDU的名称随每一层添加的不同报头信息而异。
其封装过程大致如下:
如果你使用TCP建立连接,那么虚电路将由源端口号和目标端口号以及源IP地址和目标IP地址(称为套接字)标识。
分组包含一个协议字段,该字段指出了数据段来自何方(UDP或TCP),这样当分组到达接收主机后,传输层才能将数据段交给正确的协议。
2.3.1核心层
核心层是网络的核心,负责快速而可靠地传输大量数据。其唯一目标是尽可能快地交换数据。
如果核心层出现故障,将影响所以用户,因此核心层容错很重要。
设计核心层时应该注意:
2.3.2集散层
集散层是接入层和核心层之间的通信点,其功能是提供电路选择、过滤和WAN接入,以及在必要时确定如何让分组进入核心层。
下面几项操作应该在集散层执行:
2.3.3接入层
接入层控制用户和工作组对互联网资源的访问,大多数用户需要的资源位于本地,而所有远程服务流量都由集散层处理。
接入层的一些功能:
DoD模型是OSI模型的精简版,它包含4个层
DoD模型 | OSI模型 |
---|---|
进程/应用层 | 应用层 |
表示层 | |
会话层 | |
传输层 (主机到主机层) |
传输层 |
Internet层 | 网络层 |
数据链路层 | |
链路层 (网络接入层) |
物理层 |
进程/应用层,定义了用于节点间应用程序通信的协议,还定义了用户界面规范。
主机到主机层(传输层),定义了为应用程序提供传输服务的协议,负责解决以下问题:
Internet层,指定了与通过整个网络对分组进行逻辑传输协议。负责对主机进行编址,并在多个网络之间路由分组。
网络接入层(链路层),在主机和网络之间交换数据,定义了用于实际传输数据的协议。
3.1.1进程/应用层协议
Telnet,是一个终端模拟程序,让你能够登陆到远程主机并允许程序。它通过TCP建立面字节的8位数据连接,优点是易于使用,开销极低,缺点是不支持加密
Secure Shell(SSH),也通过TCP/IP连接建立会话,但是与telnet不同的是,会话是安全的,即它支持加密,并且始终确保连接是加密的。
文件传输协议(FTP),其不仅仅是协议,还是程序。作为协议时,FTP供应用程序使用,作为程序时,FTP供用户手动传输文件。
简单文件传输协议(TFTP),功能比FTP简单,没有提供浏览目录的功能只能发送和接收文件。
简单网络管理协议(SNMP),收集并操作有价值的网络信息。
超文本传输协议(HTTP),用于管理Web浏览器和Web服务器之间的通信。当你输入统一资源定位符(URL)时,浏览器明白你想要什么。
安全超文本传输协议(HTTPS),其使用安全套接字层。
网络时间协议(NTP),用于将计算机时钟与标准时间源同步。
域名服务(DNS),解析主机名。eg,ping www.baidu.com将返回DNS解析得到的IP地址。
动态主机配置协议(DHCP),给主机分配地址。DHCP是无连接的,因此其使用UDP。
DHCP冲突,当两台主机使用相同的IP地址时就发生了DHCP冲突
3.1.2主机到主机层(传输层)协议
传输控制协议(TCP),接收来自应用程序的大块数据,并将其划分成数据段。
TCP是一种可靠的精确协议,它采用全双工模式,且面向连接,单需要就所有条款和条件达成一致,还需要进行错误检查。TCP的开销很大,因此为了节省开销发开人员可能优先考虑效率而选择使用UDP。
TCP数据段的格式:https://blog.csdn.net/heyatzw/article/details/75453310
用户数据报协议(UDP),对于不需要可靠传输的信息,它在传输信息方面做得很好,并且占用的网络资源很少。UDP不对数据段排序,不关心数据段到达目的地的顺序,不检查数据段,不支持表示安全达到的确认,也不建立虚电路,同时也不在发现信息前与接收方联系,所以是无连接的协议。
UDP数据段的格式:https://blog.csdn.net/marywang56/article/details/78052357
TCP | UDP |
---|---|
排序 | 不排序 |
可靠 | 不可靠 |
面向连接 | 无连接 |
虚电路 | 开销低 |
确认 | 不确认 |
使用窗口技术控制流量 | 不使用窗口技术或其他流量控制方式 |
端口号
TCP和UDP必须使用端口号来与上层通信,因为端口号标识了通过网络同时进行的不同会话。
源端口号是源主机动态分配的其值不小于1024,小于1024的端口号为著名端口号。
如果虚电路使用的应用程序没有著名端口号,将从指定单位随机分配端口号给它们。
TCP和UDP都使用会话多路复用,它让计算机能够用单个IP地址同时建立多个会话,这主要归功于会话层根据传输层端口号区分不同的请求,将应用层数据分开始会话层的职责。
TCP | UDP |
---|---|
Telnet 23 | SNMP 161 |
SMTP 25 | TFTP 69 |
HTTP 80 | |
FTP 20、21 | BooTPS / DHCP 67 |
DNS 53 | DNS 53 |
HTTPS 443 | NTP 123 |
SSH 22 | |
POP3 110 | |
IMAP4 143 |
3.1.3 Internet层协议
网际协议(IP),IP查看每个分组的地址,再根据路由选择表确定接下来应将分组发送到哪里,从而选择最佳路径。想要标识网络中的设备,我们需要知道设备位于哪一个网络(IP地址),它在该网络中的ID是多少(MAC地址)。
IP报头:https://blog.csdn.net/qq_41727218/article/details/88314319
互联网控制消息协议(ICMP),IP使用它来获得众多服务。
ICMP是一种管理协议,为IP提供消息收发服务,其消息是以IP数据报的方式传输的。
ICMP具有如下特征:可向主机提供有关网络故障的信息;封装在IP数据报中。
一些常见事件:
地址解析协议(ARP),根据主机的IP地址查找其硬件地址。
ARP将IP地址解析为以太网(MAC)地址。
IP地址是软件地址,而不是硬件地址。硬件地址被硬编码到网络接口卡(NIC)中,用于在本地网络寻找主机。IP地址是让不同网络的主机能够相互通信。
IP地址长32位,分成4组,每一组一字节(8位)。32位的IP地址是一种结构化(层次化)地址,其优点在于可处理大量的地址。
现如今一般使用二层或三层的层次型编址方案,其地址由网络部分+主机部分组成,或者由网络部分+子网部分+主机部分组成。
3.2.1网络地址
网络地址唯一标识网络,在同一个网络中,所有机器的IP地址都包含相同的网络地址。
网络中的每台机器都被分配了主机地址,主机地址唯一的标识机器。IP地址的这一部分必须是唯一的,因为它标识特定的每台机器(个体)而不是网络(群体)。
8位 | 8位 | 8位 | 8位 | |
A类: | 网络部分 | 主机部分 | 主机部分 | 主机部分 |
B类: | 网络部分 | 网络部分 | 主机部分 | 主机部分 |
C类: | 网络部分 | 网络部分 | 网络部分 | 主机部分 |
D类: | 组播 | |||
E类: | 用于研究 |
A类网络地址范围
A类网络地址的第一个字节的第一位必须为0,即为0xxxxxxx
00000000=0
01111111=127
所以A类网络的第一字节取值范围是0~127。但是需要注意的是0和127并不是有效的A类网络地址。
因为网络地址全为0,表示当前网络。网络地址全为1(255),表示所有网络,地址127.0.0.1保留用于环回测试。
B类网络地址范围
B类网络地址的第一个字节的第一位必须为1,第二位必须为0,即10xxxxxx
10000000=128
10111111=191
所以B类网络的第一个字节取值为182~191
C类网络地址范围
C类网络地址的第一个字节的前两位必须为1,第三位必须为0,即110xxxxx
11000000=192
11011111=223
所以C类网络的第一个字节取值为192~223
D类和E类地址范围
D类(224~239)用于组播地址,E类(240 ~255)用于科学用途。
讨论完了网络地址,我们需要看看主机地址。需要注意的是主机位不能全为0或全为1,因为主机位全为0得到的是网络地址,全为1得到的是广播地址。
A类 | 10.0.0.0 - 10.255.255.255 |
---|---|
B类 | 172.16.0.0 - 172.31.255.255 |
C类 | 192.168.0.0 - 192.168.255.255 |
想要创建子网,通常借用IP地址中的主机位,将其用于定义子网地址。需要注意的是,当我们借用主机位后,将会导致可用于定义的主机位减少。
子网掩码
子网掩码是一个长32位的值让IP分组的接收方能够将IP地址的网络IP部分和主机IP部分区分开来。子网掩码用 1 来表示网络位,用 0 来表示主机位。当不需要子网时我们使用默认子网掩码。
eg.C类网络的前三字节为网络位,第四字节为主机位,因此对应的子网掩码为 11111111.11111111.11111111.00000000,即255.255.255.0 。我们也可以在ip地址后面接/24来表示子网掩码,即前24位均为1的子网掩码。
想要创建子网,我们首先需要完成下面的步骤:
现在我们教给大家另外一个概念,我将其称为基数(or 块大小)
基数=2n,n为单个字节中的主机位数。(划分子网的那个字节段)
以C类网络192.168.1.0/24为例,其主机位为8位,因此基数为28=256
那么这个基数有什么用呢,这里需要大家牢记网段号是基数的整数倍。
网段即我们前面所说的,当主机位全为0,我们称之为网段,即该网络或者子网的第一个地址。
最后一个地址,即主机位全为1,我们称之为广播地址。
现在我们举几个划分子网的例子来帮助记忆。
eg1.C类子网划分:192.168.1.0/26
网络地址:192.168.1.0
子网掩码:255.255.255.192
我们先来看看,当掩码为/26时,主机位有6位,因此基数为64。
现在我们解决以下问题:
eg2:B类子网划分:172.16.0.0/18
网络地址:172.16.0.0
子网掩码:255.255.192.0(第三字节 11000000)
此时计算基数时就需要注意了,掩码为18,因此还有14个主机位(第三字节6位,第四字节8位)
但是此处我们是将第三字节的前两个主机位划分给子网,因此基数应该是26=64
同样,我们现在继续看看那5个问题。
子网地址(网段) | 0.0 | 64.0 | 128.0 | 192.0 |
---|---|---|---|---|
第一个主机地址 | 0.1 | 64.1 | 128.1 | 192.1 |
最后一个主机地址 | 63.254 | 127.254 | 191.254 | 255.254 |
广播地址 | 63.255 | 127.255 | 191.255 | 255.255 |
子网划分的优点:减少网络流量、优化网络性能、简化网络管理,有助于覆盖大型地理区域。
遇到子网划分的问题,首先判断其属于哪一类网络,确定其最初的主机位有多少,然后根据需求从到小进行划分。
在上面我们所讲的子网划分都是将一个网络均分成许多的小网络,但是现实中,我们会发现均分网络会造成很多不必要麻烦。
现在我们介绍另一种方法,它使用长度不同的子网掩码将大型网络划分成众多子网,适用于不同类型的网络设计,我们称其为变长子网掩码(VLSM)
在此之前我们要知道,当运行老式路由选择协议(如RIPv1)的网络中,如果使用长度不同的子网掩码,网络将不能正常运行。这是因为老式的路由选择协议没有提供包含子网信息的字段,因此将丢弃子网信息。所有主机和路由器接口都使用相同的子网掩码,就称为分类路由选择。
因此如果想要在网络中实现VLSM,就要使用在路由器更新中能发送子网掩码信息的路由选择协议,包括RIPv2、EIGRP和OSPF,我们称为无类路由选择协议。这种网络的优点是能够让你节省大理的IP地址空间。
eg3:
如上图,给该企业划分子网,可以看出右边有4个局域网,左边还有4个网段,因此一共需要8个子网。那么下面我们开始划分子网,我们划分的子网必须符合需求。
建议从最大的子网开始划分,遵循从大到小的原则,这样不容易出错。
首先我们先确定一下子网所能连接的主机个数分别有哪一些(以划分第四个字节为例,8个主机位)
因此想要在局域网中布置120台主机,在不浪费多余主机的情况下,我们至少需要给这个子网划分7个主机位,因此就是相当于把原来的8位主机位中的第一位划分子网。因此掩码从/24变成/25,大家要了解的是,当掩码+1后,网络其实是被从中间切了一刀,划分为2个长度相同的网络。
192.16.1.0/24 | |||||||||||||||
192.16.1.0/25 | 192.16.1.128/25 | ||||||||||||||
192.16.1.128/26 | 192.16.1.192/26 | ||||||||||||||
192.16.1.192/27 | 192.16.1.224/27 | ||||||||||||||
192.16.1.224/28 | 192.16.1.240/28 |
192.16.1.240/28 | |||
192.16.1.240/30 | 192.16.1.244/30 | 192.16.1.248/30 | 192.16.1.252/30 |
汇总也叫路由聚合,让路由选择协议能够用一个地址通告众多网络旨在缩小路由器中路由选择表的规模,以节省内存并缩短IP对路由选择表进行分析以找出前往远程网络的最佳路径所需的时间。
用于通告汇总地址的网络地址总是块中的第一个网络地址。
如图,我们想要将左边的8个地址进行汇总,最原始的方法就是写出这些地址的二进制。
然后我们就会发现在第三字节中,这些地址的前五位完全相同,不同的是在后三位。因此我们便可以将其进行汇总,往前汇总三位,即把子网掩码修改为/21。因此汇总后的网络为172.16.169.0/21。
在掌握了上述这种最基础的方法之后,我们来学习另外一种利用基数(块大小)进行汇总的方法。
eg1:
我们发现这三个地址在第三个字节不同分别是4、6、7。因此我们可以知道其基数为4。汇总后的掩码/22,即汇总为172.1.4.0/22。
eg2:
现在我们来汇总一下上面的三个地址。同样我们发现其在第三字节不同,分别是134、139、148。那么此时我们的基数应该取多少呢,有同学可能会认为148-134=14,其地址跨度为14,因此我们取16的基数便可以,那么真的是这样吗。倘若基数为16,那么合法的子网地址便是:
0 | 16 | 32 | 48 | 64 | 80 | 96 | 112 | 128 | 144 | 160 | ..... |
这个时候我们就会发现,172.1.134.0/24 和172.1.139.0/24位于网段128中,而172.1.148.0/24则位于网段144中,很明显若使用16为基数进行划分,那么这三个地址是不属于同一个网段的,没办法进行划分。因此,这里的基数应该为32,此时的合法子网地址为:
0 | 32 | 64 | 96 | 128 | 160 | ... |
这时,它们便都属于同一个网段了,因此最后汇总为172.1.128.0/19。
总结:先确定基数(块大小),再确定汇总的地址,最后根据基数确定子网掩码。
思科推荐的故障排除步骤
如果上述每一步都成功了,但是用户仍然不能与服务器通信,则可能存在某种名称解析问题,需要检查DNS设置。
如果前3步成功,最后一步失败,就有可能存在某种远程物理网络问题,需要对服务器执行1-3步,找出原因。
IP路由选择是使用路由器将分组从一个网络移到另一个网络的过程。
路由选择协议 让路由器能够动态地发现互联网中的所有网络,并确保所有路由器的路由选择表都相同,同时其还用于找出最佳路径,让分组穿越互联网络前往目的地的效率最高。(常见的路由选择协议有:RIP、RIPv2、OSPF、EIGRP)
被路由的协议,当所有的路由器都知道所有的网络之后,就可以使用被路由的协议沿已确定的路径发送分组。被路由的协议是在接口上指定的,其决定了分组的传输方式。(IP和IPv6属于被路由的协议。
将LAN和WAN连接都路由器后,需要给所有的主机配置逻辑网络地址,让它们能够通过互联网进行通信。
路由选择是指将来自设备的分组通过网络发送到其他网络中的设备。分组到达目标网络后,路由器根据硬件地址将分组发送到正确的目标主机。
想要高效的路由分组,路由器需要知道:
路由器从邻接路由器或管理员哪里获悉远程网络,然后创建一个路由选择表。
静态路由选择,管理员手动将所有网络的位置输入路由选表。
动态路由选择,路由器上运行的路由选择协议将于邻接的路由器上运行的协议相通信。然后彼此交流信息,将这些信息写入路由选择表。
IP路由选择过程:https://blog.csdn.net/weixin_44059188/article/details/99628775