网络编程基础知识

网络基本知识
    
1.协议
    协议是使交换信息的两个部分之间相互理解的一组规则、约定和数据结构的集合。
    在现在的网络应用中使用最广泛的协议是TCP/IP协议
    
ISO
OSI七层协议模型
    应用层    :为应用程序提供服务并规定应用程序中通信相关的细节,ftp,tftp,smtp,ssh,telnet...
    表示层    : 主要负责数据格式的转换(设备固有格式   <==>    网络格式)
    会话层    :主要建立和断开通信连接
    传输层    :起着可靠传输的作用
    网络层    :将数据传输到目标地址,主要负责寻址和路由选择
    数据链路层:负责物理层面上的互连的节点之间的通信传输
    物理层    :负责0、1比特流与电压的高低、光的闪灭之间的互换
    
根据七层协议模型,TCP/IP协议可分为四层
    
    应用层
    传输层        TCP        UDP
    网络层        IPv4    IPv6     
    网络接口层    
    
    
2.常用协议
    1.TCP协议
        传输控制协议,是一种面向连接的协议,类似打电话
    2.UDP协议
        用户数据报协议,是一种无连接的协议,类似发短信
    3.IP协议
        互联网协议,是上述两种协议的底层协议,当需要开发新的通信协议时,才需要关注
        

3.IP地址
    IP地址    就是通信设备在互联网中的唯一地址标识
    IP地址本质上就是一个:由32位二进制组成的整数(IPv4)
                        :由128位二进制组成的整数(IPv6)
    
    日常生活中采用点分十进制表示法来描述IP地址,也就是将每个字节的二进制转为十进制的整数,不用同的整数之间用小数点分隔
    0x01020304        ==>1.2.3.4
    
    2^32个地址,怎么管理?
    将IP地址分为两部分:网络地址和主机地址
    网络地址:属于哪个网络
    主机地址:网络中主机的编号
    
    根据网络地址和主机地址位数的不同分为四类:
    A:    0 + 7位的网络号 +     24位主机地址
        0.0.0.0   ~        127.255.255.255 
    B:    10 + 14位网络号    +    16位主机地址
        128.0.0.0 ~        191.255.255.255 
    C:    110 + 21位网络号    +    8位主机地址
        192.0.0.0 ~        223.255.255.255 
    D:    1110 + 28位多(组)播地址
        224.0.0.0 ~        239.255.255.255
    E:    备用
    
    查看IP地址的命令
    ipconfig
    ifconfig
    
3.子网掩码
    子网掩码主要用于划分IP地址中的网络地址和主机地址,也可以用于判断两个IP是否在同一局域网中
    具体分法:
    IP地址 & 子网掩码 = 网络地址
    例:
        172.30.100.64        IP
    &    255.255.255.0         子网掩码
    --------------------------------
        172.30.100.0 ---网络地址
                   64---主机地址
        
    
    例:
        IP:166.111.160.1 和    166.111.161.45
  子网掩码:255.255.254.0 
    解析:
        166.111.160.1 
        255.255.254.0 &
        ---------------
        166.111.160    网络号

        166.111.161.45 
        255.255.254.0 &
        ---------------
        166.111.160 网络号
        
    总结:上面两个IP地址在同一个局域网中
    
    166.111.160.1     /23     
    166.111.161.45    /23     此处最后的23表示前23位为网络号
    
4.端口号
    IP地址 -- 定位到具体的某一台主机/设备
    端口号 -- 定位到主机/设备上的某一个进程    
    本质上就是一个16位的无符号整数    unsigned short,范围是0~65535
    其中0-1024之间的端口号被系统使用,建议从5000开始使用
    
    网络编程中需要提供两个信息:IP地址+端口号 
    
5.字节序(多字节整数)
    小端模式:主要指将低位字节数据保存在低位内存地址的系统
    大端模式:主要指将低位字节数据保存在高位内存地址的系统
    例:
        x86 32平台下:
        union un 
        {
            int i;
            char c;
        };
    
        un u;
        u.i = 0x12345678;
        printf("%x",u.c);//??        => 78
    
    
    
    
    
    
    
    


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值