Nomenclature

A kernel/session/state tuple is called an Address.

An Address + parameters + OOB data is called a Message.

The Local Kernel is the kernel a Message was sent FROM (CASE 1).

The Remote Kernel is the kernel a Message was sent TO. Note that it could be the same as the Local Kernel (CASE 1).

The Native Kernel is the kernel were a message Address is created.

The Foreign Kernel is the kernel were a message Address resolves to.

Most Messages will have Native Kernel = Local Kernel and Foreign Kernel = Remote Kernel. (CASE 3) Postbacks are the exception.

The kernel that contains the destination Address of the Postback is the Native Kernel. (CASE 2)

The kernel from which the Postback is posted is the Foreign Kernel. (CASE 2)

I feel this distinction is important to keep in mind while thinking and discussing IKC. It helps one to remember that the "other end" might be far away.

Maybe this pretty picture will help