zoukankan      html  css  js  c++  java
  • 0707

    IP:网际协议

    IP

    提供不可靠无连接的数据报传送服务

    不可靠:不能保证IP能够顺利到达目的地

    无连接:每个数据报都是相互独立的,IP数据报可以不按照发送的顺序进行接收

    IP首部

    IP首部的长度为20个字节(如果不包括选项字段)

    每一行有24个字节,一共五行。

    传输的时候按照big endian的字序进行传输(网络字节序),如果有little endian字节序,那么需要先转成网络字节序。

    IP头结构的定义

     

    /*IP头定义,共20个字节*/
    typedef struct _IP_HEADER 
    {
     char m_cVersionAndHeaderLen;       //版本信息(4),头长度(4)
     char m_cTypeOfService;            // 服务类型8
     short m_sTotalLenOfPacket;        //数据包长度
     short m_sPacketID;              //数据包标识
     short m_sSliceinfo;               //分片使用
     char m_cTTL;                  //存活时间
     char m_cTypeOfProtocol;          //协议类型
     short m_sCheckSum;             //校验和
     unsigned int m_uiSourIp;          //ip
     unsigned int m_uiDestIp;          //目的ip
    } __attribute__((packed))IP_HEADER, *PIP_HEADER ;

    IP路由的选择

    1.搜寻路由表,寻找能与目的IP地址完全匹配的表目,如果找到,将报文发送给相应的下一站的路由器或者相连的网络接口。

    2.搜寻路由表,寻找能与目的网络号相匹配的表目,如果找到,那么久发送给下一站的路由器或者相连的网络接口

    3.搜寻路由表,寻找默认(default)的表目,执行类似的发送操作。

    注意:在发送到下一级的路由的时候,IP层的地址不会被改变,但是数据链路层的首部地址会改变为下一级的路由地址。

    子网寻址

    IP地址 网络号+主机号 变为 网络号+子网号+主机号

    改变原因:A类地址与B类地址分配了过多的主机数目。一般都用B类地址进行子网划分

    子网掩码

    主机可以知道有多少用于主机号,子网号。

    子网掩码是32bit,网络号与子网号为1,主机号为0.

    作用:通过IP地址以及子网掩码可以知道计算机在网络中的位置。

    查询IP的方法:windows命令为:ipconfigLinux命令为:ifconfig

    Netstat命令:提供系统上的接口信息,-i打印接口信息,-n打印出IP地址

    显示路由表命令:Windows命令为 route print ;linux命令为 route

    地址解析协议:ARP

    ARP作用:

    32Internet地址映射为48位以太网地址(或者其他的网络类型)

    从逻辑Internet地址到对应的物理硬件地址需要进行翻译,这就是ARP的功能。

    ARP发送一份称作ARP请求的以太网数据帧给以太网上所有主机,这个过程称作广播,这个数据帧中包括了目的主机的IP地址和其他信息。

    目的主机的ARP层在接收到这份广播报文后,识别出这是发送端在询问它的以太网地址,于是它发送一个ARP应答,这个ARP应答中包含IP地址以及对应的硬件地址。

    在请求端收到ARP应答之后,就可以传送IP数据报了。

    点对点的链路不使用ARP

    ARP高速缓存

    ARP高速缓存中存放了Internet地址到硬件地址的映射记录,高速缓存中每一项的生存时间一般为20分钟。可以使用arp命令来检查ARP高速缓存,-a可以显示高速缓存中的所有内容。

    ARP分组格式

    分为两个部分:以太网首部(14字节)和ARP请求/应答(28字节)。具体每一块的功能还是看书第四十页。

    ARP分为直接请求以及经过路由器的ARP请求,经过路由器的arp请求叫做ARP代理。路由器在接收到源地址的请求后,将发送一个ARP应答,该应答中的目的地址是路由器的物理地址。主机再把数据发送给路由,再由路由将数据发送给目的端。

    免费ARP

    免费ARP指的是主机发送ARP查找自己的IP地址,这种有两个方面的作用;

    1.一个主机可以通过它来确定另一个主机是否设置了相同的IP地址

    2.如果发送免ARP主机正好改变了硬件地址,那么就可以使其他主机高速缓存中旧的硬件地址进行相应的更新。

    ARP命令

    -a显示高速缓存中的所有内容

    超级用户 -d来删除ARP高速缓存中的某一项内容。

    -s来增加高速缓存的内容。

  • 相关阅读:
    Kernel panic
    elasticsearch5.4 安装篇
    nginx 切割日志文件
    dl 320e gen8 v2 安装2008 r2 系统
    idea开发配置
    红黑树
    二叉搜索树
    Object
    nginx
    docker
  • 原文地址:https://www.cnblogs.com/sslblog/p/5651354.html
Copyright © 2011-2022 走看看