目录
1.同一设备上的进程间通信
1.通信方式
同一设备上的进程间通信,通常有以下几种:
消息队列、管道、共享内存
2.不同设备上的进程间通信
1.通信方式
不同设备上的进程间通信,需要进行网络通信,此时涉及到网络协议与网络层级
2.网络层级:四层网络模型
2.1 应用层
作用:为用户提供应用功能,实现用户的各种应用,工作在操作系统的用户态
常用协议:HTTP、HTTPS、SMTP、FTP、DNS
当需要在不同设备的两个应用间通信时,应用层会将数据包发送到传输层
2.2 传输层
作用:为应用层服务,工作在操作系统的内核态。当接收到应用层发送的数据包后,若数据过大(超过MSS最大数据长度)会将其分块,然后分块传输;对于接收数据的的应用而言,使用端口来区分同一设备上的不同应用,使用IP地址来区分不同的设备
常用协议:TCP、UDP
传输层将数据发送到网络层,此时会在数据前面加一些内容比如端口号,用来确认将数据传输给哪一个应用
2.3 网络层
作用:将数据从一个设备传输到另一个设备,工作在操作系统的内核态。当接收到传输层的数据包后,对数据包添加IP头部,若数据过大(超过MTU)会对将其分片;在接收过程中,根据IP地址和子网掩码先确定IP地址的网络号和主机号,进行路由器寻找,找到对应的子网,将数据包转发到网络中;
常用协议:IP
其实,在网络中发送数据,仅靠网络层处理数据(加上IP头部)发送到以太网是无法被转发匹配的,必须要网络接口层处理数据(加上MAC头部),才能在以太网中传输
2.4 网络接口层
作用:为数据加上MAC头部,使其能够在以太网中传输;以太网中通过ARP协议,解析出数据中中MAC头部包含的发送方和接收方的MAC地址(仅靠IP),然后才能将数据发送到接收方
常用协议:ARP