ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

计算机网络 -- TCP/IP

2021-09-20 21:31:38  阅读:148  来源: 互联网

标签:ARP -- IP PC1 地址 TCP PC2 MAC


画图标准

在这里插入图片描述

OSI七层模型

在这里插入图片描述

7、应用层

作用:为用户提供软件/接口/界面 interface

协议:OICQ、HTTP、HTTPS、BT/P2P

6、表示层

作用:用于对用户数据进行数据呈现。(数据格式、数据加密)

5、会话层

作用:用于实现会话管理(建立、维特、关闭、区分)

4、传输层

作用:用于实现数据的可靠戓不可靠传输

协议:TCP、UDP

TCP:传输过程中会确认传输的情况,在传输大文件时可靠,但小文件时确认次数太多占用带宽

3、网络层

作用:提供三层寻址/IP地址和三层通信(路由器)功能

协议:IP协议

2、链路层

作用:提供二层寻址/MAC地址和二层通信(交换机)功能。

协议:以太网 Ethernet

局域网:mac地址、交焕机判断、链路层

广域网:ip地址、路由器判断、网络层

1、物理层

作用:提供通信介质和接口标准

举例:RJ11、RJ45、802.11ac、802.11n

OSI实现过程(封装和解封)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
区分应用进程并实现可靠传输
在这里插入图片描述
可以被路由器转发
在这里插入图片描述
让主机检查传输的数据是否有误码
在这里插入图片描述
让目标主机做好接收帧的准备

封装:简单理解应用层发送一个data数据;

到了传输层,从数据的基础加一个头部信息port,构造一个segment段;

到了IP层,加一个IP地址形成一个package包;(面向路由器)

到了数据链路层,加上一个mac地址,构造一个frame帧;(面向交换机)

到了物理层,转成二进制数据进行01传输。

封装:反向进行,则一层一层的校验、分解(校验、寻址)。

总结

1、OSI封装是一个为数据包加入寻址信息的过程(打包过程,类似快递)

2、端口号(Port)用于标志不同的应用程序,面向最终用户

3、IP地址用于唯标志通信设备,面向路由器

4、MAC地址用于唯标志局域网设备,面向交换机

TCP/IP协议栈

TCP/IP四层模型

4. 应用层

协议:HTTP、HTTPS、FTP、DNS、DHCP

3. 传输层

协议:TCP、UDP、SCTP

2. 网络层

协议:IP、ICMP、ARP

1. 数据链路层

协议:Ethernet

Ethernet(以太网)协议

以太网不等于局域网

以太网:一种链路层协议

局域网:一种小型网络结构

局域网是用以太网技术来组建

1、定义

Ethernet以太网协议,用于实现链路层的数据传输和地址封装(MAC)

DIX联盟( Digital、Intel、 Xerox)开发

2、封装
在这里插入图片描述

三个字段:

Destination/目的字段:标识目的通信方的MAC地址

Source/源字段:标识发送端的MAC地址

Type/类型值:标志上层协议(告诉解包时以什么格式解包)
在这里插入图片描述

MAC地址:

  1. 所有设备的MAC地址是全球唯一的

  2. MAC地址是16进制表示,长度为48bit,采用冒号分16进制表示 01010100 10101010
    10101111 11110000 2^48

  3. MAC地址前半部分被"OUI代码"厂商唯标志符,用于唯一标志一个企业/公司,例妙如思科、TP-LINK、华为;后半部分厂商自行分配

【补充】:以太网协议仅仅是链路层/局域网通信中的一种标准,还有其他链路层协议,令牌网、总线网、FDDI网

IP协议

定义

Internet
Protocol,互联网协议,用于实现数据的不可靠面向无连接的通信,实现三层数据封装与IP寻址(ip协议包含了ip地址)

原理

在这里插入图片描述
在这里插入图片描述

版本号表示IP协议的版本
头部长度/总长度头部长度(默认为20字节),总长度;区分IP头部和数据包,接收方根据长度字段知道从哪里解封装
DSCP/TOSQoS服务质量技术用于实现流量标记
标识符用于标志分片的进程
标志符MF更多位用于告知接收方是否还有分片,0表示没有,1表示有;DF不要分片位告知途径设备不要进行分片
分片偏移用于告知接收方每个分片距离IP头部的位置,才能实现有序的重新组装
生存时间TTL,最大为255,标志路径长短,防止环路
协议号标志上层协议
头部校验和验证数据包的完整性
源地址标志发送方IP地址
目的地址标志接收方IP地址

