HCIA复习1

这篇博客介绍了网络基础知识,包括ISO的七层模型、IP的编址原理,如主类划分和无类域间路由,以及TCP协议的三次握手过程和为何需要三次握手。此外,还提及了DHCP动态主机配置协议和静态路由配置的基本概念。

七层模型
​ 应用层 -> 人机交互

​ 表示层 -> 数据格式、压缩、加密、呈现格式

​ 会话层 -> 建立会话

​ 传输层 -> 端到端传输、可靠传输

​ 网络层 -> 路由,寻找最佳路径

​ 数据链路层 -> 建立链路转发、MAC寻址

​ 物理层 -> 二进制传输 (脉冲信号)、接口、电器、电压、线路
在这里插入图片描述
应用层:抽象语言–编码
表示层:编码----->二进制、主要定义数据格式及加密
会话层:应用程序设备的会话区分、提供会话层地址,为应用程序设 定规则
传输层:分段 提供端口号
例:TCP/UDP
网络层:–Internet互联网协议=IP
例:路由器
数据链路层:LLC逻辑链路控制+MAC介质访问控制层 MAC地址 校验 控制物理层 例:交换机
物理层:硬件设备

上三层为应用程序加工处理数据----应用程序

下四层负责数据传输

ISO 国际标准化组织

四层模型 —> IETF 组织 —>事实上的模型,现有协议后有模型

上三层统一为应用层

传输层

网络层

网络接口层

IP的编址

​ 网络位 主机位

IANA

​ 主类

​ A 单播 0XXXXXXX /8 1-126 10.0.0.0/8 127.0.0.0/8(回环地址)

​ B 单播 10XXXXXX /16 128-191 172.16.0.0-172.31.0.0/16

​ C 单播 110XXXXX /24 192-223 192.168.0.0-192.168.255.0/24

​ D 组播 1110XXXX 224-239

​ E 科研保留

​ 无类/可变长子网

​ 引入了掩码,规则1表示网络位,0表示主机位

​ 192.168.1.0 255.255.255.0

TCP

三次握手
C —> syn seq=10000 S

C seq=200 syn seq=10001 ACK<— S 半开队列 计时器

C —> ack seq = 201 S 全连队列
在这里插入图片描述
1.为什么需要三次握手?
为了防止在网络环境比较差的情况下不会进行无效的连接,同时三次握手可以实现 TCP 初始化序列号的确认工作,TCP 需要初始化一个序列号来保证消息的顺序。如果是两次握手则不能确认序列号是否正常,如果是四次握手的话会浪费系统的资源,因此 TCP 三次握手是最优的解决方案,所以 TCP 连接需要三次握手。
2.syn半开攻击,发送大量syn包不回确认ack,导致半开队列被占满,服务器无法提供连接服务
防御:syn_cookie 技术 记录syn半开连接者的IP,下次连接时不会将其放入半开队列(等于丢弃)

​ 分布式的半开攻击用以上技术不能防御,只能依赖于僵尸网络库,或者代理技术,流量清洗技术来防御。

四次断开 标准
C —>FIN seq=3000 S

C seq=3001 ack <-- S

C seq=4000 FIN <---- S

C —>ack seq=4001 S
在这里插入图片描述
可以三次 把fin ack一次发送
也可以俩次 一般是服务为了节约资源
为什么需要四次断开?
因为TCP是一个全双工协议,必须单独拆除每一条信道。4次挥手的目的是终止数据传输,并回收资源,此时两个端点两个方向的序列号已经没有了任何关系,必须等待两方向都没有数据传输时才能拆除虚链路,不像初始化时那么简单,发现SYN标志就初始化一个序列号并确认SYN的序列号。因此必须单独分别在一个方向上终止该方向的数据传输。

SYN (synchronize)
SYN是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN-ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。这样在客户机和服务器之间才能建立起可靠的TCP连接,数据才可以在客户机和服务器之间传递。 TCP连接的第一个包,非常小的一种数据包。SYN 攻击包括大量此类的包,由于这些包看上去来自实际不存在的站点,因此无法有效进行处理。每个机器的欺骗包都要花几秒钟进行尝试方可放弃提供正常响应。
ACK (Acknowledge character)
即是确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。

在TCP/IP协议中,如果接收方成功的接收到数据,会回复一个ACK数据。通常ACK信号有自己固定的格式,长度大小,由接收方回复给发送方。

