网络中IP数据报传输的过程

来源:互联网 发布:汽车导航一体机端口 编辑:程序博客网 时间:2024/06/08 19:28

IP数据报需从主机A上传送到主机B上,主机A首先查找路由表;
if(目的主机是与自己在同一个网段内)
{
    主机A查询自己的ARP表;
    if(有该目的IP地址对应的MAC地址的记录)
    {

将该MAC地址作为目的MAC地址,封装数据帧,传送给主机B;

    }
    else
    {
          发送一个ARP请求广播给网段内的所有主机,来查询该目的IP地址的MAC地址;

收到ARP请求报文的各个主机如果发现该IP地址是自己的IP地址,则返回一个ARP应答报文告诉主机A自己的MAC地址;

如果发现不是自己的IP地址,则丢弃该报文。

主机A收到这个应答报文后,就按照返回的MAC地址,将IP数据包封装成帧,然后发送到主机B上;

(补充:一般为了减少网络中的报文量,通信双方会维护一个各自的ARP表,把一次通信中获得IP MAC地址对保存在缓冲的ARP表中,但是ARP有一个老化机制,删除一段时间内不用的IP MAC地址对。)

    }
}
else if(发现了能与目的网络号相匹配的表目)
{

则把报文发给改表目指定的下一站的路由器或直接连接的网络接口;

报文发送到下一站时,数据帧的目的MAC地址是下一个站路由器或者网络接口的MAC地址,而IP头部的目的IP地址是主机B的IP地址;

这里要指出的是:ARP请求报文以下一站路由器或网络接口的IP地址为目的IP地址,寻找真的目的MAC地址。换句话,ARP请求报文只负责IP据报传输过程中每一跳中的目的MAC地址查询。

}
else
{

寻找标为“默认”的表目,把报文发送给该表目指定的下一站路由器;

报文发送到下一站时,数据帧的目的MAC地址是下一个站路由器的MAC地址,而IP头部的目的IP地址是主机B的IP地址。

}
数据帧在每两个网络设备间传递时,是转换成bit流在传输媒体上传输。链路层提供了如停止等待协议等机制,控制了bit流在传输媒体上的无错传输。

转自:http://blog.csdn.net/beyond_cn/article/details/9421025

0
0 0
原创粉丝点击