1、长度头部/总长度

在这里插入图片描述

IP头部标准20字节,最大60字节

用来区分数据包和IP头部的大小,便于解包

2、DSCP/TOS:区分服务符/服务质量

在这里插入图片描述

3、TTL生存时间

IP数据包每经过一“跳”TTL减去一;当路由器收到一个TTL=0的数据包时,则宣告此数据包死亡并丢弃。TTL的本质是为了IP数据包的“环路”问题
在这里插入图片描述
在这里插入图片描述

4、协议号

小结:类型值、协议号、端口号都是用于标志上层协议,方便接收方实现数据的解封装。此功能称为协议之间的“分用
在这里插入图片描述

5、头部校验和

通过校验和(奇偶校验)可以让接收方验证此数据包是否完整/篡改。

以太网协议会在数包后面加FCS
在这里插入图片描述

5、源目IP地址

在这里插入图片描述

7、ip分片原理-标志ID、标识Flags、偏移量FO

在这里插入图片描述

MTU(最大传输单元)以太网1500bytes,大于1500将会被切分传输,网卡物理结构限制了大小

ID:当有多个数据传输时用ID来分辨每一个数据段属于哪个数据

Flags:MF/DF等等的标志位

FO:当一个数据分片时用来分辨数据段的顺序
在这里插入图片描述

ARP协议

如果要给TCP/IP协议栈选择个"最不安全的协议",那么我会毫不犹豫把票投给ARP协议。我们经常听到的这些术语,包括"网络扫描、内网渗透、中间人拦截"、“局域网流控”、“流量坎骗”,基本都跟ARP脱不了干系。大量的安全工具,例如大名鼎鼎的cain、功能完备的Ettercap、操作傻瓜式的P2P终结者,底层都要基于ARP实现

①ARP( Address Resolution
Protocol)即地址解析协议,用于实现从IP地址到MAC地址的映射,即询向目标IP对应的MAC地址

②在网络通信中,主机和主机通信的数据包需要依据OSI模型从上到下进行数据封装,当数据封装完整后,再向外发出。所以在局域网的通信中,不仅需要源目IP地址的封装,也需要源目MAC的封装。

③一般情况下,上层应用程序更多关心IP地址而不关心MAC地址,所以需要通过ARP协议来获知目的主机的MAC地址,完成数据封装。

1、原理

同个局域网里面,当PC1需要跟PC2进行通信时,此时PC1是如何处理的?
在这里插入图片描述

根据OSI数据封装顺序,发送方会自顶向下(从应用层到物理层)封装数据,然后发送出去这里以PC1
ping PC2的过程举例==>
在这里插入图片描述

PC1封装数据并且对外发送数据时,上图中出现了" failed",即数据封装失败了,为什么?

我们给PC1指令- ping
ip2",这就告知了目的IP,此时PC1便有了通信需要的源目IP地址,但是PC1仍然没有通信需要的目的MAC地址。这就好比我们要寄个快递,如果在快递单上仅仅写了收件人的姓名(IP),却没有写收件人的地址(MAC),那么这个快递就没法寄出,因为信息不完整

那么,现在PC1已经有了PC2的地址信息,如问获取到PC2的MAC地址呢?此时,ARP协议就派上用场了。我们接着上面这张图,继续==>
在这里插入图片描述

通过第三和第四步骤,我们看到PC1和PC2进行了ー一次ARP请求和回复过程,通过这个交互工程,PC1具备了PC2的MAC地址信息。接下来PC1会怎么做呢?在真正进行通信之前,PC1还会将PC2的MAC信息放入本地的[ARP缓存表],表里面放置了IP和MAC地址的映射信息,例如IP2<->MAC2接下来,PC1再次进行数据封装,正式进入PING通信,如下==、

小结:经过上面6个步骤的处理,PC1终于把数据包发送出去了,之后便可以进行正常的通信了。看到了吧,ARP的功能和实现过程是如此的简单:它在发送方需要目标MAC地址的时及时出手,通过一问答"的方式获取到待IP对应的MAC地址,然后存储到本地[ARP缓存表],后续需要的话,就到这里查找。既然是"缓存表,意味着它有时效性,并且如果电脑或者通信设备重启的话,这张表就会清空;也就是说,如果下次需要通信,又需要进行ARP请求。在我们的
windows/macos系统下,可以通过命令行arp -a查看具体信息=>
在这里插入图片描述

