They solve different problems. Janus is a media server, and handles media in different ways (e.g., 1 to many to make a simple example). TURN is a media relay, and knows nothing of the application layer: it's basically an application level transport. For most cases, users are just fine with STUN. If they're behind a firewall that filters important stuff out, though (e.g., a firewall that only lets traffic to 80/443 through), then the random ports Janus advertizes for WebRTC won't work, and you'll need a TURN server. The TURN server can listen on 80/443, users point their media there, and the TURN server takes care of relaying to/from Janus as if it were the real WebRTC user.
If this is still confusing, try looking for some tutorials/lessons on what TURN is, how it works and how they differ.
Not sure what the datachannel has to do with all this? If you mean the WebRTC datachannel, that's SCTP over DTLS over UDP. WebSockets are not part of the picture. You're still free to share your data over websockets instead of datachannels, of course.
If by datachannel you mean "whatever carries audio and video", that's a different thing, and uses RTP/UDP.