CCNA(一)-详解ISO/OSI参考模型与TCP/IP参考模型

2024-04-21 21:08

本文主要是介绍CCNA(一)-详解ISO/OSI参考模型与TCP/IP参考模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • ISO/OSI参考模型
      • 物理层
        • 物理层(Physical Layer)的功能
        • 物理层的主要网络设备
      • 数据链路层
        • 数据链路层(Data Link Layer)的功能
        • 数据链路层的主要网络设备
      • 网络层
      • 传输层
      • 会话层
      • 表示层
      • 应用层
    • TCP/IP参考模型
      • 网络访问层
      • 网际层
        • IP协议
        • ICMP(Internet Control Message Protocol,Internet 控制消息协议)
        • ARP(Address Resolution Protocol,地址解析协议)
        • Proxy ARP(代理ARP)
        • RARP(Reverse Address Resolution Protocol,反向地址转换协议)
      • 传输层
        • TCP(Transmission Control Protocol,传输控制协议)
        • UDP UDP(User Datagram Protocol,用户数据报协议)
        • 三次握手
        • 滑动窗口
        • 确认机制
      • 应用层
    • IP协议
      • IP地址分类
      • 保留ip地址
      • 公有ip地址和私有ip地址
      • IP子网划分
        • 判断是否在一个子网
        • 子网掩码
        • 为何要划分子网
        • 如何创建子网
      • 封装和解封装

注:CCNA考试知识点整理,也可用于计算机网络课程的学习。

ISO/OSI参考模型

OSI参考模型是研究如何把开放式系统(即为了与其他系统通信而相互开放的系统)连接起来的标准,该模型的最大作用就是促成了不同厂商之间的协同工作。
OSI参考模型将计算机网络分为7层。

物理层

物理层(Physical Layer)的功能

物理层的主要功能是完成相邻结点之间原始比特流的传输,控制数据怎样被放置到通信介质上。物理层协议关心的典型问题是使用什么样的物理信号来表示数据“1”和“0”;一位持续的时间多长;数据传输是否可同时在两个方向上进行;最初的连接如何建立和完成,通信后连接如何终止;物理接口(插头和插座)有多少针以及各针的用处等。

物理层的主要网络设备

(1)中继器
中继器是连接网络线路的一种装置,常用于两个网络结点之间物理信号的双向转发工作。中继器是最简单的网络互联设备,主要完成物理层的功能,负责在两个结点的物理层上按位传递信息,完成信号的复制、调整和放大功能,以此来延长网络的长度。由于存在损耗,在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,因此会导致接收错误。中继器就是为解决这一问题而设计的,它完成物理线路的连接,对衰减的信号进行放大,保持与原数据相同一般情况下,中继器的两端连接的是相同的媒体,但有的中继器也可以完成不同媒体的转接工作。从理论上讲中继器的使用是无限的,网络也因此可以无限延长。事实上这是不可能的,因为网络标准中都对信号的延迟范围作了具体的规定,中继器只能在此规定范围内进行有效的工作,否则会引起网络故障。
前面介绍过双绞线理论上的最大传输距离是100m,如果超过100m,由于信号的衰减,很难保证信息传输的正确性,可以使用中继器来延长传输的距离。中继器仅适用于以太网,可将两段或两段以上(使用多个中继器)的以太网互连起来。
(2)集线器(Hub)
集线器相当于多端口的中继器,也可以把信号整形、放大后发送到所有结点上。我们知道在环型网络中只存在一个物理信号传输通道,都是通过一条传输介质来传输的,这样就存在各结点争抢信道的矛盾,传输效率较低。引入集线器这一网络设备后,每一个工作站是用它自己专用的传输介质连接到集线器的,各结点间不再只有一个传输通道,各结点发回来的信号通过集线器集中,集线器再把信号整形、放大后发送到所有结点上,这样至少在上行通道上不再出现碰撞现象。但基于集线器的网络仍然是一个共享介质的局域网,这里的“共享”其实就是集线器内部总线,所以当上行通道与下行通道同时发送数据时仍然会存在信号碰撞现象。当集线器在其内部端口检测到碰撞时,产生碰撞强化信号向集线器所连接的所有端口进行传送。这时所有数据都将不能发送成功。我们可以用一个形象的现实情形来说明,那就是单车道上同时有两个方向的车驶来。我们知道,单车道上通常只允许一个行驶方向的车通过,但是在小城镇,条件有限通常没有这样的规定,单车道也很有可能允许两个行驶方向的车通过,但是必须是不同时刻经过。在集线器中也一样,虽然各结点与集线器的连接已有各自独立的通道,但是在集线器内部却只有一个共同的通道,上、下行数据都必须通过这个共享通道发送和接收数据,这样有可能像单车道一样,当上、下行通道同时有数据发送时,就可能出现塞车现象。
正因为集线器的这一不足之处,所以它不能单独应用于较大网络中(通常是与交换机等设备一起分担小部分的网络通信负荷),就像在大城市中心不能有单车道一样,因为网络越大,出现网络碰撞现象的机会就越大。也正因如此,集线器的数据传输效率是比较低的,因为它在同一时刻只能有一个方向的数据传输,也就是所谓的**“半双工”**方式。生活中最常见的使用“半双工”方式工作的设备有对讲机,按下通话键时,可以讲话,但不能接听;松开通话键,可以接听,但不能说话。生活中的电话采用的是“双工”工作方式,可以同时说话和听话;而收音机采用的则是“单工”方式,永远只能是接听,单方向传输。如果网络中要选用集线器作为单一的连接设备,那么网络的规模最好在10台以内,而且集线器带宽应为10/100Mb/s以上。
集线器除了共享带宽这一不足之处外,还有另一个方面的不足必须要考虑,那就是它的广播工作方式。因为集线器属于OSI七层模型的物理层,基本上不具有“智能”的能力,更别说“学习”功能了。它也不具备交换机所具有的MAC地址表,所以它发送数据时都是没有针对性的,而是采用广播方式发送。也就是说,当它要向某结点发送数据时,不是直接把数据发送到目的结点,而是把数据包发送到与集线器相连的所有结点。如图2-3-2所示,源主机PC-A需要发送数据到目的主机PC-B,PC-A把数据包发往集线器,集线器从端口1收到数据包后,然后把该数据包复制,并把信号放大后从端口2、3、4发送出去,尽管PC-C和PC-D不是目的主机,它们也会收到PC-A给PC-B发的数据包。
这里引入两个概念:冲突域(Collision Domain)和广播域(Broadcast Domain)。当两个比特在同一介质上同时传输时就会产生冲突。所谓冲突域就是指发送数据给一个单一目标(也就是单播帧,第3章中会解释什么样的帧是单播帧)所影响的范围,如图2-3-2中,PC-A发送数据到目的主机PC-B,结果集线器将把该数据包转发到除接收端口以外的所有端口,PC-C和PC-D也收到了该数据,它们属于同一个冲突域;所谓广播域是指发送数据给一个不明确目标(也就是广播帧或组播帧,第3章中会解释什么样的帧是广播帧或组播帧)所影响的范围,如图2-3-2中,PC-A发送一个广播包,集线器将把该广播包转发到除接收端口以外的所有端口,集线器上的所有设备属于同一个广播域。结论:所有通过集线器(不管有多少个集线器)互连的网络中只有一个广播域、一个冲突域。
这种广播式发送数据有两方面的不足:第一,用户数据包向所有结点发送,来数据通信的不安全因素,一些别有用心的人很容易就能截获他人的数据包;第二,由于所有数端口外的每一个端口都是向所有结点同时发送,加之以上所介绍的共享带宽方式,就更加可能造成网络拥塞现象

数据链路层

数据链路层(Data Link Layer)的功能

数据链路层的主要功能是如何在不可靠的物理线路上(前提)进行数据的可靠传输(作用)。数据链路层完成的是网络中相邻结点之间可靠的数据通信。为了保证数据的可靠传输,发送方把用户数据封装成帧(Frame),并按顺序传送各帧。由于物理线路的不可靠,因此发送方发出的数据帧有可能在线路上出错或丢失,从而导致接收方不能正确接收到数据帧。为了保证能让接收方对接收到的数据进行正确性判断,发送方为每个数据分块计算出CRC(循环冗余检验),并把CRC添加到帧中,这样接收方就可以通过重新计算CRC来判断数据接收的正确性。一旦接收方发现接收到的数据有错,则发送方必须重传这一帧数据。然而,相同帧的多次传送也可能使接收方收到重复的帧。比如,接收方给发送方的“确认帧”被破坏后,发送方也会重传上一帧,此时接收方就可能接收到重复帧。数据链路层必须解决由于帧的损坏、丢失和重复所带来的问题。
数据链路层要解决的另一个问题是防止高速发送方的数据把低速接收方“淹没”。因此,需要某种信息流量控制机制使发送方得知接收方当前还有多少缓存空间。为了控制的方便,流量控制常常和差错处理一同实现

数据链路层的主要网络设备