ARP原理之广播请求单播回应

上面的图解过程看上去简单又纯粹,好像我们就已经把这个协议的精髓全部get到,但其实,我们只是刚揭开了它的面纱,接下来我们才真正进入正题。例如,上面的图解过程中,整个局域网(LAN)只有PC1和PC2两个主机,所以这个问答过程非常的顺畅。实际网络中,这个LAN可能有几十上百的主机,那么请问,PC1如问将这个【ARP请求包】顺利的交给PC2,而PC2又如何顺利的把【ARP回应包】返回给PC1?我们看下面的图:
在这里插入图片描述
在这里插入图片描述

为了营造出几十上百"的效果,这里多派加了2个主机进来,并目増加了有线和无线的环境。那么,在多主机环境下,PC1现在发出的ARP请求包,怎么交到PC2手里?

这时,ARP协议就需要采用以太网的广播功能:将请求包以广播的形式发送,交换机或WFi设备(无线路由器)收到广播包时,会将此数据发给同一局域网的其他所有主机。

注明:什么是广播?对于初学者而言,我们只需要知道,大部分的广播包,它们有一个共同

特征:二层封装时目的MAC是全f(ffff.ffff.ffff)或三层封装时目的IP是全1(255.255.255.255)。可以这样更方便的记住:目的地址最大的,就是广播

接下来我们来看下这个ARP广播请求包接下来是如何工作的?
在这里插入图片描述

根据上图我们看到,PC1发送的请求广播包同时被其他主机收到,然后PC3和PC4收到之后(发现不是问自己)则丢弃。而PC2收到之后,根据请求包里面的信息(有自己的IP地址),判断是给自己的,所以不会做丢弃动作,而是返回ARP回应包(单播回应)

ARP请求是通过广播方式来实现的,那么,PC2返回ARP回应包,是否也需要通过广播来实现呢?答案是否定的。大部分网络协议在设计的时候,都需要保持极度克制,不需要的交互就砍掉,能合并的信息就合持,能不用广播就用单播,以此让带宽变得更多让网络变得更快。那么,ARP回应包是如何处理的?这里需要特别关注ARP请求包的内容,在上面的图解里面,ARP请求包的完整信息是:我的IP地址是IP1,MAC地址是MAC1,请问谁是PC2,你的IP2对应的MAC地址是多少?简单来说,ARP请求首先有"自我介绍"然后オ是询向。这样的话,PC2在收到请求之后,就可以将PC1的IP和MAC映射信息存储在本地的[ARP缓存表],既然如道PC1在哪里,就可以返回ARP单播回应包。
在这里插入图片描述

这张图我们需要得到两个信息:

①被询向者PC2先生成了ARP映射信息,然后才是询问者PC1;

②PC3和PC4等其他主机,无法收到这个ARP回应包,因为是单播形式。

小结:ARP协议通过"一问一答"实现交互,但是"问"和"答"都有讲究,"问"是通过广播形式实现,"答"是通过单播形式。

ARP数据包解读

为了让大家更好的理解ARP协议以及广播和单播的概念,我们来看一下用
Wireshark抓取到的真实网络中的ARP过程,通过数据包的方式来呈现,部分MAC信息隐去。(建议初学者用GNS3配合
Wireshark来抓取协议包进行分析,相比真实网络更加干净,方便分析)

主机1<–>主机2

主机1:IP1 10.1.20.64 MAC1:00:08:ca:xx:xx:xx

主机2:IP2 10.1.20.109 MAC2:44:6d:57:xx:xx:xx

请求包
在这里插入图片描述

回应包
在这里插入图片描述

ARP协议字段解读

Hardware type:硬件类型,标识链路层协议

Protocol type:协议类型,标识网络层协议

Hardware size:硬件地址大小,标识MAC地址长度,这里是6个字节(48bti)

Protocol size:协议地址大小,标识IP地址长度,这里是4个字节(32bit)

Opcode:操作代码,标识ARP数据包类型,1表示请求,2表示回应

Sender MAC address:发送者MAC

Sender IP address:发送者IP

Target MAC address:目标MAC吗,此处全0表示在请求

Target IP address:目标lP

