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来增加高速缓存的内容。

原文地址:https://www.cnblogs.com/sslblog/p/5651354.html