一、前言
还是来自summer老师的,B站可以搜“summer”课堂,看相关视频哦~
协议分类
二、二层协议
(1)以太网:一般用于局域网
以太网帧结构:
(2)帧中继:一种广域网技术
例题:下列分组父换网络中,米用的交换技术与其他3个不同的是( )网。
A.IP
B.X.25
C.帧中继
D.ATM
答案A
(3)HDLC
三、三层协议
(1)ipv4
TTL经过一个三层设备就-1,减到0就不能继续传了,就丢包。通过TTL能够避免IP数据报在网络中无限转发。
(2)ipv6
一般比ipv4效果更高。
(3)IP相关协议:ARP、NAT、DNS、DHCP VLAN、IP子网划分
地址:IP(三层、网络层)、MAC(二层、数据链路层)、端口(四层、传输层)、域名( 五层、应用层)
ARP协议:已知IP找MAC
RARP协议:已知MAC找IP
DNS协议:已知域名找IP
NAT:把私网地址转为公网地址。例如一个公司10w人,只用10个公网ip上网,这时候就用PAT,一种NAT技术。
DHCP:给用户动态分配地址的一个协议。(注意:当dhcp服务器出问题或者网断了这种dhcp服务不正常的时候,用户会分到169.254.0.0这个网段的地址)
VLAN:一个VLAN对应一个ip地址段。
子网划分:是一个和ip相关的很重要的知识点。
(4)非常重要的特殊IP地址
DHCP里,客户端在没有获得ip地址的时候就用0.0.0.0作为ip地址~
四、四层协议
(1)TCP与UDP
传输控制协议(TCP):面向连接、可靠传输、流控及窗口机制;使用TCP的应用——WEB浏览器,电子邮件文件传输程序等。
用户数据报协议(UDP):面向无连接、不可靠传输、尽力而为的传输;使用UDP的应用——域名系统(DNS),视频应用IP语音(VolP)。
·源端口随机分配,目标端口使用知名端口
·应用客户端使用的源端口一般为系统中未使用的且大于1024
.目的端口号为服务器端应用服务器的进程,如telnet为23
下面这个图很重要——ftp20数据21控制、snmp161实体发送请求和SNMP Agent响应等162实体管理站台和接受消息通知如Trap或Inform。
应用层:用户接口(FTP、Telnet、SMTP、HTTP、RIP、NFS、DNS)
表示层:定义数据格式(JPEG、ASCLL、GIF、DES、MPEG)
会话层:定义了开始、控制、结束一个会谈(RPC、SQL、NFS)
传输层:差错恢复、数据包的重新排列(TCP、UDP、SPX)
网络层:端到端的包定义(IP、IPX、路由器和三层交换机工作、ICMP协议、ARP协议、RARP协议)
数据链路层:IEEE802.3/.2、HDLC、PPP、ATM
物理层:机械特性、电器特性、功能特性、过程特性RS232、V.35、RJ-45、FDDI
使用TCP协议常见端口主要有以下几种:
(1)FTP——文件传输协议——21号端口
(2)Telnet——远程登陆协议——23号端口
(3)SMTP——简单邮件传送协议——25号端口
(4)POP3——接收邮件——110号端口(POP3仅仅是接收协议,POP3客户端使用SMTP向服务器发送邮件。)
使用UDP协议常见端口主要有以下几种:
(1)HTTP——超文本传输协议——80号端口
(2)DNS——域名解析服务——53号端口
(3)SNMP——简单网络管理协议——161号端口(SMTP真正关心的不是邮件如何被传送,而只关心邮件是否能顺利到达目的地。)
(4)TFTP——简单文件传输的协议——69号端口
另外代理服务器常用以下端口:
(1)HTTP协议代理服务器常用端口:80/8080/3128/8081/9080
(2)SOCKS代理协议服务器常用端口:1080
(3)FTP协议代理服务器常用端口:20/21
(20端口用于数据传输,21端口用于控制信令的传输,控制信息和数据能够同时传输,这是FTP的特殊这处。FTP采用的是TCP连接。)
(4)Telnet协议代理服务器常用端口:23
(5)DHCP协议——动态主机设置协议——用于内部网或网络服务供应商自动分配IP地址
DHCP:服务器端的端口号是67 DHCP:客户机端的端口号是68
TCP三次握手
TCP四次挥手
TCP滑动窗口——实现流量控制
滑动窗口是在接收方的一个机制,防止发送方不停发送,导致接收方接收不过来。
五、路由协议
内部网关协议:用于AS内部
(1)RIP——基于UDP520
距离矢量路由协议:指的是基于距离矢量的路由协议,RIP 是最具代表性的距离矢量路由协议。距离矢量这个概念包含两个关键的信息:距离和方向,其中距离(cost)是指到达目的网络的度量值(即所要经过路由器的个数),而方向指的是到达目的网络的下一跳设备。
RIPv1和RIPv2. RIPv1 的主要区别:
1.RIPv1是有类路由协议,RIPv2是无类路由协议。
2.RIPv1不能支持VLSM,RIPv2可以支持VLSM。
3.RIPv1在主网络边界不能关闭自动汇总(没有手工汇总的功能),
RIPv2可以在关闭自动汇总的前提下,进行手工汇总(v1不支持主网络被分割,v2支持主网络被分割)。
4.RIPv1没有认证的功能,RIPv2可以支持认证,并且有明文和MD5两种认证。
5.RIPv1是广播更新,RIPv2是组播更新。
6.RIPv1对路由没有标记的功能,RIPv2可以对路由打标记(tag),用于过滤和做策略。
7.RIPv1发送的updata包里面没有next-hop属性,RIPv2有next-hop属性,可以用与路由更新的重定。
(2)OSPF——基于IP89【最最重要!!!】
链路状态路由协议的路由器会使用一些特殊的信息描述网络的拓扑结构和 IP 网段,这些信息被称为链路状态信息( LSA ),所有路由器都会产生自己直连接口的链路状态信息。
路由器将网络中泛洪的链路状态信息搜集起来,存入一个数据库中,这个数据库就是 LSDB (链路状态数据库),LSDB 是对整个网络的拓扑结构及 IP 网段的描述,路由器拥有相同的 LSDB 。对于任何一台路由器,网络拓扑都完全一样。
接下来所有的路由器都基于 LSDB 使用最短路由优先算法进行计算,得到一棵已自己为根的、无环路的最短路径树,并将得到的路由加载到路由表中。
链路状态算法使用增量更新机制,只有当链路的状态发生变化时,才发送路由更新信息。
相比距离矢量路由协议,链路状态路由协议具有更大的扩展性和更快的收敛速度,但是它的算法消耗更多的内存和 CPU 处理能力。
(3)IS-IS
“中间系统-中间系统”协议(ISIS)是基于链路状态的路由协议。该协议由ISO提出,起初用于OSI网络环境,后修改成可以在双重环境下运行。该协议与OSPF协议类似,可用于大规模IP网作为内部网关协议。
外部网关协议:用于AS之间
BGP 采用 TCP 来保证协议传输的可靠性。BGP 不需要自己设计可靠传输机制,降低了协议报文的复杂度和开销。
BGP协议的基本特点:
(1)BGP是一种外部网关协议,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由;
(2)BGP使用TCP作为其传输层协议(端口号179),提高了协议的可靠性;
(3)BGP是一种距离矢量路由协议,在设计上就避免了环路的发生;
(4)BGP提供了丰富的路由策略,能够实现路由的灵活过滤和选择;
(5)BGP采用触发式增量更新,而不是周期性的更新;
BGP存在5种不同类型的报文,分别是open、update、notification、keepalive、route-refresh。
路由表
为了将数据包发给目的节点,所有节点都维护着一张路由表。路由表是路由器通过各种途径获得的路由条目,每一个路由条目包含目的网段地址 / 子网掩码、路由协议、出接口、下一跳 IP 地址、路由优先级和度量值等信息。路由表记录 IP 包在下一跳应该发给哪个路由器。 IP 包根据路由表在各个数据链路上传输。
路由优先级
越小越优先
direct 0 ;OSPF 10;static60;RIP 100;BGP 255。
不同的路由协议,有不同的特点。各个路由协议的性能指标体现如下:
协议计算的正确性:是指路由协议的算法会不会产生错误的路由导致网络环路。不同的路由协议使用的算法不同,因此路由正确性也不相同。链路状态路由协议(如 OSPF )在算法上杜绝了产生路由环路的可能性,比距离矢量路由协议更优。
路由收敛速度:路由收敛是指全网路由器的路由表达到一致状态。收敛速度快,意味着网络拓扑结构发生变化时,路由器能够更快的感知,并及时更新相应的路由信息。OSPF 、BGP 等协议的收敛速度快于 RIP 。
协议所占的系统开销:路由器在运行路由协议时,需要消耗的系统资源,比如:CPU 、内存等。工作原理的不同,各个路由协议对系统资源的需求也不同。OSPF 路由技术的系统开销要大于 RIP 协议。
协议自身的安全性:是指协议设计时,有没有考虑防止网络攻击。OSPF 、RIPv2 有相应的防止攻击的认证方法,而 RIPv1 没有。
协议适用网络规模:不同路由协议所适用的网络规模、拓扑结构不同。RIP 协议有 16 跳的限制,所以只能应用在较小规模的网络中;而 OSPF 可以应用在几百台路由器的大规模网络中;BGP 能够管理全世界所有的路由器,其所管理的网络规模大小只受系统资源的限制。
六、功能类协议
(1)ICMP ( Internet Control Message Protocol , Internet控制报文协议),协议号为1,封装在IP报文中,用来传递差错、控制、查询等信息,典型应用pina/traceroute底层依赖ICMP报文
(2)ARP (Address Resolution Protocol,地址解析协议)作用是∶根据IP地址查询MAC地址
(3)RARP ( Reverse Address Resolution Protocol,反向地址转换协议)作用是∶根据MAC地址查找IP地址
(4)NAT NAT ( Network Address Translation,网络地址转换)把私有地址转换成公网IP地址
(5)ACL ALC (Access Control List,访问控制列表)实现用户访问权限控制
(6)STP STP ( Spanning Tree Protocol )生成树协议,用于防止二层环路
(7)DHCP DHCP ( Dynamic Host Configuration Protocol,动态主机配置协议)用于动态分配IP地址
(8)其他:VRRP、DNS、AD、www、FTP/TFTP(查询搞懂具体功能)
重点说下ARP协议
①主机A查询自己的ARP缓存,发现没有主机B对应的MAC地址;
②主机A向主机B发送ARP Request报文;
③主机B把主机的MAC地址信息回复给主机A;
④主机B把主机A的IP、MAC对应信息填入自己的ARP缓存中;
⑤主机A收到主机B的ARP Replay信息,将主机B的IP、MAC对应信息填入自己的ARP缓存中
ARP协议一些重点
参考了https://zhuanlan.zhihu.com/p/59066874和https://blog.csdn.net/ever_peng/article/details/80008638
硬件类型:16位字段,用来定义运行ARP的网络类型。每个局域网基于其类型被指派一个整数。例如:以太网的类型为1。ARP可用在任何物理网络上。
协议类型:16位字段,用来定义使用的协议。例如:对IPv4协议这个字段是0800。ARP可用于任何高层协议
硬件长度:8位字段,用来定义物理地址的长度,以字节为单位。例如:对于以太网的值为6。
协议长度:8位字段,用来定义逻辑地址的长度,以字节为单位。例如:对于IPv4协议的值为4。
操作码:16位字段,用来定义报文的类型。已定义的分组类型有两种:ARP请求(1),ARP响应(2)。
源硬件地址:这是一个可变长度字段,用来定义发送方的物理地址。例如:对于以太网这个字段的长度是6字节。
源逻辑地址:这是一个可变长度字段,用来定义发送方的逻辑(IP)地址。例如:对于IP协议这个字段的长度是4字节。
目的硬件地址:这是一个可变长度字段,用来定义目标的物理地址,例如,对以太网来说这个字段位6字节。对于ARP请求报文,这个字段为全0,因为发送方并不知道目标的硬件地址。
目的逻辑地址:这是一个可变长度字段,用来定义目标的逻辑(IP)地址,对于IPv4协议这个字段的长度为4个字节。
ARP分组被封装在以太网的帧中,当pc1给pc2发送ARP请求,此时使用Wireshark获取ARP抓包数据:
当PC1发送的ARP请求报文,以广播报的形式发送到局域网后,当pc2检测到IP地址与自己的IP相同,就会发送给PC1响应报文。对于ARP响应包来说,源IP,目地IP,源MAC,目地MAC都是知道的。
对于局域网
如果PC想向局域网中的PC2发送一个数据,那么PC1就会从已有的ARP缓存表中寻找这个IP地址对应的物理地址的ARP表项,然后直接将数据写入以太网数据帧中让网卡进行发送即可,而如果没有找到这个IP地址,那么这个数据就没法立即发送,PC1会先在局域网上广播一个ARP请求(目标MAC地址为FF-FF-FF-FF-FF-FF),广播的ARP请求发出后,处于同一局域网内的所有主机都会接收到这个请求,如果目标IP地址与接收到ARP请求的主机自身IP地址吻合就会返回一个ARP应答,即PC2会告诉请求者(PC1)自身的MAC地址,当PC1收到这个ARP应答后,就去建立一个ARP表项,并且重新将数据发送出去。ARP协议的核心就是对缓存表的操作,发送数据包的时候,查找ARP缓存表以得到对应的MAC地址,在ARP缓存表中的TTL即将过期的时候更新缓存表以保证ARP表项有效,此外ARP协议还需要不断处理来自局域网中其他主机的ARP请求。
对于公网
比如PC1想访问某个博客,因为博客主机PC是处于外网的,那么PC1在访问的时候,也是找不到缓存表的,那它只能通过网关,让网关将数据转发到PC上,即:
因为PC1与PC机不在一个网段,PC1查询自己的路由表,知道如果想和PC通信则必须通过网关(gateway)来中转,所以会在与网关直连的网卡上请求网关的MAC地址,因为PC1要把发给PC的数据先发给网关,当合法以太帧到达网关并且顺利接收,网关会将数据递交给IP层,IP层查询路由表,找到与PC直连的接口(假设是直连的,实际上肯定不是直连的),网关会发一个ARP请求到PC上,请求它的MAC地址,网关收到应答后将建立新的ARP表项并将开始维护ARP缓存表,然后完成最终的通信。
免费ARP(gratuitous ARP)
又称无偿ARP、无故ARP。它是指主机发送ARP requset报文查询自己的IP地址,一般在ARP功能开启或者端口初始化配置完成时,主机向网络发送免费ARP来查询自己的IP地址确认地址唯一可用。
免费ARP作用:
确定网络中是否有其他的主机使用了该IP地址,如果有应答则产生错误消息。
免费ARP可以更新ARP表项用,网络中其他主机收到该广播则在缓存中更新条目,收到主机强制更新,如果存在旧条目会将MAC更新为广播包中MAC。
补充:二层交换机数据转发流程——根据MAC进行数据转发的
交换机寻址
1、初始情况下,交换机MAC地址表是空的
2、PC1发送一个数据帧给PC4,暂且假设PC1已经知道PC4的MAC地址。
怎么知道PC4的地址?方式有很多,比如ARP协议,这个先不管,假设已经有MAC地址表了哈~
3、交换机在收到数据帧后,将数据帧的源MAC地址学习到MAC地址表中,并与接收该帧的接口GE0/0/1口关联。
4、交换机在MAC地址表中查询数据帧的目的MAC地址,发现没有匹配的表项,因此将数据帧从除了其入站接口之外的所有接口泛洪出去。
泛洪相当于“二层广播”
5、PC2及PC3收到数据帧后将其丢弃,因为这些数据帧并非发送给自己;PC4则收下数据帧,现在PC4要回复数据给PC1。
6、交换机收到了数据帧,将帧头中的源MAC地址学习到MAC表中,并与接口GE0/0/4关联
7、交换机在MAC表中查找数据帧的目的MAC地址,发现有一个匹配的表项,出接口是GE0/0/1,于是将数据帧转发到GE0/0/1口
补充:数据封装与转发流程(基于OSI7层模型)
封装:从上到下
解封装
理解数据转发流程
已知:
应用层:PC端产生了一个数据DATA
传输层:封装TCP头部
网络层:封装ip头部,其中协议号为6指基于TCP协议的
协议号为17表示基于UDP
协议号为17表示基于UDP
协议号 协议 说明
0 HOPOPT IPv6逐跳选项
1 ICMP Internet控制消息
2 IGMP Internet组管理
3 GGP 网关对网关
4 IP IP中的IP(封装)
5 ST 流
***6 TCP 传输控制
7 CBT CBT
8 EGP 外部网关协议
9 IGP 任何专用内部网关(Cisco 将其用于 IGRP)10 BBN-RCC-MON BBNRCC监视
11 NVP-II 网络语音协议
12 PUP PUP
13 ARGUS ARGUS
14 EMCON EMCON
15 XNET 跨网调试器
16 CHAOS Chaos
***17 UDP 用户数据报
18 MUX 多路复用
19 DCN-MEAS DCN测量子系统
20 HMP 主机监视
21 PRM 数据包无线测量
22 XNS-IDP XEROX NS IDP
23 TRUNK-1 第1主干
24 TRUNK-2 第2主干
25 LEAF-1 第1叶
26 LEAF-2 第2叶
27 RDP 可靠数据协议
28 IRTP Internet可靠事务
29 ISO-TP4 ISO传输协议第4类
30 NETBLT 批量数据传输协议
31 MFE-NSP MFE网络服务协议
32 MERIT-INP MERIT节点间协议
33 SEP 顺序交换协议
343PC 第三方连接协议
35 IDPR 域间策略路由协议
36 XTP XTP
37 DDP 数据报传送协议
38 IDPR-CMTP IDPR控制消息传输协议
39 TP++ TP++传输协议
40 IL IL传输协议
41 IPv6 Ipv6
42 SDRP 源要求路由协议
43 IPv6-Route IPv6的路由标头
44 IPv6-Frag IPv6的片断标头
45 IDRP 域间路由协议
46 RSVP 保留协议
47 GRE 通用路由封装
48 MHRP 移动主机路由协议
49 BNA BNA
50 ESP IPv6的封装安全负载
51 AH IPv6的身份验证标头
52 I-NLSP 集成网络层安全性TUBA
53 SWIPE 采用加密的IP
54 NARP NBMA地址解析协议
55 MOBILE IP移动性
56 TLSP 传输层安全协议(使用 Kryptonet 密钥管理)57 SKIP SKIP
58 IPv6-ICMP 用于IPv6的ICMP
59 IPv6-NoNxt 用于IPv6的无下一个标头
60 IPv6-Opts IPv6的目标选项
61 任意主机内部协议
62 CFTP CFTP
63 任意本地网络
64 SAT-EXPAK SATNET与后台EXPAK
65 KRYPTOLAN Kryptolan
66 RVD MIT远程虚拟磁盘协议
67 IPPC Internet Pluribus数据包核心
68 任意分布式文件系统
69 SAT-MON SATNET监视
70 VISA VISA协议
71 IPCV Internet数据包核心工具
72 CPNX 计算机协议网络管理
73 CPHB 计算机协议检测信号
74 WSN 王安电脑网络
75 PVP 数据包视频协议
76 BR-SAT-MON 后台SATNET监视
77 SUN-ND SUN ND PROTOCOL-Temporary
78 WB-MON WIDEBAND监视
79 WB-EXPAK WIDEBAND EXPAK
80 ISO-IP ISO Internet协议
81 VMTP VMTP
82 SECURE-VMTP SECURE-VMTP
83 VINES VINES
84 TTP TTP
85 NSFNET-IGP NSFNET-IGP
86 DGP 异类网关协议
87 TCF TCF
88 EIGRP EIGRP
89 OSPFIGP OSPFIGP
90 Sprite-RPC Sprite RPC协议
91 LARP 轨迹地址解析协议
92 MTP 多播传输协议
93 AX.25 AX.25帧
94 IPIP IP中的IP封装协议
95 MICP 移动互联控制协议
96 SCC-SP 信号通讯安全协议
97 ETHERIP IP中的以太网封装
98 ENCAP 封装标头
99 任意专用加密方案
100 GMTP GMTP
101 IFMP Ipsilon流量管理协议
102 PNNI IP上的PNNI
103 PIM 独立于协议的多播
104 ARIS ARIS
105 SCPS SCPS
106 QNX QNX
107 A/N 活动网络
108 IPComp IP负载压缩协议
109 SNP Sitara网络协议
110 Compaq-Peer Compaq对等协议
111 IPX-in-IP IP中的IPX
112 VRRP 虚拟路由器冗余协议
113 PGM PGM可靠传输协议
114 任意0跳协议
115 L2TP 第二层隧道协议
116 DDX D-II数据交换(DDX)117 IATP 交互式代理传输协议
118 STP 计划传输协议
119 SRP SpectraLink无线协议
120 UTI UTI
121 SMP 简单邮件协议
122 SM SM
123 PTP 性能透明协议
124 ISIS Over IPv4
125 FIRE
126 CRTP Combat无线传输协议
127 CRUDP Combat无线用户数据报
128 SSCOPMCE
129 IPLT
130 SPS 安全数据包防护
131 PIPE IP中的专用IP封装
132 SCTP 流控制传输协议
133 FC 光纤通道
134-254 未分配
255 保留
数据链路层:封装以太网头部
类型0x0800是IP
0x0806是ARP
Ethertype 协议
0x0000-0x05DC IEEE 802.3 长度
0x0101 – 0x01FF 实验
0x0600 XEROX NS IDP
0x0660/0x0661 DLOG
0x0800 网际协议(IP)
0x0801 X.75 Internet
0x0802 NBS nternet
0x0803 ECMA Internet
0x0804 Chaosnet
0x0805 X.25 Level 30x0806 地址解析协议(ARP : Address Resolution Protocol)
0x0808 帧中继 ARP (Frame Relay ARP) [RFC1701]0x6559 原始帧中继(Raw Frame Relay) [RFC1701]0x8035 动态 DARP (DRARP:Dynamic RARP)/反向地址解析协议(RARP:Reverse Address Resolution Protocol)
0x8037 Novell Netware IPX
0x809B EtherTalk
0x80D5 IBM SNA Services over Ethernet
0x 80F3 AppleTalk 地址解析协议(AARP:AppleTalk Address Resolution Protocol)
0x8100 以太网自动保护开关(EAPS:Ethernet Automatic Protection Switching)
0x8137 因特网包交换(IPX:Internet Packet Exchange)
0x 814C 简单网络管理协议(SNMP:Simple Network Management Protocol)
0x86DD 网际协议v6 (IPv6,Internet Protocol version 6)
0x880B 点对点协议(PPP:Point-to-Point Protocol)
0x 880C 通用交换管理协议(GSMP:General Switch Management Protocol)
0x8847 多协议标签交换(单播) MPLS:Multi-Protocol Label Switching <unicast>)
0x8848 多协议标签交换(组播)(MPLS, Multi-Protocol Label Switching <multicast>)
0x8863 以太网上的 PPP(发现阶段)(PPPoE:PPP Over Ethernet <Discovery Stage>)
0x8864 以太网上的 PPP(PPP 会话阶段) (PPPoE,PPP Over Ethernet<PPP Session Stage>)
0x88BB 轻量级访问点协议(LWAPP:Light Weight Access Point Protocol)
0x88CC 链接层发现协议(LLDP:Link Layer Discovery Protocol)
0x8E88 局域网上的 EAP(EAPOL:EAP over LAN)
0x9000 配置测试协议(Loopback)
0x9100 VLAN 标签协议标识符(VLAN Tag Protocol Identifier)
0x9200 VLAN 标签协议标识符(VLAN Tag Protocol Identifier)
0xFFFF 保留
二层封装完成之后,传给路由器
路由器R1收到后,先解封装,然后看ip报的目的地址不是发给自己的就查路由表,接着根据路由表和ARP协议,重新封装二层以太网,然后发给路由器R2.
所以我们发现:在中间转发的时候,二层封装在变,ip、tcp封装都没变!
R2和R1一样,重新封装二层,然后传输
直到服务器收到之后,发现是发给自己的,他就一层一层解封装,获得数据DATA
补充:MAC地址及MAC地址表
版权归原作者 寧小樂 所有, 如有侵权,请联系我们删除。