ARP攻击

ARP攻击概述

在上篇文章里,我给大家普及了ARP协议的基本原理,包括ARP请求应答、数据包结构以及分层标准,今天我们继续讨论大家最感兴题的话题:ARP攻击原理是什么?通过ARP攻击可以做什么,账号是否可以取?有些常见的ARP渗透(攻击)工具可以用来练手?ARP扫描和攻击有什么区别,底层数据包特征是怎样的?

接下来,我们通过图解的方式来深入了解ARP攻击是如问实现的

ARP攻击原理

但凡局域网存在ARP攻击,都说明网络存在“中间人”,我们可以用下图来解释
在这里插入图片描述

在这个局域网里面,PC1、PC2、PC3三台主机共同连接到交换机SW1上面,对应3个接口port1/2/3。假设PC3这台主机安装了ARP攻击软件或遭受ARP病毒,成为这个网络的攻击者(
hacker),接下来,PC3是如何攻击的?先不急,先来回顾下PC1和PC2是如何通信
在这里插入图片描述

  1. PC1需要跟PC2通信,通过ARP请求包询问PC2的MAC地址,由于采用广播形式,所以交换机将ARP请求包从接口P1广播到P2和PC3。(注:変换机收到广播/组播/末知帧都会向其他接口泛洪)

  2. PC2根据询可信息,返回ARP单播回应包;此时PC3作为攻击者,没有返回ARP包,但是处于’监听’状态,为后续攻击做准备

  3. PC1和PC2根据ARP问答,将各自的ARP映射信息(IP-MAC)存储在本地ARP缓存表,交换机根据其学习机制,记录MAC地址对应的接口信息,存储在CAM缓存表(也称为MAC地址表),交换机收到数据包时,会解封装数据包,根据目标MAC字段进行转发

关于上面的图解,我们要记住这些关键知识(敲黑板!)

  • 主机通信需要查找ARP表,而交換机通信需要查找CAM表(路由则查找 Route表)

注:ARP表:ip<-> mac CAM表:mac<->port( Route表:route<->port)

  • 交换机基于源MAC地址学习,基于目的MAC地址转发

  • 同一局域内,攻击者可以根据主机的ARP广播请求监听其IP和MAC信息

注:这里是”被动监听“,跟后面要谈到的”主动扫描“原理上有分别

接下来是重点,我们来看看PC3( Hacker)是如何发起ARP攻击的=>
在这里插入图片描述

正常情况下,若收到的ARP请求不是给自己的,则直接丢弃;而这里PC3(
Hacker)在监听之后,发起了ARP回应包:我就是PC2(IP2-MAC3)。从拓扑可以出现,PC3明明是IP3对应MAC3,很显然这就是一个ARP欺骗行为。于此同时,PC2正常的ARP回应包也交到了PC1手中,我们来看PC1接下来如何处理的
在这里插入图片描述

PC1收到两个ARP回应包,内容分别如下

  • 我是PC2,我的IP地址是IP2,我的MAC地址是MAC2

  • 我是PC2,我的IP地址是IP2,我的MAC地址是MAC3

PC1脸懵:咋回事?还有这操作?不管了,我选最新的!(后到优先)

这里给大家便普及下网络协议里各种表在处理缓存信息的方式

要么”先到先得”要么后到优先,上面提到的ARP和CAM表,就是遵循后到优先原则,而后面章节我们会讲到的DHCP表,则循’先到先得”原则

那么问题来了,上面两个ARP回应包到底郡个先到郡个后到呢?

作为初学者,可能还在纠结前后这种 naive的问题;而作为
hacker,只要持续不停发出ARP欺骗包,就一定能够覆盖掉正常的ARP回应包。稳健的ARP嗅探/渗透工具,能在短时间内高并发做网络扫描(例如1秒钟成干上百的数据包),能够持对外发送欺骗包

无论如何,当PC1和PC2这种”小白用户遇到PC3( hacker)时,最终的结果一定是这样的
在这里插入图片描述
小白vs黑客,很明显的较量,PC1最终记录的是虚假的ARP映射:IP2<->MAC3,得到错误信息的PC1,接下来会发生什么情兄呢?(我们以PC1
ping PC2为例)
在这里插入图片描述