在最普遍的以太网中,数据链路层通过MAC(Media Access Control,媒体访问控制)地址负责主机之间数据的可靠传输。数据链路层的设备必须能够识别出数据链路层的地址,即MAC地址。一个设备如果能识别MAC地址,该设备至少是数据链路层以上的设备。数据链路层的网络设备主要有网卡、网桥和交换机。
(1)网卡(NIC)网卡(Network Interface Card,NIC)也叫网络适配器,是连接计算机与网络的硬件设备,网卡的主要工作原理是整理计算机上发往网线上的数据,并将数据分解为适当大小的数据包之后向网络上发送出去。对于网卡而言,每块网卡都有一个唯一的网络结点地址,它是网卡生产厂家在生产时烧入ROM(Read Only Memory,只读存储芯片)中的,我们把它叫做MAC地址,且保证绝对不会重复。可以人为地修改MAC地址的显示(有些网卡提供的驱动程序可以修改MAC地址,也有些工具可以修改MAC地址,但并没有更改ROM中的内容,只是修改了MAC的显示,当计算机重新安装操作系统后,MAC地址还是出厂时的MAC地址)。
网卡插在计算机或服务器扩展槽中,通过网络线(如双绞线、同轴电缆或光纤)与网络交换数据、共享资源。计算机对接收到的数据帧进行比较,如果数据帧中的目标MAC地址与本机网卡的MAC地址相同,或者目标MAC地址是广播MAC地址,即“FFFFFFFFFFFF”,则计算机对数据帧进行处理;否则,计算机丢弃该数据帧
可以在DOS窗口中使用“ipconfig/all”命令查看计算机网卡的MAC地址,如图2-3-3所示,网卡的MAC地址是“00-1B-24-7D-25-72”,用十六进制表示,占用48个比特,前24个比特表示厂商,后24个比特为设备编号。
在这里插入图片描述
(2)网桥(Bridge)
网桥工作在数据链路层,用于将两个LAN连接在一起并按MAC地址转发帧。物理层的集线器可以扩展网络的规模,但所有通过集线器相连的主机属于同一个冲突域,任何时刻只能有一台主机发送数据,如果有两台主机同时发送数据就会发生冲突,导致数据发送失败。当同一个冲突域中的主机数据量非常多时,数据发生冲突的可能性大大增加,此时可以使用网桥来分隔冲突域。网桥可以用来分隔冲突域,把一个冲突域分隔成两个冲突域,通过增加冲突域的数量,减小每个冲突域的大小,减少冲突发生的可能。连接两个网段的网桥能从一个网段向另一个网段传送完整而且正确的帧,不会传送干扰或有问题的帧。网桥主要用于互联以太网分段,传输需在两个不同分段间传输的信息,但是阻断局部分段内的信息,因此网桥减少了网络上的通信总量。
在图2-3-4中包括2台集线器、4台计算机、1台网桥。每个网桥保存一个动态的MAC地址表,这个表通常称为CAM(Content Addressable Memory,内容可寻址存储器),由站点的MAC地址和网桥的端口号组成。初始时,该MAC地址表为空,以后通过学习方法获取MAC地址信息。当一个数据帧到达网桥时,网桥根据其源MAC地址以及到达的端口号,向MAC地址表中增加或刷新一条记录
在这里插入图片描述
网桥的工作过程如下:
①刚加电时,网桥的MAC地址表是空的,假使计算机A(192.168.1.1)要发送数据给计算机B(192.168.1.2),计算机A对数据包进行封装(假设计算机A已经知道计算机B的MAC地址,在2.4.2节会介绍计算机A如何获得计算机B的MAC地址),把数据包发送到集线器A,集线器A把数据包发往除接收端口以外的所有端口(计算机B和网桥(网桥单独占据自己的一个端口))。②网桥收到这个数据包后,首先在MAC地址表中添加这个数据帧的源MAC地址,即计算机A的MAC地址“AAAAAAAAAAAA”和对应的端口1,然后网桥在自己的MAC地址表中查找这个数据帧中的目的MAC地址,即“BBBBBBBBBBBB”,结果没有找到,网桥把这个数据包从端口2转发出去。从网桥端口转发出来的数据包到达集线器B,集线器B把这个数据包从除接收到端口以外的端口转发出去,计算机C和计算机D收到这个数据包并进行检查,结果发现这个数据帧中的目的MAC地址与自己网卡的MAC地址不同,计算机C和计算机D丢弃这个数据包。
③集线器A也把数据包转发到计算机B,计算机B收到这个数据包并检查数据包中的目的MAC地址,发现与自己的MAC地址相同,计算机B接收这个数据包,并对计算机A进行确认。计算机B封装数据包后发往集线器A,数据帧的源MAC地址是“BBBBBBBBBBBB”,目的MAC地址是“AAAAAAAAAAAA”,集线器A把数据包发往除接收端口以外的所有端口(计算机A和网桥)
④网桥收到这个数据包后,首先在MAC地址表中添加这个数据帧的源MAC地址,即计算机B的MAC地址和对应的端口1,然后网桥在自己的MAC地址表中查找这个数据帧中的目的MAC地址,即“AAAAAAAAAAAA”,结果发现该数据帧的源和目的MAC地址在网桥的同一个端口上,即端口1,网桥不再转发该数据帧到端口2
⑤最后,网桥会学到所有MAC地址和端口的对应,如图2-3-4中的表所示,表中记录了计算机A和计算机B在网桥的端口1,计算机C和计算机D在网桥的端口2。此后,计算机A与计算机B、计算机C与计算机D可以同时通信,相互不受影响。
同中继器一样,网桥也是连接两个网段的设备。但和中继器不同之处在于,网桥侦听每个网段上的信号,当它从一个网段接收到一个帧时,网桥会检查并确认该数据帧是否已经完整地到达,然后,如果需要的话就把该数据帧传送到其他网段。这样,两个LAN网段通过网桥连接后,就像一个LAN一样,网中任何一台计算机可发送数据帧到任何其他的计算机。因为每个网段都支持标准的网络连接并使用标准的帧格式,计算机并不知道它们是连接在同一LAN网段中还是连接在一个桥接网中。
因为网桥能检查出一些故障,所以比中继器使用更广泛。两个通过中继器相连的网段,如果由于闪电而导致其中一个网段上有电干扰,中继器会把它传送到另一个网段。相反,如果干扰发生在通过网桥连接的网段中,网桥接收到一个不正确的帧,丢弃该帧。类似地,网桥不会把从一个网段传送来的冲突信号传送到另一个网段。因此,网桥会把故障控制在一个网段中而不会影响到另一个网段。图2-3-4中计算机A和计算机B是一个冲突域,计算机C和计算机D是另一个冲突域。因网桥转发广播或组播帧,所以4台计算机在同一个广播域中。网桥比中继器和集线器对数据包做更多的处理,延时也相对增加,一个2端口的网桥包括两个冲突域、一个广播域。
(3)交换机(Switch)
与网桥的工作过程类似,交换机也根据源MAC学习,根据目的MAC进行转发,按每一个数据帧中的MAC地址决策信息转发。在图2-3-5中,交换机也会学到并维护表中的MAC地址表,当源主机“AAAAAAAAAAAA”发送一个数据帧给目的主机“BBBBBBBBBBBB”时,交换机收到这个数据帧,查找交换机的MAC地址表,发现目的MAC地址在交换机的端口2,交换机从端口2把数据帧转发出去,端口3和端口4不受影响。
类似于网桥,交换机提供了网络互联功能。交换机的每个端口都是一个独立的冲突域,可以为每个工作站提供更高的带宽。因为交换机可以使用现有的电缆、中继器、集线器和工作站的网卡,不必做高层的硬件升级;交换机对工作站是透明的,这样管理开销低廉,简化了网络结点的增加、移动和网络变化的操作;并且交换机的价格与集线器所差无几,所以在当今的网络中,交换机被普遍使用。
可以简单地把交换机看成是多端口的网桥,但二者还是有一些区别的:首先,网桥一般只有2个端口,而一般交换机最少也有4个端口,还有24端口、48端口,甚至更多口的交换机;其次,网桥采用软件进行转发,而交换机采用专门设计的集成电路,基于硬件进行数据转发,交换机以线路速率在所有的端口并行转发信息,提供了比传统网桥高得多的操作性能,操作接近单个局域网性能,远远超过了普通网桥互联网络之间的转发性能;最后,交换机的端口造价远低于网桥。
根据功能不同,交换机可分为:
①传统的二层交换机,与集线器相比,仅仅多了MAC地址表的功能。属于OSI七层模型的数据链路层,有一个广播域(传统的二层交换机转发广播或组播帧到除接收端口以外的所有端口)、多个冲突域(每个端口就是一个冲突域)。
② VLAN(Virtual Local Area Network,虚拟局域网)型交换机,可网管型交换机,比传统型交换机多了VLAN的功能。它仍属于数据链路层,有多个广播域(每个VLAN就是一个广播域)、多个冲突域(每个端口就是一个冲突域),并可配置IP地址,方便远程管理。
③三层交换机,比VLAN型交换机多了路由功能,可以把三层交换机想象成路由器+VLAN型交换机,但三层交换机的数据包转发性能要比路由器+VLAN型交换机的性能高出许多倍。它属于OSI七层模型的网络层,具有多个广播域、多个冲突域。工程中出于安全的考虑,有时需要把IP和MAC进行绑定,这就需要三层及三层以上的交换机才能完成,因为普通的二层交换机处在OSI七层模型的第二层,识别不了三层的IP地址,也就无法完成绑定。

网络层

