OSI七层模型及网络基础(二)

682 阅读11分钟

TCP协议

image.png TCP属于传输层

传输层对数据进行差错控制,保证传输数据完整准确

image.png 应用间的通信是通过与之绑定的端口进行通信

image.png

image.png

image.png

image.png TCP是基于端口的通信协议

端口号0-65535,端口号为16位,全1即为最大。

IP中对每个数据包进行编号,而在TCP中为了保持数据准确会对每个数据字节按顺序编号

序号放置的是当前数据段的起始字段数

image.png 比如该数据段有100个字节,开始字节为201,序号就是201,确认号就是301

image.png 数据偏移不等于片偏移,概念也不同

image.png

image.png

image.png Apache,iis默认80端口,FTP服务器默认21端口

 

TCP的三次握手

第一次发送的SYN=1,seq=x是没有数据的,只是一个请求连接的报文,如果主机B没有打开,就会发送一个RST包断开TCP握手

image.png

image.png

image.png

image.png

image.png ACK=1时是确认对方发送的确认号有效,ack确定seq的序号的包,所以ack包都是在对方发送过来的序号加一,确定自己是收到对方的seq包的

 

TCP四次挥手

image.png

image.png

image.png

image.png 半关闭状态B仍可以向A发送数据,A不能回数据

image.png

image.png

image.png

image.png TCP Retransmission:超时重传数据包

image.png

image.png Td为发送数据包,是有效时间,此种方式对信道的时间利用率较低

RTT是等待返回数据包的平均时间

Ta是接收确认数据包后的处理时间

image.png

image.png 滑动窗口协议(Sliding Window Protocol),属于TCP协议的一种应用,用于网络数据传输时的流量控制,以避免拥塞的发生。该协议允许发送方在停止并等待确认前发送多个数据分组。由于发送方不必每发一个分组就停下来等待确认。因此该协议可以加速数据的传输,提高网络吞吐量。

连续ARQ(Automatic Repeat reQuest)协议指发送方维持着一个一定大小的发送窗口,位于发送窗口内的所有分组都可连续发送出去,而中途不需要等待对方的确认。这样信道的利用率就提高了。而发送方每收到一个确认就把发送窗口向前滑动一个分组的位置。

a种:会把五个数据包全部发送并且全部确认收到后再发送数据包。如果1未确认发送到目标端口,而2,3,4,5确认收到后,超时重传会把5个数据包都重新发一遍

B种:如果1没有收到确认信息,就会超时重传并且发送窗口等待超时重传后再继续移动

image.png TCP Dup是提醒包,提醒发送主机发送有错,该数据包是响应包的序号和请求包的确认号不同

TCP Fast Retransmission:快速重传数据包

image.png RST=1,ACK=1表示接收到了数据包,但是要求断开重连

image.png TCP ZeroWindow:接收窗口为0,表示无法接收信息

其后常跟着TCP window Update:开放窗口,逐渐扩大窗口量

image.png TCP Keep-Alive,保持窗口开通,以使能够进行二次连接传输

image.png 对HTTP流进行分析:右键HTTP数据包,追踪HTTP流

可以看到有GET方式向服务器传参,请求访问该网站下的URL

GET和HOST可以组成一个完整的域名

UDP协议分析

image.png

image.png

image.png

image.png

DNS协议

image.png

image.png

image.png

image.png 本地DNS服务器类似ARP缓存表,客户机会在DNS服务器中先在“.”根域中找到.com的顶级域名,在找到.baidu.com的一级域名,再在.baidu.com中找到www对应的服务器,该服务器的IP就是对应的域名

在本地DNS服务器查询前,会先在本机的C:\Windows\System32\drivers\etc的Host文件中查询域名对应ip

image.png 对其中的标志位进行详细解读:

image.png 客户机的角度:一个请求包,一个服务器的IP返回包

image.png Queries:请求(该包的请求为向DNS服务器请求wireshark.org的IP)

Answers:对请求的应答(返回了该网站的IP)

 

