第4章 网际层

第4章 网际层

寻址与发送

计算机经过网络接口设备好比网络适配器与网络进行通讯,网络接口设备具备惟一的物理地址,用于接收发向该地址的数据。像以太网网卡这样的设备对于上层协议层的细节是一点也不了解的,它不知道IP地址,它只是监听是否收到了数据帧,发现其中目标地址与本身物理地址相符的帧,并把这个帧传递给上层协议栈。缓存

这种物理寻址方式适合单个局域网网段。由不间断介质链接在一块儿的若干台计算机利用物理地址就能够实现所需的功能。网络

可是,在路由式网络中不能利用物理地址实现数据传输,由于根据物理地址进行传输所需的过程不能跨越路由接口来运行。即便这样是可行的,根据物理地址传输数据也是很是麻烦的,由于内置在网卡里的固定物理地址不能在地址空间上引入逻辑结构测试

所以,TCP/IP隐藏了物理地址,以一种逻辑化的寻址方式对网络进行组织。这个逻辑寻址方案由网际层的IP协议维护。ARP是另外一种网际层协议,它维护一个表格,用于把IP地址映射到物理地址。这个ARP表链接了IP地址与网卡物理地址。调试

发送数据的过程:排序

  1. 若是目的地址与源地址是同一个网段,源计算机就把数据包直接发送给目的计算机。IP地址被ARP解析为物理地址,数据被直接发送到目的网络适配器
  2. 若是目的地址与源地址不在一个网段上,就执行以下过程。
    1. 直接将数据报发送到网关。网关是位于局域网网段的一个设备,可以把数据报转发到其余网段。网关地址被ARP解析为物理地址,数据被发送到网关的适配器
    2. 数据报经过网关被路由到较高级别,再次重复上述过程。若是目的地址在这个新网段,数据就被发送到目的,不然数据报就会被发送到另外一个网关。

网络协议(IP)

IP协议提供了一种分层的、与硬件无关的寻址系统,具备在复杂的路由式网络中传递数据所需的服务。每一个网络适配器都有一个惟一的IP地址接口

IP地址分为两个部分:ip

  • 网络ID
  • 主机ID内存

  • A类地址使用地址前8位做为网络ID
  • B类地址使用前16位做为网络ID
  • C类地址使用前24位做为网络ID路由

IP报头字段

每一个IP数据报都以一个IP报头开始。源计算机构造这个报头的目的是TCP软件利用IP报头中封装的信息处理数据。IP报头的最小长度是20字节。报头字段以下:同步

  • 版本:这个4位的字段表示所使用的IP版本。目的IP版本是4,相应的二进制是0100
  • 网际报头长度(IHL):这个4位字段表示IP报头以32字为单位的长度。
  • 服务类型:源IP可以指定特殊的路由信息。这个8位字段的主要用途是对等待经过路由器的数据报区分优先级
  • 总长度:这个16位的字段表示IP数据报的长度,单位为字节。
  • 标识:这个16位的字段是一个依序变大的数值,分配给源IP发出的信息。当传递到IP层的消息太大而不能放到一个数据报里时,IP会把消息拆分到多个数据报,并对这些数据报排序分配相同的标识号。
  • 标记:这个字段表示字段分段可能性。
  • 分段位移:这个13位的字段是一个数值,被赋予每一个连续的字段。目的设备的IP利用这个值重组分组。
  • 生存时间(TTL):这个字段表示数据报在被抛弃以前可以保留的时间或路由器跳数。每一个路由器都会检查这个字段,而且至少把它减去1,或数据报在路由器延迟的秒数。当这个字段的值为0时,数据报会被抛弃。

IP寻址

IP地址是一个32位的地址,被分为4个8位段(八位组)。人们不习惯使用32位的二进制地址或8位的二进制八位组,因此IP地址最经常使用的表达形式是“点分十进制形式”。在这种形式里,每一个八位组都以相应的十进制数值表示,4个十进制数值以句号分割。

IP地址一部分是网络ID,另外一部分是主机ID。划分网络ID和主机ID最初方案是使用地址分类。最近出现的CIDR无类别寻址下降了地址分类的重要性,但做为理解TCP/IP寻址的一个出发点,地址分类仍是值得讨论的。

