•网络互联方案是:面向连接的(Connect-oriented)和无连接的(Connectionless)。
面向连接的解决方案
–要求在通信的源端和目标端之间建立一条逻辑通路,一般称为虚电路(Virtual Circuit)
–源端和目标端之间通信时的所有信息都通过该通路传输,这与交通图中送信过程的第一种方式类似
–这种方式看似简单,易于实现,但其最大的缺点是如果不能保证虚电路中沿途经过的节点都能可靠地发送数据,就可能使网络崩溃
–由于互联网所连网络的复杂性和多样性,因而很难保证所有节点都能可靠地发送数据。
无连接的互联网解决方案
–在源端和目标端之间不建立一条逻辑通路
–送到网络中的每个分组带有完整的目标主机地址,收到分组的节点(主要是路由器)根据目标地址和当前网络状况(如通信量等),选择一条合适的线路把分组发送到接近目标端的下一个节点,通过多个节点的转发,最终把分组送达目标节点
–使用这种方式时,由源端顺序送出的各分组,由于每个分组在网络中可能经过不同的路径到达目标端,所以先发出的分组不一定就先到达目标端
–另外,也不能保证每个分组都能可靠地到达目标端。
Internet使用的就是无连接的方式,由IP协议来实现。解决了异构网络互连的问题
(1) IP协议是一种无连接(Connectionless)不可靠(Unreliable)的数据报传输协议
(2) IP互联网中的计算机没有主次之分,所有主机地位平等(因为惟一标识它们的是IP地址),当然从逻辑上来说,所有网络(不管规模大小)也没有主次之分
(3) IP互联网没有确定的拓扑结构
(4) 在IP互联网中的任何一台主机,都至少有一个独一无二的IP地址,有多个网络接口卡的计算机每个接口可以有一个IP地址,这样一台主机可能就有多个IP地址。有多个IP地址的主机叫多宿主机(Multi-home Host)。
(5) 在互联网中有IP地址的设备不一定就是一台计算机,如IP路由器、网关等,因为与互联网有独立连接的设备都要有IP地址。
•IP地址用32位二进制数表示,从数学上计算,应该一共有4 294 967 296个IP地址。
•在点分十进制数表示法中,每个位组用0~255之间的一个十进制数表示,因此最小的IP地址值为0.0.0.0,最大的地址值为255.255.255.255。
•然而由于有相当一部分IP地址有特殊用途,因而实际主机可用的IP地址要比这个范围小很多。
IP地址用来标识互联网中的主机,但少数IP地址有特殊用途,不能分配给主机
如果IP地址的32位二进制数全为“1”,则这样的地址用于对本网广播通信。也就是说,如果一台主机发送的数据报,其目标IP地址为255.255.255.255,则该数据报被送到本网中的每一台主机。
网络地址为127的地址是一个保留地址,用于网络软件测试或本机进程间通信。发送到这种地址的数据报不输出到线路上,而是立即被返回,又当作输入数据报在本机内部进行处理,所以将这种地址称为回送(Look Back)地址。在任何网络上不可能出现网络地址为127的数据报在传输,它一般只用来对本机协议的正确性进行测试。
全“0”的IP地址表示本网络上的本主机。
子网
1)在现有的三类网络的基础上将网络作进一步划分所得到的网络成为子网。即在内部可以直接通信的IP主机的集合
(2)每一个子网是一个完全独立的网络,子网之间,子网与一般的网络之间必须通过路由器作为网关来实现互联。
(3)划分子网有利于提高地址空间的实际利用率;在以太网的环境下有利于提高子网内的传输带宽。
(4)路由器通过子网掩码识别子网的地址。
•如果子网占用的位数越多,子网内的主机就越少
究竟在一个IP地址中哪些位用来表示网络号,哪些位用来表示子网号,以及哪些位用来表示主机号呢,这就要使用子网掩码(Subnet Mask)来标识,子网掩码用32位二进制数表示,常用点分十进制数格式来书写,掩码中用于标识网络号和子网号的位置为1,主机位为0。
IP数据报格式
版本号ipv4或ipv6
头长度,整个报头的长度,接收端通过此域可以计算出报文头在何处结束及从何处开始读数据
服务类型,
总长度字段是指整个IP数据报的长度,以字节为单位。
生存时间指定了数据报可以在网络中传输的最长时间。在实际应用中为了简化处理过程,把生存时间字段设置成了数据报可以经过的最大路由器数。当该字段的值减为0时,数据报就被丢弃,并发送ICMP报文(2.4节介绍)通知源主机,这样可以防止进入一个循环回路时,数据报无休止地传输。
校验和用16位二进制数表示,这个域用于协议头数据有效性的校验,可以保证IP报头区在传输时的正确性和完整性。
当一个IP数据报要通过链路层进行传输时,如果IP数据报的长度比链路层MTU大,IP层就需要对将要发送的IP数据报进行分片,把一个数据报分成若干个长度小于或等于链路层MTU的IP数据报,这个过程称为分片(Fragmentation)。分片通常由路由器进行。分片后的IP数据报与原来未分片的IP数据报头部有两点主要不同:标志和片偏移。
当分了片的IP数据报被传输到最终目标主机时,目标主机要对收到的各分片重新进行组装,以恢复成源主机发送时的IP数据报,这个过程叫IP数据报的重组。
Internet控制报文协议(ICMP)
•当IP数据报在传输中发生差错时,互联网中的路由器使用ICMP协议把错误或有关控制信息报告给源主机
•ICMP协议是一个用于差错报告和报文控制的协议。
ICMP差错报文都是由路由器发送到源主机的, ICMP差错报文只提供IP数据报在传输过程中的差错报告,并不规定对各类差错应采取什么样的处理措施。
ICMP差错报文不享受任何优先权,也没有特别的可靠性保证措施,与普通的IP数据报一样进行传输,传输过程中可能被丢失、损坏,甚至被抛弃。
在有些情况下,为了防止在网络中产生大量的ICMP差错报文(广播风暴),影响网络的正常工作,即使发生差错,也不会产生ICMP差错报文。
地址解析
TCP/IP协议族专门设计了用于地址解析的协议ARP(Address Resolution Protocol),它可以把一个IP地址映射成对应的物理地址(MAC地址)。另外,对于无法保存IP地址的主机(如无盘工作站),TCP/IP协议族中也提供了从物理地址到IP地址映射的反向地址解析协议RARP(Reverse Address Resolution Protocol)。
IP层及以上是逻辑地址,链路层只能识别物理地址,当向另一台主机传输时要获得其物理地址,如果只知道IP地址就可以用ARP协议解析。
工作原理:由知道目标主机IP地址但不知道物理地址的主机发出一份ARP请求广播报文,报文中填有发送方硬件地址、IP地址和目标方IP地址,操作代码为1。目标方硬件地址填的是广播地址,该网络内所有主机都能收到该报文。目标方主机收到报文,识别出自己的IP地址,发送一个单播ARP应答报文。请求方收到ARP应答报文后,获得目标方物理地址,就可以进行IP数据报发送。
IP数据报的路由选择
路由选择的本质是发现、比较、选择通过网络到达任何目的IP地址的路径的过程,该功能一般由路由器来实现
•IP路由选择是逐跳(hop-by-hop)进行的。IP并不知道到达任何目的的完整路径。所有的IP路由选择只为数据报传输提供下一站路由器的IP地址。
路由选择算法
路由选择算法(Routing Algorithm)工作在网络层,它负责确定对所收到的IP数据报应通过哪条传输线传出(转发)。
(1) 路由器从收到的IP数据报中取出目标IP地址。
(2) 搜索路由表,寻找能与目的IP地址匹配表目。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口,路由选择过程结束;如果找不到,则执行下一步。
(3) 搜索路由表,把目标IP地址与子网掩码逐位求“与”后,寻找能与目的网络号相匹配的表目。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口,路由选择过程结束;如果找不到,则执行下一步。
(4) 搜索路由表,寻找标为“默认(Default)”的表目。如果找到,则把报文发送给该表目指定的下一站路由器;如果找不到,则本次选路失败,发送一个“目标不可达”的ICMP报文给源主机
静态路由是由互联网网络管理员根据网络的拓扑结构和连接方式人工建立的。
动态路由指互联网中的路由器可以通过自身的学习,自动修改和刷新路由表。通过相邻路由器之间的通信告知对方每个路由器当前连接的网络;路由器上有个进程称为路由守护程序(Routing Daemon),它运行选路协议;路由守护程序选择最佳路由是根据一定的选路策略(Routing Policy)来进行的;动态路由的刷新要通过执行路由选择协议来实现
路由选择协议
–距离向量协议
•最小跳距
•距离->跳距;向量->地址
–链路状态协议
•每条链路有一个状态值
•路由选择的标准是构成该路径的所有链路的度量总和最小