IoT based systems need to connect devices from different locations. Therefore connecting and communicating with each other devices is really important for fast and reliable information to transfer each device.
for lightweight communication MQTT is a widely adopted protocol for M2M communication from IoT devices due to low data and simple structure. Adding various security etc features is also easy depending of the requirements.
The already mentioned MQTT is probably the most popular choice nowadays. This protocol is often encapsulated through a websockets communication, which, in turns, uses the TCP protocol.