地址分类系统把IP地址划分到不一样的地址类。绝大多数IP地址属于如下几类

  • A类地址前8位表示网络ID,后24位表示主机ID
  • B类地址前16位表示网络ID,后16位表示主机ID
  • C类地址前24位表示网络ID,后8位表示主机ID

关于D类和E类地址:

  • D类地址用于多播。多播是把一个消息发送到网络的子网。D类地址最前面的4位是1110
  • E类网络是实验性质的,通常不用于生产环境。最前面5位是11110。

怎么判断二进制地址的前几个位说明了地址属于哪一类?

  • 若是32位的地址以0开头,它就是A类地址
  • 若是32位的地址以10开头,它就是B类地址
  • 若是32位的地址以110开头,它就是C类地址

特殊的IP地址

全0的主机ID表示网络自己。好比IP地址129.152.0.0是指网络ID为129.152的B类网络。

全1的主机ID表示广播。广播是向网络中所有主机发送的消息。IP地址129.152.255.255就是网络ID为129.152的B类网络的广播地址

以十进制127开头的地址是环回地址。目的地址为环回地址的消息是由本地软件发送的,其目的在于测试TCP软件是否工做正常

RFC1597保留了一些IP地址范围用于私有网络,其设想是,这些私有网络不会链接到internet,因此没必要要求是惟一的。目前,这些私有地址范围常常用于“网络地址转换”设备背后的受保护网络。

  • 10.0.0.0~10.255.255.255
  • 172.16.0.0~172.31.255.255
  • 192.168.0.0~192.168.255.255

因为私有地址范围没必要与其他地址同步,因此整个地址范围对于任何网络都是可用的,网络管理员利用这些私有地址能够得到更大的子网空间和可用地址范围。

地址解析协议(ARP)

网段上每台主机在内存中都保存着一个被称为ARP表或ARP缓存的表格,其中包含网段上其余主机IP与其物理地址对应关系。当主机须要向网段上的其余主机发送数据时,它会查看ARP缓存来得到目的的物理地址。若是要接收数据的地址当前并不存在于ARP缓存,主机就会发送一个名为ARP请求帧的广播。

ARP请求帧包含未解析的IP地址,还包含发送这个请求的主机IP和物理地址。网段上的其余主机接收到这个ARP请求,未解析IP地址的主机会向发出请求的主机发送主机的物理地址。这个新的IP地址与物理地址的对应关系就会添加到请求主机的ARP缓存里。

通常来讲,ARP缓存里的条目在必定时间以后会过时,条目就会被从表里删除。当主机须要向这个条目所包含的IP地址发送数据时,解析过程会再次重复

逆向ARP(RARP)

RARP的含义是逆向ARP,也就是ARP的逆过程。当咱们知道IP地址而不是物理地址时,可使用ARP;而在知道物理地址而不知道IP地址时,则应使用RARP。

Internet控制消息协议(ICMP)

发送到远程计算机的数据一般会通过一个或多个路由器,这些路由器在把数据传输到最终目的地的过程当中可能发生多种问题。路由器利用Internet控制消息协议(ICMP)消息把问题通知给源IP。ICMP还有用于其余调试和排错的功能。

下面列出了最多见的ICMP消息:

  • Echo Request(回显请求)和Echo Reply(回显应答):ICMP常常被用于测试,好比测试链接的ping命令实际上就是在使用ICMP。ping向某个IP地址发送一个数据报,而且要求目的计算机在响应中返回所发送的数据
  • Source Quench(源抑制):若是一台高速计算机向远程计算机发送大量数据,可能使路由器产生过载。这时路由器能够利用ICMP向源IP发送Source Quench消息,让它下降发送发送数据的速度。
  • Destination Unreachable(目的不可到达):若是路由器收到一个不能传递的数据报,源IP就会返回一个Destination Unreachable消息
  • Time Exceeded(超时):当数据报因为TTL为0而被抛弃时,ICMP就会向源IP发送这个消息
  • Fragmentation Needed(须要分段):若是一个数据报的“Don't Fragment”位被设置为1。
相关文章
相关标签/搜索