接收站对所收到的报文进行检查,若未发现错误,便向发送站发出确认回答ACK,表明信息已被正确接收,并准备好接收下一份报文。该控制字符可由中心结点发送,也可由远地结点发送。
RST
表示复位,用来异常的关闭连接,在TCP的设计中它是不可或缺的。发送RST包关闭连接时,不必等缓冲区的包都发出去(不像上面的FIN包),直接就丢弃缓存区的包发送RST包。而接收端收到RST包后,也不必发送ACK包来确认。
窗口
在发送数据的时候,收发双方要做到收发同步,不能发送方发得快,而接收方去接受的慢,所以就让接收方告诉发送方,我的接受缓存还有多少空闲,你这次能发送多少数据给我多于这个值了,我就接受不下了,其实窗口 也就是值得发送方发送数据的窗口大小
拥塞控制
拥塞控制是TCP协议的一个重要的任务,拥塞控制的目的是提高网络利用率,降低丢包率,并保证网络资源对每条数据流的公平性。

拥塞控制的四个部分:慢启动、拥塞避免、快重传和快速恢复。拥塞控制算法在Linux下有多种实现,比如reeno算法、vegas算法和cubic算法等。它们或部分或全部实现了上述四个部分。你可以在/proc/sys/ipv4/tcp_congestion_control中查看目前使用的拥塞控制算法。

拥塞控制最根本就是控制发送端向网络一次连续读写的数据量,我们称为SWND(Send Window,发送窗口)。我们本质上通过TCP报文段来发送数据,而SWND就限制了发送TCP报文段的数量。SWND的单位是字节。

合理的设置SWND的大小。如果SWND太小,会引起明显的网络延迟;反之,如果SWND太大,则容易导致网络拥塞。接收方可通过其接收通告窗口来控制发送端的SWND,但这显然不够,所以发送端引入了一个称为拥塞窗口CWND(Congestion Window)的状态变量。实际的SWND值是RWND和CWND中的较小值。

在这里插入图片描述
因此,我们接下来的讨论将围绕如何控制拥塞窗口的大小,因为接收窗口是由接收端决定的。拥塞控制的四部分都是围绕CWND进行的。

慢启动和拥塞避免
TCP连接建立好之后,CWND将被设置成初始值IW(Initial Window),其大小根据不同的拥塞控制算法不同,一般为2~4个SMSS。但新的Linux内核提高了该初始值,以减少传输滞后。此时发送端最多能发送IW字节的数据。此后发送端收到接收端的一个确认,其CWND就按照 CWND+=min(N,SMSS)增加。
其中N是此次确认中包含的走之前发送但未被确认的字节数。这样一来,CWND就按照指数型增大。
这就是所谓的慢启动,慢启动指的只是开始时传输的数据较小,但是它的增速是巨大的。慢启动算法的理由是,TCP模块刚开始发送数据时并不知道网络的实际情况,需要用一种试探的方式平滑地增加CWND的大小。
但是如果不使用其他手段,慢启动必然会导致CWND很快膨胀,并最终导致网络拥塞。因此TCP拥塞控制中定义了另一个重要的状态变量:慢启动门限大小(Slow Start Threshold Size),当CWND的值超过该值时,TCP拥塞控制将进入拥塞避免阶段。
拥塞避免算法是的CWND按照线性增长方式增加,从而减缓了其扩大。RFC 5681中提到两种实现方式
每个RTT时间内按照CWND+=(N,SMSS)计算新的CWND,而不论该RTT时间内发送端收到多少个确认。
每收到一个对新数据的确认报文段,就按照CWND+=SMSS*SMSS/CWND
在这里插入图片描述
RTT(Round-Trip Time,往返旅行时间):发送端发送数据开始,到发送端收到来自接收端的确认,总共经历的时间。在CWND大小没有达到ssthresh之前,每个RTT时间内会发送多个TCP报文段,每个报文段收到确认回复时都会增加CWND,在达到ssthresh之后,一个RTT时间内只会增长一次CWND的值。