网络层(Network)的主要功能是完成网络中主机间的报文传输。在广域网中,这包括产生从源端到目的端的路由,根据采用的路由协议,选择最优的路径,本书将在后面章节介绍路由的相关知识。
网络层涉及的协议有IP、IPX等,网络层的设备必须能识别出网络层的地址,比如路由器、三层交换机等都可以根据IP地址做路径选择,它们都属于网络层设备。
路由器是一种连接多个网络或网段的网络层设备,它能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互“读懂”对方的数据,从而构成一个更大的网络。它不是应用于同一网段的设备,而是应用于不同网段或不同网络之间的设备。路由器之所以能在不同网络之间起到“翻译”的作用,是因为它不再是一个纯硬件设备,而是支持相当丰富路由协议的软、硬结合的设备,支持的协议有RIP、OSPF、EIGRP等,这些路由协议就是用来实现连通不同网段或网络的。
路由器有两大典型功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背板转发,以及输出链路调度等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等。
路由器具有判断网络地址和选择路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网。路由器属于网络层的一种互联设备,有隔离广播的作用,它的每个端口都是一个单独的广播域,也是一个单独的冲突域。
在局域网接入广域网的众多方式中,通过路由器接入互联网是最为普遍的方式。使用路由器互联网络的最大优点是:各互联子网仍保持各自独立,每个子网可以采用不同的拓扑结构、传输介质和网络协议,网络结构层次分明。通过路由器与互联网相连,则可完全屏蔽公司内部网络,有些路由器内部还集成了入侵防御和防火墙功能,因此使用路由器可以用来防御攻击,保护内部网络的安全。
路由器和交换机的比较如表2-3-1所示。

路由器和交换机的比较

特点路由器交换机
数据转发速度
使用的地址逻辑地址—IP物理地址—MAC
广播阻止转发
转发安全性较高较低

传输层

传输层(Transport Layer)是整个网络的关键部分,实现两个用户进程间端到端(End-to-End)的可靠通信,处理数据包错误、数据包次序,以及其他一些关键传输问题。
向下提供通信服务的最高层,弥补通信子网的差异和不足,向上是用户功能的最低层。与数据链路层有相似之处,不同的地方在于前者是端到端的,后者是点到点的,而且比数据链路层协议复杂得多。
传输层的主要功能有:提供建立、维护和拆除传输层连接,向网络层提供合适的服务,提供端到端的错误恢复和流量控制,向会话层提供独立于网络层的传送服务和可靠的透明数据传输
传输层相关的协议有TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议),它们涉及服务使用的端口号,主机根据端口号识别服务(常用的WWW服务端口号是80,Telnet服务端口号是23等),区分会话(源IP、源端口号、目标IP、目标端口号,四者共同唯一标识一个会话)。对一些常用的服务,在文件“C:\WINDOWS\system32\drivers\etclservices”中记录了服务名、所使用的协议(TCP或UDP)、默认端口号等。
这里介绍一种识别不同应用所使用服务端口的方法,譬如查看Windows中“远程桌面”
服务所使用的服务端口。假如在计算机“10.0.248.137”上,使用远程桌面登录到计算机
“210.28.203.187”,然后在被控制的远程计算机上执行“netstat-n”命令(当然也可以在本地计算机上执行这个命令),如图2-3-6所示,可以看到远程主机上使用的是“3389”端口,这就是Windows远程桌面使用的默认端口。采用类似的方法,可以获知其他应用所使用的端口号(图略)。

会话层

会话层(Session Layer)允许不同机器上的用户之间建立会话关系,会话层提供的服务之一是管理对话控制。会话层允许信息同时双向传输,或任一时刻只能单向传输。如果属于后者,类似于物理信道上的半双工模式,会话层将记录此时该轮到哪一方。一种与对话控制有关的服务是令牌管理,有些协议保证双方不能同时进行同样的操作,这一点很重要。为了管理这些活动,会话层提供了令牌,令牌可以在会话双方之间移动,只有持有令牌的一方可以执行某种关键性操作。另一种会话层服务是同步,如果在平均每小时出现一次大故障的网络上,两台机器间要进行一次两小时的文件传输,想想会出现什么样的问题?每一次传输中途失败后,都不得不重新传送这个文件。当网络再次出现大故障时,可能又会半途而废。为了解决这个问题,会话层提供了一种方法,即在数据中插入同步点。每次网络出现故障后,仅仅重传最后一个同步点以后的数据
CCNA考试中几乎不涉及会话层。

表示层

表示层(Presentation Layer)完成某些特定的功能,对这些功能人们常常希望找到普遍的解决办法,而不必由每个用户自己来实现。值得一提的是,表示层以下各层只关心从源主机到目标主机可靠地传送比特,而表示层关心的是所传送的信息的语法和语义。表示层服务的一个典型例子是用一种大家一致选定的标准方法对数据进行编码。
网络上计算机可能采用不同的数据表示,所以需要在数据传输时进行数据格式的转换。
例如在不同的机器上常用不同的代码来表示字符串(ASCI和EBCDIC)、整型数(二进制反码或补码),以及机器字的不同字节顺序等。为了让采用不同数据表示法的计算机之间能够相互通信并交换数据,我们在通信过程中使用抽象的数据结构来表示传送的数据,而在机器内部仍然采用各自的标准编码。管理这些抽象数据结构,并在发送方将机器的内部编码转换为适合网上传输的传送语法,以及在接收方做相反的转换等,都是由表示层来完成的。
此外,表示层还涉及数据压缩和解压、数据加密和解密等工作

应用层

联网的目的在于支持运行于不同计算机上的进程进行通信,而这些进程则是为用户完成不同任务而设计的。可能的应用是多方面的,不受网络结构的限制。应用层(Application Layer)包含大量人们普遍需要的协议,如HTTP(Hyper text Transfer Protocol,超文本传输协议),这个大家并不陌生,该应用默认使用的是TCP的80端口:FTP(File Transfer Protocol,文件传输协议),多用于因特网上的文件传输,该应用管理端口默认使用的是TCP的21号端口,另外,FTP服务还要使用到数据端口,数据端口因FTP的主动和被动模式有异,这里不再深入讨论;SMTP(Simple Mail Transfer Protocol,简单邮件传输协议),用于邮件的发送,该应用默认使用的是TCP的25号端口;POP3(Post Office Protocol Version3,邮局协议版本3),用于邮件的接收,该应用默认使用的是TCP的110号端口;DNS(Domain Name System,域名系统),用于因特网上域名的解析,譬如把南京大学的域名“www.nju.edu.cn”解析成IP地址“202.119.32.7”,该应用默认使用的是UDP和TCP的53号端口;Telnet(远程登录),Telnet是一种字符模式的终端服务,它可以使用户通过网络进入远程主机或网络设备,然后对远程主机或网络设备进行操作,这种连通可以发生在局域网里面,也可以通过互联网进行,该应用默认使用的是TCP的23号端口。这里列出的一些常用应用都是需要考生了解的,感兴趣的读者可以架设相关的服务器,毕竟大家的生活中经常要使用这些服务。
对于需要通信的不同应用来说,应用层的协议都是必需的。比如,当某个用户想要获得远程计算机上的一个文件拷贝时,他要向本机的文件传输软件发出请求,这个软件与远程计算机上的文件传输进程通过文件传输协议进行通信,这个协议主要处理文件名、用户许可状态和其他请求细节的通信。远程计算机上的文件传输进程使用其他特征来传输文件内容。
由于每个应用有不同的要求,应用层的协议集在ISO/OSI模型中并没有定义,但是,有些确定的应用层协议,包括虚拟终端、文件传输和电子邮件等都可作为标准化的候选。值得注意的是,OSl模型本身不是网络体系结构的全部内容,这是因为它并未确切地描述用于各层的协议和实现方法,而仅仅告诉我们每一层应该完成的功能。不过,ISO已经为各层制定了相应的标准,但这些标准并不是模型的一部分,它们是作为独立的国际标准被发布的。
OSI参考模型是在其协议开发之前设计出来的,这意味着OSI模型不是基于某个特定的协议集而设计的,因而它更具有通用性。但另一方面,也意味着OSI模型在协议实现方面存在某些不足。实际上,OSI协议过于复杂,这也是OSI从未真正流行开来的原因所在。
虽然OSI模型和协议并未获得巨大的成功,但是OSI参考模型在计算机网络的发展过程中仍然起到了非常重要的指导作用,作为一种参考模型和完整体系,它仍对今后计算机网络技术朝标准化、规范化方向发展具有指导意义。接下来看看目前被广泛使用的TCP/IP(Transmission.Control Protocol/Internet Protocol,传输控制协议/网际协议)协议。

TCP/IP参考模型

TCP/IP是目前最成功、使用最频繁的互联网协议。本节介绍TCP/IP参考模型,以及ARP、RARP、ICMP、TCP和UDP等协议。
TCP/IP参考模型是四层结构,下面结合Sniffer 软件来讲解TCP/IP参考模型的四层结构。Sniffer软件是NAI公司推出的功能强大的协议分析软件,具有捕获网络流量进行详细分析、实时监控网络活动、利用专家分析系统诊断问题、收集网络利用率和错误等功能。
Sniffer的工作方式就是通过将网卡置为混杂模式,对网卡上接收到的数据包进行侦听、捕获和分析。
在图2-4-1中,可以看到一个完整的TCP/IP应用数据包分为四层,分别是网络访问层(Network Access),也就是图2-4-1中的“DLC”层,包括OSI模型的物理层和数据链路层,在这一层可以看到数据帧的源和目的MAC地址;网际层(Internet),也就是图2-4-1中的“IP”层,相当于OSI模型中的网络层,在这一层可以看到数据包的源和目的IP地址;传输层(Transport),也就是图2-4-1中的“UDP”层,和OSI模型中的传输层一致,在这一层可以看到数据分段源和目的端口,以及所使用的协议,从图中可以看出,DNS服务主要使用的是UDP协议,服务端口是53;应用层(Application),也就是图2-4-1中的“DNS”层,包括OSI模型的上三层,即会话层、表示层和应用层,应用层中可以看到该DNS包是查询“www.nju.edu.cn”域名对应的IP地址。
ISO/OSI参考模型是在其协议被开发之前设计出来的。这意味着ISO/OSI模型并不是基于某个特定的协议集而设计的,因而它更具有通用性。但另一方面,也意味着ISO/OS1模型在协议实现方面存在某些不足。而TCP/IP模型正好相反。先有协议,模型只是现有协议的描述,因而协议与模型非常吻合。问题在于TCP/IP模型不适合其他协议栈。因此,它在描述其他非TCP/IP网络时用处不大。下面来看看两种模型的具体差异。其中显而易见的差异是两种模型的层数不一样:ISO/OSI模型有七层,而TCP/IP模型只有四层。两者都有传输层和应用层,但其他层是不同的。两种模型之间的对应关系如图2-4-2所示。
在这里插入图片描述