根据数据封装规则,当PC1要跟PC2进行通信时,无论是发生PING包还是发送其他数据首先要查找ARP表,然后在网络层打上源目IP,在链路层打了上源目MAC,然后将数包发送给交换机。交换机收到之后对数据进行解封装,井目査看CAM表(基于目的MAC转发),

由于目标MAC3对应Port3,所以交換机自然而然将其转发给PC3就这样,PC1本来要发给PC2的数据包,落到了PC3(
Hacker)手里,这就完成了一次完整的ARP攻击。

反过来,如果PC2将数据包发送PC1,PC3仍然可以以同样的ARP欺骗现攻击,这就有了下面这张图(PC3既欺编了PC1,也欺编了PC2)
在这里插入图片描述
此时,PC1和PC2的通信数据流PC3拦截,形成了典型的中间人攻击。那么,一旦被攻击井拦截,攻击者能做什么,普通用户又会受什么提失?这里给大家举几个常见的例子=

  • 攻击者既然操控了数据流,那么直接断开通信是轻而易举的,即"断网攻击”,例如,PC1

给PC2的数据在PC3这里可以直接丢弃,而如果这里的PC2是台出口路由器(无线路由器),那就意味着
PC1直接无法连上互联网

  • "断网攻击"显然容易被发现,而目比较残忍”,所以就有了更加常见的应用-“限速”。例

如,在宿含上网突然很慢,在网吧上网突然不开网页,如果这个网络没有安全防御,那么很有可能有”内
鬼。

  • 其实无论是断网攻击还是限速”,整体还是比较”善良”,因为这里流量里面的核心数据还没有被”提取”出来。如果攻击者是一名真正的黑客,他的目的定不会这么无聊,因为内网流量对于黑客是没有太大价值的,而只有"用户隐私”,例如常见网贴的登录账号码,这些才是最有价值的

向:受ARP取击之后,些账号可能取?

答:任何基于明文传输的应用,都可以被窃取,例如,如果个网站不是HTPS协议,而是基于HTP明文传输,那么当你登录这个网站时,你的密码就会被取。除了http(web应用),常见的还有
telnet.、ftp、pop3/ smtp/imap(邮箱)等应用,都很容易泄密码

ARP渗透工具底层原理分析

这里我通过wireshark给大家还原真实网络中常见的ARP归描和欺骗攻击
在这里插入图片描述

在这张图里面,
Hacker(就是我)接入了个WFi网络,这个10.1.20.0/24便是所在的网段。刚进来一个陌生网络,
Hacker只知道自己的IP信息,例妙如P地址是10.1.20.253,网关地址是10.1.20.254,而这个局域网的其他设备是什么?有多少台?地址分布是多少?Hacker都不知道,接下来怎么呢?是不是要直接发动ARP攻击了?

不用这么着急,咋们至少要先了解下这个网络,进行基本的扫描和踩点。这个时候通过ARP工具对这个WiFi网络进行ARP扫描,具体的数据包图如下:
在这里插入图片描述
在这里插入图片描述

其实,这就是典型的盲扫或者’暴力扫描":反正我不道网络到底有多少主机,那我就尝试一下把整个网段全部问遍得了

那么,这个实际网络里面,到底谁’举手了呢?我们来看 Wireshark抓包情况
在这里插入图片描述
扫描后得到以下图片
在这里插入图片描述

接下来,如何进行ARP欺攻击呢?这里将最重点的数据包截取出来>
在这里插入图片描述

根据之前的信息,我们知道00:08:ca:86:f8:0f其实就是hacker的mac地址,并且对应的真正的IP地址应该是10.1.20.253。而这里很明显是
hacker在欺骗局域网其他主机,它对外声称:自己就是"所有人”。尤其是上面标红的主机,我们已经知道是小米思科苹果等设备,但是
hacker?都声明是自己!这样的意义在于覆盖掉其他主机的ARP缓存表信息,井生成错误的ARP映射,最终将通信流量交给
hacker。当然,还有另外一种
在这里插入图片描述
在这里插入图片描述

依此类推,Hackers会告诉局域网所有主机:自己就是网关,井且后续可数据都丢给我,我来转发到互联网

ARP攻击总结

  1. ARP缓存表基于后到优先原则,IP与MAC的映射信息能被覆盖

  2. ARP攻击基于伪造的ARP回应包,黑客通过构造’错位”的IP和MAC映射,覆盖主机的ARP表(也被称为ARP毒化),最终截取用户的数据流

  3. 一遭受ARP攻击,账号密码都可能取(如果通信协议不是加密的)

  4. 通过 Wireshark数据包分析,我们掌握了真实网络中ARP底层攻击原理及数据包组成。

