•输入端口。
输入端口(input port)执行几项重要功能。它在路由器中执行终结入物
理链路的物理层功能,这显示在图4・4中输入端口部分最左侧的方框与输出端口部
分最右侧的方框中。它还要与位于入链路远端的数据链路层交互来执行数据链路层
功能,这显示在输入与输出端口部分中间的方框中。
•交换结构
交换结构将路由器的输入端口连接到它的输岀端口。这种交换结构完全包含在路由器之中,即它是一个网络路由器中的网络!
•输出端口。
输出端口存储从交换结构接收的分组,并通过执行必要的链路层和物理
层功能在输出链路上传输这些分组。当一条链路是双向的时(即承载两个方向的流
量),输出端口通常与该链路的输入端口成对出现在同一线路卡上。
•路由选择处理器。
路由选择处理器执行控制平面功能。在传统的路由器中,它执行
路由选择协议(我们将在5. 3节和5. 4节学习),维护路由选择表与关联链路状态
信息,并为该路由器计算转发表。在SDN路由器中,路由选择处理器(在其他活
动中)负责与远程控制器通信,目的是接收由远程控制器计算的转发表项,并在该
路由器的输入端口安装这些表项。路由选择处理器还执行网络管理功能,我们将在
•版本(号)。
这4比特规定了数据报的IP协议版本。通过查看版本号,路由器能
够确定如何解释IP数据报的剩余部分。不同的IP版本使用不同的数据报格式。
IPv4的数据报格式
•首部长度。
因为一个IPv4数据报可包含一些可变数量的选项(这些选项包括在
IPv4数据报首部中),故需要用这4比特来确定1P数据报中载荷(例如在这个数
据报中被封装的运输层报文段)实际开始的地方。大多数IP数据报不包含选项,
所以一般的IP数据报具有20字节的首部。
•服务类型。
服务类型(TOS)比特包含在IPv4首部中,以便使不同类型的IP数
据报(例如,一些特别要求低时延、高吞吐量或可靠性的数据报)能相互区别
开来。例如,将实时数据报(如用于IP电话应用)与非实时流量(如FTP)区
分开也许是有用的。提供特定等级的服务是一个由网络管理员对路由器确定和
配置的策略问题。
•数据报长度。
这是IP数据报的总长度(首部加上数据),以字节计。因为该字
段长为16比特,所以IP数据报的理论最大长度为65 535字节。然而,数据报
很少有超过1500字节的,该长度使得IP数据报能容纳最大长度以太网帧的载荷字段。
•标识、标志、片偏移。
这三个字段与所谓IP分片有关,这是一个我们将很快要考
虑的主题。有趣的是,新版本的IP (即IPv6)不允许在路由器上对分组分片。
•寿命。
寿命(Time To Live, TTL)字段用来确保数据报不会永远(如由于长时间
的路由选择环路)在网络中循环。每当一台路由器处理数据报时,该字段的值减
lo若TTL字段减为0,则该数据报必须丢弃。
•协议。
该字段通常仅当一个IP数据报到达其最终目的地时才会有用。该字段值
指示了 IP数据报的数据部分应交给哪个特定的运输层协议。例如,值为6表明
数据部分要交给TCP,而值为17表明数据要交给UDP。对于所有可能值的列
表,注意在IP数据报中的协议号所起的作用,类似于运输层报文段中端口号字段所起的作用。协议号是将网络层与运输层绑定到一起的黏合剂,而端口号是将运输层和应用层绑定到一起的黏合剂,链路层帧也有一个特殊字段用于将链路层与网络层绑定
到一起.
•首部检验和。
首部检验和用于帮助路由器检测收到的IP数据报中的比特错误。首
部检验和是这样计算的:将首部中的每2个字节当作一个数,用反码算术对这些
数求和。路由器要对每个收到的IP数据报计算其首部检验和,如果数据报首
部中携带的检验和与计算得到的检验和不一致,则检测岀是个差错。路由器一般
会丢弃检测出错误的数据报。注意到在每台路由器上必须重新计算检验和并再次
存放到原处,因为TTL字段以及可能的选项字段会改变。
•源和目的IP地址。
当某源生成一个数据报时,它在源IP字段中插入它的IP地
址,在目的IP地址字段中插入其最终目的地的地址。通常源主机通过DNS查找
来决定目的地址,如在第2章中讨论的那样。
编址。
•选项。
选项字段允许IP首部被扩展。首部选项意味着很少使用,因此决定对每个
数据报首部不包括选项字段中的信息,这样能够节约开销。然而,少量选项的存
在的确使问题复杂了,因为数据报首部长度可变,故不能预先确定数据字段从何
处开始。而且还因为有些数据报要求处理选项,而有些数据报则不要求,故导致
一台路由器处理一个IP数据报所需的时间变化可能很大。这些考虑对于高性能路
由器和主机上的IP处理来说特别重要。由于这样或那样的原因,在IPv6首部中已
去掉了 IP选项
•数据(有效载荷)。
我们来看看最后也是最重要的字段.这是数据报存在的首要理
由!在大多数情况下,IP数据报中的数据字段包含要交付给目的地的运输层报文
段(TCP或UDP)。
1.一个链路层帧能承载的最大数据量叫作最大传送单元(Maximum Transmission Unit, MTU)
2.分片
IP数据报中的数据分片成两个或更多个较小的IP数据报,用单独的链路层帧封装这
些较小的IP数据报,然后通过输出链路发送这些帧。每个这些较小的数据报都称为片
(fragment) 。
片在其到达目的地运输层以前需要重新组装。TCP与UDP的确都希望从网络层收
到完整的、未分片的报文
3.标识、标志和片偏移字段
IPv4的设计者将标识、标志和片偏移字段放在IP数据报
首部中。当生成一个数据报时,发送主机在为该数据报设置源和目的地址的同时贴上标识
号。发送主机通常将它发送的每个数据报的标识号加1。当某路由器需要对一个数据报分
片时,形成的每个数据报(即片)具有初始数据报的源地址、目的地址与标识号。
为了让目的主机绝对地相信它已收到了初始数据报的最后一
个片,最后一个片的标志比特被设为0,而所有其他片的标志比特被设为1。另外,为了
让目的主机确定是否丢失了一个片(且能按正确的顺序重新组装片),使用偏移字段指定
该片应放在初始IP数据报的哪个位置。
4.举例
一个4000字节的数据报(20字节IP首部加上3980字节IP有效载荷)到达一
台路由器,且必须被转发到一条MTU为1500字节的链路上。这就意味着初
始数据报中3980字节数据必须被分配
为3个独立的片(其中的每个片也是一个IP数据报)。
每个IP地址长度为32比特(等价为4字节),因此总共有屮个(或大约40亿个)
可能的IP地址。这些地址通常按所谓点分十进制记法(dotled decimal notation)书写
举例,地址193.32.216.9的二进制记法是:
11000001 00100000 11011000 00001001
形式为a.b. c. d/x的地址的x最高比特构成了 IP地址的网络部分,并且经常被称为该
地址的前缀(prefix)(或网络前缀)
为了确定子网,分开主机和路由器的每个接口,产生几个隔离的网络岛,使
用接口端接这些隔离的网络的端点。这些隔离的网络中的每一个都叫作一个子网
互联这3个主机接口与1个路由器接口的网络形成一个子网(sub-net)。(在因特网文献中,子网也称为1P网络或直接称为网络。)IP编址为这个子网分配一个地址223.1.1.0/24,其中的==/24记法==,有时称为子网掩码(networkmask),指示32比特中的最左侧24比特定义了子网地址
在CIDR被采用之前,IP地址的网络部分被限制为长度为8、16或24比特,这是一种
称为分类编址(classful addressing)的编址方案,这是因为具有8、16和24比特子网地址
的子网分别被称为A、B和C类网络
C类(/24)子网仅能容纳多达28 -2 =254 (2* =256
B类(/16)子网可支持多达65 534台主机,又太大了。
IP广播地址:255. 255. 255. 255,那将是我们当一台主机发出一个目的地址为255. 255. 255. 255的数据报时,该报文会交付给同一个网络中的所有主机。
DHCP 允许主机自动获取(被分
配)一个IP地址。网络管理员能够配置DHCP,以使某给定主机每次与网络连接时能得到
一个相同的IP地址,或者某主机将被分配一个临时的IP地址(tempomry IP address),每
次与网络连接时该地址也许是不同的。
• DHCP服务器发现。
这可通过使用DHCP发现报文(DHCP discover message)来完成,客户在
UDP分组中向端口 67发送该发现报文。DHCP客户生成包含DHCP发现报文的
iP数据报,其中使用广播目的地址255.255.255.255并且使用“本主机”源IP地址
0.0. 0.0。
• DHCP服务器提供。DHCP服务器收到一个DHCP发现报文时,用DHCP提供报
文(DHCP offer message)向客户做出响应,该报文向该子网的所有节点广播,仍
然使用IP广播地址255. 255. 255. 255。因为在子网中可能存在几个DHCP服务器,该客户也许会发现它处于能在几个提供者之间进行选择的优越位置。每台服务器提供的报文包含有收到的发现报文的事务ID、向客户推荐的IP地址、网络掩码以及IP地址租用期(, 即IP地址有效的时间量。服务器租用期通常设置为几小时或几天。
• DHCP请求。新到达的客户从一个或多个服务器提供中选择一个,并向选中的服
务器提供用DHCP请求报文(DHCP request mess昭e)进行响应,回显配置的参数。
• DHCP ACK。服务器用 DHCP ACK 报文(DHCP ACK message)寸 DHCP 请求报文
进行响应,证实所要求的参数。 一旦客户收到DHCP ACK后,交互便完成了,并且该客户能够在租用期内使用DHCP分配的IP地址。因为客户可能在该租用期超时后还希望使用这个地址,所以DHCP还提供了一种机制以允许客户更新它对一个IP地址的租用。
具有专用地址的地域(realm with privateaddress) 。
具有专用地址的地域是指其地址仅对该网络中的设备有意义的网络。为了明白它为什么重要,
考虑有数十万家庭网络这样的事实,许多使用了相同的地址空间10. 0. 0. 0/240
NAT使能路由器对于外部世界来说甚至不像一台路由器。相反NAT路由器对外界的
行为就如同一个具有单一 IP地址的单一设备。所有离开家庭路由器流向更
大因特网的报文都拥有一个源IP地址13& 76. 29. 7,且所有进入家庭的报文都拥有同一个
目的IP地址138.76. 29. 7。
1.
主机10. 0. 0. 1为其
指派了(任意)源端口号3345并将该数据报发送到LAN中。NAT路由器收到该数据报,
为该数据报生成一个新的源端口号5001,将源IP替代为其广域网一侧接口的IP地址
138. 76. 29.7,且将源端口 3345更换为新端口 5001