服务器角度:

image.png 收到客户机的请求包--在本地服务器未找到该域名对应的IP,向其他DNS服务器发起请求包--收到其他服务器的应答--返回客户机应答包

DHCP协议

image.png

image.png

image.png

image.png

image.png

image.png

交换机原理与路由

(loT物联网渗透)高级渗透:

路由器攻击:在同一交换机下可以划分VLAN,每个VLAN的数据不互通,跨VLAN的攻击涉及到路由器攻击

打印机渗透

image.png

image.png

image.png LAN:同一局域网

MAC地址老化时间每个交换机都不同

image.png MAC地址表不等于ARP缓存表,MAC地址表是MAC地址对应向外发送数据的端口(记住向外发送指向目标MAC地址的端口),而ARP缓存表是IP和MAC地址的对应表(解析目标IP的MAC地址)

在更换MAC地址时,会自动向本网段广播MAC地址,此时ARP缓存表和MAC地址表都会更新

交换机是数据链路层的设备,它只有MAC地址表,不能解析IP,三层交换机具有ARP缓存表,才可以解析IP为MAC地址

image.png 在交换机或路由器的控制台(console)中,可以用enable提权

image.png

image.png 这个地方打错了,line console 0是进入console接口模式,仅对console接口生效

Console接口是典型的配置接口。使用Console线直接连接至计算机的串口,利用终端仿真程序(一般使用Windows自带的“超级终端”)在本地配置路由器。

可进行网络管理的交换机上一般都有一个“Console”端口,它是专门用于对交换机进行配置和管理的。通过Console端口连接并配置交换机,是配置和管理交换机必须经过的步骤。

此处需要实践

image.png

image.png fastethernet是端口,每个主机连接的端口不同,使用时进入端口并用no shutdown打开

image.png

路由寻址原理概述:

image.png 如何从主机A发到主机B?

image.png 交换机的MAC地址表以一个IP为一个接口,路由器的路由表以一个网段为一个接口

image.png 路由表,记录着到不同网段的信息

没有匹配到结果就发送和到缺省路由

· 路由A,地址192.168.1.1

· 子网掩码255.255.255.0

· 典型计算机B,地址192.168.1.129

· 目的地址为192.168.1.1/24 网段外部,例如114.114.114.114, 那么发送的链路层帧目的 MAC 为网关 MAC 地址(bc:d1:...),网络层目的IP仍为114.114.114.114

在后一种情况使用网关通信的过程中,大概发生了几件事

1. 通过路由表查询得到,114.114.114.114 需要使用 192.168.1.1 作为网关进行通信,接口为 eth0。这也就是为什么有人说“网关就是一条路由”。

2. 通过 ARP 表查询得到,192.168.1.1 的 MAC 地址为 bc:d1:...

3. 向 eth0 接口发送如上所述链路层帧

 

在自己所在子网通信不需要路由器(网络内),不需要网关。

和自己所在子网之外通信(网络间),需要通过网关。

114.114.114.114在路由表内没有找到对应的MAC地址,就放到缺省路由0.0.0.0内,并由网关192.168.1.1发送向外界的路由器,在外界同一网段的路由器的路由表内找到了对应IP再在ARP缓存表内找到对应的MAC地址,如果没有,就ARP广播,最后再在MAC地址表内找到对应的端口发送出去

暂时忽略interface,,,,gateway是网关,可以视作路由器

image.png

image.png gateway:网关,又称下一跳路由器。在发送IP数据包时,网关定义了针对特定的网络目的地址,数据包发送到的下一跳服务器。【用来指明到达目的网络应该将路由传递给谁,你要和外界进行通信,必须要经过关口把手,你发给外界的数据包,只需要扔给网关,网关负责帮你和外界进行通信。如果是同网段的进行通信,gateway就是interface(注意:有的也会显示在连路上),在一个局域网内不需要路由】
interface:接口,接口定义了针对特定的网络目的地址,本地计算机用于发送数据包的网络接口。(即到达该目的地的本路由器的出口ip)