ARP防御

在讲解ARP防御之前,我们先回顾下ARP攻击最经典的一幕=>
在这里插入图片描述
当PC1询问PC2的MAC地址时,攻击者PC3返回ARP欺回应包:我的IP地址是IP2,MAC地址是MAC3。-且PC1记录了错误的ARP映射,则发给与PC2的数据,都会落到PC3手里

也就是说,ARP攻击的罪首便是这种”欺编包”,若针对欺骗包的处理是不相信或不接收的话,则不会出现问题。处理这种欺行为我们去提前在黑客端做手脚,因为"敌在暗处我在明处。这样的话,我们就剩下两个解决方法

  1. 保证电脑不接收欺包

  2. 保证电脑收到包之后不相信

目前网络安全行业现有的ARP防御方案,基本都是上面两个方法的具体实现。我们来看看这张防御图:

  1. 当黑客发起ARP欺骗包时,会途径局域网里面的交换机或无线路由器等网络设备;

  2. 如果网络设备能够识别別种欺骗包,井且提前丢弃掉,则电脑手机端就不会被欺骗;

  3. 如果网络设备没有拦截这种欺编包,则电脑/手机端需要做安全防御,然后再丢弃。

简单来说,ARP防御可以在网设备上实现,也可以在用户端实现,更可以在网络设备和用户端同时实现。接下来,我们先来了解下网络设备(例如这里的交换机)的防御技术
在这里插入图片描述

上面这张图,展现的是交처换机的ARP防御能力,当PC2发送ARP回应包时,交换机将其转发给PC1,而当PC3发送ARP回应包(欺骗)时,交换机直接丢弃

但是,人家PC3上脸上又没有写着"
hacker,凭什么交机要丢弃它的ARP回应包?凭什么判断它的包就是”欺骗的呢?接下来,我就要给大家个绍下局城网安全里比较常用的防御技术,这种防御技术被称为DAI(
Dynamic ARP Inspection)动态ARP检测,原理可以用两句话简单概括:

  1. 交换机记录每个接口对应的IP地址和MAC,即port->mac<->ip,生成DAI检测表

  2. 交换机检测每个接口发送过来的ARP回应包,根据DAI表判断是否违规,若违视则丢弃此

数据包井对接口进行惩罚
在这里插入图片描述

