网络基本知识(一)
网络协议:ARP,HTTP,FTP,TCP,IP,IPv4,IEEE 802.3,
OSI是一个7层功能/协议模型
OSI参考模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
每一层的数据单元称为协议数据单元(PDU)
TCP/IP模型:物理层,数据链路层,网络层,传输层,应用层
物理层的数据单元称为“比特“(Bit)
数据链路层的数据单元称为“帧”(Frame)
网络层的数据单元称为“包或者分组”(packet)
对于传输层:通过TCP封装而得到的数据单元称为“段”(Segment),即TCP段
通过UDP封装而得到的数据单元称为“报文”(Datagram),UDP报文
对于应用层 通过HTTP封装而得到的数据单元称为HTTP报文
通过FTP封装而得到的数据单元称为FIP报文
对于网络协议分层的好处
有利于协议设计,有利于协议管理,有利于学习和理解协议,有利于修改协议
MAC地址
是在IEEE 802标准中定义并规范的,凡是符合 IEEE 802标准的网络接口卡都必须有一个MAC地址。
MAC地址构成
单播MAC
|
xxxxxxx0 |
xxxxxxxx |
xxxxxxxx |
xxxxxxxx |
xxxxxxxxx |
xxxxxxxx |
前24位为由制造上向IEEE注册得到的OUI,后24位由制造商自己确定
(OUI的第一个字节的最低为一定为0)
组播MAC
|
xxxxxxxx |
xxxxxxxx |
xxxxxxxx |
xxxxxxxx |
xxxxxxxxx |
xxxxxxxx |
广播MAC
|
xxxxxxxX |
xxxxxxxx |
xxxxxxxx |
xxxxxxxx |
xxxxxxxxx |
xxxxxxxx |
组播和广播的前三个自己不一定为OUI
ARP协议(Address Resolution Protoco)地址解析协议
虽然是一个网络层协议,但却涉及一些数据链路层信息。
ARP协议基本作用是根据已知的IP地址获得其对应的MAC地址
每个主机都会在自己的 ARP 缓冲区中建立一个ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
主机(网络接口)新加入网络时(也可能只是mac地址发生变化,接口重启等), 会发送免费ARP报文把自己IP地址与Mac地址的映射关系广播给其他主机。
网络上的主机接收到免费ARP报文时,会更新自己的ARP缓冲区。将新的映射关系更新到自己的ARP表中。
某个主机需要发送报文时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送 ARP 数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址等。
当本网络的所有主机收到该 ARP 数据包时:
(1)首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包。
(2)如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖。
(3) 然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。
源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。
ARP报文:
|
目的MAC地址(6个字节) |
源MAC地址(6个字节) |
类型(2个字节) |
|||||
|
op |
发送端MAC地址 |
|||||
|
发送端IP地址 |
目的端的MAC地址 |
目的端的IP地址 |
|||||
|
PAD |
|||||||
|
PAD(4个字节) |
|
||||||
|
字段 |
ARP请求报文 |
ARP应答报文 |
|
目的MAC地址 |
ff-ff-ff-ff-ff-ff |
请求端的MAC地址 |
|
源MAC地址 |
请求端的MAC地址 |
被请求端的MAC地址 |
|
类型 |
长度为2字节,取值为0x0806 |
|
|
硬件类型 |
长度为2字节。表式网络类型:以太网的取值为1 |
|
|
协议类型 |
长度为2字节 |
|
|
硬件地址长度(hln) |
长度为1,表示硬件地址的长度:以太网中取值为6,表示MAC地址长度为6个字节 |
|
|
协议地址长度(pln) |
长度为1.表示协议长度:取值为4表示IP地址长度为4字节 |
|
|
Op |
长度为2个字节。表示ARP报文的种类;取值为1是ARP请求报文 |
长度为2个字节。表示ARP报文的种类;取值为2是ARP应答报文 |
|
发送端MAC地址 |
请求端的MAC地址 |
被请求端的MAC地址 |
|
发送端的IP地址 |
请求端的IP地址 |
被请求端的IP地址 |
|
目的端的MAC地址 |
|
请求端的MAC地址 |
|
目的短的IP地址 |
被请求端的IP地址 |
请求端的IP地址 |
|
PAD |
PAD字段一共18个字节,目的是为了凑足以太帧的载荷数据的最小长度46字节 |
|
携带ARP应答报文的帧是一个单播帧
携带ARP请求报文的帧是一个广播帧
ARP缓存表存放的是MAC地址与IP地址的对应关系
STP协议(Spanning Tree Protocol)生成树协议
是一种由交换机运行的,来解决交换网络中环路问题的数据链路层协议。
STP生成树基本原理:在一个具有物理环路的交换网络中,交换机通过运行STP协议,自动生成一个没有环路的工作拓扑;
为了得到环路带来的好处(提高网络连接的可靠性),同时又避免因环路而产生的灾难问题(Mac地址表反转,广播风暴,多帧复制)IEEE 802.1D中定义了STP协议。
STP树的生成过程是:首先选举根桥(Root Bridge RB),再确定根端口(Root Port RP)和指定端口(Designated Port DP),最后阻塞备用端口(Alternate Port AP)。
运行STP协议的交换机会交换STP协议帧,这些帧的载荷数据被称为BPDU(Bridge Protocol Data Unit,网桥协议数据单元);BPDU的产生者,接收者,处理者都是STP交换机本身
选举根桥:交换机不断地交换 BPDU 同时对BID进行比较,直至最终选举出一台BID最小的交换机作为根桥
确定根端口:根桥确定后,其他没有成为根桥的交换机都被称为非根桥,一台非根桥设备上只能有一个根端口(保证从某台非根桥设备到根桥设备的工作路径是最优且唯一的)
根端口的确定流程:
- 比RPC(Root Path Cost,根路径开销)大小,交换机将RPC最小的那个端口确定为自己的根端口。
- RPC相同时,比较上行设备上的BID,
- BID相同的,比较上行设备的PID(Port Identifier PID,端口ID)
- BID不同时,所连上行设备BID较小的根端口作为根端口
确定指定端口:当一个网段有两条及两条以上的路径通往根桥时,该网段相连的交换机就必须确定一个唯一的指定端口
指定端口:RPC较小的称为指定端口,RPC相同就比较BID,PID,BID大的作为备用端口,小的作为指定端口;BID相同是,比较PID,PID大的作为备用端口,小的作为指定端口
阻塞备用端口:逻辑阻塞,这些备用端口不能转发由终端计算机产生并发送的帧(用户数据帧)
备用端口可以接受并处理STIP协议帧,根端口和指定端口既可以发送和接受STP协议帧,又可以转发用户数据帧
STP报文格式:
STP协议帧是一种组播帧,组播地址为01-80-c2-00-00-00;
STP协议帧采用IEEE 802.3封装格式,其载荷数据为BPDU;BPDU分为两种类型:Configuration BPDU和TCN BPDU(Topology Change Notification BPDU,拓扑变化通知BPDU);
简单来说,Configuration BPDU是STP交换机正常工作时会周期性(缺省2s)发送;TCN BPDU是STP树中有某个位置出现故障,处于故障点附近的STP交换机会周期性的发送TCN BPDU。
未形成STP树时,所有的STP交换机都会发送Configuration BPDU。形成STP树稳定以后,是根桥(根交换机)来主动周期性(缺省2s)的发送Configuration BPDU,然后其他STP交换机收到后被触发,然后产生自己的Configuration BPDU,从自己的指定端口发出去。
网络中某条链路发生故障,导致工作拓扑发生改变,而位于故障点的交换机会根据端口状态来感知到这种变化,但是其他位置的交换机是无法直接感知到的。所以,位于故障点的交换机会以Hello time(缺省2s)为周期通过根端口不断向上交换机发送TCP BPDU,直至收到上游交换机发来的TCA标志置1的Configuration BPDU。上游交换机收到TCN BPDU后,一方面会回复TCA标志置1的Configuration BPDU,一方面向上游发送TCN BPDU。此过程一直重复到根桥收到TCN BPDU,根桥收到后,会回复TCA标志置1的Configuration BPDU,并通告所有交换机网络拓扑发生变化。
BPDU的格式
|
字段 |
字节数 |
简单说明 |
|
Protocol Identifier |
2 |
总是为0x0000 |
|
Protocol Version Identifier |
1 |
总是为0x00 |
|
BPDU Type |
1 |
BPDU类型: 0x00:Configuration BPDU 0x80:TCN BPDU |
|
Flags |
8 |
网络拓扑变化标志: 最低位为TC(Topology Change)标志 最高位为TA(TC Acknowledgment)标准 |
|
Root Identifier |
4 |
当前根桥的BID |
|
Root Path Cost |
8 |
发送该BPDU的端口的RPC |
|
Bridge Identifier |
2 |
发生该BPDU的交换机的BID |
|
Port Identifier |
2 |
发送该BPDU的端口的PID |
|
Message Age |
|
Configuration BPDU由根桥发出是,值为0;经过其他桥时,该值会加1 |
|
Max Age |
2 |
BPDU最大生命周期,缺省为20s |
|
Hello Time |
2 |
根桥发送Configuration BPDU的周期,也是其他交换机发送Configuration BPDU的周期; 缺省值为2s;修改必须在根桥上修改。 |
|
Forward Delay |
2 |
控制端口Listening和Learning状态的持续时间,缺省时间为15s; |
STP定义了三种端口角色:根端口,指定端口,备用端口。
根据端口是否能接收和转发STP协议帧,以及端口是否能转发用户数据帧,STP还将端口划分为5种状态:
STP端口的5种状态
|
端口状态 |
说明 |
|
去能(Disabled) |
去能状态的端口无法接受和发出任何帧,端口处于关闭状态。 |
|
阻塞(Blocking) |
只能接收STP协议帧,不能发送STP协议帧,也不能转发用户数据帧。 |
|
侦听(Listening) |
可以接收并发送STP协议帧,但是不能进行MAC地址学习,也不能转发用户数据帧。 |
|
学习(Learning) |
可以接收并发送STP协议帧,可以进行MAC地址学习,但是不能转发用户数据帧。 |
|
转发(Fowarding) |
可以接收并发送STP协议帧,可以进行MAC地址学习,也可以转发用户的数据帧。 |
STP的改进
STP树的完全收敛需要依赖定时器的计时,端口状态从Blocking到Fowarding,总的收敛时间太长,一般需要几十秒。
为了弥补STP收敛慢的缺陷,IEEE802.1w定义了RSTP(Rapid Spanning Tree Protocol)。收敛的时间只需要几秒钟
RSTP中,端口只有三种状态:
|
RSTP端口状态 |
对应STP端口状态 |
说明 |
|
Forwarding |
Forwarding |
可以转发用户数据帧,可以学习MAC地址 |
|
Learning |
Learning |
不能转发用户数据帧,可以学习MAC地址 |
|
Discarding |
Listening |
不能转发数据帧,不能学习MAC地址 |
|
Discarding |
Blocking |
|
|
Discarding |
Disabled |
VLAN(Virtual Local Area Network)虚拟局域网
通过交换机上部署VLAN机制,可以将一个规模较大的广播域在逻辑上划分成若干不同的,规模较小的广播域,可以有效的提高网络的安全性,减少了垃圾流量,节约了网络资源。
一个VLAN就是一个广播域,所以在同一个VLAN内部,计算机之间的通信是二层通信,不同的VLAN中,它们之间只能通过三层通信来传递信息。
VLAN的类型
基于端口的VLAN(Port-based VLAN):物理层VLAN,一层VALN。
基于MAC地址的VLAN(MAC-based VLAN):二层VLAN。
基于协议的VLAN(Protocol-based VLAN):三层VLAN
端口类型:Access端口(交换机与计算机连接的端口),Trunk端口(交换机之间连接的端口),Hybrid端口
通过多臂路由实现VLAN间的三层通信,
通过单臂路由实现VLAN间的三层通信:
单臂路由,必须对路由器物理接口进行 子接口划分。一个物理接口可以划分多个子接口,分别对应不同的vlan 所对应的mac地址均为衍生。
通过三层交换机实现VLAN间的三层通信
TCP(Transmission Control Protocol)传输控制协议
TCP/IP协议簇中传输层的一个协议
在网络通信中 数据链路层(二层)会进行帧(Frame)的交换//不可靠,无连接
网络层(三层,IP层)上会进行IP包的交换 //不可靠,无连接
在传输层(四层)上还会可能会进行TCP段交换
TCP/IP的模型中:物理层的数据单元为比特率,数据链路层的数据单元为以太帧,网络层的数据单元为包,传输层的数据单元为TCP段或者UDP报文。
TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)都是TCP/IP模型中传输层的协议,TCP通信是一种面向连接的通信方式,而UDP通信是一种非连接的通信方式。
二层通信和三层通信都是面向无连接的通信方式。
TCP是协议是TCP/IP协议簇上传输层的一个协议。
TCP会话建立需要进行“三次握手”。三次握手分别是SYN段,一个SYN+ACK段,一个ACK段