注意:网关必须位于和接口相同的子网(默认网关除外),否则造成在使用此路由项时需调用其他路由项,从而可能会导致路由死锁。

image.png 这个路由表只是主机A的路由表,在路由器上和主机B上都有路由表的。具体是如何路由的听完下一节课会讲,也会对端口进行讲解

对于主机A来说,接口就是主机A用于发送数据包的网络接口,所以就是他自己的IP

image.png 比如在这里配置路由器,同一路由器的不同接口具有不同的IP,而网关就是指R2的IP而不是哪个接口。

image.png 对于这个R2路由器来说,它的接口就是202.100.10.2和202.100.20.1,它的IP就是网关

*VLAN的介绍和配置(在GNS3内配置)

VLAN在交换机下划分不同的局域网,作用于二层网络,也就是交换机下

在配置VLAN的过程中,右键交换机,configrua配置VLAN

划分VLAN之后就相当于两个局域网,两个网段,没有路由转发的情况下不能相互PING通

VLAN是对端口划分

通常是用命令行配置VLAN,但是GNS3环境配置不够

image.png

*ACL配置(GNS3)

实例:禁止R1访问R3

image.png 配置R1和R3:

image.png 202.100.10.2是下一跳地址

配置解释:进入全局配置模式
进入0/0网卡,是R1与R2绑定的接口
配置0/0接口的IP

启用配置
退出0/0网卡
配置缺省路由,下一跳地址是R2和R1的接口
退出全局配置模式
保存

  配置R2:

image.png 路由2有两个接口与外界连接,所以要配置两次,配置接口的IP和子网掩码

不用配置下一跳地址

配置完成后就可以在R1和R3间PING通,基础设置完成,下面配置ACL

image.png

image.png

image.png 写错了,要进入全局配置模式才能创建ACL条目
这里配置了不接收202.100.10.1(R1)的数据,但是在R3 PING R1时也PING不通,因为PING命令是发送一个ICMP包,在接收响应包时依旧是从R1发向R2,所以PING不通
ACL表是路由器的表,类似于操作系统的Iptables过滤规则

### 网络地址转换NAT

image.png 静态NAT表会把NAT内网IP转化为一个外网IP,再向目标IP发送,每个内网IP对应的外网IP是不一样的,在收到响应包时将外网IP对应就能发向指定机子,不可能多台主机对应一个外网IP

image.png

image.png 外网IP只需要一个,内网的IP和端口会临时生成一个和外网IP和端口的对应表。比如该图的表

image.png 了解即可

标准ACL的配置命令 标准访问控制列表是通过使用IP包中的源IP地址进行过滤,使用的访问控制列表号1到99来创建相应的ACL。标准ACL占用路由器资源很少,是一种最基本最简单的访问控制列表格式。应用比较广泛,经常在要求控制级别较低的情况下使用。

要配置标准ACL,首先在全局配置模式中执行以下命令:

Router(config)#access-list access-list-number {remark  | permit | deny} protocol source source-wildcard [log]

参数说明:

参数参数含义
access-list-number标准ACL号码,范围从0-99,或1300-1999
remark添加备注,增强ACL的易读性
permit条件匹配时允许访问
deny条件匹配时拒绝访问
protocol指定协议类型,eg:IP,TCP,UDP,ICMP等
source 发送数据包的网络地址或者主机地址
source-wildcard通配符掩码,和源地址对应
log对符合条件的数据包生成日志消息,该消息将发送到控制台

其次,配置标准 ACL 之后,可以在接口模式下使用 ip access-group 命令将其关联到具体接口:

Router(config-if)#ip access-group access-list-number  {in | out}

参数参数含义
ip access-group标准ACL号码,范围从0-99,或1300-1999
access-list-number标准ACL号码,范围从0-99,或1300-1999
in参数in限制特定设备与访问列表中地址之间的传入连接
out参数out限制特定设备与访问列表中地址之间的传出连接