To efficiently adapt to dynamically changing network environment such handover and link failure, cross-layer cooperation mechanisms are indispensable. This paper first introduces the following five requirements to cross-layer cooperation architecture through a discussion, (1) cooperation between a layer in a node and a layer (not necessary the same layer) in another node, (2) abstraction of control information, (3) definition of primitives in each layer, (4) availability in a wide area network, and (5) implementation. Although there are a lot of proposals of cross-layer cooperation architecture in the literature, none of them satisfy the five requirements. This paper designs an inter-node cross-layer cooperation architecture called CLINEX (Cross-Layer and Inter-Node information EXchange) so that it satisfies the five requirements. CLINEX is implemented in the user space and the kernel space of Linux. Two scenarios are tested in our test network composed of eight machines. One scenario is congestion detection at a remote node, which results in sending rate control at the end node. Another scenario is link failure detection at a remote node, which results in failover in an SCTP association. The measurement results show that the processing time of CLINEX is negligible in comparison with packet transmission latency.