在TCP-ELFN中,TCP同样要与路由协议交互,以获得路由故障的消息并采取相应的策略。一旦有中间节点检查到从发端到收端的路由故障后,该中间节点就向源节点发送显式链路故障通知(Explicit Link Failure Notification,ELFN),ELFN消息包括发送端和接收端的主机地址、端口以及TCP序列号,这样TCP就能区分丢包是由于路由故障(节点移动造成的)还是由于网络拥塞造成的。不过动态资源路由协议(DSR)中的路由故障消息需要修改成ELFN。ELFN类似于网络控制报文协议ICMP中的“主机不可到达”消息。
前面的三种方案都需要对TCP协议进行修改,但ATCP可以避免这样的变动。这种方案只是在网络层和传输层之间插入一个中间层ATCP(Ad hoc TCP),ATCP负责监视网络状态,通过网络控制报文协议的“目的地不可达”消息或ECN机制的显式拥塞通知(Explicit Congestion Notification,ECN)分别判断网络分割或网络拥塞。当发送端收到三个重复的ACK,ATCP认为信道有损耗,将TCP置为“persist”模式并迅速从TCP缓存中重传丢失的分组。在收到下一个ACK后,TCP才能回复到正常状态;如果源端收到ICMP的“目的地不可达”消息,ATCP认为出现网络分割,同样将TCP置为“persist”模式,但是此时并不重传分组,直到链路重建后才将TCP恢复到正常状态;当源端收到表示网络拥塞的ECN,ATCP仅仅把ECN上传给TCP,由TCP激起拥塞控制机制。