网络访问层

网络访问层(Network Access)的功能包括IP地址与物理硬件地址的映射,以及将lP分组封装成帧。基于不同硬件类型的网络接口,网络访问层定义了和物理介质的连接。网络访问层包含了数据链路层的地址,如用在以太网上就是MAC地址,在图2-4-1中,可以看到数据帧的源MAC地址、目的MAC地址。此层是TCP/IP模型的最低层,负责接收从IP层传来的IP数据报,并将IP数据报通过低层物理网络发送出去,或者从低层物理网络上接收物理帧,解封装出IP数据报,交给IP层处理。

网际层

网际层(Internet)的主要功能包括三个方面:
·第一,处理来自传输层的分组发送请求:将分组装入IP数据报,填充报头,选择去往目的结点的路径,然后将数据报发往适当的网络接口。
·第二,处理输入数据报:首先检查数据报的合法性,然后进行路由选择,假如该数据报已到达目的结点(本机),则去掉报头,将IP报文的数据部分交给相应的传输层协议;假如该数据报尚未到达目的结点,则转发该数据报。
·第三,处理ICMP(Internet Control Message Protocol,网际控制信息协议)报文:
即处理网络的路由选择、流量控制和拥塞控制等问题。
TCPIP网络模型的互联网层在功能上非常类似于ISO/OS1参考模型中的网络层。
网际层上的协议如下——

IP协议

IP的责任就是把数据从源传送到目的地。它不负责保证传送可靠性、流控制、包顺序和其他对于主机到主机协议来说很普通的服务。IP实现两个基本功能:寻址和分段。IP可以根据数据报报头中包括的目的地址将数据报传送到目的地址,在此过程中IP负责选择传送的路线,这种选择路线称为路由功能。如果有些网络内只能传送小数据报,IP可以将数据报重新组装并在报头域内注明。
构成IP报头的字段如图2-4-3所示,括号中的数值表示该字段所占用的比特数。其中优先级和服务类型字段一般用于QoS(Quality of Service,服务质量);存活期(Time To Live,TTL)是数据报可以生存的时间上限,它由发送者设置,每经过一次路由,TTL至少减1,如果未到达目的地时生存时间减为零,则抛弃此数据报;源和目的IP地址用于表示数据从哪里来,要到哪里去。参加CCNA考试的考生没有必要记住IP报头中的每一个字段,简单了解上述几个字段就可以了。
在这里插入图片描述
IP不提供可靠的传输服务,它不提供端到端的或结点到结点的确认,对数据没有差错控制,它只使用报头的校验码,不提供重发和流量控制。如果出错可以通过ICMP报告,ICMP在IP模块中实现。

ICMP(Internet Control Message Protocol,Internet 控制消息协议)

提起ICMP,一些人可能会感到陌生,实际上,ICMP与我们息息相关。它是TCP/IP协议族的一个子协议用于在IP主机、路由器之间传递控制消息控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。
在网络体系结构的各层次中,都需要控制,而不同的层次有不同的分工和控制内容,IP层的控制功能是最复杂的,主要负责差错控制、拥塞控制等,任何控制都是建立在信息的基础之上的,在基于IP数据报的网络体系中,IP协议自身没有内在机制来获取差错信息并处理。为了处理这些错误,TCP/IP设计了ICMP协议,当某个网关发现传输错误时,立即向信源主机发送ICMP报文,报告出错信息,让信源主机采取相应处理措施,它是一种差错和控制报文协议,不仅用于传输差错报文,还传输控制报文
我们在网络中经常会使用到ICMP协议,只不过觉察不到而已。比如经常使用的用于检查网络通不通的Ping命令,这个“Ping”的过程实际上就是ICMP协议工作的过程。发送主机首先发送一个ICMP Echo Request的包,包含64字节的数据,它被发送后,接收方会返回一个ICMPEcho Reply的包,返回的数据中包含了接收到的数据的拷贝。还有其他的网络命令,如跟踪路由的Tracert命令也是基于ICMP协议的。
ICMP报文包含在lP数据报中,属于IP的一个用户,IP头部就在ICMP报文的前面,所以一个ICMP报文包括IP头部、ICMP头部和ICMP报文,IP头部的Protocol值为1就说明这是一个ICMP报文,ICMP头部中的类型(Type)域用于说明ICMP报文的作用及格式,此外还有一个代码(Code)域用于详细说明某种ICMP报文的类型,所有数据都在ICMP头部后面。RFC定义了13种ICMP报文格式,具体如表2-4-1所示。
在这里插入图片描述
其中代码为15、16的信息报文已经作废。下面是几种常见的ICMP报文。

  • 响应请求。我们日常使用最多的ping,就是响应请求(Type=8)和应答(Type=0),一台主机向一个结点发送一个Type=8的ICMP报文,如果途中没有异常(例如被路由器丢弃、目标不回应ICMP或传输失败),则目标返回Type=0的ICMP报文,说明这台主机存在,更详细的tracert通过计算ICMP报文通过的结点来确定主机与目标之间的网络距离。
    在这里插入图片描述
  • 目标不可到达、源抑制和超时报文。这三种报文的格式是一样的,目标不可到达报文(Type=3)在路由器或主机不能传递数据报时使用,例如要连接对方一个不存在的系统端口(端口号小于1024)时,将返回Type=3、Code=3的ICMP报文,它提示的意思就是目标不可到达。常见的不可到达类型还有**网络不可到达(Code=0)、主机不可到达(Code=1)、协议不可到达(Code=2)**等。源抑制则充当一个控制流量的角色,它通知主机减少数据报流量,由于ICMP没有恢复传输的报文,所以只要停止该报文,主机就会逐渐恢复传输速率。最后,无连接方式网络的问题就是数据报会丢失,或者长时间在网络游荡而找不到目标,或者拥塞导致主机在规定时间内无法重组数据报分段,这时就要触发ICMP超时报文的产生。超时报文的代码域有两种取值:Code=0表示传输超时,Code=1表示重组分段超时。
    ·时间戳。**时间戳请求报文(Type=13)和时间戳应答报文(Type=14)**用于测试两台主机之间数据报来回一次的传输时间。传输时,主机填充原始时间戳,接收方收到请求后填充接收时间戳后以Type=14的报文格式返回,发送方计算这个时间差。
ARP(Address Resolution Protocol,地址解析协议)

ARP负责将某个IP地址解析成对应的MAC地址。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的,所谓“地址解析”就是主机在发送帧前根据目标IP地址得出目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
结合图2-4-4,讲解ARP的工作过程如下:
在这里插入图片描述
①计算机A欲发送数据包到计算机B,计算机A确定要访问的计算机B与本计算机处在同一个网络192.168.1.0中,计算机A在本机的缓存中查询计算机B的IP地址所对应的MAC地址。
②如果计算机A在本地缓存中找到192.168.1.3对应的MAC地址,则计算机A用此MAC地址封装帧,并发送出去。
③如果计算机A在本地缓存中没有找到192.168.1.3对应的MAC地址,则计算机A发送一个ARP的查询包(ARPRequest)。ARP查询包中的源IP地址是计算机A的IP地址192.168.1.2,目标IP地址是计算机B的IP地址192.168.1.3,源MAC地址是计算机A的MAC地址00-1B-24-7D-25-02,ARP查询包中的目的MAC地址是广播MAC地址FF-FF-FF-FF-FF-FF。计算机A封装完成后,把ARP查询包以广播的形式发送出去。
④计算机B和计算机C均收到此广播包,计算机B和计算机C解封装该数据包,计算机B和计算机C发现数据帧中的目的MAC不是本机网卡的MAC地址,但是广播MAC地址,计算机B和计算机C解封装该数据帧,把数据包传到网络层。计算机C检查数据包的目的IP地址,发现目的IP地址是192.168.1.3,与本机不同,计算机C放弃继续处理该数据包,同时在本地的缓存中增加或更新192.168.1.2对应的MAC地址条目。计算机B检查数据包中的目的IP地址,发现目的IP地址是192.168.1.3,与本机相同,计算机B在本地的缓存中增加或更新192.168.1.2对应的MAC地址条目。
⑤计算机B发现ARP查询包是询问本机IP地址所对应的MAC地址的,计算机B将发回ARP应答包(ARPReply)。ARP应答包的源lP地址是192.168.1.3,目的IP地址是192.168.1.2,源MAC地址是00-1B-24-7D-25-03,目的MAC地址是00-1B-24-7D-25-02。该ARP应答包以单播的方式发送出去。
⑥如果是集线器相连的网络,则计算机A和计算机C均会收到此ARP应答包;如果是交换机相连的网络,因交换机可以基于目的MAC地址转发,则只有计算机A可以收到此ARP应答包。计算机C比较数据帧的目的MAC地址,发现与本机的不同,计算机C丢弃该数据包。计算机A收到此ARP应答包,可以获得计算机B对应的MAC地址。
⑦计算机A获得计算机B的MAC地址后,计算机可以向计算机B发送其他数据了。
从上面的讲解中可知,ARP请求包是广播包,而ARP应答包是单播包。读者朋友如果想获知同一个局域网中某台计算机的MAC地址,可以先ping一下该计算机的IP地址,然后使图2-4-4ARP工作过程用“arp-a”命令可以查看本机的ARP缓存表,从中可以找到某个IP地址对应的MAC地址。
读者还可以使用“arp-d”命令删除本机的ARP缓存,使用“arp-s”命令把IP地址和MAC地址进行绑定。

