共享内存、网络

发布于:2024-08-23 ⋅ 阅读:(152) ⋅ 点赞:(0)
  1. 共享内存:

  2. 1、是一块内核预留的空间
  3. 2、最高效的通信方式(避免了用户空间到内核空间的数据拷贝)
  4. 网络

  5. 一、IP地址

是网络中主机的唯一标识,它由网络地址和主机号组成。网络地址是子网的唯一标识,类似于电话号码的区号;主机号是子网内每台主机的编号。在现在(IPv4)的网络中,IP地址是32bit的二进制数,采用大端字节序:

  1. 表示方法: 将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. 2.子网掩码            3.网关
  3. 二、端口号

  4.     端口号:  16位数值(unsigned short ) //0~65535 (65536个数)
           //标示一个进程
          TCP和 UDP 的端口号是独立的
      端口号:
        (1) 
           作用:唯一的标识一个进程
           每一个应用程序进程有一个端口号,
           通讯时区分数据包属于哪个应用程序进程

         (2) 分类
          
          端口号一般由IANA (Internet Assigned NumbersAuthority) 管理
       众所周知端口:
                      1~1023(1~255之间为众所周知端口,256~1023端口通常由UNIX系统占用)
                      知名端口号(已经分配给标准应用服务软件) 
                      如: 
                      http协议用到的端口号 80 
        已登记端口:  
                      1024~49151
                      注册端口号(非标准应用服务软件的软件可以申请的端口号范围)
        动态或私有端口://50000 以上的端口号 
                      49152~65535 动态分配的端口号(系统动态分配给应用程序使用的)

  5. 三、网络编程

  6. Open System Interconnect (OSI网络模型)
  7. osi参考模型 
         
  8. 1. 物理层 
           规定了物理层面的电气特性及相关机械特性 。( 物理层面数据的传输 ---  一位一位二进制数据   //比特流 )
    2. 数据链路层 
           规定了 传输数据的格式  //帧数据 
           //控制传输过程可靠
  9.  3. 网络层 (网际层)
  10.        用于解决 网络 与 网络之间 数据传输  //数据包 
      4. 传输层 
           传输控制层,控制传输过程,保证数据完整和可靠 
      5. 会话层  
           处理一次会话过程 
        6. 表示层 
           规定了 传输数据的格式 和 方式  //加密 
        7. 应用层 
           就是直接获取要收发的数据    
  11.    实际应用到的是 tcp/ip 模型 
  12. 三、协议——每个层次中,都有自己的一套规范

  13. 1、TCP

  14. 即传输控制协议:是一种面向连接的传输层协议,它能提供高可靠性通信(即数

  15. 据无误、数据无丢失、数据无失序、数据无重复到达的通信)

    * 适用情况:
    1. 适合于对传输质量要求较高,以及传输大量数据
    的通信。
    2. 在需要可靠数据传输的场合,通常使用TCP协议
    3. QQ等即时通讯软件的用户登录账户管理相关
    的功能通常采用TCP协议

    tcp协议特点:
    1. 面向连接   //类似打电话通话之前 ,必须先打通 
    2. 可靠传输   //保证数据准确可靠 (tcp协议机制 里面的功能 )
    3. 面向字节流程

  16. 2、UDP

  17. (User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。
    在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。

    * 适用情况:
    1. 发送小尺寸数据(如对DNS服务器进行IP地址查询时)
    2. 在接收到数据,给出应答较困难的网络中使用UDP。(如:无
    线网络)
    3. 适合于广播/组播式通信中。
    4. MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通
    讯通常采用UDP协议
    5. 流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP
    方式进行实时数据传输


    UDP特点: 
    1.不可靠 
    2.无连接 
    3.数据报  

  18. 3.编程模型 
     int socket(int domain, int type, int protocol);

  19. 功能:程序向内核提出创建一个基于内存的套接字描述符     

  20.  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 这个参数的长度 
                    );
  21. struct sockaddr_in {
                   sa_family_t    sin_family; 
                   in_port_t      sin_port;    (网络转主机:host to net) 
                   struct in_addr sin_addr; };

                


网站公告

今日签到

点亮在社区的每一天
去签到