慢启动和拥塞避免算法都是避免网络拥塞的方法,下面介绍当发生网络拥塞时采取的措施。
首先要明确发送端如何确认网络拥塞已经发生:
传输超时,TCP重传定时器超时。
接收到重复的确认报文。
拥塞控制对这两种情况有不同的处理方式。第一种情况采用慢启动和拥塞避免。对第二种情况使用快速重传和快速恢复。注意,第二种情况如果发生在重传定时器超时后,则也被拥塞控制当成第一种情况对待。
其中FlightSize是已经发送但未收到确认的字节数。CWND调整到IW,此时再次进入慢启动阶段。

快速重传和快速恢复
这两种算法就应对与第二种情况,有时候发送端收到重复的确认报文段,可能因为接收端接受的数据中间一部分报文段的丢失,或者接收端收到乱序TCP报文段并重排之等。

当接收端收到报文段的顺序不符合序号,即在两个报文段之间的报文段没收到,就会立即发送三条重复确认报文,接收方收到三条重复的确认报文段后,就立即重传确认报文段后面的报文,通过尽早重新传送未被确认的报文段,减少了等待超时时间和减少重传报文段数量,使得整个网络吞吐量提高了20%。

为什么要使用快速重传?快速重传使用是有条件的,如果此时发生了网络拥塞,采用快速重传岂不是更加加剧了网络拥塞?因此当发送方收到三条重复的确认报文并且还未超过重传定时器时长,认为网络很可能没有发生拥塞,因此采用了快重传。

但是为了保险起见,防止可能真的发生了网络拥塞,所以采用了快恢复算法。

快恢复的执行就是将ssthresh设置为减半的大小。CWND设置和ssthresh一样,然后执行拥塞避免算法。
补充: 也有的快恢复算法再开始时会将CWND值再增大一些,即等于ssthresh+3×MSS。理由是:既然发送方收到三个重复的确认,就表明有三个分组已经离开了网络。这三个分组不再消耗网络资源而是停留在接收方的缓存中。可见现在网络中并不是堆积了分组而是减少了三个分组。因此可以适当把拥塞窗口增大些。

UDP协议是英文UserDatagramProtocol的缩写,即用户数据报协议,主要用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。与我们所熟知的TCP(传输控制协议)协议一样,UDP协议直接位于IP(网际协议)协议的顶层。根据OSI(开放系统互连)
参考模型,UDP和TCP都属于传输层协议。
UDP协议的主要作用是将网络数据流量压缩成数据报的形式。一个典型的数据报就是一个二进制数据的传输单位。每一个数据报的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。

DHCP 动态主机配置协议

在这里插入图片描述

DHCP租期更新
一般默认租期为1天
IP租约到达50%时,DHCP客户端会请求更新ip地址续约
在这里插入图片描述
DHCP重绑定
当客户端ip租约到达87.5%时,还没收到dhcp服务器相响应时,会申请绑定ip
在这里插入图片描述
ip地址释放
如果ip租期到期前都没有收到服务器响应,客户端停止使用此ip地址
如果dhcp客户端不再使用分配的ip地址,也可以主动向dhcp服务器发生dhcp release 报文,释放该ip地址
在这里插入图片描述
配置

  1. DHCP 全局配置
    dhcp enable //开启DHCP服务

ip pool K //创建地址池
gateway-list 10.1.1.1
network 10.1.1.0 mask 255.255.255.0
dns-list 8.8.8.8
domain-name huawei.com

interface GigabitEthernet0/0/0
ip address 10.1.1.1 255.255.255.0
dhcp select global //接口关联全局配置

  1. DHCP接口配置
    dhcp enable //开启DHCP服务
    interface GigabitEthernet0/0/1
    ip address 20.1.1.1 255.255.255.0
    dhcp select interface //接口启用当前接口ip的网段及网关为基础的DHCP
    dhcp server dns-list 8.8.8.8
    dhcp server domain-name huawei.com

  1. DHCP根据mac地址分配固定IP

ip pool A
gateway-list 100.1.1.1
network 100.1.1.0 mask 255.255.255.0
static-bind ip-address 100.1.1.100 mac-address 5489-98c4-6891 //根据MAC分配IP

静态路由

路由来源

  • 链路层自发现-直连 0
  • 静态路由 60
  • 动态路由
    • IGP
      • rip 100
      • ospf 10 150
      • eigrp
      • isis 15
    • EGP
      • BGP 255

ip route-static 目标网段 掩码 下一跳/出接口

ip route-static 10.1.1.0 24 20.1.1.1

ip route-static 10.1.1.0 24 30.1.1.1 pre 30

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.Demon  

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值