Proxy ARP(代理ARP)

前面介绍的ARP协议可以帮助主机或路由器获知局域以太网上某个IP地址对应的MAC地址,可却无法获知一台远程主机对应的IP地址,因为ARP查询包是广播包路由器有隔离广播的作用,致使ARP查询包无法穿越路由器而到达远端的目的主机。局域网内的主机可以配置默认网关来访问远端主机,可主机不允许配置多个默认网关,考虑一下,如果某个默认网关(一般是路由器)因故障停机,会怎么样呢?即使该局域网还有另一台出口路由器,主机也不会向其他的路由器发送数据,此时需要重新配置主机的网关。而代理ARP则可以在这种情况下自动帮助那些在某个子网中的主机,在不重新配置路由甚至默认网关的情况下,发送数据到远端主机。
使用代理ARP可以在网络中单独增加一台路由器,而不会影响其他路由器的路由表。
但是使用代理ARP也带来严重不足:使用代理ARP将会明显增加网络分段中的传输业务量,并且网络中的主机也将会保持比正常时大许多的ARP表,并以此来处理全部的IP到MAC的地址映射。有关这一点,可以在启用代理ARP网段的主机上使用“arp-a”命令查看,会发现有很多非本地子网中IP地址的映射条目,在没有启用代理ARP的情况下,主机只会有本地子网中主机的ARP缓存。

RARP(Reverse Address Resolution Protocol,反向地址转换协议)

前面介绍的ARP是已知其他计算机的IP地址,查询其他计算机的MAC地址。而RARP是已知本机的MAC地址,询问本机的IP地址。典型用在无盘工作站上,当一台无盘工作站启动时,它没有办法在其初始化时了解自己的IP地址,但是,它可以知道自己的MAC地址。无盘工作站可以通过发送RARP的包来询问与此MAC地址相对应的IP地址,网络上会指定一个被称为RARP服务器的计算机来响应这个请求,这样无盘工作站就会得到自己的IP地址
RARP是早期提供的通过硬件地址获取IP的解决方案,但它有自身的局限性,比如RARP客户与RARP服务器不在同一网段,中间有路由器等设备连接,这时候利用RARP就显得无能为力,因为RARP请求报文不能通过路由器。BOOTP(Bootstrap Protocol,引导协议)协议提供了很好的解决方法,同样,在今天的大中型网络中,DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)协议也是常用协议之一。接下来对BOOTP和DHCP进行简单介绍。
BOOTP:BOOTP也是一种客户/服务器的协议,可以为无盘操作系统或配置成动态获取的计算机提供IP地址、子网掩码、网关(路由器地址),以及DNS信息。实现过程分两种情况:
·情况一:这与RARP工作环境一样,即客户与服务器在同一网段,BOOTP服务器被动打开UDP端口67,客户端通过UDP端口68发送请求,因为客户端不知道自己的IP地址,也不知道服务器的IP地址,客户机使用全0的源地址与全1的目标地址,服务器通过单播或广播方式响应。
·情况二:客户与服务器在不同网段,实现的方法是,每个网段中设置一个中继代理,中继代理知道服务器的地址,其收到目标端口为67的广播报文,就将该报文封装成单播数据报,然后发送给BOOTP服务器,服务器知道该报文来自于中继代理,因为在中继代理发送的报文中有其IP地址,中继代理收到BOOTP服务器的回应后,把它发送给BOOTP请求客户。
DHCP:DHCP与BOOTP协议差不多,但DHCP功能更强,不仅可以通过租期方便地实现动态分配,而且还可以提供除IP地址、子网掩码、网关,以及DNS以外的几十个网络参数。
ARP、Proxy ARP和RARP也属于网络访问层,可以说ARP协议跨越OS1七层模型的二层和三层。正因为如此,一些处在网络层的防火墙对低层的ARP攻击显得无能为力。

传输层

在TCP/IP网络中,IP采用无连接的数据报机制,对数据进行“尽力而为的传递”,即只管将报文尽力传送到目的主机,无论传输正确与否,不做验证,不发确认,也不保证报文的顺序。TCP/IP的可靠性体现在传输层,传输层协议之一的TCP协议提供面向连接的服务(传输层的另一个协议UDP是无连接的)。传输层的主要功能是可靠而又准确地传输并控制源主机与目的主机之间的信息流,提供端到端的控制,通过滑动窗口机制提供流控制,通过序列号和确认机制来保证可靠性。TCP传输控制协议发送数据分段时,可以保证数据的完整性。流控制可以避免发送数据的主机使接收主机的缓存溢出的问题,缓存溢出会导致数据的丢失。可靠的传输可以通过下列方法实现:

  • 接收方对收到的数据分段向发送方进行确认;
  • 发送方向接收方重传所有未被确认的数据分段;
  • 在目的端将数据分段按正确的顺序重组,并删除重复的数据分段;
  • 提供避免和控制拥塞的机制。
TCP(Transmission Control Protocol,传输控制协议)

是一种面向连接的传输层协议,能提供可靠的数据传输。在面向连接的环境中,开始传输数据之前,端点之间先要建立连接。TCP负责将消息拆分成数据分段,重传丢失的数据分段并将数据分段在目的主机重组成消息。TCP的数据分段格式如图2-4-5所示,参加CCNA考试的考生没有必要了解每一个字段,但了解TCP报头中的源端口、目的端口、序列号、确认号和窗口,有助于理解 TCP传输的可靠性和TCP的滑动窗口机制。
TCP/IP协议组常用的协议如图2-4-6所示,其中使用TCP的应用层协议有FTP、HTTP、SMTP、POP3、Telnet和DNS等,使用UDP的协议有DNS和TFTP等。
在这里插入图片描述

UDP UDP(User Datagram Protocol,用户数据报协议)

是TCP/IP协议栈中无连接的传输协议,其数据分段格式如图2-4-7所示。UDP是一种简单协议,它交换数据报而没有确认机制或传输保证,错误处理和重传机制必须由上层协议来完成。从TCP和UDP的数据分段格式中可以看出,UDP的简单性非常明显。UDP协议主要面向请求/应答式的交易型应用,一次交易往往只有一来一回两次报文交换,假如为此而建立连接和撤销连接,开销是相当大的,这种情况下使用UDP就非常有效。另外,UDP协议也应用于那些对可靠性要求不高,但要求网络的延迟较小的场合,如话音和视频数据的传送。
在这里插入图片描述
组播一般使用的都是UDP协议,很多广播教学软件,譬如“极域电子教室”教学软件等使用的就是组播地址和UDP协议,教师机只需要发送一份数据到组播地址,所有的学生机加入这个组播地址,接收教师机的广播教学,学生机的多少对教师机的性能影响不大。
Netmeeting程序又称网络会议,也可以用于广播教学,教师机可以共享自己的屏幕,可是这款软件使用的是TCP协议,是端到端的连接,需要确认重传机制,教师机的性能受学生机数量多少的影响,教师机最多只可以直接连接十几台学生机。

三次握手

TCP协议是面向连接的,所以它在开始传输数据之前需要先建立连接。要建立或初始化一个连接,两端主机必须同步双方的初始序号。同步是通过交换连接建立数据分段和初始序号来完成的,在连接建立数据分段中包含一个SYN(同步)的控制位。同步需要双方都发送自己的初始序号,并且发送确认的ACK。如图2-4-8所示,此交互过程就是所谓的三次握手。
在这里插入图片描述
①主机A发往主机B,主机A的初始序号是X,设置SYN位,未设置ACK位。
②主机B发往主机A,主机B的初始序号是Y,确认号(ACK)是X+1,X+1确认号暗示已经收到主机A发往主机B的同步序号。设置SYN位和ACK位。
③主机A发往主机B,主机A的序号是X+1,确认号是Y+1,Y+1确认号暗示已经收到主机B发往主机A的同步序号。设置ACK位,未设置sYN位。
三次握手解决的不仅仅有序号问题,还解决了包括窗口大小、MTU(Maximum Transmission Unit,最大传输单元),以及所期望的网络延时等其他问题。

滑动窗口

