目录
OSI模型
计算机的诞生 1946年2月14日ENIAC诞生(电子数值积分计算机)
计算机网络的诞生 1969年APNET诞生
网络标准不同不能互联
OSI参考模型
国际标准化组织ISO,于1984年颁布开放系统互连参考模型(OSI)
所有的软件和硬件开发都遵循统一的OSI模型
OSI各层的作用
物理层:定义设备的物理特性,电气特性
确保设备之间的正常连接
数据链路层:负责设备之间的逻辑链路的及建立,维护和拆除
设备之间真正用来传输数据,依靠的是逻辑链接
该层为设备定义了设备拥有的一个全球唯一的地址,MAC地址
网络层:负责定义设备上网需要的逻辑地址,如IP地址
在不同网段的设备之间寻找最优的转发路路径
传输层:负责确定设备之间传输数据的方式
可以实现数据的稳定传输,但是速度慢一点
可以实现数据的快速传输,但是质量差一点
可以通过不同的端口来区分不同应用程序产生的数据流
会话层:负责设备之间的会话的建立,维护和拆除
最终用来传输数据的活,是通过会话来实现的
表示层:定义传递信息的语法和语义,统一语法后,不同的编程语言才能互通
编码和解码,压缩和解压缩,加密和解密
应用层:包含设备上安装的各种软件和程序
网络设备之间的通信,最终指的是应用层的软件之间的数据转发
不同的软件产生的数据,在传输层使用的端口号是不同的
TCP/IP协议的组成
Tcp/ip是一系列协议的集合,所以严格的称呼应是tcp/IP协议族
在物理和数据链路层,tcp/ip并未定义任何特定的协议
它支持所有标准的和专用的协议,例如广泛使用的以太网协议
各层的协议
应用层:HTTP FTP TFTP
SMTP SNMP DNS
传输层:TCP UDP
网络层:ICMP IGMP
IP
ARP RARP
数据链路层
物理层 未定义
网络层 IP协议:互联网协议定义了网络层地址
ICMP协议:网络控制消息协议,提供报错信息,便于网络故障排查
ARP协议:地址解析协议,把IP地址解析为MAC地址,实现数据转发
OSPF协议:开放式最短路径协议(路由)协议,学习其他路由网段实现不同网段之间的互通
传输层: TCP:传输控制协议,面向连接的可靠的协议,但传输速度慢
UDP:用户数据报协议,面向非连接的不可靠协议,但传输速度快
应用层:HTTP:超文本传输协议, 端口 TCP 80
HTTPS:安全超文本传输协议 端口 443
FTP:文件传输协议, 端口 TCP 20,21
TFTP:简单文件传输协议 端口 UDP 69
DHCP:动态主机配置协议 端口 UDP 67.68
67服务器 68客户端
DNS 域名解析协议 端口 53
数据通信
所谓的设备之间的通信,指的是设备之间能够互相传输数据
设备之间的数据传输,一定是双向的。每个方向都分为三个阶段
产生数据,也称为数据封装,指数据通过应用层产生后,发送到第一层,每经过一层都添加一个协议头部的过程。 传输数据,也称为网络传输,数据在不同网络设备组成的互联网中传输的过程。主要依靠交换机和路由器实现数据在不同设备之间的转发。
接收数据,也称为数据解封装,指的是数据被设备通过网线接收以后,形成数据帧,然后一层一层分析头部,然后传递给上一层处理,一直到应用层的过程。
不断的分析并删除每层协议头部的过程
物理层的主要功能
物理层是TCP/IP模型的最底层
物理层为数据传输提供稳定的物理连接 是网络的基础
网卡
用于连接计算机终端设备和网络设备
每个网卡都存在一个唯一的标识地址,例如MAC地址
按照提供的线缆接口类型可分为RJ-45网卡,光纤网卡等
中继器
能放大电信号,延长网络信号传输距离
只包含一个输入端口和一个输出端口
集线器
多端口的中继器
支持不同的传输介质和速率
已经被交换机取代
比特 Bit
帧 Frame
包 Packet
数据链路层功能
数据链路的建立,维护和拆除
帧的形成,传输,维护
帧的差错恢复和流量控制
数据链路层协议
ethernet以太网
PPP ,HDLC, Frame-realy,ATM
HDLC:高级数据链路控制协议 ,CISCO路由封装协议,是面向位的控制协议。
Fram-relay:表示帧中继交换组网,x.25。
PPP:点对点协议,华为默认路由封装,是面向字符控制的协议。
分组交换组网改进,以虚电路方式工作。
1. Point-to-Point Protocal,PPP点到点
2. Ethernet,以太网
3. High-Level Data Link Control Protocal,HDLC高级链路控制协议
4. Frame Relay,帧中继
5. Asynchronous Transfer Mode,ATM
以太网概述
MAC地址表的形成:当交换机接受到一个数据帧会记录它的源mac与对应进入接口形成mac地址表,为了容易下次转发,它的生存时间是300s,当过了300s以后在没有接受到相同的数据帧,该mac地址表就会消失,当下次转发的时候会广播再次形成。
查本地:display bridge mac-address
查mac地址表:display mac-address
查相邻交换机信息:lldp enable/display lld
以太网地址(MAC地址)
MAC地址用来标识以太网上唯一的一个设备
64~1518字节
数制概念
计数的方法,指用一组固定的符号和统一的规则来表示数制的方法,也称之为 进制
十进制数Decimal Number
二进制数Binary Number
十六进制数Hexadecimal number
网络层作用
定义网络设备的逻辑地址,俗称MAC地址
在不同网络间选择最佳的数据转发路径
协议
IP,IPX,AppleTalk
IP数据报格式
IP数据报是可变长度的,它由两部分组成:首部和数据
首部由 可变部分和固定部分 组成
固定部分20字节,可变部分由一些选项组成,最长40字节
IP数据包头部长度,因为长度可变,因此需要定义
TTL:生命周期字段,用来防止一个数据包在网络中无限循环下去。每经过一个路由器时值减1,TTL值为0时,数据包丢弃
标识符:标识不同的数据包
协议号:用来标识封装的上层数据,ICMP是1,TCP是6,UDP是17
ip_v IP协议的版本号,这里是4,现在IPV6已经出来了.
ip_hl IP包首部长度,这个值以4字节为单位.IP协议首部的固定长度为20个字节,如果IP包没有选项,那么这个值为5.
ip_tos 服务类型,说明提供的优先权.
ip_len 说明IP数据的长度.以字节为单位.
ip_id 标识这个IP数据包
标志:3bit的标识字段每一位都有特定的含义,该字段主要用来分片和重组.
ip_off 碎片偏移,这和上面ID一起用来重组碎片的.
ip_ttl 生存时间.没经过一个路由的时候减一,直到为0时被抛弃.
ip_p 协议,表示创建这个IP数据包的高层协议.如TCP,UDP协议。
ip_sum 首部校验和,提供对首部数据的校验.
ip_src,ip_dst发送者和接收者的IP地址
数据包封装流程
IP地址作用
任何联网的设备都必须拥有IP地址,否则无法上网
在一定范围内,唯一的标识一个联网的设备
ICMP概述
在IP网络中发送控制的消息,提供可能发生在通信环境中的各种问题的反馈,从而为网络连通测试以及网络故障定位提供有效的指示信息。
传输ICMP信息时,要先封装ICMP头部
然后再封装IP头部
做后再交给数据链路层
ICMP的报文格式
ICMP报文包含在IP数据报中,IP报头在ICMP报头的最前面。一个ICMP报文包括IP报头(至少20字节),ICMP报头(至少八字节),和ICMP报文(属于ICMP报文的数据部分)。当IP报头中的协议字段值为1时,就说明这是一个ICMP报文。
Echo Request 请求报文
Echo Reply 响应报文
ICMP作用
1.确认IP包是否成功到达目标地址
2.通知在发送过程中IP包被丢弃的原因
ARP
地址解析协议
主要作用:基于目标IP地址获得对应的目标MAC地址,从而完成数据帧的2层头部封装,实现数据的快速转发。
报文类型:请求报文,源设备以广播的方式发送,向所有设备请求MAC地址
回应报文,目标设备以单播的方式回应,直接返回给源设备
ARP核心工作表:ARP表,包含IP地址和MAC地址的对应关系条目
ARP条目分为静态和动态两种类型
动态条目存活时间时1200S
任何设备发送数据的原理
- 任何设备发送数据包之前,必须检查ARP表,查看包含去往目标IP地址时所使用的MAC地址。
- 如果ARP表包含目标IP地址对应的条目,则使用目标MAC地址封装数据
- 如果ARP表不包含对应的ARP条目,则发送ARP请求,获得目标MAC
ARP -a 查看ARP表
免费的ARP目标MAC是全f,也就是广播发送的
ARP报文总长度为28字节,MAC地址长度为6字节,IP地址长度为4字节
硬件类型:指明了发送方想要知道的硬件接口类型,以太网值为1
协议类型:表示要映射的协议地址类型。它的值为0X0800表示IP地址。(类型字段取值为0x0800的帧代表IP协议帧;类型字段取值为0x0806的帧代表ARP协议帧。)
硬件地址长度和协议长度:分别指出硬件地址长度和协议的长度,以字节为长度。对于以太网上IP地址的ARP请求或者应答来说,他们的值分别为6和4。
操作类型:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4。
对方发送的MAC地址:发送方设备的硬件地址。
发送方的IP地址:发送方设备的IP地址。
目标MAC地址:接收方设备的硬件地址。
目标IP地址:接收方设备的IP地址。
代理ARP
代理ARP是ARP协议的一个变种。 对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的 ARP 请求会使用自己的 MAC 地址与目标计算机的 IP地址对源计算机进行应答。代理ARP就是将一个主机“作为”另一个主机对收到的ARP请求进行应答。它能使得在不影响路由表的情况下添加一个新的Router,使得子网对该主机来说变得更透明化。同时也会带来巨大的风险,除了ARP欺骗,和某个网段内的ARP增加,最重要的就是无法对网络拓扑进行网络概括。代理ARP的使用一般是使用在没有配置默认网关和路由策略的网络上的。
配置路由器的ARP代理:ARP proxy配置
[Huawei-GigabitEthernet0/0/1]arp-proxy enable 开启arp代理(华为默认关闭)
免费ARP
目标MAC是全f,也就是广播发送的
Gratuitous ARP也称为免费ARP,无故ARP。Gratuitous ARP不同于一般的ARP请求,它并非期待得到ip对应的mac地址,而是当主机启动的时候,将发送一个Gratuitous arp请求,即请求自己的ip地址的mac地址。
TCP的报头架构
源端口(16位长):识别发送连接端口
目端口(16位长):识别接受连接端口
序列号:第一个数据序列号为本序列号加1
确认号:收到数据开始下一个字节字节长度加1
URG:为1表示高优先级数据包,只对紧急指针段有效
PSH:为1表示带有phs的数据尽快交给应用层处理
RST:为1表示出现严重错误,要从新tcp连接
SYN:为1连接请求用于创建连接
FIN:为1表示没有发送数据要断开连接
16位窗口:表示确认号开始可以接受字节数即窗口大小
校验和:对tcp报文段以16字节计算所得,这是强制性字段
紧急指针:本报文中紧急数据最后一个字节序列号
报文分析
序列号:发送端为每个字节编号,便于接收端正确重组
确认号:用于确认发送端的信息
SYN:同步位,TCP需要建立连接时该值设为1 Seq(序列号)ctl
ACK:确认位,当该位为1时,用于确认发送方的数据
FIN:当TCP断开连接时将该位置为1
UDP封装格式
UDP应用
DNS概念
域名系统 用来完成域名与IP地址间的映射,便于用户对网站的记忆和访问
端口号为TCP或者UDP的53
通用域
域名空间结构
根域
顶级域
二级域名
FTP文件传输协议: 使用最为广泛的文件传输应用,用于稳定的传输大容量的文件 端口号为TCP 21 和 20
TFTP简单文件传输协议:用来传输一些琐碎的小文件,速度虽然很快但是容易丢包 端口号为UDP 69
FTP的工作原理
控制连接: TCP 21,用于发送FTP命令信息
数据连接: TCP 20,用于上传,下载数据
数据连接的建立类型:主动模式,被动模式
主动模式:服务器主动发起数据连接(服务器在内网,客户端在外网)
被动模式:客户端主动发起数据连接,服务器被动等待(服务器在外网,客户端在内网)
Telnet远程登陆
网络设备管理方式
本地管理,通过console线缆管理网络设备。第一次配置设备时使用
远程管理,通过IP网络,利用远程管理协议管理设备(Telnet和SSH)
常见的远程管理协议
Telnet,多在公司内部使用,传输数据的方式是明文,端口号为TCP 23
SSH,可在任何场景下使用,传输数据的方式是密文,端口号为TCP 22
pasv
冲突域HUB(集线器)
网络设备发送的数据,产生冲突的区域
对象:数据指的是物理层的PDU(电源分配单元)电信号
问题:电信号产生冲突后,就会造成数据损坏,导致数据传输失败
解决方案
1 CSMN/CD 机制 载波侦听多路访问
特点 先听后发 边听边发 冲突停发
2 分割冲突域
将大的冲突域分割成很多小的冲突域
不同的冲突域之间相互隔离,互不影响
每个冲突域的范围变小,设备变少,冲突概率降低
3 改变端口双工模式
半双工,每个端口同一时刻,只能一个方向传输数据,容易产生冲突
全双工,每个端口同一时刻,两个方向可以同时传输,不会产生冲突
4 交换机
每个端口访问另一个端口时,都有一条专有的线路,不会产生冲突。即交换机的每一个端口,都是一个不同的冲突域
交换机是用来连接局域网的主要设备
- 交换机能够根据以太网帧中的目标MAC地址智能的转发数据,因此交换机工作在数据链路层
- 交换机可以分割冲突域,实现全双工通信
- 交换机转发数据,主要依靠的是核心工作表:MAC地址表
交换机工作原理
学习:通过学习数据帧的源MAC地址来形成MAC地址
广播:若目标MAC地址在MAC地址表中没有,交换机就向该数据帧的入口端外的其他所有端口广播该数据帧
转发:交换机根据MAC地址表和目标MAC地址,单播转发数据
更新:交换机MAC地址表的转发条目是动态学习到的,老化时间是300s
如果发现一个帧的入口端和MAC地址表中该源MAC地址所对应的端口不同,交换机将MAC地址重新学习到新端口
广播域定义
指的是接收同样广播消息的节点的集合
在该集合中的任何一个节点传输一个广播帧,则所有其他能接收到这个帧的节点都被认为是该广播域的一部分,通常 一个IP网段,就是一个广播域
Vlan
隔离广播域
Vlan 是物理设备上连接的不受物理位置限制的用户所组成的一个逻辑组
在交换机上,不同vlan属于不同的广播域
不同vlan中的主机发送的广播流量,不能互通
通常是基于端口划分
Vlan的三种模式
Access端口 永远只能属于一个vlan
Trunk 端口 可以同时属于多个vlan
Hybrid端口 可以类似于access端口,也可以类似于trunk端口工作
Vlan帧的格式
PVID表示端口所属的vlan
端口收到没有标签的数据时,都使用PVID表示的数值打标签
默认情况下,交换机所有端口的PVID都是1
Access端口通常连接终端设备(非交换机设备)
只能属于一个vlan
发送的数据,没有vlan标签
接收数据时,用端口PVID的数值作为标签
交换机为每个去往其他交换机的数据帧打上vlan标识
Trunk 用于连接交换机设备
Trunk端口发送帧时,tag与端口PVID不同则直接发送;如果与端口PVID相同则去除tag后再发送
Trunk端口接收到帧时,该帧不携带tag,将打上端口的PVID;如果携带tag,则不做改变
Access端口 发送的数据帧都不添加标签
Trunk端口除了PVID表示的VLan中的数据不带标签,发送出去的数据都有标签
Hybrid端口可以像access端口一样,发送出去的数据都不带标签
可以像trunk端口一样,发送出去的数据都带标签
可以灵活控制端口上发送的某些vlan的数据携带标签,某些vlan不带标签
Tagged表示允许该参数后面的vlan,并且该vlan的数据要携带标签
Untagged表示允许该参数后面的vlan,并且该vlan的数据不携带标签
可以同时在端口上配置tagged参数和untagged参数
进入交换机要去掉vlan标签 出交换机打上vlan标签 access
Pc不识别标签
加入trunk链路收到一个pvid值和自己的pvid值相同时。会去掉你的标签发送,那到对端的接口收到一个没有携带vlan标签的数据时,会用自己的接口pvid值为你打上标签,那找到对应的vlan接口去掉标签发送出去
Untagged 通
Tagged 不通