第一章,HCIA复习
抽象语言---->电信号抽象语言---编码 编码------二进制 二进制----电信号
OSI参考模型
TCP/IP模型(4参考5对等)
应用层:程序的编译过程;人机交互的接口。
表示层:数据格式化--->二进制
会话层:维护网络应用和服务器之间的会话连接(端到端,保证了数据连接中断时,下次连接依旧从中断点开始)
传输层(运输层):用以标定和区分不同的应用程序;TCP、UDP(端口号,2bit,0~65535)
源端口号:随机形成 目的端口号:上层协议来的网络层(互联网层):IP协议、ICMP协议(ping)
源ip:1,手工配置 2,自动获取(DHCP等)
目的ip:1,网络管理员 2,DNS(域名获取IP)
数据链路层(介质访问控制层)--->二进制转换为电信号;MAC地址(6字节,48bit)
源MAC地址:出厂自带 目的MAC地址:APR协议
物理层:处理电信号、规定一些物理特性
数据,段,包,帧,比特流
ARP协议-----地址解析协议,使用某一种地址获取另一种地址的协议。
正向ARP---通过IP地址获取MAC地址----ARP缓存表(动态,180S)
反向ARP---MAC获取IP
免费ARP---自我介绍、冲突检测;原理:利用正向ARP的原理请求自己的IP地址。
以太网类型字段--->在解封装的过程中,根据该字段将数据交付给上层某个应用模块来处理。
0x0800--->IP协议
0x0806--->ARP协议
协议号
6--->TCP
17-->UDP
常见端口号
20/21--->FTP
22--->SSH
23--->Telnet
67/68--->DHCP
53--->DNS
80--->HTTP
443--->HTTPS
DHCP协议---动态主机配置协议,C/S架构, 应用层协议
客户端 服务端
广播包 Discover报文--->源IP:0.0.0.0;目IP:255.255.255.255;源端口:68;目端口:67;UDP;目MAC:F单播包 Offer报文(携带服务器即将分配给PC的IP地址、掩码、网关、DNS等信息)--->源IP:服务器;目IP:即将分配给PC的IP地址;源MAC:服务器;目MAC:PC
广播包 Request报文(正式请求Offer报文中包含的IP地址)--->源IP:0.0.0.0;目IP:255.255.255.255;目MAC:F
(发广播报文的原因:存在多个服务器,是回复其他服务器不用其分配的IP)单播包 ACK报文 NAK报文
IP租期:24小时;
当时间二分之一,到达12小时续租,Request报文,单播,目的IP:服务器;
服务器未回复:
当时间八分之一,还剩3小时,Discover报文,
交换机工作原理
1、自学习:基于收到的数据帧中的源MAC地址以及该接口编号,动态生成MAC地址表项,并记录在MAC地址表中。老化时间300S
2、查表:基于数据帧中的目的MAC地址,再MAC地址表中查找对应记录关系,若存在记录关系,则直接单播转发;若不存在,则进行洪泛操作(交换机将数据从除了进入的接口外的所有接口发送一遍数据)。
交换机的洪泛情况:
1、遇到未知单播数据帧
2、遇到广播帧或组播帧时--->01-00-5e-xx-xx-xx
www.baidu.com---->域名
URL(资源定位符):http://www.baidu.com:80/news/index.html
DNS服务--->域名解析服务
目的:通过域名获取到相应IP地址。
域名分级:
www.baidu.com.
基于UDP/TCP的53号端口传输数据。UDP一般用于客户端与服务端之间的查询与响应过程。TCP用于主从服务器之间的数据传输过程。
DNS查询过程---->递归查询、迭代查询。
递归:
迭代:
TCP---传输控制协议
是一种面向连接的可靠传输协议。可靠、有序、无丢弃和不重复。
特点:
-
TCP是面向连接(虚连接)的传输层协议
-
每一条TCP连接有且只能有两个端点。
-
可靠、有序、无丢弃和不重复。
-
TCP协议提供全双工通讯。
-
发送缓存
-
存放发送方TCP准备发送的数据。
-
TCP已发送但是没有收到确认的数据。
-
-
接收缓存
-
存放发送端发送来的不按照顺序到达的数据
-
按照顺序到达的数据,但并未被应用程序读取
-
-
-
TCP是面向字节流的。TCP将应用层数据仅看做是一串无结构的字节流。
TCP连接的四元组(源IP、源端口、目IP、目端口)--->唯一标识一条TCP连接。
套接字--->IP:port
TCP的报文段
确认序列号:接收方期望收到发送方发送的下一个字节的序号。1.接收方希望接收到的报文序号;2.该序号之前的数据以全部接收。-----累积确认机制。
数据偏移:IP头部大小
选项字段:长度可变。MSS数值、窗口扩大因子、时间戳、选择确认机制。
确认位ACK:当ACK=1时,确认号有意义。在连接建立以后,所有传输的报文段都必须将该标志位置为1.
同步位SYN:SYN=1时,代表该数据段是一个连接请求报文。
终止位FIN:当FIN=1时,表明此报文段发送方数据已发送完毕,要求释放连接。
复位RST:表明TCP连接出现严重错误,需要释放连接并重新建立连接。
紧急位URG:代表该报文中存在高优先级的数据,应尽快处理。需要配合紧急指针使用。
推送位PSH:接收方应尽快将接收到的数据交付给对应应用程序。(现在接受的所有)
TCP的可靠性
确认、重传、排序、流控。
确认:
ACK
排序:
MTU:最大传输单元--->以太网环境下1500字节--->数据包大小。
MTU = IP + TCP/UDP + 数据(MSS)
MSS:最大数据段长度IPv4:分段后可以分片
IPv6:PMTU整条路经找最小
重传:
超时重传:
RTT--->往返时间(指发出端将数据发送后,到本端接收到对端反馈的确认报文的时间总和)
RTO--->超时重传时间RTO取值略大于RTT值。
快速重传机制--->根据接收方的反馈信息进行数据重传。客户端需要连续接收到三次确认序列号相同的ACK报文,则认为数据丢失,需要进行数据重传。
快速重传机制会导致部分数据重复传输,降低数据传输效率。
解决思路:使用选择确认机制。--->在TCP首部的选项字段中,添加上未接收到的数据信息。发送方接收到该确认报文后,会根据选项字段内容,重新传输缺少的数据部分。
选择确认机制是否可以执行是需要通讯双方进行协商的。--->在三次握手的前两次SYN报文中进行协商。
RTO数值是动态变化的数值。超时、间隔、加倍。
流控:
窗口:窗口的大小是可以指定的,窗口大小指的是无需等待确认报文,而可以直接发送的数据包的最大值。
rwnd(接收窗口)---最开始等于整个缓存区的大小,浮动变化。
TCP要求发送方依据rwnd发送数据量。发送方的发送窗口大小是依据接收方的反馈信息中的接收窗口大小而设定的。
TCP状态机有11个
TCP连接的建立
TCP建立连接需要解决的问题:
1、知晓对端的套接字信息
2、允许双方进行参数的协商(窗口值、选择确认机制、是否使用窗口扩大因子)
3、对设备进行资源分配
c/s架构,谁先发送报文谁就是客户端
1.服务(CLOSED-->LISTEN)
创建接受缓存空间,等待客户端的连接请求
2.客户(CLOSED-->SYN-SENT)
创建接受缓存空间,发送请求报文(SYN=1,seq=x),不携带数据,x(初始序列号随机数且循环)
循环带来报文延迟与下一次循环的同序列号报文先后到达
解决:时间戳(双向,在前俩次握手协商)
3.服务(LISTEN-->SYN-RCVD)
发送接收并且请求的报文(ACK=1,ackeq=x+1,SYN=1,seq=y)
4.客户(SYN-SENT-->EATABLISHED)
收到报文进入下一状态,发送接收报文(ACK=1,ackeq=y+1, seq=x+1),可以携带数据
5.服务(SYN-RCVD-->EATABLISHED)
接受到报文进入下一状态
问题:
-
在第三次报文是否可以携带数据
-
可以
-
-
x被称为ISN初始序列号,为啥序列号为随机值
-
数据包延迟导致要收到300的报文结果收到100,会导致数据错乱
-
安全问题,不法分子得知初始序列号,发RST报文
-
-
TCP的序列号回绕问题是怎么解决的(序列号用完一轮,要接受新的一轮第一个序列号,但是之前的第一轮第一个序列号刚好延时在新的前到达)
-
时间戳(报文中携带时间,根据时间的差值判断是否为要接受的报文)
-
时间戳也精确了RTT的值
-
-
三次握手能不能改成两次握手
-
历史连接问题(客户端第一次握手,因网络导致重发,但是第一次报文又到达,导致的序列号混乱问题)
-
第三次报文可以发送RST,解决历史连接问题
-
-
前两次握手不能携带数据的原因
-
防止第一次报文携带超大量数据,使服务器资源占用
-
发送缓存未建立
-
-
当双方都是客户端则它们的状态机一样,因套接字一样是一次连接
当TCP连接建立成功,但是客户端突发故障。
此时服务端会等到2小时时间,若2小时时间内没有收到任何客户端的数据,则服务端发送一个探测报文,以后每隔75秒发送一次。若一连发送10次仍没有回复,则服务器认为客户端出现故障,关闭连接。
TCP连接释放
1、TCP连接的释放实际上是在释放本地分配给TCP连接的资源
2、本地没有新的数据需要发送
客户和服务都可以释放,但一般都是客户端
1.客户(ESTABLISHED-->FIN-WAIT-1)
发送报文(FIN=1,seq=m,ACK=1,ackeq=v)m非随机值,而是累计确认机制最后得到的值
2.服务(ESTABLISHED-->CLOSE-WAIT)
发送报文(ACK=1,ackeq=m+1,seq=v)
3.客户(FIN-WAIT-1-->FIN-WAIT-2)
接受到报文
4.服务(CLOSE-WAIT-->LAST-ACK)
发送报文(FIN=1,seq=p,ACK=1,ackeq=m+1)p非随机值,在此之前客户到服务的连接关闭,但服务还可以发送数据,所有seq还在累计的增加
5.客户(FIN-WAIT-2-->TIME-WAIT-->CLOSED)
发送报文(ACK=1,ackeq=p+1,seq=m+1),在发送后,会等个2MSL时间后进入连接断开状态,MSL是报文段在网络中存活的时间,为两分钟。
6.服务(LAST-ACK-->CLOSED)
接受到报文
双方同时释放连接
静态路由
静态路由
方法一:[r1]ip route-static 23.0.0.0 24 12.0.0.2
方法二:[r1]ip route-static 23.0.0.0 24 GigabitEthernet 0/0/1
无法获取到R2,0/0/1的MAC,原因:因为下一跳为本地接口IP,会通过ARP找MAC地址,而该广播域没有23.0.0.0网段。
ARP代理:当收到ARP报文后,路由器冒充真实应答者回复ARP报文,将自己接口的MAC地址进行回复。
限制:应答路由器必须是网络可达的。
[r2-GigabitEthernet0/0/1]arp-proxy enable ----在接收ARP的接口上开启ARP代理功能或
[r1]arp static 12.0.0.2 00e0-fcd3-1943 ----静态 ARP表项
一般在点到点的网络中
方法三:[r1]ip route-static 23.0.0.0 24 GigabitEthernet 0/0/1 12.0.0.2(先出接口再下一跳)
方法四:[r1]ip route-static 192.168.3.0 24 23.0.0.3---下两跳
172.16.0.0/16
子网划分:从主机位借位给网络位,被借的位被称为子网位;子网位可变172.16. 0 0000000.0
网络位 子网位 主机位
172.16. 1 0000000.0子网汇总:取相同,去不同。
172.16.00000000.0
172.16.10000000.0172.16.0.0/16
作业
实验要求:
1、拓扑
2、需求分析
3、配置
4、验证
静态路由与BFD联动
BFD不仅可以和静态路由联动。也可以和动态路由结合,加快网络的收敛。(收敛:网络改变时快速使其恢复网络通讯)
连通性绑定,当sw1down时快速收敛网络,时其从另一个口转发,双方都要配置,且标识符相反
[r1]bfd ---激活BFD协议 [r1]bfd aa bind peer-ip 10.1.12.1 ---创建BFD会话,会话名称为aa,给会话绑定对端邻居IP地址 [r1-bfd-session-aa]discriminator local 10---标识符,本地,对端 [r1-bfd-session-aa]discriminator remote 20 [r1-bfd-session-aa]commit ---提交配置[r1]ip route-static 10.9.9.0 24 10.1.12.1 track bfd-session aa