前提设备:客户端A;服务器B
TCP三握手:
1、客户端A从closed状态启用,向服务器B发送报文(SYN=1,seq=x) 同步请求切换到SYN-SENT状态
2、服务端B被动打开,进入LISTEN监听状态,发送(SYN=1 ACK=1 seq=y ack=x+1)消息表示收到连接请求同时再返回个请求连接消息,并切换到SYN-RCVD状态
3、客户端A收到服务器B返回的消息后再次发送(ACK=1 seq=x+1 ack=y+1)消息,表示同意同步请求并建立连接,服务端B建立连接,开始数据传输
TCP四挥手:
1、客户端A发送请求关闭消息(FIN=1,seq=u),并切换到FIN-WAIT-1状态等待
2、服务端B收到请求关闭消息后,返回确认消息(ACK=1 seq=v ack=u+1),切换到CLOSE-WAIT关闭等待状态
3、客户端A收到确认消息切换到FIN-WAIT-2状态等待对方发送关闭请求;服务端B发送最后确认关闭请求(FIN=1 ACK=1 seq=w ack=u+1)表示所有表示数据已完成,切换到LAST-ACK最后确认状态
4、客户端A收到最后关闭请求后,回复确认消息(ACK=1 seq=u+1 ack=w+1)并进入TIME-WAIT等待状态,时间为2MSL(2倍的正常消息传递时间),双方确认关闭。
ARP通讯:
主机A向主机B传递消息,A只知道B的ip地址
1、A首先查看B是否和自己处于同一网段(以下为AB在同一网段)
2、A查看自己的ARP缓存表,是否有B的mac地址,有mac地址则直接传递消息
3、A的ARP缓存表中没有B的mac地址,则会发送广播消息并携带B的ip和自己ip及mac地址
4、B收到A的消息,把A的ip及mac地址写入自己的ARP缓存表,并给A返回自己的mac地址
5、A收到B返回的mac地址,把B的ip和mac地址写入自己的APR缓存区,根据B的mac地址与B完成通讯
A和B跨路由通讯:
1、A发送ARP广播得到自己默认网关的mac地址,目标mac为网关mac地址,源mac为A的mac地址,源IP为A的ip,目的ip为Bip
2、A的默认网关通过ARP广播找到B的默认网关mac地址;,目标mac为B网关mac地址,源mac为A网关mac,源ip与目的ip不变
3、B网关通过ARP广播找到B的mac地址,把消息传递给B;目标mac为Bmac地址,源mac为B网关mac地址,源ip和目的ip不变。