网络层与传输层的主要协议
一 ICMP和ARP协议
1.ICMP协议
(1)ICMP协议
ICMP协议的全称是Internet控制消息协议,主要用于在IP网络中发送控制信息,提供在通信环境中可能发生的各种问题的反馈。
(2)ICMP功能
ICMP采取“错误侦测与回馈机制”,通过IP数据包封装,用来发送错误和控制消息。 其目的是使管理员能够掌握网络的连通状况。 如路由器收到一个不能被送达的最终目的地的数据包时,路由器会向主机发送一个主机不可达的ICMP消息。
ICMP是属于网络层的协议,因为传输ICMP信息时,要先封装网络层的IP报头,再交给数据链路层,即ICMP报文对应的IP层的数据。
(3)ICMP协议的封装
(4)ICMP消息的类型和编码类型
(5)ping命令
在网络中,ICMP协议的使用是靠各种命令来实现的。
ping命令的基本格式是ping [-t] [-l] [-a] IP_Adress|target_name
ping的常用命令
-t 系统就会一直做ping操作
-a 返回对方主机的主机名
-l 字节长度 表示包的大小
ping 命令的返回信息有
(1)连通的应答——会接收到数据包
(2)不能建立连接的应答——无法访问目标主机
(3)应答为未知主机名——DNS无法进行解析
(4)连接超时的应答——请求超时
2. ARP协议
(1)ARP协议及ARP工作原理
ARP协议是地址解析协议,将目的IP地址解析成目的MAC地址,以便在交换机上进行通信。
图解说明:
主机PC1想要发送数据给主机PC2,它检查自己的ARP缓存表(主机存储中的一个IP和MAC地址对应表),如果查找的MAC不在ARP缓存表中,ARP会发送一个广播找到对应的MAC地址,主机PC2不在表中,发出一个ARP请求广播(请求信息中包括PC1的IP地址和MAC 地址),交换机收到广播地址后将数据帧传出其他所有接口,其他主机收到数据帧后会进行IP地址比较,目标IP和自己IP不一致就会丢弃数据包,而主机PC2会在自己的ARP表中缓存PC1的IP地址和MAC地址的对应关系,同时发送一个ARP应答告诉主机PC1自己的MAC地址。主机PC1收到回应后会在自己的ARP表中添加PC2的IP地址和MAC地址的对应关系。这时交换机就学习了主机PC1和PC2的MAC地址,主机PC1和PC2可实现单播通信。
(2)APR攻击原理
ARP攻击的主要目的是使网络无法正常通信,主要包括两种攻击行为。
(1)攻击主机制造假的ARP应答,并发送给局域网中除被攻击主机之外的所有主机。ARP应答中包含被攻击主机的IP地址和虚假的MAC地址。
(2)攻击主机制造假的ARP应答,并发给被攻击主机。ARP应答中包含除被攻击主机之外的所有主机的IP地址和虚假的MAC 地址。
使用以上任一行为都可以实现攻击主机与其他主机无法通信。例如向网关或者被攻击主机发送虚假的ARP应答,当网关接收到虚假的ARP应答后,会更新ARP条目,网关再发送数据给被攻击主机时,就会收到假的MAC地址,从而无法通信。
(3)ARP欺骗原理
ARP欺骗不会使网络无法正常通信,而是通过冒充网关或者其他主机使到达网关或主机的流量通过攻击主机进行转发。
通过转发流量可以对流量进行控制和查看,从而可以控制流量或得到机密信息。
二 TCP和UDP协议
1.TCP协议
(1)TCP协议
TCP是传输控制协议,是面向连接的·可靠的进程到进程通信的协议。
TCP提供全双工服务,即数据可在同一时间双向传输,每一个TCP都有发送缓存和接收缓存,用来临时存储数据。
(2)TCP报文段
TCP将若干个字节构成一个分组,称为报文段。
格式如下:
①源端口号:发送方进程对应的端口号
②目标端口号:对应接收端的端口号
③序号:TCP从进程接收数据字节时会对进行存储并对每一个字节进行编号
④确认号:是对发送端的确认信息
⑤首部长度:确定首部数据结构的字节长度
⑥保留:留做扩展功能用
⑦控制位:
URG:紧急指针有效位
ACK:ACK=1时确认序列号字段有效
PSH:为1时要求接收方尽快将数据段送达应用层
RST:为1时通知重新建立TCP连接
SYN:同步序号位,TCP需要建立连接时将SYN设为1
FIN:数据需要断开,提出断开一方将FIN设为1
(3)TCP连接
TCP是面向连接的协议,它在源点和终点之间建立一条虚连接。TCP会保证报文段是有序的。
①连接建立(3次握手)
图解说明:
客户端要和服务器建立通信连接,会发送一个建立连接的请求,此时控制位SYN=1,其他五个控制位0,这是第一次握手。
第二次握手有2部分,服务器收到客户端的请求,向客户端回复一个确认信息,此时控制位ACK=1,其他五位控制位为0,确认序列号是客户端的初始序列号加1.然后服务器也要向客户端发送建立连接的请求,此时控制位SYN=1,其他五位为0。这就是第二次握手。
客户端收到了服务器的回复(包含确认和请求),客户端也要向服务器回复一个确认信息,此时控制位ACK=1,其他5位为0,确认序列为服务器初始序列号加1,这就是第三次握手。然后就完成连接。
②连接终止(4次挥手)
图解说明:
参加数据交换的双方的任何一方都可以关闭连接。
以客户端断开连接为例作说明:
客户端要断开与服务器的连接,会发送断开的请求,此时就会发送FIN=1.ACK=1的TCP报文段,这是第一次挥手。
服务器接收到请求后,会回复客户端确认请求,会发送ACK=1的TCP报文段。这是第二次挥手。
然后服务器还要向客户端请求断开连接并确认断开连接,会发送FIN=1,ACK=1的TCP报文段。这是打三次挥手。
客户端接收到请求,会确认断开连接,再向服务器发送ACK=1的TCP报文段,这就是第4次挥手。
(4)常用TCP端口号及其功能
2.UDP协议
(1)UDP协议
UDP 是一个无连接,不保证可靠性的传输层协议。
优点是UDP的首部结构简单,数据传输时开销小。
(2)UDP报文的首部格式
源端口号:识别发送端的进程
目的端口号:识别数据接收端的进程
UDP长度:支出UDP的总长度,为首部加上数据
检验和:完成对UDP数据的差错检验