定位终端的通信过程及相关协议

物联方案

2020年03月29日

在网络通信过程中,发送数据的主机称为源主机,接收数据的主机称为目标主机。当源主机发送数据时,数据从上层传输到源主机中的下层。源主机中的应用程序首先将数据发送给应用层,应用层加上所需的控制信息成为消息流,并将其向下传输到传输层。传输层将接收数据单元加上该层的控制信息,形成消息段数据报,然后将其转交给网络层。网络层加上该层的控制信息形成IP数据报,并将其传输到网络接口层。网络接口层将与Internet层相交的IP数据报组装成帧,以比特流的形式传送给网络硬件(即物理层),数据离开源主机。


链路层

以太网协议规定,所有接入网络的设备必须安装网络适配器,即网卡,数据包必须从一张网卡传送到另一张网卡。网卡地址是数据包的发送地址和接收地址。在获得MAC地址后,以太网使用广播表单将数据包发送到子网中的所有主机。在接收到此数据包后,子网中的每个主机将读取标头中的目标MAC地址,然后将其与自己的MAC地址进行比较。如果相同,则执行下一步处理,如果不同,则丢弃数据包。

因此,链路层的主要工作是对电信号进行分组,形成具有特定意义的数据帧,然后以广播的形式通过物理媒体将它们发送给接收机。


网络层

网络层引入了IP协议并制定了一组新的地址,使我们能够区分这两台主机是否属于同一网络。这组地址是网络地址,也就是所谓的IP地址.IP协议将32位地址分为两部分,第一部分表示网络地址,后者表示局域网中主机的地址。如果两个IP地址位于同一子网中,则网络地址必须相同。为了判断IP地址中的网络地址,IP协议还引入了子网掩码。IP地址和子网掩码可以通过按位和操作获得。


ARP协议

即地址解析协议,是一种根据IP地址获取MAC地址的网络层协议。它的工作方式如下:ARP首先发起一个请求包,其中第一个包含目标主机的IP地址,然后在链路层重新打包该数据包以生成以太网数据包,这些数据包最终由以太网广播到子网中的所有主机,每个主机接收该包,在报头中取出IP地址,然后将其与自己的IP地址进行比较。如果返回相同的MAC地址,则返回自己的MAC地址,如果数据包不同,则丢弃该数据包。"ARP接收返回消息以确定目标计算机的MAC地址;同时,ARP还将返回的MAC地址和相应的IP地址存储在本机ARP缓存中,并将其保存一段时间,并在下一次请求中直接查询ARP缓存以节省资源。


路由协议

首先,IP协议用于确定两台主机是否位于同一子网中。如果它们位于同一子网中,则通过ARP协议查询相应的MAC地址,然后以广播的形式将数据包发送到子网中的主机。如果数据包不在同一子网中,则以太网将将数据包转发到子网的网关进行路由。网关是Internet上子网和子网之间的桥梁,因此网关会多次转发数据包,最后将数据包转发到目标IP所在的子网,再通过ARP获得目标机MAC,最后以广播的形式发送给接收方。完成这一路由协议的物理设备是路由器,它扮演着传输中心的角色,它根据信道条件选择和设置路由,并以最佳路径转发数据包。

因此,网络层的主要工作是定义网络地址、区分网段、子网中的MAC寻址以及将包从不同的子网路由。


传输层

链路层定义主机的标识,即MAC地址,网络层定义IP地址,该IP地址定义主机所在的网段。使用这两个地址,包可以从一个主机发送到另一个主机。但是,实际上,数据包是从一个主机的应用程序发送的,然后由另一个主机的应用程序接收。每台计算机可能同时运行多个应用程序,因此当数据包被发送到主机时,不可能确定哪个应用程序将接收该数据包。因此,传输层引入了UDP协议来解决这一问题,以便识别每个应用程序。


UDP协议

UDP协议定义了端口,同一主机上的每个应用程序都需要指定唯一的端口号,并要求在网络中传输的数据包必须添加端口信息,当数据包到达主机时,可以根据端口号找到相应的应用程序。UDP协议简单、易于实现,但没有确认机制。一旦数据包被发送出去,它就无法知道对方是否收到它,因此可靠性很差。为了解决这一问题,提高网络的可靠性,TCP协议应运而生。


TCP协议

传输控制协议tcp是一种面向连接、可靠和基于字节码的通信协议.简单地说,TCP是一个具有确认机制的UDP协议。发送的每个数据包都需要确认。如果一个数据包丢失,将不会收到任何确认,发送方必须重新发送该数据包。为了保证传输的可靠性,TCP协议在UDP协议的基础上建立了三次会话的确认机制,即在正式发送和接收数据之前必须与对方建立可靠的连接。TCP数据包,如UDP,由第一部分和数据部分组成。唯一的区别是TCP数据包没有长度限制,理论上可以无限长,但为了保证网络的效率,TCP数据包的长度通常不超过IP数据包的长度,以确保一个TCP数据包不需要被分割。