在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激起擁塞控制機制。