我们知道,PC3是在交换机的Port3、MAC地址是MAC3,IP地址是IP3,所以本地DAI表项内容是<port3-mac3-ip3>。当交换机从接口Port3收到ARP回应包,内容却是P2和MAC3映射,即<port3-mac3-ip2>,经判断,这个包就是虚假的骗包,交换机马上丢弃这个包,并且可以时接口做惩罚(不同设备的惩罚方式有所不同,可以直接将接口软关闭”,直接将攻击者断网;也可以’静默处理",仅丢弃欺骗包,其他通信正常)

上面这个动态ARP监测技术,可以说是目前防御ARP攻击最有效的方法之一。但是,作为初者,大家可能还会有疑问:

  1. 一般的交换机或网络设备能部署动态ARP监技术吗?

  2. 连接用户的交换机,怎么能识别IP地址信息呢?

  3. 上面这张DAI表是如何生成的?是不是像CAM表一样能自动识别?

大部能支持这种动态ARP监测技术的交換机成者无线路由器,都基本是企级的产品。所以,简单的交换机不具备动态ARP监技术,即便市面上有带安全防御的网络产品,企业、学校、医院等大量网络,仍然在早期采购的时侯,用的是比较基础版本的交换机

另外,交换机能识别IP地址信息吗?

从现在的网络技术来看,分层界限越来越模糊,融合式的网络设备才是主流,现在的接入交换机基本能被
Telnet/
SSH/Web管理,更专业的交换机同时支持动态ARP监测(dai)、IP源防护(ipsg)、DHCP侦听(
dhcp
snooping)、端口安全、AAA、802.1x等局域网安全技术,已经超越了原有二层交换机的定义所以,交换机能读三层甚至七层的数据包已经不是什么新鲜事了,不要被"交换机就是一层设备"给束缚了,这只是纸面上的定义

最后一个向题,DA检测表是如问生成的?

在上面图解中,我们看到交换机查看的表已经不是原来的CAM表了,内容也不太一样,CAM表的内容主要是MAC和Port的映射,而DAI检测表则表则是Port、MAC、IP三个信息映射。目前这张表支持两种方式来生成:第一种方式就是手工静态绑定:即用户接入网络之后,管理员根据此用户电脑的MAC和P地址,然后在接口上绑死,缺点就是用户数太多的话,手工绑定管不过来;第二种方式就是目前最主流的做法,即在交換机上开启DHCP侦听技术,当用户第一次通过DHCP获取到地址的时候,交换机就把用户电脑的IP、MAC、Port信息记录在DHCP侦听表,后面ARP检则直接调用这张DHCP侦听表即可。
在这里插入图片描述

ICMP协议

定义

互联网信息控制协议, Internet Control Message
Protocol用于实现链路连通性测试和链路踪,可以实现链路差错报告。ICMP云行存在传输层协议、服条于IP协议

ping的原理

Ping的原理(探测目的主机是否有问题,探测本地到目的的延迟等)

Echo request 回显请求

Echo reply 回显应答
在这里插入图片描述
在这里插入图片描述

类型值|代码值:8 | 0请求0 | 0回复=>区分数据包类型

校验和:实现数据包完整性校验

标识符:用于标志不同的Ping进程

序列号:表示在此进程下的第几个包

DDos攻击

DOS Deny of service拒绝服务式攻击

DDOS Distributed deny of service分布式拒绝服务式攻击

使用ICMP协议原理,向目标服务器发送大量请求,迫使服务器发送大量回复,消耗服务器带宽

链路追踪

在命令行输入命令:traceroute www.baidu.com
在这里插入图片描述
显示数据传输途径的所有使用IP协议设备的地址

Tracert/Traceroute的原理(探测本地到目的路径,“踩点",利用TTL超时来实现)

(1) Windows链路追踪的实现原理

在这里插入图片描述

不断发送ICMP请求,然而每一个请求的TTL值不一样

第一个包的TTL值为:1,当它遇到第一个路由设备时TTL就会被-1=0,然后第一个路由设备就会回复主机宣告包的死亡,同时回复中携带着自己的IP地址,以此获得设备的IP

第二个的ICMP数据包TTL为:2,当他被第一个路由转发后就会-1=1,然后传给第二个路由,到第二个路由时TTL就会又-1=0,然后宣告包已死亡并且回复自己的IP地址,以此类推,就可以获取访问www.baidu.com网站数据途径的所有使用IP协议设备的IP地址

追踪过程中带*的数据有两种情况

  1. 路由器离得太远,回应时间太长导致超时

  2. 设备是类似防火墙或带有反追踪功能的设备

(2)Linux/Unix链路追踪原理

在这里插入图片描述

和Windows区别在于Windows全都是ICMP包,而Linux/Unix是UDP包+ICMP包
在这里插入图片描述
在这里插入图片描述
当UDP高端口包发送到百度时,百度没有开启对应的端口服务,因此会回复一个“端口不可达”包

同时,这些包的结构也不一样,在ICMP层里面还包含着原来的IP层,目的是告诉用户错误的包的内容
在这里插入图片描述

UDP协议

大文件一般用TCP协议传输,而一般实时传输或者是小文件用UDP协议传输

定义

用户数据报协议, user datagram
protocol,用于实现面向无连接的不可靠协议,传输层协议

特征

数据包结构非常简洁

处理速度快

实时交互(社交软件、视频流、实时交互协议)

协议(基于UDP开发的应用、协议)

DHCP、DNS、QICQ、TFTP
在这里插入图片描述

源端口

目标端口

数据包长度

校验和

拓展:

1、(端口范围1-65535)通信过程中,源端口般属于随机高端口,目的端口属于固定知名端口

2、1-1023为知名端口号范围,已经被占用的。

3、DHCP的源目端口都固定,客户嫦端口为68、服务端为67。

4、DNS域名解析协议基于UDP端口号53;通过DNS请求和回复过程,获取域名对应IP

DHCP协议

定义

动态主机配置协议, Dynamic Host Configuration
Protocol,用于实现对终设备的动态IP信息分配(IP地址、网关地址、DNS服务器、WINS服务。。)

原理

在这里插入图片描述

ipconfig/release //释放IP地址(抓到 DHCP Releasef包)

ipconfig/renew //重新获取IP地址(抓到DHCP完整交互包)

Linux/Unix
在这里插入图片描述

Windows
在这里插入图片描述

0.0.0.0:没设置地址

255.255.255.255(ff:ff:ff:ff):广播
在这里插入图片描述
在Linux环境下,无论是发现/提供/请求/确认包,目标地址都为255.255.255.255,即都为广播,原因是当配置有多个DHCP服务器时,当其中一个DHCP服务器的地址池被分配出去时其他的服务器能收到广播,不会使地址再次使用;

在Windows/macos则会以单播来提供/确认,目的是减少广播对其他用户的影响,同时节约带宽

小结

数据包的功能:

发现包用于广播发现局域网的DHCP服务器;提供包用于预回复客户端,告知其即将给的P地址;请求包正式对感兴趣的服务器/IP地址发起请求;确认包对客户端进行最终的正式确认(这个时候服务器会将此分配出去的IP地址移开本地地址池)。

DHCP初始请求过程中,客户端本地是没有IP地址的,那么如向对外发送发现和请求包呢?:

将自己的地址设置为0.0.0.0

为什么发现/请求包需要使用广播的方式,有一些情况下,提供/确认包也需要使用广播的方式?:

当局域网配置多个DHCP服务器时,当地址池里的一个地址被分配出去时,若其他DHCP服务器不知情,则可
能导致一个IP地址被多次公用

DHCP的交互过程都是广播包形式来实现的,目的IP采用255.255.255.255

DHCP交互过程中,服务端为67,客户端为68

为什么需要4个包来获取地址,而不是2个包?:

2个包无法解决多服务器环境下,地址浪费/冲突的问题。

同时,DHCP是不可靠协议,当提供的步骤提供地址时丢失或者被拦截,则会导致用户得不到地址但是DHCP服务器将地址清除,增加多两个确认包可以增加协议的稳定性

为什么有的时候会抓到多个提供包,若收到多个提供包该如何选择?:

有可能多个提供包是由多个DHCP服务器提供的,DHCP协议采用先到先得原则,若收到多个IP地址则选择第一个,但由于请求包只会发出一个,所以只有一个IP地址会从地址池消除

DHCP发现包:
在这里插入图片描述
在这里插入图片描述
DHCP提供包:
在这里插入图片描述
DHCP请求包:
在这里插入图片描述

DHCP回复包:
在这里插入图片描述

TCP协议

定义

Transmission Control
Protocol,传输控制协议,是TCP/IP协议栈中算法最多,功能最繁杂的协议

基于TCP的应用层协议

HTTP:80

HTTPS:443

FTP:20/21

SSH: 22

TELNET: 23

SMTP/POP: 25/110

功能

面向连接(三次握手、四次挥手)

可靠传输(经典重传、超时重传、快速重传/选择性重传)

流量控制(滑动窗口、拥塞管理)

多路复用(套接字)

原理

面向连接(三次握手、四次挥手;SYN/ACK/FIN位)

三次握手:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四次挥手:
在这里插入图片描述
在这里插入图片描述

可靠传输(序列号SEQ+确认号ACK+重传算法)

经典重传

在这里插入图片描述

超时重传在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

小结:

1、正常不丢包情况下,ACK(n+1)=SEQ(n)+Len(n),即下一次的确认号等于上一次的序列号加数据包长度值;若丢包情况下,则ACK(n+1)
< SEQ( n ) + Len(n)

2、下一次的序列号等于上一次的确认号 Seq(n+1) = ACK(n)

流量控制(窗口大小)
在这里插入图片描述
在这里插入图片描述

当窗口大小为0时意思为暂时没有空间来储存?告诉服务器不要继续传输

多路复用(端口号Port、套接字socket、会话session、五元组)
在这里插入图片描述
在这里插入图片描述

注明:TCP通过端口号(port)或套接字(ip+port)实现多路复用

源目IP+源目Port+协议号=唯一的五元组
在这里插入图片描述

Telnet协议

定义

远程登录协议,用于对设备进行远程管理,基于明文,目前不建议使用,建议采用SSH协议

采用TCP23号端口

标签:ARP,--,IP,PC1,地址,TCP,PC2,MAC
来源: https://blog.csdn.net/weixin_45841815/article/details/120394996

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有