**
计算机网络(三)网络层(网际层IP)
**
**
(1)IP
(a)IP是TCP/IP协议族中最为核心的协议,所有的TCP,UDP,ICMP和IGMP数据都以IP数据报格式传输。
(b)IP提供不可靠,无连接的数据报传送服务。
(c)不可靠-不能保证IP数据报能成功地到达目的地,IP只提供最好的传输服务。任何要求地可靠性须由TCP提供。
(d)无连接-IP不维护任何关于后续数据报地状态信息,每个数据报都是独立地。
(e)IP数据报可以不按发送顺序接收(每个数据报都是独立选择路由,所以路线可能不同,到达顺序也不同)。
(f)IP首部长为20字节。(一字节=8bit)
(g)IP地址与MAC地址的区别
(2)IP路由选择
(a)如果目的主机与源主机直接相连(点对点链路)或都在一个共享网络(以太网或令牌环网)上,那么IP数据报就直接送到目的主机上。否则,主机把数据报通过路由器转发数据报。
(b)路由器通过路由表来转发数据报
(c)路由表包含信息-目的IP地址,下一站路由器IP地址,标志 。
(d)如果数据报不能被传送,那么会向数据报地应用程序返回一个“主机不可达”或“网络不可达”地错误。
(e)总结:
当IP从上层收到数据报后,搜素路由表,根据最终目的地址决定下一条路由器地址,最终到达目的地。
当数据报被送到以太网驱动程序,会作为一个帧被送到主机上。IP数据报中目的地址为IP地址,在链路层首部中地目的地址是48bit的以太网接口地址(MAC地址,是根据ARP协议获得的)。如果这个主机收到数据报后,发现目的IP地址不是本机的任一地址,并这个主机具有路由器功能,则继续搜素路由表,对数据报继续进行转发,直到到达最终目的地。
IP路由选择是通过逐跳来实现的。数据报在各站的传输过程中目的I P地址始终不变,但是封装和目的链路层地址在每一站都可以改变。大多数的主机和许多路由器对于非本地网络的数据报都使用默认的下一站路由器。
(3)子网寻址
(a)用来区分IP地址中的网络地址和主机地址,当主机地址全为0时,表示该网络地址,全为1则表示为该网络的广播地址
(b)子网结构(这里举例一个B类地址)
(c)子网掩码能有序区分和管理不同的子网,用以节约IP地址的浪费(划分子网)。
(d)172.20.1.0/26(26代表主机ID的掩码地址长度,从前往后26位,172代表属于B类IP地址,则子网掩码为255.255.255.192)
(e)子网掩码是一个32位地址,对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。
(f)子网掩码通常有十进制和二级制两种表现形式,255.255.0.0用二进制表示则为1111111.11111111.00000000.00000000,其中,前面2个字节的16位“1”表示网络号,后面2个字节的16位“0”表示主机号。
(g)相同子网掩码下的IP地址可以直接通信。
(h)举例(将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台,怎么确定子网掩码)
①700=1010111100,则二进制为10位,主机地址占10为,则从后往前,将后10位全改为0,前面全为1
②子网掩码255.255.255.255变为 11111111.11111111.11111100.00000000,也即255.255.252.0。
③子网掩码最终为:255.255.252.0。且为168.195.0.0的700台主机的子网掩码。
(4)网际协议IP
(a)是TCP/IP体系中最主要的协议之一。与之配套使用的协议(地址解析协议ARP,网际控制报文协议ICMP,网际组管理协议IGMP)
① ICMP:IP协议并不是一个可靠的协议,它不保证数据被送达。ICMP(网络控制报文)协议能在传送IP数据包发生错误时(比如主机不可达,路由不可达等等),把错误信息封包,然后传送回给主机。给主机一个处理错误的机会,这 也就是为什么说建立在IP层以上的协议是可能做到安全的原因。
② IGMP:用来在IP主机与其直接相邻的组播路由器之间建立,维护组播成员关系。当一台主机加入到一个新的组时,它发送一个IGMP消息到组地址以宣告它的成员身份,多播路由器和交换机就可以从中学习到组的成员。利用从IGMP中获取到的信息,路由器和交换机在每个接口上维护一个多播组成员的列表。
(b)ARP协议(为IP地址到对应的硬件地址之间提供动态映射)
① IP地址为逻辑地址,如果发送方发送的数据报想要达到接收方,则必须要知道IP地址对应的硬件地址,ARP的主要任务就是通过IP地址动态映射相对应的硬件地址(MAC地址)。
② ARP操作(如下图):
1)应用程序FTP客户端调用函数gethostbyname(3)把主机名(bsdi)转换成32 bit的IP地址。这个函数在DNS(域名系统)中称作解析器
2) FTP客户端请求TCP用得到的IP地址建立连接。
3) TCP发送一个连接请求分段到远端的主机,即用上述IP地址发送一份IP数据报
4) 如果目的主机在本地网络上(如以太网、令牌环网或点对点链接的另一端),那么IP数据报可以直接送到目的主机上。如果目的主机在一个远程网络上,那么就通过IP选路函数来确定位于本地网络上的下一站路由器地址,并让它转发IP数据报。在这两种情况下,IP数据报都是被送到位于本地网络上的一台主机或路由器。
5) 假定是一个以太网,那么发送端主机必须把32 bit的I P地址变换成48 bit的以太网地址。从逻辑Internet地址到对应的物理硬件地址需要进行翻译。这就是ARP的功能。
6) ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机,这个过程称作广播。(ARP请求数据帧中包含目的主机的IP地址(主机名为bsdi),其意思是“如果你是这个IP地址的拥有者,请回答你的硬件地址。”)
7) 目的主机的ARP层收到这份广播报文后,识别出这是发送端在寻问它的IP地址,于是发送一个ARP应答。这个ARP应答包含IP地址及对应的硬件地址。
8) 收到ARP应答后,使ARP进行请求—应答交换的IP数据报现在就可以传送了。则发送主机就可以开始发送IP数据报到目的主机。
③ ARP代理
1)如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程称作委托ARP或ARP代理。
2)这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机,而事实上目的主机是在路由器的“另一边”。路由器的功能相当于目的主机的代理,把分组从其他主机转发给它。