Width of arrow indicates how much communication there is between two threads. Arrow heads show direction of communication; two headed arrow shows that communication is bi-directional.
Common implementation usually consist of two types of threads; worker & io threads. Encryption, bandwidth managment & internal message handling are done using io threads, and timers are managed by kernel.