zoukankan      html  css  js  c++  java
  • Linux网络编程 了解

    IPV4 -- IP地址分类主机号是区分主机的,网络号是区分网段的

    子网掩码是对主机号进行划分子网用的

    举例说明:

    对 192.168.1.0网段划分4个 其子网掩码 : 拿出主机号的两个位进行划分子网才可以有4种情况

    其子网掩码 1111111.11111111.11111111.11000000 ---- 255.255.255.192 

    子网掩码与IP地址进行按位与运算后悔知道其是哪个子网下的,根据子网掩码可以知道有几个子网

    按照子网掩码 255.255.255.192  和 网段 192.168.1.0 划分四个子网如下:

    第一个子网 : 192.168.1.1 ~ 192.168.1.62 

    第二个子网 : 192.168.1.65 ~ 192.168.1.126 

    第三个子网 : 192.168.1.129 ~ 192.168.1.190 

    第四个子网 : 192.168.1.193 ~ 192.168.1.254 

     协议模型:

    端口号:

    (1)网络通信 ip 是区分那台电脑的,端口号是区分电脑上那个程序的,如QQ,微信是不同的端口

    (2)TCP和UDP的端口是分开,如TCP服务器可以使用8080端口,UDP服务器也可以使用8080端口

    (3)端口号分配众所周知端口:1~1023(1~255之间为众所周知端口,256~1023端口通常由UNIX系统占用) 已登记端口:1024~49151  动态或私有端口:49152~65535

     

    对于socket:

    socket 是网络通信过程中的文件描述符,网络通信过程中的发送接收数据bind,连接都是针对这个socket操作;它就是一个网络文件描述符和IO中的fd一样

    socket 类型

    (1)流式套接字(SOCK_STREAM) :提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复的发送且按发送顺序接收。内设置流量控制,避免数据流淹没慢的接收方。数据被看作是字节流,无长度限制。针对TCP

    (2)数据报套接字(SOCK_DGRAM) :提供无连接服务。数据包以独立数据包的形式被发送,不提供无差错保证,数据可能丢失或重复,顺序发送,可能乱序接收。针对UDP

    (3)原始套接字(SOCK_RAW) :可以对较低层次协议如IP、ICMP直接访问。

     IP地址转换:

    (1) 将strptr所指的字符串转换成32位的网络字节序二进制值

      int  inet_aton(const  char  *strptr,  struct  in_addr  *inp);

    (2) 将网络地址转换成 “.” 点隔的字符串格式 

      char *inet_ntoa(struct in_addr in);

           

    (3)将cp指向的字符串格式的ip转为整数网络字节序的格式   

      in_addr_t inet_addr(const char *cp);

      

     

    (4)转换后的为主机字节序整数  

      in_addr_t inet_network(const char *cp);

    (5)将网络字节序的端口号转为主机字节序格式 uint16_t ntohs(uint16_t netshort);

     大小端问题:针对多字节存储

    网络字节序是大端格式,但是对于不同的主机,其大小端不确定只能通过函数转换,把不同主机上的字节序全部转换为网络字节序格式。

    大端格式:低地址放数据的高位字节。

    小端格式:低地址放数据的低位字节。

     

     字节序转换函数:

    (1)主机字节序到网络字节序

        u_long htonl (u_long hostlong);

        u_short htons (u_short short);

    (2)网络字节序到主机字节序

        u_long ntohl (u_long hostlong);

        u_short ntohs (u_short short);

     

  • 相关阅读:
    10 期末大作业
    09 spark连接mysql数据库
    08 学生课程分数的Spark SQL分析
    07 从RDD创建DataFrame
    06 Spark SQL 及其DataFrame的基本操作
    05 RDD编程
    05 RDD练习:词频统计
    04 RDD编程练习
    Spark RDD编程
    Spark架构与运行流程
  • 原文地址:https://www.cnblogs.com/electronic/p/10969541.html
Copyright © 2011-2022 走看看