TCP会话的终止需要进行“四次握手”。

TCP的封装格式:

TCP传输过程中目的设备接收到源设备发送的数据段时,会向源端发送确认报文,源设 备收到确认报文后,继续发送数据段,如此重复。
超时重传机制:
l 超时重传:
p 每发送完一个数据段,必须在重传队列的数据结构中保留其副本,并启动重传计时器,计时器的值随时间递减;
p 如果在计时器超时之前收到了确认信息,则将该片段从重传队列中移除;
p 如果在计时器超时之前未收到确认信息,则自动重传该片段;
p 重传之后依然会在重传队列中保留该片段的副本,同时重传计时器被重置
l 每一次发送一个片段,就开启一个重传计时器。计时器有一个初始值并随时间递减。如果在片段接收到确认之前计时器超时,就重传片段。
UDP主要负责为不同终端系统的应用进程提供不面向连接的通信服务
与TCP协议不同的是:
- 不能确保数据被正确接收并按需重传;
- 不能确保数据有续传输
- 无法控制传输速率,可能会产生拥塞
UDP的报文没有控制报文和数据报文之分,所有的UDP报文都是数据报文。发送方与接收方之间也不存在所谓的确认重传机制。
UDP协议之所以省去了TCP协议所做的大量工作,包括处理报文的丢失,重复,乱序等各种问题。是因为UDP认为信息的可靠性可以由应用层来提高保证。
UDP的封装格式

