计算机网络(网络层)
2016-04-21 12:26
573 查看
1.网际协议IP
网际协议IP是TCP/IP体系中两个最重要的协议之一,也是最重要的因特网网际标准协议之一。与IP协议配套使用的还有另外三个协议。这三个协议也都是属于网络层。
地址解析协议ARP
网际控制报文协议ICMP
网际组管理协议IGMP
在上图中画出了这三个协议和网际协议IP的关系。在这一层中,ARP画在最下面,因为IP要经常使用这个协议。为什么说IP要经常使用ARP协议,这里我们就先要弄懂主机的IP地址和硬件地址的区别。首先从层次的角度看,物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是属于一种逻辑地址。
我们知道,在发送数据的时候,数据是由高层下到低层,才在通信链路上传输的。使用IP地址的IP数据包一旦交给了数据链路层就被封装成MAC帧。MAC帧在传送时使用的源地址和目的地址都是硬件地址,这两个地址都写在MAC帧的首部中。(硬件地址、物理地址、MAC地址一般来说都是一个含义)
总之,IP地址放在IP数据报的首部,而硬件地址则放在MAC帧的首部。在网络层和网络层以上使用的是IP地址,而数据链路层及以下使用的是硬件地址。
如果两个主机A、B之间通过路由器互连起来,主机A向主机B发送数据,那么在经过路由器阶段的时候,网络层中的IP数据报的首部中的源地址和目的地址都不会发生变化。但是对于数据链路层的MAC帧首部中的源地址和目的地址则会发生变化。
ARP协议的用途是为了从网络层使用的IP地址解析出在数据链路层使用的硬件地址。当主机A要向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址。
也有可能查不到B的IP地址,这种情况下,主机A就会自动运行ARP,然后按照以下步骤找出主机B的硬件地址。
(1)ARP进程在本地局域网上广播一个ARP请求分组
(2)在本地局域网上的所有主机上运行的ARP进程都收到此ARP请求分组
(3)主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下这个ARP的请求分组,并向主机A发送ARP响应分组,并在这个响应分组中写入自己的硬件地址。
(4)主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。
ARP把保存在高速缓存的每一个映射地址项目都设置生存时间。凡是超过生存时间的项目就从高速缓存中删除掉。
网际协议IP是TCP/IP体系中两个最重要的协议之一,也是最重要的因特网网际标准协议之一。与IP协议配套使用的还有另外三个协议。这三个协议也都是属于网络层。
地址解析协议ARP
网际控制报文协议ICMP
网际组管理协议IGMP
在上图中画出了这三个协议和网际协议IP的关系。在这一层中,ARP画在最下面,因为IP要经常使用这个协议。为什么说IP要经常使用ARP协议,这里我们就先要弄懂主机的IP地址和硬件地址的区别。首先从层次的角度看,物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是属于一种逻辑地址。
我们知道,在发送数据的时候,数据是由高层下到低层,才在通信链路上传输的。使用IP地址的IP数据包一旦交给了数据链路层就被封装成MAC帧。MAC帧在传送时使用的源地址和目的地址都是硬件地址,这两个地址都写在MAC帧的首部中。(硬件地址、物理地址、MAC地址一般来说都是一个含义)
总之,IP地址放在IP数据报的首部,而硬件地址则放在MAC帧的首部。在网络层和网络层以上使用的是IP地址,而数据链路层及以下使用的是硬件地址。
如果两个主机A、B之间通过路由器互连起来,主机A向主机B发送数据,那么在经过路由器阶段的时候,网络层中的IP数据报的首部中的源地址和目的地址都不会发生变化。但是对于数据链路层的MAC帧首部中的源地址和目的地址则会发生变化。
ARP协议的用途是为了从网络层使用的IP地址解析出在数据链路层使用的硬件地址。当主机A要向本局域网上的某个主机B发送IP数据报时,就先在其ARP高速缓存中查看有无主机B的IP地址。如有,就在ARP高速缓存中查出其对应的硬件地址,再把这个硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址。
也有可能查不到B的IP地址,这种情况下,主机A就会自动运行ARP,然后按照以下步骤找出主机B的硬件地址。
(1)ARP进程在本地局域网上广播一个ARP请求分组
(2)在本地局域网上的所有主机上运行的ARP进程都收到此ARP请求分组
(3)主机B的IP地址与ARP请求分组中要查询的IP地址一致,就收下这个ARP的请求分组,并向主机A发送ARP响应分组,并在这个响应分组中写入自己的硬件地址。
(4)主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。
ARP把保存在高速缓存的每一个映射地址项目都设置生存时间。凡是超过生存时间的项目就从高速缓存中删除掉。
相关文章推荐
- Android网络编程(六)OkHttp3用法全解析
- TCP连接的“三次握手”与“四次挥手”
- Java使用HttpURLConnection请求异常:java.net.SocketException: Software caused connection abort: recv failed
- OSI 七层协议参考模型 与 TCP/IP协议 实现网络模型
- 网络延时 201503-4
- 网络爬虫介绍
- 计算机网络面试题
- 前端进阶-让你升级的网络知识
- HTTP中Get与Post的区别
- HTTP 错误 500.19- Internal Server Error 错误解决方法
- php HttpOnly
- php tcpdf error
- 视频流网络透传分析
- OSI模型和TCP/IP网络模型
- 检查http流量
- HTTP详解(3)-http1.0 和http1.1 区别
- Python urllib2模块post/get 下载网络资源
- HTTP详解(2)-请求、响应、缓存
- HTTP详解(1)-工作原理
- 网络:WebDav 的终端配置步骤