关于字节和位:数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位。
1. 网络层提供的两种服务:A
可靠交付*or最大努力交付*
- 面向连接、无差错交付的虚电路服务–电信网
- 无连接的、尽最大努力交付的数据报服务–因特网
- 因特网的优点:网络的造价大大降低,运行方式灵活,能够适应多种应用。
虚电路服务与数据报服务的对比 | ||
---|---|---|
对比的方面 | 虚电路服务 | 数据报服务 |
思路 | 可靠通信应当由网络来保证 | 可靠通信应当由用户主机来保证 |
连接的建立 | 必须有 | 不需要 |
终点地址 | 仅在连接建立阶段使用,每个分组使用短的虚电路号 | 每个分组都有终点的完整地址 |
分组的转发 | 属于同一条虚电路的分组均按照同一路由进行转发 | 每个分组独立选择路由进行转发 |
当结点出故障时 | 所有通过出故障的结点的虚电路均不能工作 | 出故障的结点可能会丢失分组,一些路由可能会发生变化 |
分组的顺序 | 总是按发送顺序到达终点 | 到达终点时不一定按发送顺序 |
端到端的差错处理和流量控制 | 可以由网络负责,也可以由用户主机负责 | 由用户主机负责 |
2.IP ARP ICMP 基本概念 B
网际协议IP:是TCP/IP体系中两个最主要的协议之一,也是最重要因特网标准协议之一。
与IP协议配套使用的还有四个协议:(1)地址解析协议ARP(Address Resolution Protocol)
(2)逆地址解析协议RARP(Reverse Address Resolution Protocol)
(3)网际控制报文协议ICMP(Internet Control Message Protocol)
(4)网际组管理协议IGMP(Internet Group Management Protocol) 上述四种协议与网际协议IP的关系:
(1)在这一层中,ARP和RARP画在最下面,因为IP经常要使用这两个协议。
(2)ICMP和IGMP画在这一层的上部,因为它们要使用IP协议。
注:由于网际协议IP是用来使互连起来的许多计算机网络能够进行通信,因此TCP/IP体系中的网络层常常称为网际层(internet layer),或IP层。使用“网际层”的好处是强调这是由很多网络构成的互连网络。
3.间接交付,直接交付 A
将网络互连起来的一些中间设备
物理层——转发器(repeater)
- 物理层使用的中间设备叫转发器(repeater)。
- 数据链路层——网桥或桥接器(bridge)
- 数据链路层使用的中间设备叫网桥或桥接器(bridge)。
- 网络层——路由器(router)
- 网络层使用的中间设备叫路由器(router)。路由器其实就是一台专用计算机,用来在互联网中进行路由选择。
- 在网络层以上——网关(gateway)
- 在网络层以上使用的中间设备叫网关(gateway),用网关连接两个不兼容的系统需要在高层进行协议的转换。
- 虚拟互连网络
- TCP/IP体系在网络互连上采用的做法是在网络层(即IP层)采用了标准化协议,但相互连接的网络则可以是异构的。
- 许多计算机网络通过路由器进行互连,由于参与互连的计算机网络都使用相同的网际协议IP,因此可以将互连以后的计算机网络看成一个虚拟互联网络。
- 虚拟互连网络:也就是逻辑互连网络,它的意思就是各种互连起来的各种物理网络的异构性本来是客观存在的,但是利用IP协议就可以使这些性能各异的网络在网络层上看起来好像是一个统一的网络。
- 这种利用IP协议的虚拟互连网络可简称为IP网(IP网是虚拟的)。
-
使用IP网的好处:当IP网上的主机进行通信时,就好像在一个单个网络上通信一样,它们看不见互连的各网络的具体异构细节(如具体的编址方案、路由选择协议等)。
- 分组在互联网中的传送
注:当很多异构网络通过路由器互连起来时,如果所有的网络都使用相同的IP协议,那么在网络层讨论问题就显得很方便。
- 分组在互联网中的传送过程:
(1)互联网中的源主机H1要把一个IP数据报发送给目的主机H2。
(2)根据分组交换的存储转发概念。
(3)主机H1先要查找自己的路由表,看目的主机是否就在本网络上。
(4)如果是,则不需要经过任何路由器而是直接交付,任务就完成了。
(5)如果不是,则必须把IP数据报发送给某个路由器(如图中的R1),R1再查找自己的路由表后,知道应当把IP数据报转发给R2进行间接交付。这样一直转发下去,最后由路由器R5知道自己是和H2连接在同一个网络上,不需要再使用别的路由器转发了,于是就把IP数据报直接交付给目的主机H2。
注:互联网可以由多种异构网络互连组成。
4. IP 地址表示及分类方法 A
整个的因特网就是一个单一的、抽象的网络。IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围内唯一的32位的标识符。IP地址的结构可以使我们在互联网上很方便的寻址。
所谓分类的IP地址,就是将IP地址划分为若干固定类,A类、B类、C类每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,一个网络号在整个因特网范围内必须是唯一的。而另一个字段则是主机号 host-id,它标志该主机(或路由器)。一个主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个IP地址在整个因特网范围内是唯一的。
从IP地址的结构来看,IP地址不仅仅指明了一台主机,而且指明了主机所连接到的网络。
由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。
用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号。
路由器只根据目的站的IP 地址的网络号进行路由选择。
两级的 IP 地址可以记为:
IP 地址 ::= { <网络号>, <主机号>} ::=表示"定义为"
上图中的A类、B类、C类地址都是单播地址(一对一通信),是最常用的。
A类、B类、C类地址的网络号字段分别为1个、2个、3个字节长,因而在网络号字段的最前面有1-3位的类别位,其数值分别为分别为0、10、110。
D类地址用于多播(一对多通信),E类地址保留为以后用。
为了提高可读性,我们常常把32位二进制代码的IP地址中的每8位用其等效的十进制数字表示,每八位都用.分隔。这就是点分十进制记法。
A类地址的网络号字段占一个字节,只有7位可供使用(第一位已固定为0),但是可指派的网络号是126个(27-2),减2的原因:第一,IP地址中全为0的地址是个保留地址,表示“本网络”;第二,网络号为127(01111111)保留作为本地软件环回测试本主机的进程间的通信。
A类地址的主机号占3字节,因此每一个A类网络中的最大主机数是224-2。减2的原因:第一,全为0的主机号字段表示该IP地址是本主机所连接到的单个网络地址,第二,全为1的主机号字段表示该网络上的所有主机。
B类地址的网络号字段有2字节,但是前两位已经固定为10,只剩下14位可以进行分配,因为前面两位是10,不会出现全为0或全为1的网络号,但实际上,B类网络地址128.0.0.0是不指派的。所以最大网络数为214-1。最大主机数为216-2。
C类地址有3字节的网络号字段,前三位固定位110,还有21位可以进行分配。但实际上192.0.0.0是不指派的,因此C类地址可指派的网络总数为221-1,最大主机数为28-2。
5.IP 地址与硬件地址 C
注:在局域网中,由于硬件地址已固化在网卡上的ROM中,因此常常将硬件地址称为物理地址。因为在局域网的MAC帧中的源地址和目的地址都是硬件地址,因此硬件地址又称为MAC地址。
物理地址:是数据链路层和物理层使用的地址。
IP地址:是网络层和以上各层使用的地址,是一种逻辑地址。
数据链路层及以下使用硬件地址,硬件地址放在MAC帧的首部。网络层及以上使用的是IP地址,IP地址放在IP数据报的首部。
注意:在IP层抽象的互联网上只能看到IP数据报,虽然IP数据报首部有源站的IP地址,但路由器只根据目的站的IP地址的网络号进行路由选择。在局域网的链路层,只能看见MAC帧。IP数据报被封装在MAC帧中
6.IP 数据报格式 A
IP数据报的格式能够说明IP协议都具有什么功能。
在TCP/IP的标准中,各种数据格式常常以32位(即4字节)为单位来描述。
1)版本 占4位,指IP协议的版本。通信双方使用的IP协议的版本必须一致,当前广泛使用的IP协议版本号是IPv4。
2)首部长度 占4位,可表示的最大十进制数值是15。该单位是32位(4字节)。首部长度字段的最小值是5,相当于IP首部长度为5*4=20字节。
3)总长度 指首部和数据之和的长度,单位为字节。总长度字段为16位。数据报最大长度为2^16 - 1 = 65535字节。
在IP层下面的每一种数据链路层协议都规定了一个数据帧中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit).
例如,最常用的以太网就规定其MTU值是1500字节。若所传送的数据报长度超过数据链路层的MTU值,就必须把过长的数据报进行分片处理。
IP协议规定,在因特网中所有的主机和路由器,必须能够接受长度不超过576字节的数据报。这是假定上层交下来的数据长度有512字节(合理的长度),加上最长的IP首部60字节,再加上4字节的富裕量,就得到576字节。
4)标识 占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加一,并将此值赋给标识字段。但这个“标识”并不是序号,因为IP是无连接服务,数据报不存在按序接收的问题。当数据报由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。(即标示的值只用于判断是否是同一个数据报的切片,其值并无其他意义)
5)标志 占3位 目前只有两位有意义
标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。
标志字段中间的一位记为DF(Don't Fragment)。意思是"不能分片"。只有当DF=0时才允许分片。
6)片偏移 占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。片偏移以8个字节为偏移单位。 这就是说,每个分片的长度一定是8字节(64位)的整数倍。
7)生存时间 占8位,生存时间字段常用的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。由发出数据报的原点设置这个字段。其目的是防止无法交付的数据报无限制地在因特网中兜圈子。(生存时间并不是指其在网络中能存活的时长)
最初的设计:以秒作为TTL值的单位。每经过一个路由器时,就把TTL减去数据报在路由器所消耗掉的一段时间。若数据报在路由器消耗的时间小于1秒,就把TTL值减1.当TTL值减为零时,就丢弃这个数据报。
后来随着技术的进步,路由器处理数据报所需的时间不断在缩短,一般都远远小于1秒钟,后来就把TTL字段的功能改为“跳数限制”(但名称不变)。TTL的意义指数据报在因特网中至多可经过多少个路由器。最大值为255。
若把TTL初始值设为1,则表示这个数据报只能在本局域网中传送。
8)协议 占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个协议进行处理。
协议名 | ICMP | IGMP | IP | TCP | EGP | IGP | UDP | IPv6 | ESP | OSPF |
协议字段值 | 1 | 2 | 4 | 6 | 8 | 9 | 17 | 41 | 50 | 89 |
9)首部检验和 占16位。这个字段只检验数据报的首部,但不包括数据部分。数据报每经过一个路由器,路由器都要重新计算一下首部检验和(生存时间字段会变化)。为了减少计算量,采用反码算术运算把所有16位字相加后得到的反码写入检验和字段。
10)源地址:占32位。
11)目的地址:占32位。
7. IP 分组转发的流程 A
根据目的网络地址来确定下一跳路由器,这样做的结果如下:
IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
只有到达最后一个路由器时,才试图向目的主机进行直接交付。
注:在互联网上转发分组时,是从一个路由器转发到下一个路由器。总之,在路由表中,对每一条路由最主要的是以下两个信息:(目的网络地址,下一跳地址)。
特定主机路由
- 虽然因特网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有这样的特例,即对特定的目的主机指明的一个路由。这种路由叫做特定主机路由。
- 采用特定主机路由的好处:
(1)可使网络管理人员能够更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。
(2)在对网络的连接或路由表进行排错时,指明到某一主机的特定路由就十分有用。
注:特定主机路由是要到某一台机器的路由。特定网络路由是你到某一个子网的路由。特定主机路由也可视为特定网络路由的一个特例,即Mask为255.255.255.255的特定网络路由。
默认路由
- 默认路由是一种特殊的静态路由,指的是当路由表中与包的目的地址之间没有匹配的表项时路由器能够做出的选择。
- 如果没有默认路由,那么目的地址在路由表中没有匹配表项的包将被丢弃。
- 默认路由在某些时候非常有效,当存在末梢网络时,默认路由会大大简化路由器的配置,减轻管理员的工作负担,提高网络性能。
- 主机里的默认路由通常被称作默认网关,默认网关通常会是一个有过滤功能的设备,如防火墙和代理服务器。
- 默认路由和静态路由的命令格式一样,只是把目的地ip和子网掩码改成0.0.0.0和0.0.0.0,默认路由只能存在末梢网络中。
分组转发算法
注:当发送一连串的数据报时,上述的这种查找路由表、计算硬件地址、写入MAC帧的首部等过程,将不断地重复进行,造成了一定的开销。尽管如此,也不能在路由表中直接使用硬件地址,因为使用抽象的IP地址,就是为了屏蔽各种底层网络的复杂性而便于分析和研究问题,这样就不可避免地多了一些开销。
(1)从数据报的首部提取目的主机的IP地址D,得出目的网络地址为N。
(2)若N就是与此路由器直接相连的某个网络地址,则进行直接交付,不需要再经过其他的路由器,直接把数据报交付给目的主机(这里包括把目的主机地址D转换为具体的硬件地址,把数据报封装为MAC帧,再发送此帧);否则就要执行(3)进行间接交付。
(3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(4)。
(4)若路由表中有到达网络N的路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(5)。
(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行(6)。
(6)报告转发分组出错。
8.子网掩码 A
子网掩码用于辨别ip地址中哪部分为网络号,哪部分为主机号。它由1和0组成,长32位,全为1的位代表网络号,主机号全为0。
A类ip地址的默认子网掩码为255.0.0.0或0xFF000000
B类ip地址的默认子网掩码为255.255.0.0或0xFFFF0000
C类ip地址的默认子网掩码为255.255.255.0或0xFFFFFF00
一个ip地址是4字节32位,其中前面的一部分位代表是网络号,后面的代表的是主机号
当对应的将网络号的位全是1,主机号的位全是0,所组成的这个32位的东西就叫做掩码(当然ABC类地址前面有固定的0不能给人家改了)
一个B类地址的掩码就是
10111111 11111111 0000000 00000000
当进行子网划分的时候,划分为网络号的位改为1,比如上例中借3位主机号
10111111 11111111 1110000 00000000
这个时候这个掩码称为子网掩码
IP地址分两部分:网络地址+主机地址
比如你提到的 192.168.10.40 255.255.255.224
那么它的网络地址为:192.168.10.32 主机地址为:0.0.0.40 该子网范围为:192.168.10.32-192.168.10.63
网络地址是IP地址的一部分,代表一个子网。
区分IP地址、子网掩码、网络号、主机号、网络地址、主机地址
https://blog.csdn.net/chengonghao/article/details/51926274
9.子网划分 A
从两级IP地址到三级IP地址原因:
1)IP地址的空间利用率有时很低。
2)给每个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
3)两级IP地址不够灵活。
划分子网的基本思路:
(1)一个有许多物理网络的单位,可将所属的物理网络划分为若干个子网。而本单位以外的网络看不见这个网络是由多少个子网组成,因为这个对外仍然表现为一个网络。
(2)划分子网的方法是:从网络的主机号借用若干位作为子网号,当然主机号也就减少了相应位数。于是两级IP地址在本单位内就变为了三级IP地址:网络号、子网号、主机号。
划分子网只是把IP地址的主机号这部分进行再划分,而不是改变IP地址原来的网络号。
10.使用子网时的分组转发 A
使用子网划分后,路由表必须包含以下三项内容:目的网络地址,子网掩码和下一跳地址。路由器转发分组的算法(流程)如下:
1)从收到的数据报首部提取目的IP地址D
2)先判断是否为直接交付。对路由器直接相连的网络进行逐个检查:用各网络的子网掩码和D逐位相与,看结果是否和相对应的网络地址匹配。若匹配,则把分组进行直接交付,转发任务结束。否则就是间接交付,执行(3)。
3)若路由表中有目的地址为D的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由:否则执行(4)。
4)对路由表的每一行,用其中的子网掩码和D逐位相与,其结果为N。若N与该行的目的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则执行(5)。
5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则执行(6)。
6)报告转发分组出错。
11.无分类编址 CIDR(构造超网) B
尽管划分子网在一定程度上解决了IP地址不足的问题,但是在1992年的时候,B类IP地址已经快要分配完了.
于是有人研究出无分类编址方法,它的正式名是无分类域间路由选择CIDR.
它最最主要的一点是消除了A,B,C类地址和划分子网的概念.它重新将IP地址划分为两个部分即,”网络前缀”和”主机号”.注意这里的网络前缀再也没有位数的限制,即没有A,B,C类之分.
CIDR还使用了”斜线记法”,即在IP地址后面加上斜线”/”然后写上网络前缀所占的位数.
CIDR还有另外一个特点.它把网络前缀都相同的连续的IP地址组成一个”CIDR地址块”(我们只要知道CIDR块中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,遗迹地址块中的地址数)
地址掩码:为了更方便的路由选择,CIDR使用32位的地址掩码,地址掩码由一串1和一串0组成1的个数就是网络前缀的长度。
为了方便地进行路由选择,因为一些网络还是用子网划分和子网掩码,所以CIDR的地址掩码也可以继续称为子网掩码.斜线记法中,斜线后面的数字就是地址掩码中1的个数.
与此同时,在这个CIDR地址块中,你也可以继续划分子网.
路由聚合:由于一个CIDR地址块可以包含很多地址,所以在路由表中就利用CIDR地址块来查找目的网络.这种地址的聚合常称为路由聚合。它使得路由表中的一个项目可以表示原来传统分类地址的很多个路由。路由聚合也成为构成超网。
由一个地址求它所在地址块的最大最小地址:
P143
找出地址掩码中1和0交界处发生在第几个字节。
把这一字节的十进制数字用二进制表示。取其前三位(这3位加上前几个字节的位数等于前缀的位数),把后五位都写成0,得到最小地址,把后五位都写成1,得到最大地址。
由于采用CIDR块的记法,这个时候路由器中的路由表可能会得到不止一个匹配结果.这个时候我们应当从匹配结果中选择具有最长网络前缀的路由.这叫作最长前缀匹配
这里引用书中的一个例子
- 假定某ISP已拥有地址块206.0.64.0/18.现在该ISP给某大学分配一个地址块206.0.68.0/22
- 然后这个大学再对本校的各系分配地址块,例如计算机系206.0.71.128/25
- 假定计算机系希望ISP把转发给计算机系的数据报直接发给计算机系而不要经过大学的路由器,但又不愿意改变自己使用的IP地址块
- 于是ISP路由器有以下两个项目,即206.0.68.0/22(大学)和206.0.71.128/25(计算机系)
- 现在假定ISP收到一个数据报,其目的IP地址为D=206.0.71.130.把D分别和路由表中这两个项目的掩码逐位相”与”(AND操作).
- 不难想,这个这两个项目肯定都是符合的,于是ISP选择具有最长网络前缀的IP地址进行转发.(即选择两个匹配结果中地址更具体的一个)
为了加快路由器对路由表的查找.通常是使用二叉线索树进行查找.
步骤如下:
- 找出每一个IP地址的唯一前缀
- 用IP地址的唯一前缀构造出一棵二叉线索树.
- 然后对二叉线索树进行搜索.
由于唯一前缀一般都小于32位,于是树的深度一般都小于32层.
事实上在实际应用中.当你搜索到一个叶节点时,还必须将寻找匹配的目的地址和该叶节点的子网掩码进行逐位”与”运算,看结果是否与对应的网络前缀相同.若匹配,就按下一条的接口转发该分组.否则,就对齐该分组.
12.ICMP 差错报告和询问报文 B
为什么需要ICMP?
因为IP协议不提供可靠性且不能保证信息传递,因此发生问题时,通知发送人是很重要的。(IP协议是一种不可靠的协议,无法进行差错控制。但IP协议可以借助其他协议来实现这一功能,如ICMP)
ICMP: Internet Control Message Protocol 即Internet消息控制协议.为了更有效的转发IP数据报和提高成功交付的机会,在网际层使用了网际控制报文协议ICMP。它是互联网的标准协议,但不是高层协议(ICMP报文是装在IP数据报中,作为其数据部分的),而是IP层的协议。
ICMP报文作为IP层数据报的数据,加上数据报的部首,组成IP数据报发送出去。
ICMP报文有两类:
ICMP差错报告报文:
ICMP询问报文:
13.Ping traceroute 等 B
ICMP的一个重要应用是分组网间探测PING,用来测试两台主机之间的连通性。PING使用了ICMP回送请求与回送回答报文。
14.AS,IGP,BGP 概念 B
15.RIP 概念 B
16.距离向量协议基本原理 B
17.开放最短路径优先 OSPF 基本原理 B
18.外部网关协议——路径向量协议 B
19.路由器的构成 C
20.IPv6 的由来 B
21. IPv6 地址格式 B
22.IPv4 向 IPv6 的两种迁移方式 B
23.VPN NAT基本概念 B
24. VPN NAT基本原理 B