在大多数可靠、面向连接的数据传输中,数据分组必须以与发送时相同的顺序传输到接收端。任何数据分组丢失、损坏、重复或接收时乱序都将导致协议出错。最基本的解决方法就是让接收方在接收到每一个数据分段后都确认
如图2-4-9所示,如果发送方在发送每一个数据分段后都要等候确认,吞吐量是很低的,因此大多数面向连接、可靠的协议都允许一次发送多个数据分段。因为发送方在发送完数据分组之后和处理完接收到的确认之前是有一段时间间隔的,这段间隔可以用来传输更多的数据。在没有收到确认的情况下,窗口是允许发送方发送数据分组的个数的。
TCP使用期待确认,即确认号就是所期待接收的下一个字节。滑动窗口是指在TCP会话中窗口大小是动态协商的。滑动窗口是一种流控机制,允许源设备在向目的设备发送一定数量的数据之后接收一个确认。
假设窗口大小为3,如图2-4-10所示。源设备可以发送3个字节到目的设备,然后需要等待一个确认。目的设备接收到这3个字节之后,向源设备返回一个确认,这时候源设备就可以继续传输下面3个字节了。如果目的设备没有收到这3个字节,它就不会返回确认,源设备没有接收到确认,它就知道这些字节需要重传。
在这里插入图片描述

确认机制

TCP在传输前,需要对每个数据分段进行编号。接收端主机将数据分段重组成完整信息,TCP必须恢复由Internet通信系统导致的数据损坏、丢失、重复或乱序。TCP通过为传输的每个字节指定序号,并且要求接收端TCP的主动确认(ACK)来实现,如图2-4-11所示。
①源主机A远程登录目的主机B,源主机使用一个本地的随机端口1058,访问目的主机的23号服务端口。源主机初始序号是100,没有确认号。
②主机B收到主机A的数据包进行响应,返回的数据包源端口是23,目的端口是1058,主机B返回的包中的端口号和主机A发过来的端口号中的源和目的端口刚好相反。主机B的初始序号是1,确认号101表示已经收到主机A的序号100,希望接收序号101的包。
③主机A对主机B发过来的包进行响应,发送的序号是101,确认号2表示已经收到主机B的序号1。

应用层

应用层包括所有的高层协议,与OSI的应用层协议相差不大,包括HTTP(超文本传输协议,使用TCP的端口80)、Telnet(远程登录协议,使用TCP的端口23)、FTP(文件传输协议,使用TCP的端口21和一个不确定的数据传输端口)、SMTP(简单邮件传输协议,使用TCP的端口25)、POP3(邮局3协议,使用TCP的端口110)、DNS(域名服务,使用UDP和TCP的端口53)等。

IP协议

IP地址部分在CCNA考试中占了相当大一部分比重。本节主要介绍二进制和十进制的转换、IP地址的分类、IP子网划分、子网掩码、公有地址和私有地址等。
IP地址是用来标识网络中一个通信实体的,比如一台主机,或者是路由器的某一个端口。而在基于IP协议网络中传输的数据包,也都必须使用IP地址来进行标识,如同我们写一封信,要标明收信人的通信地址和发信人的地址,邮政工作人员通过该地址来决定邮件的去向。
在计算机网络里,每个被传输的数据包也要包括一个源IP地址和一个目的IP地址。当该数据包在网络中进行传输时,这两个地址要保持不变(有网络地址转换和代理的情况例外,本书后面会介绍到网络地址转换技术),以确保网络设备总能根据确定的IP地址,将数据包从源通信实体送往指定的目的通信实体,以及数据包从目的通信实体返回源通信实体。开始介绍IP之前,首先看一台上网主机需要配置TCP/IP属性中的哪些参数?
打开“Internet协议(TCP/IP)属性”窗口,如图2-5-1所示,一台上网的主机一般需要配置IP地址、子网掩码、默认网关、DNS服务器地址等参数。前面已经介绍了,DNS服务器用来进行域名解析,负责把域名解析成对应的IP地址,可是IP地址、子网掩码、默认网关等参数主要起到什么作用呢?本节将对这些参数的用途进行详细说明。

IP地址分类

一个IP地址主要由两部分组成:一部分用于标识该地址所从属的网络号;另一部分用于指明该网络上某个特定主机的主机号。网络号由因特网权力机构分配,主机地址由各个网络的管理员统一分配。因此,网络地址的唯一性与网络内主机地址的唯一性确保了IP地址的全球唯一性(其中保留给某些网络使用的私有地址段除外)。
为适应不同规模的网络,IP地址空间被划分为五个不同的地址类别,即A、B、C、D和E类,如表2-5-1所示,其中A、B、C三类最为常用,D类用于组播,E类用于科研。
在这里插入图片描述
1.A类地址
A类地址用来支持超大网络,A类IP地址的前8位二进制表示网络号,后24位二进制表示主机号。A类地址很好识别,只需把第一个十进制数换算成二进制数,如果最高位是
“0”,则是A类地址,但有两个特例,0和127两个数被保留,不属于A类地址。A类地址的范围从1~126,全球只有126个A类网络。如果申请到一个A类地址就相当于申请到24个lP地址,等于16777216个。
2.B类地址
B类地址用来支持中等网络,B类IP地址的前16位二进制表示网络号,后16位二进制表示主机号。B类地址很好识别,只需把第一个十进制数换算成二进制数,如果前两位是
“10”,则是B类地址,范围从(10000000)2=128到(10111111)2=191。全球有214个B类网络。如果申请到一个B类地址就相当于申请到216个IP地址,等于65536个。
3.C类地址
C类地址用来支持小型网络,C类IP地址的前24位二进制表示网络号,后8位二进制表示主机号。C类地址很好识别,只需把第一个十进制数换算成二进制数,如果前三位是
“110”,则是C类地址,范围从(11000000)2=192到(11011111)2=223。全球有221个C类网络。如果申请到一个C类地址就相当于申请到28个IP地址,等于256个。
4.D类地址
D类地址用来支持组播,也称组播地址。组播地址不区分网络号或主机号,就是单一的网络地址,用来转发目的地址为预先定义的一组IP地址的分组。因此,一台工作站可以将单一的数据流同时传送给多个接收者。D类地址也很好识别,只需把第一个十进制数换算成二进制数,如果前四位是“1110”,则是D类地址,范围从(11100000)2=224到(11101111)
2=239。全球有228个组播地址。
5.E类地址
E类地址用于科研,因此,lntemet上没有E类地址。E类地址也很好识别,只需把第一个十进制数换算成二进制数,如果前四位是“1111”,则是E类地址,范围从(11110000)2=-240到(11111111)2=255。

保留ip地址

注意表2-5-1中每个网络中可容纳的主机数都是申请的IP地址减去2,这是因为有一些地址被保留,不能分配给网络中的设备使用。每个网络中保留的两个IP地址是:
·网络地址:网络位不变,主机位全0的IP地址代表网络本身,不能分配给某个网络设备使用。
·广播地址:网络位不变,主机位全1的IP地址代表本网络的广播,也不能分配给某个网络设备使用。发往广播IP地址的数据包被本网络中所有主机接收。
譬如,默认C类网络192.168.1.0中,IP地址的范围从192.168.1.0到192.168.1.255,排除网络地址192.168.1.0和广播地址192.168.1.255,192.168.1.0网络中可以使用的IP地址数是254个。默认B类网络172.16.0.0中,IP地址的范围从172.16.0.0到172.16.255.255,排除网络地址172.16.0.0和广播地址172.16.255.255,172.16.0.0网络中可以使用的IP地址数是65536-2=65534个,这里特别要提醒的是172.16.0.255、172.16.1.255…172.16.254.255并不是广播地址,因为B类网络地址的主机位有16,只有16位全是1才是广播地址。本节的后面部分会介绍到IP子网划分,请牢牢记住一点,即:主机位全0的是网络地址,主机位全1的是广播地址。

公有ip地址和私有ip地址

公有IP地址是唯一的,因为公有IP地址是全局的和标准的,所以没有任何两台连到公共网络的主机拥有相同的IP地址。一般宽带接入用户可以花些费用,向ISP运营商申请公有的IP地址,拥有公有IP地址后,就可以向因特网提供服务了。
随着Internet的快速增长,公有IP地址几近枯竭。为解决这个问题,提出了VLSM
(Variable Length Subnet Masks,变长子网掩码)、CIDR(Classless Inter-Domain Routing,无类别域间路由),以及IPv6等机制。有关VLSM、CIDR和IPv6将在本书后面的章节中讨论。
另一种更行之有效的方法是使用私有地址。如前所述,Internet 主机需要一个全局唯一的IP地址。可是私有网络不连接到Internet上,它可以使用任何有效的IP地址。如果私有网络需要连接到Internet上,可以使用代理或具有NAT(Network Address Translation,网络地址转换)能力的设备进行转换,把私有IP地址转换成合法的公有IP地址,再访问Internet。
原则上讲,私有网络可以配置任何有效的IP地址,可有一个问题出现了,如果私网中配置的是202.119.248.0这个C类网络,该私有网络将无法访问南京工业大学的Web主页,因为南京工业大学Web服务器的IP地址是202.119.248.65,私有网络的主机将会在局域网中寻找202.119.248.65,而不会把数据包发往正确的Internet。为了避免出现这种情况,RFC1918留出3块专有的IP地址空间(1个A类地址段,16个B类地址段,256个C类地址段,如表2-5-2所示)作为私有的内部使用的地址。在这3块范围内的IP地址不会被Internet的路由器转发,因为Internet上的路由器均没有配置这些IP地址的路由,如果有去往这些私有IP地址的数据包将被路由器丢弃。

IP子网划分

