您的位置:首页 > 理论基础 > 计算机网络

互联网通信时数据在网络中的传输过程

2018-03-09 23:28 351 查看
                     


                                                                                    图1-1
           (互联网的通信过程如上图粗曲线所示,在TCP/IP协议中是把链路层与物理层一起划分为网络接口层,其中H1,H2表示边缘主机,R1,R2表示路由器,                                    HA表示硬件地址,IP表示IP地址)
      我们知道,网络层使用的是IP地址,,但在实际网络的链路上传送数据帧时,最终必须使用该网络的硬件地址。网络层中的IP数据报(也叫分组)分为首部和数据部分两部分,首部包含了源地址和目的地址(二者均为IP地址)。网络层的分组传到链路层时,在分组的前面添加帧首部,在分组后面添加帧尾部。分组则作为MAC帧的数据部分保存起来,MAC帧的首部又有源地址和目的地址(二者均为MAC地址)。
                  


那么这个MAC帧中的目的地址从哪来的呢,在实际应用中我们这个MAC帧首部的目的地址是根据目的主机的IP地址得来的,不过这个转换过程是通过地址解析协议ARP解决的。地址解析协议ARP解决这个问题的方法是在主机ARP高速缓存中存放一个从IP地址到硬件地址的映射表,并且这个映射表还经常更新。主机中的ARP高速缓存里面有本局域网上的各个主机和路由器的IP地址到硬件地址的映射表。
         当主机A向本局域网上的某个主机B发送IP数据报时,就会先在ARP高速缓存中查看有无主机B的IP地址。如有,就查出B对应的硬件地址,然后把这个硬件地址作为MAC帧的目的地址。再通过局域网把该MAC帧发往此硬件地址。当然也有可能在主机A的ARP高速缓存的映射表中查不到主机B的IP地址到硬件地址的记录。这时,主机A   会自动运行ARP,按以下步骤运行:
      (1)ARP进程在本局域网上广播发送一个ARP请求,请求的内容是:“我的IP地址是xxxxxx,硬件地址是xxxxxx。我想知道IP地址(主机B的IP地址)是xxxxxxx主机的硬件地址。”
        (2)本局域网内所有主机上运行的ARP进程都收到这个ARP请求。
        (3)主机B的IP地址与请求的IP地址一样,就收下这个IP地址,并响应这个请求,单播发送自己的硬件地址给主机A。本局域网内其余的所有主机都不理睬这个ARP请求。
        (4)主机A收到响应后,就在自己的ARP高速缓存中写入主机B的IP地址到硬件地址的映射。
       值得注意的是,ARP是解决同一局域网上的主机或路由器的IP地址和硬件地址的映射问题。如果要找的主机和源主机不在同一局域网上,例如开头的图1-1,主机H1就不能解析出H2的硬件地址(实际上不知道需要知道)。该传输过程的硬件地址和IP地址的变化如下表所示。在路由器R1中有一个路由表,从中找出下一跳路由器R2的IP地址,由ARP解析出R2的硬件地址。
                         


tips:数据链路层扩展以太网是通过网桥实现的,而不是路由器。路由器连接的两个网络之间的网络号是不同的,而网桥连接的网络仍然具有相同的网络号,即仍是一个较大的局域网,所以网桥只是对以太网进行扩展。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: