浅谈网络协议-入门

259 阅读2分钟

本文从开发者的角度浅谈网络协议入门知识,如果能对网络协议有很好的了解,那么对于日常开发也是很有帮助的。

1. TCP协议

TCP - Transmission Control Protocol是一种面向连接的、可靠的、基于字节流的传输层通信协议,主要功能是保证数据的可靠性和完整性,防止丢包。控制方式(数据包编号、数据包封装、传输确认机制、数据包遗失重发机制)。详情参考

2. IP协议

IP-Internet Protocol协议。IP协议用来实现跨局域网之间的设备的数据传输,可以获取和定义IP地址,依据子网掩码来确认设备是否跨网。

3. Socket

提供了网络中不同主机上的应用程序之间进行双向通信的方法,上连应用程序,下连网络协议,有一组面向 TCP/IP协议的接口。 在unix或者linux系统中,Socket就是一个文件描述符。 编程常用方法:

1socket()

2bind()

3listen()、connect()

4accept()

5read()、write()

6close()

4. Http长连接,短连接

长连接:重复利用tcp三次握手,四次挥手之间的连接传输数据(http 1.1, Connection:keep-alive)。例如访问百度。

keep-alive是如何起作用的呢? 其实Http的长连接是通过TCP的长连接来实现的,TCP的长连接是靠周期性的发送探测包来实现长连接的,也就是“心跳”,当然超过一定的时间如果收不到心跳包,http连接会自动断开,否则应用程序数据传输完成后会断开(Content-Length)。

短连接:建立的连接不能重复利用,每次传输一次数据后强行断开再从新建立连接。

5. MQTT

MQTT是物联网标准协议,特点是轻量级,基于发布订阅模式。一般是建立在TCP/IP的基础之上。与TCP长连接的优势:

  1. MQTT协议更加标准,针对性强,有利于第三方组件的开发和实现。
  2. 增加了更多物联网场景下的功能和控制机制,如心跳机制、发布订阅机制等。

6. Modbus协议

Modbus协议是属于应用层报文传输串行通信协议,基于Master/Slave架构,request/response模式。报文类型包括ASCII、RTU、TCP三种。多用于数据采集系统和远程终端控制系统RTU。

图片来源于网络,仅供交流学习。

参考链接:

TCP协议
Socket原理讲解
What is a socket
Socket in Computer Network
Modbus介绍