第七章 Internet基本原理
主要内容
- 概况
- 网络协议
- 路由协议
- 传输层协议
- 常用的接入技术
7.1 概述
Internet (因特网) 全球最大的,开放的、众多网络相互连接而成的特定的计算机网络,前身美国ARPPANET
1986年,美国国家科学基金会(NSF)利用ARPPANET发展起来的TCP/IP协议集,建立了NSFnet广域网,连接100多所大学机构
NSFnet与1990年6月彻底取代ARPPNET而成为Internet主干网
7.2
不同结构的网络实现互联,首先要解决的就是统一编制问题
每个子网,每个主机分配一个全球唯一的地址,就是IP地址
Internet总,由NIC(Internet ‘s Network Information Center)统一负责IP的规划(分层分管不同区域)
IP地址的组成:网络号+主机号
地址表示采用点分隔的十进制表示法,如166.111.68.3
分为5类:A类,B类,C类、D类、E类
子网
为了便于管理和使用,可以将网络分为若干供内部使用的部分,称为子网。
子网怎么划分?
从主机号部分拿出几位作为子网号
在原来IP地址结构的基础上增加一级结构的方法称为子网划分
子网划分后,如何识别不同的子网?
子网掩码,与地址做与运算确定子网号
2.IP分组及转发
使用TCP/IP协议的网络层传输的基本数据单元(PDU)称为IP分组
通过IP分组完成不可靠、无连接的数据传输
IP分组由分组头(IP头)和数据区两部分组成
IP分组格式
IP头包括20个字节的固定部分和变长部分(最长40字节)的可选部分
- 版本域(VERS):4比特,表示与IP分组对应的IP协议版本号,目前广泛使用的是IPv4
- 头部长度(HLEN):IP分组头长度,最小为5,最大为15,单位为32位(最小20字节,最多60字节)
- 服务类型域(Type of Service ,TOS):(IPv4没有用)
3个优先级位
3个标志位:D(Delay) 延时,T(Throughput)吞吐量,R(Reliability)可靠性
2个保留位 - 总长度:占16bit ,指IP分组头和数据部分的总长度,单位:字节,因此数据报最大长度位65535字节
- 标识域:占16bit,用于唯一标识IP分组,用哪个与IP分组的分段和重组
- 标志位:
DF(Don't Fragment):指明IP分组是允许分段,DF=0时允许
MF(More Fragment):指明是否有后续分段,MF=0表示最后一个分片 - 段偏移量(Fragment offset)
用于标明报文片在原始分组中的位置,分段和重组必用
除最后一个段外的所有段的长度必须是8字节(基本段长)的倍数 - 生存期(Time to live)
8比特,指明IP分组在网络中传输的最长时间。IP包每经过一个路由器TTL减1,为0则分组被丢弃。 - 协议域(Protocol)
上层位哪种传输协议,TCP、UDP等 - 头校验和(Header checksum)
只对IP报头进行校验,不校验数据部分
算法:每16位求反,循环相加(进位加在末尾),和再求反
有简单算法(??) - 源地址(Source address)和目的地址(Destination address) 32位IP地址
- 选项(Options)
变长,长度为4字节的倍数,不够则填充,最长为40字节
IP分组的转发
每个IP分组包含目的主机的IP地址
IP地址中的网络地址唯一标识Internet中的一个物理网络
所有连接到相同物理网络的主机和路由器共享其地址中的网络地址部分,它们在这个网络上可以直接通信
Internet中的每个物理网络至少有一个与之相连的路由器
路由器总是具有两个或者两个以上的IP地址,路由器的每一个接口都有一个不同网络号的IP地址
7.2.2与IP地址相关的一组协议
ARP
地址解析协议,解决网络层地址(IP地址)与数据链路层地址(MAC地址)的映射问题
查看本机ARP表 :arp -a
检查测试目的IP是否在本自网内?
是,则通过ARP协议获取目的IP的MAC地址,封装802.3帧,广播发出。
否,则首先读取本机设置的网关IP,通过ARP协议获取网关的MAC地址,广播发出帧。
网关收到帧后,解析帧,取出IP分组,获取目的IP地址,并通过路由表获取下一跳的IP地址(或接口),再通过ARP协议获取下一跳IP地址的MAC地址,封装802.3帧,广播...直到出口网关(B所在子网)
网关收到802.3帧后,解析,取出IP分组,通过ARP协议获取目的IP的MAC地址,封装802.3帧,广播发出
目的PC收到802.3帧后,解析IP分组,取出UDP/TCP报文,转交给上层应用。
在路由器转发分组时,源IP和目的IP始终不变,而源MAC和目的MAC每次转发都会改变
RARP
反向地址解析协议:用于将一个已知的MAC地址映射到IP地址
BOOTP
引导协议,是一种基于UDP的协议
主要用于无盘工作站从服务器得到自己的IP地址、服务器的IP地址、启动映像文件名、网关IP等。工作原理与RARP类似
DHCP(Dynamic Host Configuartion Protocol)
动态地址配置协议,DHCP是BOOTP的扩展,基于客户/服务器模式的,提供了一种动态指定IP地址的配置参数的机制
工作原理:
- 寻找DHCP服务器
- 提供IP租用地址
- 接收IP租用
7.2.3 ICMP
网际控制报文协议(Internet Control Message Protocol)
是IP层协议,用来发送差错报告和控制信息
在IP路由的过程中,若主机或路由器发生异常,便可利用ICMP来传送相关的信息。
分组格式:
ICMP分组是封装在IP分组的数据部分进行传输的
PING命令
Packet Internet Grope ,因特网包探索器,用于测试网络连接量的程序
Ping发送一个ICMP回声请求消息给目的地并报告是否收到所希望的ICMP回声应答
一般的,连续发送4个32字节的ICMP回声请求包,根据是否收到回声应答、以及回声相应时间判断网络的连通性
PING测试
Ping本机IP:检测本机网卡配置是否正常(从网卡出去又回来)。
Ping网关:检测网关路由器是否正常。
Ping远程IP
注意:有些网络设备会拒绝接收Ping包,可以设置
7.2.4 IGMP
Internet 组管理协议,IP层协议,是一种节省带宽的技术,它把一个数据流同时传送给许多个接收者。
IGMP协议用来在ip主机和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
参与ip组播的主机可以在任意位置、任意时间加入或退出直播组
IP组播通常应用在视频点播、网络会议等场合
IGMP协议版本
- IGMPv1
允许主机加入组播组,但没有离开信息。路由器基于超时机制去发现其成员的离开。 - IGMPv2
包含了离开信息,允许迅速向路由协议报告组员终止情况 - IGMPv3
允许主机指定它要接受或阻止的通信流量的主机对象
IGMP分组格式
IGMP类型
- 类型1,由多播路由器发出的查询报文
- 类型2,由主机发出的报告报文(主机主动发送或相应给多播路由器)
IP组播地址
IP采用D类地址来支持多播。每个D类地址代表一组主机。
D类IP地址范围在224.0.0.0到239.255.255.255之间
多播是由特殊的多播路由器来实现,各个多播路由器每分钟发送一个硬件多播信息给子网上的主机,要求他们报告其当前所属的是哪一组。
7.2.5 CIDR
无类域间路由 Classless InterDomain Routing
提出:
- Internet指数增长,IP地址即将用完
- 基于分类IP地址空间的组织浪费了大量的地址
- B类地址很难申请,C类地址的增多使得路由器选择表暴涨
7.2.6 IPv6
提出
- CIDR不能从根本上解决IP地址空间匮乏问题
- 1990年,IETF开始IPv6的工作
- 1993年,进一步讨论、修改后,形成IPv6
- IPv6和IPv4不兼容,但与其他Internet协议兼容,如TCP、UDP、OSPF、BGP、DNS等
- 地址从64位增加到128位(16字节)
设计目标
- 支持几乎无限大的地址空间
- 减少路由表大小,使得路由器能更快得处理包
- 提供更好的安全性,实现IP级安全性
- 支持多种服务类型,并支持组播
- 允许新旧协议共存一段时间
- 协议必须支持可移动主机和网络
IPv6的地址表示
- 16字节地址表示用冒号(:)隔开的8组,每组4个16位进制
IPv6的地址类型
三种基本类型
- 单播(unicast):单播就是传统的点对点通信
- 多播(multicast):多播是一点对多点的通信
- 任播(anycast):这时IPv6增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付给其中一个,通常距离最近的一个。
IPv6数据报的首部
IPv6将首部长度变为固定的40字节,称为基本首部(base header)
将不必须的功能取消了,首部的字段数减少到只有8个
取消了首部的检验和字段,加快了路由器处理数据报的速度
IPv6分组头
- 版本:值为6
- 通信量:区分不同IPv6数据报的类别或优先级
- 流标号:流是互联网上从特定源点到特定终点的一系列数据报,所有数据同一个流的数据报都具有同样的流标号
- 有效载荷长度:指示IP包中40字节包头后面部分的长度,最大值64KB
- 下一个首部:指示扩展包头,若是最后一个包头,则只是传输协议类型(TCP/UDP)
- 跳数限制:IP包的生存时间
- 源地址:16字节定长地址
- 目标地址:16字节定长地址
IPv6分组扩展包头
IPv4到IPv6过渡
- 双协议栈 Dual stack approach
同时安装两种协议,并可完成协议间的互相转换 - 隧道技术 Tunneling
IPv6分组作为IPv4分组的负载在IPv4路由器间传送
双协议栈 源地址和目标地址保持不变
隧道技术封装了新的源地址和目的地址
7.3 Internet 路由协议
7.3.1 Internet 路由基本概念
- 为了便于管理,Internet将整个互联网络划分为相对较小的自治系统(AS ,autonomous system)
- 一个自治系统内的所有网络通常属于一个行政单位(例如一所公司、大学或政府部门)
- 一个自治系统的所有路由器在本自治系统内必须是连通的
Internet 路由协议分类
- 内部网关协议IGP interior gateway protocol
自治系统AS内使用的路由算法,RIP、OSPF - 外部网关协议EGP
exterior gateway protocol
自治系统AS之间使用的路由算法,BGP
RIP 路由信息协议 Routing Information Protocol
是一种分布式的基于距离向量的路由选择协议
距离的定义
- RIP使用条数度量来衡量到达目的站的距离,不能同时使用多种度量,比如时延等
- RIP允许一条路径最多只能包含15个路由器
- “距离”的最大值为16时即相当于不可达。课件RIP只适用于小型互联网
三个要点
- 仅和相邻路由器交换信息
- 交换信息是当前本路由器所知道的全部信息,即自己的路由表
- 按固定时间间隔交换路由信息,如30s
报文格式
优缺点
- 实现简单,开销小
- 网路故障时,要经过较长时间才能将此信息传送到所有路由器
- 限制了网络的规模,它能使用的最大距离为15
- 路由器之间交换完整路由表,随着网络规模扩大,开销也就增加
OSPF 开放最短路径优先 Open Shortest Path First
是一种公开发表的分布式的链路状态协议
要点
- 向本自治系统内所有路由器发送信息(洪范)
- 发送的信息就是与本路由器相邻的所有路由器的链路状态(即本路由器都和哪些路由器相邻,以及该链路的“度量”)
- 支持多种距离衡量尺度,例如,物理距离,延迟等
OSPF的分层路由
- 为了使OSPF能够用于规模很大的网络,OSPF将一个自治系统由划分为若干个更小的范围,叫做区域(areas)
- 每一个区域都有一个32bit的区域标识符(用点分十进制表示)
- 设定一个主干区域(backbone area),标识符规定为0.0.0.0 ,用于连通其他各区域
- 利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个自治系统,这就减少了整个网络上的通信量
- 在一个区域内部的路由器只知道区域的完整网络拓扑,不需要知道其他区域的网络拓扑情况
- OSPF更加适合大规模的网络路由
外部网关路由协议BGP
BGP是不同自治系统的路由器之间的交换路由信息的协议
BGP是一种距离向量路由算法
BGP发言人与会话
- 每个自治系统的管理员要选择至少一个路由器作为该自治系统的 “BGP发言人”
- BGP发言人往往就是BGP边界路由器
- BGP发言人之间要交换路由信息,就要建立BGP会话(session)
IBGP和EBGP
IBGP:用来在AS内部完成BGP更新信息的交换,维护AS内部连通性
EBGP:用来建立AS之间的路由器会话
7.4传输层协议
引入传输层的原因
- 消除网络层的不可靠性
- 向上层屏蔽通信子网的实现细节
- 弥补上层提出要求和下层提供服务间的差异(如需要有序)
作用范围
提供从源端主机到目的端主机的可靠传输
提供进程级的访问能力
两个主机进行通信实际上就是两个主机中的应用程序相互通信
应用程序之间的通信又称为端到端的通信
运输层的另一个重要功能就是复用和分用
面线连接传输层协议的设计
- 分段和组装
网络层PDU长度小于传输层PDU,对传输层PDU进行分段 - 拼接和分割
对传输层PDU进行拼接 - 多路复用和分流
- 流量控制和缓冲管理
- 建立连接和释放连接
7.4.2
7.5 Internet 接入技术
- 基于传统电信网的有线接入
- 基于有线电视网络的接入
- 基于电力网络的接入
- 以太网接入
- 无线接入
- 光纤接入
PSTN 共用电话交换网(Published Switched Telephone Network)
- 利用PSTN通过调制解调器MODEM拨号实现用户接入的方式,下行56Kbps
ISDN 综合业务数字网(integrated service digital network)
- 采用数字传输和数字交换技术,将多种业务复用在一个统一的数字网络中进行传输和处理
xDSL技术
- xDSL是各种DSL(DIgital Subscriber Line,数字用户线路)技术的通称
- xDSL技术在传统的电话网的用户环路上支持对称和非对称传输模式,用于解决网络服务提供商和最终用户间“最后一公里”的传输瓶颈问题
ADSL非对称数字用户环路
- 上行和下行带宽不对称,因此成为非对称数字用户线环路
- 把普通的电话线分离成电话、上行和下行三个相对独立的信道,从而避免了相互之间的干扰
- 在不影响正常电话通信的情况下可以提供最高3.5Mbps的上行速度和最高24Mbps的下行速度
ADSL虚拟拨号
- 不同于模拟电话线上用调制解调器的拨号,而采用Point to Point Protocol over Ethernet 协议
- 拨号后用户需输入用户名和密码,检验通过后就建立一条高速并且是“虚拟”的用户数字专线,分配相应的动态IP地址