本文主要是介绍共享内存、网络,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
-
共享内存:
- 1、是一块内核预留的空间
- 2、最高效的通信方式(避免了用户空间到内核空间的数据拷贝)
-
网络
-
一、IP地址
是网络中主机的唯一标识,它由网络地址和主机号组成。网络地址是子网的唯一标识,类似于电话号码的区号;主机号是子网内每台主机的编号。在现在(IPv4)的网络中,IP地址是32bit的二进制数,采用大端字节序:
- 表示方法: 将32位二进制码划分为4个字节,每个字节转化成相应的十进制数,字节之间用“.”来分隔,这种表示方法,称之为“点分十进制表示法”。
类型
范围
用途
A类
0.x.x.x---127.x.x.x.x
10.x.x.x
私网(局域网)地址
127.x.x.x
环回网络地址
其他
大型主干网地址
B类
128.x.x.x - 191.x.x.x
172.16.x.x - 172.31.x.x
私网(局域网)地址
169.254.x.x
表示没有找到DHCP服务器
其他
主干(城市)网地址
C类
192.x.x.x - 223.x.x.x
192.168.x.x
私网(局域网)地址
D类
组播地址
E类
保留
- 2.子网掩码 3.网关
-
二、网络编程
- Open System Interconnect (OSI网络模型)
- osi参考模型
- 1. 物理层
规定了物理层面的电气特性及相关机械特性 。( 物理层面数据的传输 --- 一位一位二进制数据 //比特流 )
2. 数据链路层
规定了 传输数据的格式 //帧数据
//控制传输过程可靠 - 3. 网络层 (网际层)
- 用于解决 网络 与 网络之间 数据传输 //数据包
4. 传输层
传输控制层,控制传输过程,保证数据完整和可靠
5. 会话层
处理一次会话过程
6. 表示层
规定了 传输数据的格式 和 方式 //加密
7. 应用层
就是直接获取要收发的数据 - 实际应用到的是 tcp/ip 模型
-
三、协议——每个层次中,都有自己的一套规范
-
1、TCP
-
即传输控制协议:是一种面向连接的传输层协议,它能提供高可靠性通信(即数
-
据无误、数据无丢失、数据无失序、数据无重复到达的通信)
* 适用情况:
1. 适合于对传输质量要求较高,以及传输大量数据
的通信。
2. 在需要可靠数据传输的场合,通常使用TCP协议
3. QQ等即时通讯软件的用户登录账户管理相关
的功能通常采用TCP协议tcp协议特点:
1. 面向连接 //类似打电话通话之前 ,必须先打通
2. 可靠传输 //保证数据准确可靠 (tcp协议机制 里面的功能 )
3. 面向字节流程 -
2、UDP
-
(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。
在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。* 适用情况:
1. 发送小尺寸数据(如对DNS服务器进行IP地址查询时)
2. 在接收到数据,给出应答较困难的网络中使用UDP。(如:无
线网络)
3. 适合于广播/组播式通信中。
4. MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通
讯通常采用UDP协议
5. 流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP
方式进行实时数据传输
UDP特点:
1.不可靠
2.无连接
3.数据报 -
3.编程模型
int socket(int domain, int type, int protocol); -
功能:程序向内核提出创建一个基于内存的套接字描述符
- ssize_t sendto( int sockfd, //用于通信的socket对应的fd
const void *buf, //表示要发送的数据所在的一块空间
size_t len, //表示发送的字节数
int flags, //0 --- 默认
const struct sockaddr *dest_addr, //表示 要发送到的 地址 (网络地址 ip+端口号 )
socklen_t addrlen //表示dest_addr 这个参数的长度
); -
struct sockaddr_in {
sa_family_t sin_family;
in_port_t sin_port; (网络转主机:host to net)
struct in_addr sin_addr; };
这篇关于共享内存、网络的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!