当前位置:文档之家› 深入理解IP协议

深入理解IP协议

TCP/IP协议网络层

1. 网络层的作用?

2. 网络层有哪些协议?

3. IP数据包的格式?

4. IP数据包传输的过程?

5. 为什么需要ARP协议?

6. ARP协议通信过程是怎么样的?(ARP协议如何控制网络?)

7. 数据包的最大值?(分片的地方?分片重组的地方?分片的原则?)

8. 数据包在局域网内怎么从一台主机传送到另外一台主机?

9. 数据怎么实现跨网段传输?(路由如何实现跨网段传输?)

10. 什么是默认网关?

11. 代理ARP的作用?

12. 数据跨网段传输时在路由器中的具体情形?(所谓的穿过路由是指什么?)

13. 数据包路由的过程?

14. 为什么需要ICMP协议?(ICMP协议差错控制与TCP差错控制对比)

15. 什么是ICMP协议?

16. ICMP协议有哪些数据包?(Ping程序的实现?trancerouter程序的实现?)

一。网络层的作用:

TCP/IP协议栈的Internet层主要负责处理主机到主机的通信,决定数据包如何交付:是交给网关(路由器)还是交给本地端口。

二。网络层的协议及作用:

网际协议IP:用来路由

网际控制报文协议 ICMP:给IP层提供一定的可靠性

地址解析协议ARP:

反向地址解析协议RARP

三。IP数据包格式:

四。数据包传输的过程

首先,传输层将封装好的数据交给Internet层,Internet层收到数据后,将数据封装成一个IP数据包。

五。为什么需要ARP协议?

IP数据包要想继续向下发送,就必须转化为在物理设备上传输的数据帧。

在物理设备上传输数据时,数据包首先是被网卡接收,如果网卡接收到的数据包的硬件地址与本机不符,则直接丢弃,如果相符,再交由上层协议处理的。而在我们的网络通信中,源主机的应用程序知道目的程序的IP地址和端口号,却不知道目的主机的硬件地址,因此在通讯前必须获得目的主机的硬件地址。ARP协议就起到这个作用。

六。ARP协议通信过程?

每台机器上都维护着一个ARP缓存表,保存着IP地址到MAC地址的映射

主机A要和主机B(192.168.0.1)通信,则先查询主机A中的ARP缓存表,看是否有该记录,如果有,则取出对应MAC地址。

如果缓存中没有该记录,主机A发出ARP请求,询问“IP地址是192.168.0.1的主机的硬件地址是多少”,并将这个ARP请求广播到本地网段(本地网段的任何一个主机都可能是接受者,所以用广播, 广播的目的MAC地址为:FF:FF:FF:FF:FF:FF)主机B收到广播的ARP请求,发现其中的IP地址(192.168.0.1)与本机相符,发送一个ARP应答数据包给源主机,将自己的硬件地址填写在应答包中,主机A接收ARP应答,提取MAC地址,并且将IP和MAC映射存入ARP缓存。

对于其他主机,虽然这个ARP请求可能与它无关,但ARP协议软件也会把其中的源MAC 地址与源IP地址的映射记录下来,这样做能够有效的减少ARP请求在局域网的发送次数。

ARP欺骗的原理:

七。数据包的最大值:

就像前面我们说的,IP数据包要想继续向下发送,就必须转化为在物理设备上传输的数据帧。对于网络硬件来说,能传输的物理帧的大小是有物理上限的。这个上限值就是最大传输单元MTU。{令牌环网4500字节,以太网1500字节}。当数据包的比MTU大的时候,数据包是无法封装成帧在网络上传输的,当数据包比MTU小的时候,显然又会浪费网络带宽。

因此,IP数据包最理想的大小应该是相连网络的MTU相符。又因为,不同的网络MTU 可能不同,当数据包需要经过较小MTU的网络时,我们需要将大数据包划分成更小的数据包(分片),以确保他们能通过无力处理大IP数据包的网络。

分片示意图:

原始数据包:

分片以后数据包

段位移0

段位移600

分片的优点:可以让数据包穿过MTU多变的网络。

缺点:分片后形成的多个IP数据包,每个都单独路由,又因为重组发送在目标主机,且又一个分片丢失,则整个原始IP数据包丢失,增大丢包风险。

八。数据在局域网中是如何传播的?

我们知道,在局域网中,无论是按何种拓扑结构组网,还是按何种方式来处理介质访问权限,任何两个节点之间都存在实际的线路链接。

因此,我们通过ARP协议,得到目标主机的MAC地址后,在数据链路层将IP数据包封装为数据帧,将数据帧发送到本地网段上,即可将数据帧成功的交给目标主机(目标主机网卡收到数据帧后,判断MAC地址是否为本网卡MAC地址)。

九。数据是怎么样实现跨网段传输的?

这就需要路由器通过IP协议来完成此工作了。

下面我们通过一个实际的例子来看:主机A:192.168.1.1 需要和主机B:172.16.1.1通信。

两个主机并不在同一个局域网,并没有实际的物理线路将他们链接起来。

这个时候,我们在两个网段之间增加一个中转点(路由器),路由器上插有多个网卡,可以同时通过网卡E0接入局域网1 (192.168.1.0/24),同时通过网卡E2接入局域网2(172.168.1.0/24)。这样,局域网1中的机器A(192.168.1.1)要和局域网2中的机器B (172.16.1.1)通信。A将数据将数据包发送到本网段,路由器的E1口接收数据包,再将其通过E2口发送到网段B,主机B即可成功接收来自主机A的信息了。即可实现数据的跨网段传输。

十。什么是默认网关?

默认网关是TCP/IP中的一个配置参数,它是处于本地网络上的某个路由器的接口的IP地址。

在有默认网关的情况下,目的地为非本网段的数据包,源主机都发送给默认网关,由默认网关将数据包正确的发送给目标主机。

在上图中,网络192.168.1.0/24的默认网关为192.168.1.254,目的地为非本地网段的数据包,都发送给这个IP对应的Router,再由该Router转发给目的主机。

十一:什么是代理ARP?

在没有默认网关的情况下,我们也可以使用代理ARP技术来实现让路由器完成数据的跨网段传输功能。

如果我们将网络中所有主机的目的地都设为本地网络,那么当有要发送给外网IP的数据包时,源主机依然会认为目的地为本网段,而使用目的IP发出ARP请求。这个时候,对于目的IP不是本网段的ARP请求,连接在本网段的路由器使用自己的MAC地址回复这个ARP 请求。于是主机A将数据发到本地网段,连在本地网络的路由器接收数据,路由器再将数据转发到正确的目的地。(其实运行代理ARP的路由器就相当于默认网关)

代理ARP的优点:简化了主机的管理(不用再每个主机都单独配置默认网关了)

缺点:因为针对每个局域网,外网IP都是很多的,所以:

相关主题