ICMP协议的基本功能
- ICMP采取“错误侦测与回馈机制”,通过IP数据包封装,用来发送错误和控制消息。目的是掌握网络的连通情况。
- ICMP属于网络层协议。
- ICMP的封装过程
ICMP的使用
- ICMP的消息类型与编码类型如下表格
- 在网络中,ICMP通常是靠各种命令来实现的,下面以ping命令为例介绍ping命令的使用以及返回的信息。
当ping一台主机时,本地计算机发出ICMP数据包,从返回的信息中可以知道包有没有丢失,判断是否连接,除此之外可以根据“时间”来判断当前的联机速度(ms),数值越低,速度越快,如果发现丢包严重,就可能是线路不好造成的丢包。如果显示为请求超时,说明在规定时间内没有收到返回的信息,ping的信息存在时间为180s。 - ping命令的常用参数
在ping命令后面加上参数“-t”,将会一直ping下去。
在ping命令后面加上参数“-a”,可以返回对方主机的主机名。
在ping命令后面加上参数“-l”,可以改变ping包的大小。
ARP协议
- 在局域网中,交换机通过MAC地址进行通信,要获得目的主机的MAC地址就使用ARP(Address Resolution Protocol)协议将目的IP地址解析成目的MAC地址。
- 如何将IP地址解析为MAC地址
PC1发送地址给PC2,查看缓存没有PC2的地址
PC1发送ARP请求消息(广播)
所有主机收到ARP请求消息
–PC2回复ARP应答(单播)
–其他主机丢弃
3. ARP报文格式
5. ARP攻击和欺骗原理
无论是ARP的攻击还是ARP欺骗,他们都是通过伪造ARP应答来实现的。
ARP攻击主要目的是使网络无法正常通信,攻击主机制早假的ARP应答,并发给局域网中其他主机,ARP应答中包含被攻击主机的IP地址和虚假的MAC地址。或者攻击主机后制造家的ARP应答,发送给被攻击主机,ARP应答中包含除被攻击主机之外的多有主机的IP地址和虚假的MAC地址。
ARP欺骗一般情况下不会使网络无法通信,而是通过冒充其他主机使达到主机的流量通过攻击主机转发。
TCP协议
-
TCP协议是面向连接的、可靠的进程到进程通信的协议,TCP提供全程双工服务,即数据可在同一时间双向传输。TCP将若干个字节构成一个组,叫报文段,TGP报文段封装在IP数据报中。
SYN:同步序号位,TCP需要建立连接是将该值设为1
ACK:确认序号位,当该位为1时,用于确认发送方的数据
FIN:当TCP断开连接时将该位置为1- 常用的TCP端口号及其功能
- 常用的TCP端口号及其功能
-
TCP连接
三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号。 -
三次握手:Seq请求序列号,Ack确认序列号,SYN、ACK为控制位、TCP连接
第一次握手:PC1发送SYN报文(Seq=x,SYN=1)到PC 2
第二次握手:PC2发送SYN+ACK报文(Seq=y,ACK=X+1,SYN=1,ACK=1)
第三次握手:发送ACK报文(Seq=x+1,ACK=y+1,ACK=1) -
四次挥手
第一次挥手:PC1发送FIN,ACK(FIN=1,ACK=1)到PC2
第二次挥手:PC2发送ACK报文(ACK=1)此时半关闭了连接
第三次挥手:PC2发送FIN/ACK(FIN=1 ACK=1)报文
第四次挥手: PC发送ACK(ACK=1)报文
…
----- 数据没有完全传输完成时,呈半关闭状态。
------没有收到数据,等待服务器重传,等待时间为一到四分钟。
UDP协议
- UDP是一个无连接、不保证可靠性的传输层协议,也就是说发送端不关心发送的数据是否到达了目标主机、数据是否正确等,收到的主机也不会告诉发送端是否收到了数据。但是UDP也有优点,在数据传输时能将花销最小化。
- UDP报文的首部格式
–UDP长度:用来指出UDP的总长度,为首部加上数据。
–校验和:用来完成对UDP数据的差错检验,是UDP协议提供的唯一可靠机制。 - 常用的UDP端口号及其功能