TCP/TP协议族
TCP/IP 不是一个协议,而是一组专业化协议。TCP/IP协议族可被大致分为应用层、传输层、网际层和网络接口层4层(由于不想7层模型那么严格,所有也有人把它分为5层)。对应关系如下图所示:
1 应用层
TCP/IP的应用层大致对应OSI模型的应用层表示层和会话层。应用通过本层协议利用网络,常见的网络协议有FTP、TFTP、HTTP、SMTP、DHCP、NFS、Telent、DNS和SNMP等。具体使用场景如下:
- FTP(File Transport Protocol 文本传输协议) 主要用于网络上两台计算机相互传输文件。
- TFTP(简单文本传输协议) FTP的简化版,主要针对小文本传输设计的,只能写入和获取文件,不能列出目录和认证,传输数据为8位。
- HTTP(Hypertext Transfer Protocol 超文本传输协议)用于从WWW服务器传输超文本到本地浏览器的传输协议。可以使浏览器更加高效,使网络传输减少,不仅可以保障计算机正确快速的传输超文本文档,还可以确定传输文档那一部分优先显示。
- SMTP(Simple Mail Transfer Protocol 简单邮件传输协议)建模在FTP文件传输协议上的一种邮件服务,主要要用于传输系统之间的邮件信息并提供与来信有关的通知。
- DHCP(Dyanmic Host Configuration Protocol 动态主机配置协议) 主要分为两个部分,一个是服务器,一个是客户端;所有的IP网络设定数据都由DHCP服务器集中管理,并负责处理客户端DHCP的要求;客户端会使用服务器分配下来的IP环境数据。DHCO通过“租约”的概念有效且动态的分配客户端的TCP/IP设定。DHCP分配IP的地址可以分为3种方式,分别是固定分配,动态分配和自动分配。
- NFS(Net File System 网络文件系统) 是FreeBSD支持的文件系统中的一种,允许一个系统在网络上与他人共享目录和文件,通过使用NFS,用户可以访问远程系统上的文件。
- Telnet(远程登录协议)登录的仿真程序,主要用于访问远程主机系统
- DNS(Domain Name System 域名系统)主要用于将域名解析成IP。
- SNMP(Simple Network Management Protocol 简单网络管理协议) 主要是为了解决Internet上路由管理问题提出的,它可以在IP、IPX、AppleTalk、OSI及其他用到的传输协议上被使用。SNMP事实上是指一系列网络管理规范的集合,包括系统本身、数据结构定义和一些相关概念。目前大多数网络管理系统和平台都是基于SNMP的。
2、传输层
TCP/IP的传输层大致对应于OSI的传输层,主要是TCP和UDP,这些协议负责提供流控制、错误校验和排序服务。所有的服务请求都使用这些协议。
TCP(Transport Contrl Protocol 传输控制协议)TCP/IP协议族中最重要的协议之一,它在IP协议提供的不可靠数据服务继承上采用了重发技术,为应用程序提供了一个可靠的、面向连接的、全双工的数据传送服务。一般用于传输数据较少,且对可靠性要求相对较高的场合。
UDP(User Datagram Protocol 用户数据协议)一种不可靠的无连接的协议,可以保障应用程序进程间的通信。与TCP相比较,UDP是一种无连接的协议,它的错误检测功能弱的多。主要用于传输数据量大,对可靠性要求不高,且要求速度块的场合。
3、网际层
TCP/IP的网际层对应于OSI模型的网络层,包括IP、ICMP、IGMP、ARP、和RARP这些协议处理信息的路由及主机地址解析。
网际层的另一个重要服务是在相互独立的局域网上建立互联网络,即网际网。网间的报文来往根据它的目的IP地址通过路由器传到另一网络。
- IP(Internet Protocol 网际协议) 所提供的服务通常被认为是无法连接的和不可靠的,因此把差错检测和流量控制之类的服务授权给了其他的各层协议,这正式TCP/IP能高效工作的一种重要保障。网际层的功能主要由IP来提高,除了提供端到端的分组分发功能外,IP还提供了很多扩充功能,例如:为了克服数据链路层对帧大小的限制,网络层提供了数据分块和重组功能,这使得很大的IP数据包能以较小的分组在网络上传输。
- ARP (Address Resolution Protocol 地址解析协议) 用于动态的完成IP地址向物理地址的转换。物理地址通常是指主机的网卡地址(MAC地址),每一网卡都有唯一的地址。
- RARP (Reverse Address Resolution Protocol 反向地址解析协议) 动态的完成物理地址向IP地址转换
- ICMP(Internet Control Message Protocol 网际控制报文协议) 主要用于发生差错的报文协议,由于IP协议是一种尽力传送的通信协议,即传送的数据可能丢失、重复、延迟或乱序传递,所以IP协议需要一种尽量避免差错并能在发生差错时报告的机制。
- IGMP(Internet Group Management Protocol 网际管理协议) 允许Internet 主机参加多播,也即是IP主机用作向相邻多目组成员的协议。多目路由器是支持组广播的路由器,向本地网络发生IGMP查询,主机通过发送IGMP报告来应答查询。组播路由器负责将组播包转发到网络中所有组播成员。
4、网络接口层
TCP/IP的网络接口大致对应于OSI模型的数据链路层和物理层,TCP/IP协议不包含具体的物理层和数据链路层,只定义了网络接口层作为物理层的接口规范。网络接口层处于TCP/IP协议的最底层,主要负责管理为网络准备数据所需的全部服务程序和功能。该层处理数据的格式化并将数据传输到网络电缆,为TCP/IP实现基础,其中可包含IEE802.3的CSMA/CD、IEEE802.5的TokenRing等。
IP地址与子网划分
1、IP地址分配
IP协议为每一台主机分配一个唯一的逻辑地址------IP地址。IP地址的长度为32位,它分为网络号和主机号两部分。网络号标识一个网络,一般网络号由国际互联网络信息中心统一分配。主机号用来标识网络中的一个主机,它一般由网络管理员来具体分配。
由于将IP地址分成了网络号和主机号,所有就要决定每部分包含多少位,网络号的位数之间决定了可以分配的网络数(计算方法: x为网络号的位数);主机号的位数则决定了网络中最大的主机数(计算方法: -2 x为主机号位数),然而由于整个因特网所包含的网络规模可能比较大,也可能比较小,设计者最后聪明的选择了一种灵活的方案,将IP地址空间划分成不同的类别,每一类具有不同的网络号位数和主机号位数。如图所示
- 网络地址:主机号全0表示网络地址(不能作为源地址、目标地址)。
- 广播地址:主机号全1表示广播地址(不能作为源地址)
- 子网掩码:网络号部分全为1,主机号部分全为0;用于计算网络地址(只需将IP地址和子网掩码做与操作,即可得到网络地址)
- 保留地址:为了满足内网的使用需求,保留了一部分不在公网使用的IP地址
IP地址范围及相应的主机数:
不在公网使用的IP地址:
2、子网划分与CLSM(可变长子网掩码)
子网划分产生原因:随着网络的应用深入,IPv4采用的32为IP地址设计限制了地址空间的总容量,出现了IP地址紧缺的现象,而IPv6(采用128位IP地址设计)还不能够很块地进入应用,这时就需要采取一些措施来避免IP地址的浪费。以原先的A、B、C3类地址划分,经常出现B类太大、C类太小或者B类和C类都太大的应用场景,因此就出现了“子网划分”和“可变长子网掩码(VLSM)”两种技术。
子网划分:出自RFC950的定义,它的主要思想就是将IP地址划分成3个部分;网络号、子网号、主机号。也就是说将原先的IP地址的主机号部分分成子网号和主机号两部分。说到底也就是利用主机号部分继续划分子网。子网可以用“子网验码”来识别。例如,我们可以将一个C类地址划分子网 如图:
也就是将最后8位----原来的主机号,拿出两位用来表示子网,则可以产生两个子网(01和10,因为11代表广播,00代表网络,他们不能用来表示具体的网络),每个子网可包含62个主机(000001~111110,同样的000000代表网络、111111代表广播被保留)。需要注意的是,此时,子网掩码就发生了变化,不再是255.255.255.0(11111111 11111111 11111111 00000000),而是255.255.255.192(11111111 11111111 11111111 11000000)。
从C类地址中划分子网时就可以参照下图来进行
变长子网掩码(VLSM)产生的原因:在采用了子网划分技术之后,虽然在一定程度上缓解了地址空间容量受限这个问题,但又引发了一个新的问题:每个子网的主机数相等也难以满足实际的需要,而且还引起了新的IP地址浪费,VLSM技术正式针对这个问题的行之有效的解决方案。
VLSM是一种产生不同大小的子网的网络分配机制(在RFC1878中有详细说明),VLSM用直观的方法在IP地址后加上“/网络及子网掩码比特数”来表示。例如:192.168.123.0/26就表示前26位表示网络号和子网号,即子网掩码位26位长,主机号为6为长,另外,利用VLSM技术还可以多次划分子网,即分完子网后,继续根据需求划分子网。
例如:某单位有4个部门。需要建立4个子网,其中部门1有50台主机,部门2有25台主机,部门3、4各有10台主机,有一个内部C类地址192.168.1.0。下面我们一起来看采用VLSM划分的过程。
- 首先中断最大的网络,即部门1,需要50台主机。,因此需要6为主机号,剩下26为则是网络号、子网号。而最后一个8位段还剩下2位,可以表示00、01、10、11 4个子网,但是11和00有特殊应用,即只有10和01两个子网,因此得到192.168.1.64/26、192.168.1.128/26两个子网
- 假设将192.168.1.64/26分给部门1,则现在需要处理部门2、3、4。这三个部门中部门2的网络最大,需要25台主机, 所以需要5位主机号,因此可以分为192.168.1.128/27和192.168.1.160/27两个子网
- 然后按照这个思路划分下去,可以得到如图所示:
3、路由汇聚(超网技术)
前面提到了使用子网划分技术来解决网络过大,需要拆分成几个网络的需求。但是有些情况是网络过小,需要扩充一个网络的大小,这就需要用到路由汇聚技术。
路由汇聚(Route Summary)是一种有效简化路由表信息的手段,它将多个子网汇合并一个超网,这样就能用一条数据表示多个子网。工作原理较为复杂。超网地址一般都包括子网地址。
4、IP地址技巧总结
- 基本子网划分:取网络号: A类保留第一位,后面全0 (如IP地址10.1.0.0,网络号10.0.0.0)B类保留前两位后面全0(如IP 地址:131.2.3.0,网络号:123.2.0.0)C类保留前3位,后面全0(如IP地址 192.168.1.5 网络号:192.168.1.0)
- 复杂子网划分:取网络号:首先将掩码为255部分的对应部分照抄,然后对非255的部分,将掩码和IP均转换成二进制进行“与”运算。例如IP地址为192.168.1.100,子网掩码为255.255.255.240,则前三位照抄,最后一部分先进行二进制后做“与”运算(0110 0100AND1111 0000=0110 0000,即96),得到192.168.1.96
- 给定IP地址和掩码,计算网络/子网广播地址时,可根据规则:“网络/子网号是网络/子网中的最小数字,广播地址是网络/子网中的最大数字,网络中有效、可分配地址是介于网络/子网号和广播地址之间的IP地址”
- 1)基本子网划分,取广播地址:掩码为255的部分照抄,为0的部分改为255,例如 IP地址是131.1.0.4,子网掩码为255.255.0.0,则广播地址为131.1.255.255
- 2)复杂子网划分 取广播地址:对应255部分照抄,0部分转为255,对其其他部分则现源256减去该值得到x,然后找到与IP地址中对应数最接近的x的倍数y,再将y减去1即可。例如:IP地址131.4.101.129,子网掩码为255.255.252.0,首先将255、0的部分处理完,得到131.4._.255,然后用256-252=4,与101最接近的4的整数倍是104,因此得到广播地址131.4.103.255.
- 复杂子网划分 获取有效子网数。例如IP地址是140.140.0.0,子网掩码是255.255.240.0,则先找到特殊的掩码为240,转换成二进制 1111 0000 因此得知主机位为4,再用为基数进行增长;140.140.0.0,140.140.16.0,140.140.32.0,...140.140.248.0。