在这里插入图片描述
在讲述子网划分之前,先来看一个实例,如图2-5-2所示,4台计算机接在一个HUB(集线器)上,IP和子网掩码配置如图中所示。图中的“/24”表示计算机IP地址的网络位有24位,主机位是8位(32-24=8,相当于子网掩码是255.255.255.0,CCNA考题中经常用这种格式表示子网掩码)。图中哪些计算机之间可以通信?判断的依据是什么?如何才能让它们全部都可以互访?(注意这里还没讲子网)
答案是PC1(Personal Computer,个人计算机)和PC3为一组,PC2和PC4为一组,组内计算机之间可以通信,组间计算机之间不能通信。判断的依据是:同一子网的计算机可以直接通信,不同子网的计算机不可以直接通信处在不同子网中的计算机间如需通信,需要通过一个三层设备,也就是有路由功能的设备。前面已经介绍过集线器处在物理层,不具有网络层的功能,不能实现不同网络间的互联

判断是否在一个子网

那么如何判断在在不在同一个子网呢?先把ip地址和子网掩码转换成二进制数,然后进行“与”运算,也就是二进制数的按位与运算,得出一台计算机所在的网络号,如果两台计算机的网络号相同,就说明它们处在同一子网;如果网络号不同,就说明它们处在不同子网。把每台计算机的IP地址与子网掩码进行按位“与”运算,我们得出PC1的网络号是192.168.1.0/24,PC2的网络号是192.168.2.0/24,PC3的网络号是192.168.1.0/24,PC4的网络号是192.168.2.0/24,PC1和PC3处在同一子网,PC2和PC4处在同一子网。如果192.168.1.0网络中的计算机需要访问192.168.2.0网络中的计算机,那么就需要通过一个三层设备,而HUB处于OSl七层模型中的第一层,即物理层,不具备路由功能,无法为不同子网中的计算机提供路由功能。
如何才能让4台计算机相互之间都可以通信呢?方法有很多种,这里简单列举3种。
·方法一:修改PC2、PC4的IP地址为192.168.1.3、192.168.1.4,这样4台计算机就处在同一子网中,相互之间可以直接通信。这种方法有一定的局限性,假如192.168.1.0/24网中已经有254台计算机,如果又有新的计算机加入,192.168.1.0/24网段中所有有效的IP地址都被分配出去,新加入的计算机将无IP地址可用,此时就需使用方法二了。
·方法二:修改4台计算机的子掩码为“/22”,即255.255.252.0,这样4台计算机的网络号都是192.168.0.0/22,处在同一个子网中,这样的子网中,网络位有22位,主机位有10位,可以容纳的主机数为210-2=1022台,即从192.168.0.1到192.168.3.254。
这种方法也有不足之处,因处在同一个子网中的计算机处在同一个广播域,一是存在安全隐患;二是大量广播存在,影响通信效率;三是故障排除困难,如果同一个子网中的计算机数量过多,可以考虑采用第三种方法。
·方法三:把集线器换成三层交换机,并把接PC1、PC3的交换机端口划到一个VLAN(Virtual Local Area Network,虚拟局域网,在本书后面章节会更详细深入地讨论VLAN的配置),并给此VLAN分配IP地址192.168.1.254,把PC1和PC3的网关设成192.168.1.254。把接PC2、PC4的交换机端口划到另一个不同的VLAN,并给此VLAN分配IP地址192.168.2.254,把PC2和PC4的网关设成192.168.2.254。这样4台计算机之间也可相互通信了。三层交换机可以把两个子网连通起来,三层交换机有两个VLAN,每个VLAN都是一个广播域,两个VLAN中的广播互不影响。
第三种方法可以有效地克服第二种方法的不足,缺点就是增加了硬件设备的投资。

子网掩码

书中没有子网掩码的知识,在此补充。
子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在广域网上。
计算方法
1)将子网数目转化为二进制来表示
2)取得该二进制的位数,为 N
3)取得该IP地址的类子网掩码,将其主机地址部分的的前N位置 1 即得出该IP地址划分子网的子网掩码。

为何要划分子网

在讲述子网划分之前,先来分析一下为何要划分子网?因为划分子网主要有下列好处:

  • 缩减网络流量,优化网络性能。
    在前面介绍的方法三中,大家知道在不同子网中的广播地址互不相同,而在相同子网中的广播地址是相同的。试想一下,如果申请到一个B类的地址173.1.0.0/16,该子网中可以容纳的主机数是65534台,6万多台的计算机在同一个子网中,广播量非常巨大。通过三层交换机或路由器把6万多台计算机隔离到不同的子网中,大多数的流量将会被限制在本地子网中,而只有那些被标明发送到其他网络的流量,才会通过路由器或三层交换机的网络层。路由器和三层交换机的VLAN创建了广播域,创建的广播域越多,其广播域的规模就越小,并且在每个网段上的无关流量也就会越低
  • 简化管理。与一个巨大的网络相比,在一组较小的互联网络中,判断并孤立网络所出现的故障会容易很多。
  • 增加网络安全性。试想一下,如果申请到一个C类的地址193.1.1.0/24,公司内部的多个部门共同使用这个C类地址,相互之间处在同一个广播域,通过使用黑客工具,可以很容易地截获其他用户之间的通信,存在很大的安全隐患,且不容易实现访问控制。通过划分子网,让路由器互连不同的子网,在路由器上配置ACL(Access Control List,访问控制列表)限制不同网络之间的访问权限,提高网络的安全性。
如何创建子网

