TCP/IP协议栈与数据包封装图文教程
想一想,前面讲了以太网帧中的最小数据长度为46字节,不足46字节的要用填充字节补上,那么如何界定这46字节里前多少个字节是IP、ARP或RARP数据报而后面是填充字节?
5. IP地址与路由
IPv4的IP地址长度为4字节,通常采用点分十进制表示法(dotted decimal representation)例如0xc0a80002表示为192.168.0.2。Internet被各种路由器和网关设备分隔成很多网段,为了标识不同的网段,需要把32位的IP地址划分成网络号和主机号两部分,网络号相同的各主机位于同一网段,相互间可以直接通信,网络号不同的主机之间通信则需要通过路由器转发。
过去曾经提出一种划分网络号和主机号的方案,把所有IP地址分为五类,如下图所示(该图出自[TCPIP])。
36.9. IP地址类
A类 0.0.0.0到127.255.255.255
B类 128.0.0.0到191.255.255.255
C类 192.0.0.0到223.255.255.255
D类 224.0.0.0到239.255.255.255
E类 240.0.0.0到247.255.255.255
一个A类网络可容纳的地址数量最大,一个B类网络的地址数量是65536,一个C类网络的地址数量是256。D类地址用作多播地址,E类地址保留未用。
随着Internet的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址,导致B类地址很快就分配完了,而A类却浪费了大量地址。这种方式对网络的划分是flat的而不是层级结构(hierarchical)的,Internet上的每个路由器都必须掌握所有网络的信息,随着大量C类网络的出现,路由器需要检索的路由表越来越庞大,负担越来越重。
针对这种情况提出了新的划分方案,称为CIDR(Classless Interdomain Routing)。网络号和主机号的划分需要用一个额外的子网掩码(subnet mask)来表示,而不能由IP地址本身的数值决定,也就是说,网络号和主机号的划分与这个IP地址是A类、B类还是C类无关,因此称为Classless的。这样,多个子网就可以汇总(summarize)成一个Internet上的网络,例如,有8个站点都申请了C类网络,本来网络号是24位的,但是这8个站点通过同一个ISP(Internet service provider)连到Internet上,它们网络号的高21位是相同的,只有低三位不同,这8个站点就可以汇总,在Internet上只需要一个路由表项,数据包通过Internet上的路由器到达ISP,然后在ISP这边再通过次级的路由器选路到某个站点。
下面举两个例子:
表 36.1. 划分子网的例子1
IP地址
140.252.20.68
8C FC 14 44
子网掩码
255.255.255.0
FF FF FF 00
网络号
140.252.20.0
8C FC 14 00
子网地址范围
140.252.20.0~140.252.20.255
表 36.2. 划分子网的例子2
IP地址
140.252.20.68
8C FC 14 44
子网掩码
255.255.255.240
FF FF FF F0
网络号
140.252.20.64
8C FC 14 40
子网地址范围
140.252.20.64~140.252.20.79
可见,IP地址与子网掩码做与运算可以得到网络号,主机号从全0到全1就是子网的地址范围。IP地址和子网掩码还有一种更简洁的表示方法,例如140.252.20.68/24,表示IP地址为140.252.20.68,子网掩码的高24位是1,也就是255.255.255.0。
如果一个组织内部组建局域网,IP地址只用于局域网内的通信,而不直接连到Internet上,理论上使用任意的IP地址都可以,但是RFC 1918规定了用于组建局域网的私有IP地址,这些地址不会出现在Internet上,如下表所示。
10.*,前8位是网络号,共16,777,216个地址
172.16.*到172.31.*,前12位是网络号,共1,048,576个地址
192.168.*,前16位是网络号,共65,536个地址
使用私有IP地址的局域网主机虽然没有Internet的IP地址,但也可以通过代理服务器或NAT(网络地址转换)等技术连到Internet上。
相关文章
- 本文将详细介绍TCP为什么需要进行三次握手,需要深入了解的朋友可以参考下2012-11-19
- 有internet协议版本(TCP/IPv4)及internet协议版本(TCP/IPv6),这些称之为传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WAN)设计的2013-06-04
- 这篇文章主要为大家介绍了什么是tcp?tcp协议的基础知识有哪些?与udp的区别在哪里?以下将详细介绍tcp的基础知识,需要的朋友可以参考下2014-09-16
- 本文来探讨一下TCP协议方面的一些认识及实践2012-10-25
- 本文详细来探讨TCP建立拆除连接的知识2012-10-25
- 这篇文章主要为大家介绍了如何解决TCP窗口大小的调节与拥塞控制的办法,有图有步骤,很详细,需要的朋友可以参考下2014-09-17
- 这篇文章主要介绍了图解TCP通信三次握手和四次分手,对正在学习TPC通信的同学会有些帮助,需要的朋友可以参考下2014-09-24
- 最常见的是TCP和UDP端口,这是用来在互联网上的计算机之间的数据交换,3688/udp端口使用服务类型简单的推- S- S简单的推协议,基础概念不是很了解的朋友可以参考下本文2013-11-20
- 这篇文章主要为大家介绍了网络协议之tcp协议,TCP三次握手与四次断开是怎么的一种情况呢,下面我们来看看观察TCP三次握手与四次断开,需要的朋友可以参考下2015-04-29
- 这篇文章主要介绍了图解TCP/IP协议,帮助大家轻松学会TCP/IP协议,需要的朋友可以参考下2015-12-16
最新评论