380 likes | 585 Views
第三章 网络互联协议. ICMP. IGMP. ARP. RARP. TCP/IP 模型中的协议和网络. 应用层. 端口号. 23. 20. 25. 161. 69. 传输层. Telnet. TFTP. SMTP. FTP. SNMP. ICMP. UDP. IP. TCP. ARP. 协议 ID. 6. 17. 1. 网络层. 类型码. 0800H. 0806H. 数据链路层. 以太网软件. MAC 地址. 以太网硬件. 物理层. TCP/IP 协议多路复用. Internet 的组成.
E N D
ICMP IGMP ARP RARP TCP/IP模型中的协议和网络
应用层 端口号 23 20 25 161 69 传输层 Telnet TFTP SMTP FTP SNMP ICMP UDP IP TCP ARP 协议ID 6 17 1 网络层 类型码 0800H 0806H 数据链路层 以太网软件 MAC地址 以太网硬件 物理层 TCP/IP协议多路复用
Internet的组成 • Internet在网络层可以被看成是一组通过几个主干(backbone)相互连接的子网或自治系统AS(autonomous system)。
IP(Internet Protocol)协议 • IP协议是TCP/IP协议族的核心,传输层上的数据信息和网络层上的控制信息都以IP分组的形式传输,IP实现的是不可靠无连接的数据报服务。 • 从两个方面讨论IP协议: • IP地址 • IP分组格式
IP地址(IP address) • IP地址是Internet上唯一标识一个节点(接口)的地址;32位(4个字节)点分隔十进制格式(如202.38.64.22);分为五类(class),最高几位为类型标志,其余位分为网络标识(NetID,用于唯一标识一个网络)和主机标识(HostID,说明主机在网络中的编号,全“0”表示网络地址,全“1”表示广播地址)两部分。(注:IPv6的地址为16个字节,共有212831038,整个地球表面上每平方米可分配71023个地址) • 一些特殊的IP地址如下图:
1/2 6 1/4 1/8 1/16 1/32 五种类型的IP地址
Internet的IP地址和AS号码分配 • Internet的IP地址和AS号码分配是分级进行的。ICANN (The Internet Corporation for Assigned Names and Numbers,1998.10创建),负责全球Internet上的IP地址进行编号分配的机构,原来是由IANA (Internet Assigned Numbers Authority,美国政府相关)负责。 根据ICANN的规定,ICANN将部分IP地址分配给地区级的Internet注册机构 (Regional Internet Registry),然后由这些RIR负责该地区的登记注册服务。 现在,全球一共有3个RIR:ARIN,RIPE,APNIC。 • ARIN (American Registry for Internet Numbers)主要负责北美地区业务。 • RIPE NCC (Réseaux IP Européens Network Coordination Centre)主要负责欧洲地区业务。 • APNIC (Asia-Pacific Network Information Center)管理亚太地区国家的IP地址和AS号码分配。 • 在RIR之下还可以存在一些 IR,如国家级IR (NIR),普通地区级IR (LIR)。这些IR都可以从RIR那里得到Internet地址及号码,并可以向其各自的下级进行分配。如下图所示。
Internet的IP地址和AS号码管理结构 ICANN ASO (The Address Supporting Organization) Regional Internet Registries ARIN RIPE NCC APNIC (Possible future RIRs) NIR National Internet Registries CNNIC LIP LIP Local Internet Registries CERnetNIC ISP ISP ISP Internet Service Providers USTCNIC EU EU EU EU EU EU End Users
公共和私有IP地址 • 公共地址(Public Address) • 要在一个公共性网络上传输数据,必须使用公共地址,这些地址在网上是唯一的。 • 如Internet上,需向ISP申请分配公共地址,各ISP都要从更上一层的地址注册机构申请。 • 私有地址(Private Address) • 不能直接与Internet连接的地址,解决公共地址短缺的问题。 • RFC 1918规定了3种私有地址: • 1个A类地址:10.0.0.0 • 16个B类地址:172.16.0.0到172.31.0.0 • 256个C类地址:192.168.0.0到192.168.255.0 • 内部网使用,通过代理(Proxy)或网络地址翻译(Network Address Translation)等系统将私有地址转换成公共地址,从而连接到Internet。
子网(subnet)和子网掩码(netmask) • 在网络中引入子网,就是将主机标识域进一步划分成子网标识和主机标识,通过灵活定义子网标识的位数,可以控制每个子网的规模。子网的划分具体通过子网掩码来实现。 • 子网掩码为32bit长度的二进制数,高位部分为全“1”,用来标识NetID;低位部分为全“0”,用来标识HostID。 • 子网掩码举例: A类:255.0.0.0 B类:255.255.0.0 C类:255.255.255.0 1/2个C类:255.255.255.128 1/4个C类:255.255.255.192
子网划分类型 • 静态子网划分(static subnetting): • 同一网络的所有子网使用相同的子网掩码。 • 简单、易于维护。但浪费地址。 • 变长子网划分(variable length subnetting): • 同一网络中分配的子网可以使用不同的子网掩码。 • 地址分配灵活。
IP分组格式 • IP分组由分组头和数据域两部分组成,分组头由长度为20字节的固定部分和可变长度的选项部分组成。
IP分组头中的可选项(options) • 用于后续版本中作新的开发,已经有一些可选项的定义,但不是所有的路由器都支持这些可选项。
ICMP协议 • ICMP(Internet Control Message Protocol)协议主要用于发送网络故障消息及进行网络检测的一些控制消息。 • ICMP各种类型的消息都被封装在IP分组中进行传输,IP分组头中的协议字段为1。 • 一般在ICMP故障消息中同时携带引起错误的IP分组的头以及数据域中的前8个字节(包含端口号和报文序号),以便接收方与相应的用户进程进行联系。
type code checksum (contents depends on type and code) 1字节 1字节 2字节 ICMP消息格式 • type用于指明消息的类型(共定义了15种消息);有些消息还要用code来进一步说明;checksum对ICMP消息进行校验。
type(0/8) code(0) checksum identifier sequence number optional data 实例——ping程序 • ping程序是利用ICMP的类型0消息(回声请求,echo request)和类型8消息(回声相应,echo reply)来完成测试功能(距离和负载)的。identifier放置发送进程的进程号;sequence number从0开始,每发一个回声请求,序号加1。
ARP协议 • ARP(Address Resolution Protocol)协议用于在广播网络中将IP地址(逻辑地址)映射到物理地址(MAC地址)。 • 通常每个主机中都设有一个ARP表(缓冲区),将收集到的IP地址-MAC地址对存入其中(寿命为几秒种到几十分钟)。只有对ARP表查找失败后再发ARP请求分组。
ARP的请求和响应 • ARP实体将一个包含目的IP地址的ARP请求分组封装在一个广播帧中广播到本地网中。 • 所有接收到ARP请求分组的ARP实体检查其中的目的IP地址是否与自己相同。若相同,则直接发回(知道源地址)一个包含本机IP地址和MAC地址的ARP响应分组。否则丢弃ARP请求分组。
ARP请求/响应包的格式 2字节 ARP头 ARP数据 长度视具体而定
RARP协议 • RARP(Reverse Address Resolution Protocol)协议用于将物理地址(MAC地址)映射到IP地址(逻辑地址)。过程如下: • 无盘工作站启动时,将一个封装有RARP请求分组(包含本机的MAC地址)的广播帧广播到本地网络。 • 网络上的RARP服务器(保存有网上所有的MAC地址-IP地址对信息,由网络管理员更新)收到RARP请求分组后,查找地址映射文件,将找到的匹配IP地址以RARP响应分组发回给请求主机。 • RARP的包格式同ARP,只是操作码不同。 • 存在多台RARP服务器时,以收到的第一个RARP响应分组为准。
BOOTP协议 • BOOTP(bootstrap protocol)协议允许主机在引导时动态地配置自己。 • BOOTP在功能上基本同RARP。RARP使用数据链接层的广播帧,不能跨过路由器;而BOOTP 是一个高级的协议,它使用UDP(端口67用作服务器公用端口接受请求,端口68用作客户主机公用端口接受响应),可以经由路由器转发。 • BOOTP通过一个最小的IP堆栈进行初始化,向BOOTP服务器获取足够的信息,并下载(通常使用TFTP)所需的引导程序代码。
BOOTP报文格式 MAC头 IP头 UDP头 0 8 16 24 31 操作码 硬件类型 硬件地址长度 跳步数 事务ID 秒数 标志 客户IP地址 你的IP地址 BOOTP 报文 服务器IP地址 网关IP地址 客户硬件地址(16字节) 服务器主机名(64字节) 引导文件名(128字节) 特定厂商信息(64字节)
BOOTP报文格式说明 • 操作码:1——boot请求;2——boot响应。 • 硬件地址长度规定硬件地址的字节长度。 • 跳步数用于标识循环。 • 事务ID用来匹配一个boot请求和响应。 • 秒数表示自客户启动一个boot进程以来的秒数。 • 标志字段的最高位用作广播标志;其余位都为0,保留为将来使用。 • 客户IP地址:由客户设置成已知的IP地址或全0。 • 你的IP地址:若客户IP地址为全0,则由服务器设置。 • 服务器IP地址:由服务器设置。 • 网关IP地址:用于BOOTP转发时的中继代理地址。 • 客户硬件地址:由服务器设置,用来标识已注册的客户正在被引导。 • 服务器主机名:可选的以0x00结尾的服务器主机名。 • 引导文件名:服务器返回一个以0x00结尾的引导文件名。 • 特定厂商信息:前4个字节为99,130,83,99(magic cookie),后跟一系列其他参数(如缺省网关、域名服务器、子网掩码等)。
BOOTP转发 • BOOTP转发是路由器在子网上转发BOOTP请求的一种机制。 • 被配置成用来转发BOOTP请求的路由器称为BOOTP中继代理(BOOTPrelay agent)。 • BOOTP中继代理在端口67上接受来自BOOTP客户的广播BOOTPREQUEST,并单播转发到一个或多个BOOTP服务器, BOOTP服务器通过一个单播BOOTPREPLY响应BOOTP中继代理, BOOTP中继代理根据广播标志以广播或单播方式将BOOTPREPLY发给客户。
动态主机配置协议(DHCP) • DHCP(Dynamic Host Configuration Protocol)提供了一种把配置信息(包括临时或永久性网络地址和特定主机的配置参数)从DHCP服务器传递到TCP/IP网络上的主机的机制。 • DHCP基于BOOTP,增加了自动分配可重用网络地址的能力和额外的配置选项。 • DHCP可与BOOTP客户互操作。
DHCP报文格式 MAC头 IP头 UDP头 0 8 16 24 31 操作码 硬件类型 硬件地址长度 跳步数 事务ID 秒数 标志 客户IP地址 你的IP地址 DHCP 报文 服务器IP地址 网关IP地址 客户硬件地址(16字节) 服务器主机名(64字节) 引导文件名(128字节) 选项(长度可变)
DHCP报文格式说明 • 操作码:1——boot请求;2——boot响应。 • 硬件地址长度规定硬件地址的字节长度。 • 跳步数用于标识循环。 • 事务ID用来匹配一个boot请求和响应。 • 秒数表示自客户启动一个boot进程以来的秒数。 • 标志字段的最高位用作广播标志;其余位都为0,保留为将来使用。 • 客户IP地址:由客户设置成已知的IP地址或全0。 • 你的IP地址:若客户IP地址为全0,则由服务器设置。 • 服务器IP地址:由服务器设置。 • 网关IP地址:用于BOOTP转发时的中继代理地址。 • 客户硬件地址:由客户设置。 • 服务器主机名:可选的以0x00结尾的服务器主机名。 • 引导文件名:服务器返回一个以0x00结尾的引导文件名。 • 选项:基本同BOOTP中的特定厂商信息。
DHCP报文类型 • DHCPDISCOVER • DHCPOFFER • DHCPREQUEST: • DHCPACK • DHCNPACK • DHCPDECLINE • DHCPRELEASE • DHCPINFORM
客户初始化TCP/IP限制版,并广播请求以确定DHCP服务器的位置和IP地址的申请。客户初始化TCP/IP限制版,并广播请求以确定DHCP服务器的位置和IP地址的申请。 所有具有可使用的有效IP地址的DHCP服务器向客户发出一个提议。 DHCP客户 DHCP服务器 客户从收到的第一个提议中选定IP地址,并广播一条请求租用这个地址的消息。 IP租用请求 发出该提议的DHCP服务器响应该消息发出一个确认,客户使用该地址信息对TCP/IP协议初始化及绑定完成安装配制。而其它DHCP服务器撤回各自提议。 IP租用提议 IP租用选择 IP租用认可 DHCP工作的四个过程