假如某单位申请到了一个C类的网络地址199.1.1.0/24,该单位共有5个部门,每个部门最多只会有28台计算机。为了增强安全性,使用路由器来限制部门之间只能进行有限的访问。问子网掩码设成多少比较合适?每个部门使用的IP地址范围是多少?
分析C类地址的特征,24位网络位,8位主机位,因为网络位是由IP地址分配商提供,固定不变的,单位内部可以调整的只能是主机位。如果从8位主机位中借出一位来延长网络位,只能划分成21=2个子网(有些老式系统不支持全“0”和全“1”的子网,也就是子网位是全“0”和全“1”的网络号。在这种情况下,如果是借1位,将没有一个子网可用,但新的系统基本都不存在这个限制,思科路由器上可以在全局配置模式下使用
“Router(config)#ipsubnet-zero”命令让路由器支持全“0”和全“1”的子网,使用
“Router(config)#no ip subnet-zero”命令让路由器不支持全“0”和全“1”的子网。在CCNA考试中,在没有特别声明是否支持全“0”和全“1”子网的情况下,默认是不支持的,有关这一点,考生要特别注意),满足不了5个部门的需要;借2位,可以划分成22-2=2个子网,还是满足不了5个部门的需要;借3位,可以分成23-2=6个子网,可以满足5个部门使用的需要。网络位本来有24位,又从主机位借走了3位作为子网位,还剩下5位主机位,每个子网可容纳的主机数量是25-2=30,大于每个部门最多的主机数量28;借4位,虽然子网数量满足了,可主机位只剩下4位,每个子网中最多只能有21-2=14个可用IP地址,还要去除网关占用的一个IP地址,每个子网最多只能容纳13台计算机,小于每个部门最多有28台计算机的需求。故本例的正确划分方法只有一种,从主机位中借出3位作为子网位,则网络位变成了24+3=27位,换成十进制就是255.255.255.224。
本例中,通过从一个C类地址的主机位中借出3位,分成了如下8个子网:
000
001
010
011
100
101
110
111
即:
199.1.1.0/27199.1.1.32/27199.1.1.64/27199.1.1.96/27199.1.1.128/27199.1.1.160/27199.1.1.192/27199.1.1.224/27而单位只需有5个子网,默认不使用全“0”和全“1”的子网,即不使用199.1.1.0/27和199.1.1.224/27的子网,从剩下的6个子网中拿出前5个子网,最后的1个子网预留给将来的升级使用,如果单位增加了新的部门将可以使用该子网。第一个可用子网199.1.1.32/27的IP地址范围从199.1.1.(00100000)2到199.1.1.(00111111)2,即从199.1.1.32到199.1.1.63,共包括32个IP地址。其中199.1.1.32/27的主机位全“0”,是网络地址,也是本子网中第一个IP地址,不可以使用。199.1.1.63/27的主机位全“1”,是该子网的广播地址,也是本子网中最后一个IP地址,不可以使用。假设每个子网都是把第一个可以使用的IP地址用做网关,则199.1.1.33配在路由器的接口上,充当本子网的默认网关。则本子网中主机可以使用的IP地址是从199.1.1.34到199.1.1.62,共29个。所有子网的IP地址范围、网络号、子网广播、网关、主机可用IP地址范围、网络掩码等。
此处书中还给出了两个例子,因为IP地址的计算十分基础和重要,我决定另外写一篇关于IP地址设计的文章,此处略过,敬请关注

封装和解封装

数据的封装和解封装在CCNA考试中,几乎每次必考。明白数据的封装和解封装对大家理解数据包在网络中的传输也相当重要,本节结合一个实例,讲解数据包在网络中的流动。其实数据包在网络中的流动就是一个重复的封装和解封装的过程。本节的讲解请参考光盘中的视频文件“视频2-2.wrf”。
在图2-6-1中,PC1远程登录(Telnet)服务器,整个过程是如何实现的呢?下面列出具体的实现步骤。
在这里插入图片描述
步骤1:PC1封装数据包。PC1比较要去往的目标IP地址,发现服务器的IP地址195.1.1.2不在本地网络中,PC1知道要发往不同网络中的数据包,首先要发往网关,也就是图中路由器R1快速以太网接口Fa0/0的IP地址193.1.1.1。PC1查询本地的ARP缓存,如果找到193.1.1.1对应的MAC地址则进行封装;如果在ARP缓存中没有找到193.1.1.1对应的MAC地址,则用前面章节介绍过的ARP协议,查询到网关对应的MAC地址“00-11-BC-7D-25-03”。
PC1对Telnet协议的数据包进行封装,首先在传输层进行分段等处理。因Telnet使用的是TCP协议,PC1使用本地一个大于1024以上的随机TCP源端口(这里假设是1030)建立到目的服务器TCP23号端口的连接,TCP源端口和目的端口被加入到传输层的协议数据单元中(Protocol Data Unit,PDU)。如图2-6-2所示,协议数据单元在应用层、表示层和会话层被称做数据(Data),在传输层被称做分段(Segment),在网络层被称做包(Packet),在数据链路层被称做帧(Frame),在物理层被称做比特(Bit)。因TCP是一个可靠的传输控制协议,传输层还会加入序列号、窗口大小等参数。
传输层封装后的数据分段被传到网络层,封装网络层的头部,主要就是添加源和目的IP地址,这里的源IP地址是193.1.1.2,目的IP地址是195.1.1.2。
在这里插入图片描述
网络层封装后的数据包被传到数据链路层,封装帧头和帧尾。帧尾是添加被称做 CRC的循环冗余校验部分。帧头主要是添加数据链路层的地址,即数据链路层的源地址和目的地址,用在以太网上的体现就是添加源MAC地址和目的MAC地址,这里的源MAC地址是PC1的MAC地址“00-1B-24-7D-25-01”,目的MAC地址是网关的MAC地址“00-11-BC-7D-25-03”。有关目的MAC地址为何是路由器接口的MAC地址,而不是目的服务器网卡的MAC地址,是很多读者困惑的地方,当然也是CCNA考试的一个考点。我们说MAC只是用在局域网内的寻址,如果封装的是目的服务器的MAC地址,如何体现这个包是发往路由器的呢?假设封装的目的MAC地址是服务器的MAC地址
“00-1B-24-7D-25-05”,这样的数据包被传到路由器后,路由器比较数据帧中的目的MAC地址,发现与本路由器接口的MAC地址不同,路由器丢弃这个包,数据包不被路由器转发,更别想能到达目的服务器了
。PC1发出的数据帧格式如图2-6-3所示。
在这里插入图片描述
数据链路层封装后的数据帧被传到物理层,转换成二进制形式的比特(Bit)流,从PC1的网卡发送出去。物理层的用途就是处理比特流,把比特转换成电子、光学或微波信号。反之在接收端,物理层从传输媒体中重新得到这些信号,恢复成比特流,传输比特流到数据链路层。
步骤2:PC1发出的比特流到达集线器(注意图2-6-1中的图标表示的是集线器),集线器简单地对比特流进行放大,从除接收端口以外的所有端口转发出去。PC2接收到这个数据包,把比特流转换成帧上传到数据链路层,PC2比较数据帧的目的MAC地址,发现与本机网卡的MAC地址不同,PC2丢弃该数据帧,放弃处理。
步骤3:路由器Rl收到该比特流,转换成帧上传到数据链路层,路由器R1比较数据帧的目的MAC地址,发现与路由器接收端口Fa0/0(FastEthernet,快速以太网,简写成Fa0/0,指的是0号插槽上编号为0的接口)的MAC地址相同,路由器知道该数据帧是发往本路由器的。路由器R1的数据链路层把数据帧进行解封装,然后上传到路由器R1的网络层,路由器R1看到数据包的目的IP地址是195.1.1.2,并不是发给本路由器的,需要路由器进行转发。
路由器R1查询自己的路由表,发现数据包应该从串行接口S1/1发出。路由器R1把数据包从Fa0/0接口交换到S1/1接口。
此时R1并不能直接把这个数据包发出去,因为在R1的Fa0/0接口被解封装,现在需要被重新再封装。可以想象一个风雪交加的日子,进门的时候拿下帽子,出门的时候需要再戴上帽子。数据封装也是这样,在路由器的入接口解封装,在路由器的出接口需要再封装,和人取下帽子有区别的是,这里解封装去掉的内容和再封装加上去的内容是不一样的。网络层的封装并没有被解开,但并不意味着网络层的信息一点都没有改变,其实网络层的数据包中源和目的IP地址都没有被改变(除非在网络地址转换的情况下),但TTL(生存周期,前面已经介绍过)会减1。网络层把数据包交给下层的数据链路层,数据链路层需要封装二层的地址。串行链路不同于以太网,因为以太网是一个多路访问的网络,要定位到目的设备需要借助于MAC地址,但串行线路一般的封装协议都是PPP(Point-to-Point Protocol,点到点协议)或HDLC(High-Level Data Link Control,高级数据链路控制协议)封装,这种封装被用于点对点线路,也就是说,一根线缆只连接两台设备,一端发出,另一端肯定可以收到。假设串行线缆上使用的是PPP协议,则数据链路层封装的源和目的地址都是PPP。路由器R1发出的数据帧格式如图2-6-4所示。
在这里插入图片描述
数据链路层封装后的数据帧被传到物理层,转换成二进制形式的比特流,从路由器R1的S1/1接口发送出去。
步骤4:路由器R2收到这个比特流,上传至数据链路层,数据链路层去掉PPP的封装。
路由器R2查询数据包的目的IP地址,发现该IP网络直接连接在Fa0/0接口,路由器R2把数据包交换到Fa0/0接口。路由器查看本地的ARP缓存,如果找到195.1.1.2对应的MAC地址,则直接进行封装;如果没有找到,则发送ARP的查询包。路由器R2发出数据帧的源地址是Fa0/0接口的MAC地址,目的地址是服务器网卡的MAC地址。路由器R2发出的数据帧格式如图2-6-5所示。
在这里插入图片描述
数据链路层封装后的数据帧被传到物理层,转换成二进制形式的比特流,从路由器R2的Fa0/0接口发送出去。
步骤5:路由器R2发出的比特流到达交换机(注意图2-6-1中的图标表示的是交换机),交换机除了对比特流进行放大外,还根据源MAC地址进行学习,根据目的MAC地址进行转发。交换机根据数据帧中的目的MAC地址查询MAC地址表,把比特流从对应的端口发送出去,交换机把比特流发往服务器,并没有发往PC3。
步骤6:服务器接收到这个比特流,把比特流转换成帧格式,上传到数据链路层,服务器发现数据帧中的目的MAC地址与本网卡的MAC地址相同,服务器拆除数据链路层的封装后,把数据包上传到网络层。服务器的网络层比较数据包中的目的IP地址,发现与本机的IP地址相同,服务器拆除网络层的封装后,把数据分段上传到传输层。传输层对数据分段进行确认、排序、重组,确保数据传输的可靠性。
数据最后被传到服务器的应用层。从PC1到Server的整个数据包流动过程如图2-6-6所示,从图中可以看出,PC1执行OSI七层的封装,然后把比特流传到集线器;集线器在物理层把信号简单放大后,把比特流传到路由器R1;R1执行OSI下三层的处理后,再把比特流传到路由器R2;R2执行OSI下三层的处理后,再把比特流传到交换机;交换机执行OSI下二层的处理后,再把比特流传到服务器。
从这个流动过程中,可以发现数据流在中间设备上主要执行的是OSI下三层的操作,物理层的设备不改变帧的格式,广播式转发;数据链路层的设备也不改变帧的格式,但可以根据数据帧中的目的MAC地址进行转发;网络层的设备改变帧的格式,要执行帧的解封装和再封装,但不改变数据包中的源和目的IP地址
步骤7:服务器收到PC1发过来的Telnet包后,对PC1进行响应。和PC1处理的过程类似,服务器也知道要发往一个远程的网络,数据链路层的目的MAC地址需要封装网关的MAC地址;网络层源和目的IP地址与PC1发送过来的包相反,即把源地址变成目的地址,目的地址变成源地址:传输层源和目的端口与PC1发送过来的包相反,即把源端口变成目的端口,目的端口变成源端口。服务器发回的数据帧格式如图2-6-7所示。
在这里插入图片描述

一篇长文,喜欢就点赞关注支持一下吧!】💗

后续还会有IP地址计算和TCP/IP习题更新!

这篇关于CCNA(一)-详解ISO/OSI参考模型与TCP/IP参考模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/924039

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

LabVIEW FIFO详解

在LabVIEW的FPGA开发中,FIFO(先入先出队列)是常用的数据传输机制。通过配置FIFO的属性,工程师可以在FPGA和主机之间,或不同FPGA VIs之间进行高效的数据传输。根据具体需求,FIFO有多种类型与实现方式,包括目标范围内FIFO(Target-Scoped)、DMA FIFO以及点对点流(Peer-to-Peer)。 FIFO类型 **目标范围FIFO(Target-Sc

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMessageDialog()方法 3.1

脏页的标记方式详解

脏页的标记方式 一、引言 在数据库系统中,脏页是指那些被修改过但还未写入磁盘的数据页。为了有效地管理这些脏页并确保数据的一致性,数据库需要对脏页进行标记。了解脏页的标记方式对于理解数据库的内部工作机制和优化性能至关重要。 二、脏页产生的过程 当数据库中的数据被修改时,这些修改首先会在内存中的缓冲池(Buffer Pool)中进行。例如,执行一条 UPDATE 语句修改了某一行数据,对应的缓

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(