TCP、UDP的选择,IETF已经规定了哪些应用程序必须使用TCP,哪些程序使用UDP,哪些程序必须既可以使用TCP,又可以使用UDP。
路由协议
路由优先级
|
路由来源 |
优先级的缺省值 |
|
直连路由 |
0 |
|
OSPF |
10 |
|
静态路由 |
60 |
|
RIP |
100 |
|
BGP |
255 |
AS(Autonomous System )自治系统
一个自治系统由若干个二层网络及若干台路由器组成的集合
IGP(Interior Gateway Protocol,内部网关协议)
EGP(Exterior Gateway Protocol.外部网关协议)
IGP成员有(RIP,OSPF,IS-IS) EGP成员有(BGP)
RIP(Routing Information Protocol)路由信息协议,
是一种基于距离矢量的(Disatance Vector DV)算法的IGP协议
RIP协议只能以“跳数‘来定义路由开销,跳数大于或等于16的路由将不可达
每台RIP路由器都会每隔30秒向它的所有的邻居路由器发布它的最新的RIP路由表中的所有路由器信息,同时又不断接收它的邻居发送过来的路由信息,更新自己的RIP路由表。反复循环,经过很长时间(RIP路由的收敛时间)最后达到稳定状态(RIP路由器实现收敛)
RIP V1 与RIP V2
|
RIP V1 |
RIP V2 |
|
支持有类路由(rip-1消息中不能携带子网掩码信息) |
支持无类路由(rip-2消息中能携带子网掩码信息) |
|
不支持VLSM |
支持VLSM,CIDR |
|
不支持认证功能 |
支持认证功能,明文和MD5加密 |
|
采用广播发布消息 |
采用组播发布消息 |
RIP网络的路由环路问题解决
- 触发更新
- 水平分割
- 毒性逆转
- 最大跳数不超过15
OSPF(Open Shortest Path First)开放最短路径优先
基于链路状态(Link-State)的路由协议
OSPF报文由5种报文:Hello报文,数据库描述报文(Database Description Packet DD Packet)
链路状态请求报文(Link-State Request Packet ,LSR Packet )
链路状态更新报文(Link-State Update Packet ,LSU Packet )
链路状态确认报文(Link-State Acknowledgement Packet ,LSAck Packet )
一个OSPF网络可以划分成多个区域(Area)单域OSPF网络,多区域OSPF网络
OSPF支持的网络类型(能够支持的二层网络类型):
广播网络(Broadcast网络)(例如以太网),NBMA(Non-Broadcast Multi-Access)网络
点到点网络(P2P),点到多网络(P2MP)
OSPF核心思想就是每台路由器都将自己的各个接口状态(即链路状态)共享给其他路由器
LSA(Link-State Advertisement)链路状态通告,
LSA是链路状态信息的主要载点,链路状态信息主要包含在LSA中并通过LSA的通告(泛洪)来实现共享
OSPF共有8种状态,分别是:Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。
Down:没有启用OSPF的状态;邻居失效后变为该状态
Init:初始化状态,第一次收到对端发来的hello包(包含对端route-id)时,将对端的状态设置为init
2-way:邻居状态,相互间周期发送hello的状态(双方建立会话)
Exstart:交换信息的初始化状态
发送DBD(包含本地的LSA的摘要信息)报文,选举主从路由器(利用HELLO报文中的ID和优先权来进行选举,不允许抢占,DR没了,DBDR才能上)
Exchange:交换信息的状态
该状态下,相互间发送DBD,告知对端本地所有的LSA的目录;同时,可以发送 LSR,LSU,LSACK来学习对端的LSA
Loading:加载状态(没有学习完的状态)
发送LSR,LSU,LSACK,专门学习对端的LSA的详细信息
Full:邻接状态(学习完的状态)
彼此的LSDB同步,即所有的LSA相同
邻居关系和邻接关系
邻居关系:如果两台相邻的OSPF路由器彼此发送的Hello报文的内容完全一致,这两台相邻的路由器就会成为彼此的邻居路由器,建立邻居关系
邻接关系:两台邻居OSPF路由完成了LSDB同步(交换 OSPF DD报文 ,OSPF LSR报文, OSPF LSU报文)之后,具有内容完全一致的LSDB,它们便建立了邻接关系
DR和BDR(P2P,P2MP不需要)
DR---Designated Router(指定路由器)
BDR---Backup Designated Router(备份指定路由器)
在整个OSPF网络中,Router ID最高者则成为DR,次高者成为BDR,其他为DRother
选举DR的目的:减少网络中的邻接关系的数量,BDR:当DR出现问题时,迅速代替DR
|
RIP |
OSPF |
|
以UDP作为其传输层协议,封装在UDP报文中 |
无传输层协议,直接封装在IP报文中 |
|
报文由RIP请求报文和RIP响应报文 |
报文有hello报文,DD Packet, LSR Packet, LSU Packet, LSAck Packet |
|
以“跳数”作为路由开销的定义 |
任何参量或若干参量组合(例如带宽,链路延迟时间,链路的成本) |
|
无类路由协议 |
无类路由协议 |
|
RIP路由无角色之分 |
OSPF路由都有独一无二的Router-id |
|
适用于小型网络 |
适用于任何规模的网络 |
链路技术
链路聚合(Link Aggregation)
将多个物理端口汇聚在一起,聚合后得到的逻辑链路称为聚合链路(Eth-Trunk链路),聚合链路中的每一条2物理链路称为成员链路,聚合得到的逻辑端口称为聚合端口。
交换机根据用户配置的端口负荷分担策略决定网络封包从哪个成员端口发送到对端的交换机。当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任收发端口
DHCP(Dynamic Host Configuration Protocol)动态主机协议
原理: DHCP是一种使网络管理员能够集中管理和自动分配IP网络地址的通信协议。在IP网络中,每个连接Internet的设备都需要分配唯一的IP地址。DHCP使网络管理员能从中心结点监控和分配IP地址。当某台计算机移到网络中的其它位置时,能自动收到新的IP地址。
DHCP基本工作原理:
- 发现阶段:计算机上的DHCP Client寻找DHCP Server
- 提提供阶段: DHCP Server向DHCP Client提供IP地址阶段
- 请求阶段:DHCP Client在收到若干个offer中根据自己的某个原则来确定接受的offer
- 确认阶段:DHCP Server会向DHCP Client发送一个DHCPACK消息
网络地址转换技术(NAT Network Address Translation)
实现私有网络与Internet之间的通信
私有网络:10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255 ,192.168.0.0-192.168.255.255
静态NAT:将内部网络的私有IP地址转换为公有IP地址,IP地址对是一对一的,是一成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,可以实现外部网络对内部网络中某些特定设备(如服务器)的访问
动态NAT:是指将内部网络的私有IP地址转换为公用IP地址时,IP地址对是不确定的,而是随机的,所有被授权访问上Internet的私有IP地址可随机转换为任何指定的合法IP地址
NAPT(网络地址端口转换):NAPT普遍应用于接入设备中,它可以将中小型的网络隐藏在一个合法的IP地址后面.

浙公网安备 33010602011771号