网络互联及Internet

转载自:
尔雅网课,吉林大学计算机网络基础,讲师李晓峰的课程总结


广域网概述

广域网,简写为WAN,分布的地理范围很广,又被称为远程网络。往往要借助于公共基础通信网实现,例如公共电话网PSTN。

常见的广域网包括公共电话交换网PSTN、 DDN网、X.25分组交换网、帧中继网络和xDSL网络。

电话网络即PSTN是目前普及程度最高、成本最低的公用通讯网络,它在网络互连中也有广泛的应用。

DDN即数字数据网,利用数字传输通道(光纤,数字微波,卫星)和数字交叉复用节点组成的数字数据传输网。

X.25网,即分组交换网,分组交换是以CCITT(国际电报电话咨询委员会)X.25为基础。X.25网具有以下优点:信息传输质量高、网络可靠性高、方便与不同类型终端间的相互通信、线路利用率高和经济性能好。

帧中继是一种高性能的WAN协议,它运行在OSI参考模型的物理层和数据链路层。它是一种数据包交换技术,是X.25的简化版本。又称作快速分组交换技术。

DSL称作数字用户线路,是以铜质电话线为传输介质的传输技术组合,它包括HDSLSDSLVDSLADSLRADSL等,一般称之为xDSL。常用的是ADSL,ADSL技术提供的上行和下行带宽不对称,因此称为非对称数字用户线路。

TCP IP协议

TCP/IP协议是Internet的主机。进行数据交换所遵守的网络通信协议,是与Internet有关的一系列网络协议的总称。

TCP协议,即Transmission Control Protocol ,是工作在传输层的协议;

IP协议,即 InternetProtocol,是工作在网络层的协议。

这两个协议是Internet使用的主要协议,有很多协议和它们共同工作,称作协议族,通常,TCP/IP表示这一族协议。

TCP/IP协议,由四层实现,分别是物理层、网络层、传输层和应用层。将OSI中的低两层对应为TCP/IP协议的物理层,将OSI中的高三层对应为TCP/IP协议的应用层。实际上,在Internet 中,主要实现网络层和传输层的功能。

TCP/IP协议的物理层,提供了各种物理网络与TCP/IP之间的接口。TCP/IP并不关注物理层是如何实现的,只是使用物理层的功能。第三章介绍的各种局域网都是在TCP/IP协议的物理层工作。

TCP/IP协议的网络层,将数据包封装成数据报,并为其选择合适的路由,发送、传递数据包。包括IP协议、ARP协议、RARP协议和ICMP协议。

TCP/IP协议的传输层,提供端对端的可靠通信。通常使用的是 TCP 和 UDP。

TCP/IP协议的应用层,为用户和主机间提供了一个接口,应用程序通过此层访问网络。包括DNS协议、FTP协议、HTTP协议和SMTP协议。

网络层使用的协议

TCP/IP的网络层,主要使用IP协议、ARP协议、RARP协议和ICMP协议

IP协议,是网络层中最重要的协议,是整个Internet的基础协议,负责分配 IP 地址,提供路由。所谓路由,即IP协议负责选择传送的道路,可以根据数据报 报头中包括的目的地址将数据报传送到目的主机。IP不提供可靠的传输服务,对数据没有差错控制,它只使用报头的校验码,不提供重发和流量控制。

ARP协议,即地址转换协议,在数据报向下一个站点传递时,负责将IP 地址转换为物理地址。在发送信息时,主机将包含目标IP地址的ARP请求 广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址。

RARP协议,即反向地址转换协议,作用与ARP相反,负责将物理地址转换为IP地址。允许主机从网关服务器的ARP 表或者缓存上请求主机的 IP地址。如无盘工作站工作时,需要使用RARP协议。

ICMP协议,即Internet 控制报文协议,负责发送消息,报告错误。主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。ICMP提供易懂的出错报告信息。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。

ARP

地址解析协议由互联网工程任务组(IETF)在1982年11月发布的RFC 826中描述制定。地址解析协议是IPv4中必不可少的协议,而IPv4是使用较为广泛的互联网协议版本。OSI模型把网络工作分为七层,IP地址在OSI模型的第三层,MAC地址在第二层,彼此不直接打交道。在通过以太网发送IP数据包时,需要先封装第三层(32位IP地址)、第二层(48位MAC地址)的报头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能跨第二、三层,所以需要使用地址解析协议。使用地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行。

地址解析协议工作过程如下

主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;

主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;

当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:

第1步:根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址。

第2步:如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。

第3步:主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。

第4步:主机B将包含其MAC地址的ARP回复消息直接发送回主机A。

第5步:当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。

ARP缓存是个用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址–>MAC地址的对应表,表中每一个条目分别记录了 网络上其他主机的IP地址和对应的MAC地址。每一个以太网或令牌环网络适配器 都有自己单独的表。当地址解析协议被询问一个已知IP地址节点的MAC地址时,先在ARP缓存中查看,若存在,就直接返回与之对应的MAC地址,若不存在,才发送ARP请求向局域网查询。

为使广播量最小,ARP维护IP地址到MAC地址映射的缓存以便将来使用。ARP缓存可以包含动态和静态项目。动态项目随时间推移自动添加和删除。每个动态ARP缓存项的潜在生命周期是10分钟。新加到缓存中的项目带有时间戳,如果某个项目添加后2分钟内没有再使用,则此项目过期并从ARP缓存中删除;如果某个项目已在使用,则又收到2分钟的生命周期;如果某个项目始终在使用,则会另外收到2分钟的生命周期,一直到10分钟的最长生命周期。静态项目一直保留在缓存中,直到重新启动计算机为止。

地址解析协议是通过报文工作的。报文包括如下字段:

硬件类型

协议类型

硬件地址长度

协议长度

操作类型

ARP缓存中包含一个或多个表,它们用于存储IP地址及其经过解析的MAC地址。ARP命令用于查询本机ARP缓存中IP地址–>MAC地址的对应关系、添加或删除静态对应关系等。如果在没有参数的情况下使用,ARP命令将显示帮助信息。

常见用法

arp -a或arp –g

用于查看缓存中的所有项目。-a和-g参数的结果是一样的,多年来-g一直是UNIX平台上用来显示ARP缓存中所有项目的选项,而Windows用的是arp -a(-a可被视为all,即全部的意思),但它也可以接受比较传统的-g选项。

地址解析协议是建立在网络中各个主机互相信任的基础上的,它的诞生使得网络能够更加高效的运行,但其本身也存在缺陷:

ARP地址转换表是依赖于计算机中高速缓冲存储器 动态更新的,而高速缓冲存储器的更新是受到更新周期的限制的,只保存最近使用的 地址映射关系表项,这使得攻击者有了可乘之机,可以在高速缓冲存储器更新表项之前修改地址转换表,实现攻击。ARP请求为广播形式发送的,网络上的主机可以自主发送ARP应答消息,并且当其他主机收到应答报文时不会检测该报文的真实性就将其记录在本地的MAC地址转换表,这样攻击者就可以向目标主机发送伪ARP应答报文,从而篡改本地的MAC地址表。 ARP欺骗可以导致目标计算机与网关通信失败,更会导致通信重定向,所有的数据都会通过攻击者的机器,因此存在极大的安全隐患。

防御措施

不要把网络安全信任关系建立在IP基础上或MAC基础上(RARP同样存在欺骗的问题),理想的关系应该建立在IP+MAC基础上。

设置静态的MAC–>IP对应表,不要让主机刷新设定好的转换表。

除非很有必要,否则停止使用ARP,将ARP做为永久条目保存在对应表中。

使用ARP服务器。通过该服务器查找自己的ARP转换表来响应其他机器的ARP广播。确保这台ARP服务器不被黑。

地址解析协议是IPv4中必不可少的协议,但在IPv6中将不再存在地址解析协议。在IPv6中,地址解析协议的功能将由NDP,即 邻居发现协议 实现,它使用一系列IPv6控制信息报文(ICMPv6)来实现相邻节点(同一链路上的节点)的交互管理,并在一个子网中保持网络层地址和数据链路层地址之间的映射。邻居发现协议中定义了5种类型的信息:路由器宣告、路由器请求、路由重定向、邻居请求和邻居宣告。与ARP相比,NDP可以实现路由器发现、前缀发现、参数发现、地址自动配置、地址解析(代替ARP和RARP)、下一跳确定、邻居不可达检测、重复地址检测、重定向等更多功能。

IPv4中地址解析协议是独立的协议,负责IP地址到MAC地址的转换,对不同的数据链路层协议 要定义不同的地址解析协议。IPv6中NDP包含了ARP的功能,且运行于因特网控制信息协议ICMPv6上,更具有一般性,包括更多的内容,而且适用于各种数据链路层协议;

地址解析协议以及ICMPv4路由器发现 和ICMPv4重定向报文基于广播,而NDP的邻居发现报文基于高效的组播和单播。

通过地址解析协议,主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址。

RARP

反向地址转换协议,即RARP,允许局域网的物理机器 从网关服务器的 ARP 表或者缓存上请求其 IP 地址。网络管理员在局域网网关路由器里 创建一个表以映射物理地址(MAC)和与其对应的 IP 地址。当设置一台新的机器时,其 RARP 客户机程序需要向路由器上的 RARP 服务器请求相应的 IP 地址。假设在路由表中已经设置了一个记录,RARP 服务器将会返回 IP 地址给机器,此机器就会存储起来以便日后使用。 RARP 可以使用于以太网、光纤分布式数据接口及令牌环 LAN。

ARP(地址解析协议)是设备通过自己知道的IP地址 来获得自己不知道的物理地址的协议。假如一个设备不知道它自己的IP地址,但是知道自己的物理地址,网络上的无盘工作站就是这种情况,设备知道的只是网络接口卡上的物理地址。这种情况下应该怎么办呢?RARP 正是针对这种情况的一种协议。

RARP以与ARP相反的方式工作。RARP发出要反向解析的物理地址 并希望返回其对应的IP地址,应答包括由能够提供所需信息的 RARP服务器发出的IP地址。虽然发送方发出的是广播信息,RARP规定只有RARP服务器能产生应答。许多网络指定多个RARP服务器,这样做既是为了平衡负载也是为了作为出现问题时的备份。

在这里插入图片描述

RARP的工作过程如下:

1、网络上的每台设备都会有一个独一无二的硬件地址,通常是由设备厂商分配的MAC地址。PC1从网卡上读取MAC地址,然后在网络上发送一个RARP请求的广播数据包,请求RARP服务器回复该PC的IP地址。

2、RARP服务器收到了RARP请求数据包,为其分配IP地址,并将RARP回应发送给PC1。

3、PC1收到RARP回应后,就使用得到的IP地址进行通讯。

作为用户进程的RARP服务器的复杂性在于:服务器一般要为多个主机 提供硬件地址到IP地址的映射。该映射包含在一个磁盘文件中 。由于内核一般不读取和分析磁盘文件,因此RARP服务器的功能就由用户进程来提供,而不是作为内核的TCP/IP实现的一部分。

更为复杂的是,RARP请求 是作为一个特殊类型的以太网数据帧来传送的。这说明RARP服务器 必须能够发送和接收这种类型的以太网数据帧。由于发送和接收这些数据帧与系统有关,因此RARP服务器的实现是与系统捆绑在一起的。

解决RARP回应问题的两种方法

第一种方法:为每一个做RARP 请求的主机分配一主服务器,正常来说,只有主服务器才会做出 RARP 回应,其它主机只是记录下接收到 RARP 请求的时间。假如主服务器不能顺利做出回应,那么查询主机在等待逾时再次用广播方式发送 RARP 请求,其它非主服务器假如在接到第一个请求后 很短时间内再收到相同请求的话,才会做出回应动作。

第二种方法:正常来说,当主服务器收到 RARP 请求之后,会直接做出回应;为避免所有非主服务器同时传回 RARP 回应,每台非主服务器都会随机等待一段时间再做出回应。如果主服务器未能做出回应的话,查询主机会延迟一段时间再进行第二次请求,以确保这段时间内 获得非主服务器的回应。当然,设计者可以精心的设计延迟时间至一个合理的间隔。

反向地址转换协议通过从网关服务器的 ARP 表或者缓存上请求其 IP 地址。RARP以与ARP相反的方式工作。RARP发出要反向解析的物理地址并希望返回其对应的IP地址,应答包括由能够提供所需信息的 RARP服务器发出的IP地址。

ICMP

**ICMP是控制报文协议。**它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递起着重要的作用。

ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。ICMP协议是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。

ICMP包有一个8字节长的包头,其中前4个字节是固定的格式,包含8位类型字段,8位代码字段和16位的校验和;后4个字节根据ICMP包的类型而取不同的值。

在这里插入图片描述

ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文 确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。

我们在网络中经常会使用到ICMP协议,比如我们经常使用的 用于检查网络通不通的Ping命令,这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。

从技术角度来说,ICMP就是一个“错误侦测与回报机制”,其目的就是让我们能够检测网路的连线状况﹐也能确保连线的准确性﹐其功能主要有:

· 侦测远端主机是否存在。

· 建立及维护路由资料。

· 重导资料传送路径(ICMP重定向)。

· 资料流量控制。ICMP在沟通之中,主要是透过不同的类别(Type)与代码(Code) 让机器来识别不同的连线状况。

ICMP协议对于网络安全具有极其重要的意义。ICMP协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。例如,可以利用操作系统规定的ICMP数据包最大尺寸不超过64KB这一规定,向主机发起“死亡之Ping”攻击。攻击的原理是:如果ICMP数据包的尺寸超过64KB上限时,主机就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使主机死机。

此外,向目标主机长时间、连续、大量地发送ICMP数据包,也会最终使系统瘫痪。大量的ICMP数据包会形成“ICMP风暴”,使得目标主机耗费大量的CPU资源处理,耗费系统资源 。

虽然ICMP协议给黑客以可乘之机,但是ICMP攻击也并非无药可医。只要在日常网络管理中未雨绸缪,提前做好准备,就可以有效地避免ICMP攻击造成的损失。

对于“Ping ofDeath”攻击,可以采取两种方法进行防范:第一种方法是在路由器上对ICMP数据包进行带宽限制,将ICMP占用的带宽控制在一定的范围内,这样即使有ICMP攻击,它所占用的带宽也是非常有限的,对整个网络的影响非常少;第二种方法就是在主机上设置ICMP数据包的处理规则,最好是设定拒绝所有的ICMP数据包。

ICMP消息虽然不传输用户数据但是对于用户数据的传递起着重要的作用,是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。

IP地址

Internet 上的每台主机都必须具有一个唯一的地址以区别于其他主机,这个地址就是 Internet 地址,也称作IP地址。在Internet 上,IP协议定义的主机地址使所有主机地址在网络层得到了统一。常见的IP地址,分为IP versionforthIP version sixth两大类,简称IPv4与IPv6 。

IPv4,即第四版IP 协议,是构成现今互联网技术的基石的协议。每个IP地址由网络地址和主机地址两部分组成。IP 地址由32位二进制组成,大约40亿个,已于2011年分配完毕。

一个IP 地址分为4段,可以表示为:a.b.c.d,段与段之间用圆点分开。

IP 地址有两种表示方法:二进制形式和 点分十进制。以下两种形式是同一个IP地址。

IP 地址共分为5类:A类地址、 B类地址、 C类地址、 D类地址和 E类地址。要求掌握的是A类地址、 B类地址和 C类地址。分类是根据 IP地址(a.b.c.d)第一段(a的取值范围)来划分。

A类地址,以0开头,前8位为网络地址,后24位为主机地址。A类地址第一段a取值范围为128~ 191 。每一个A类地址中,可以容纳主机的数目约为1600万。

B类地址,以10开头,前16位为网络地址,后16位为主机地址。B类地址第一段a取值范围为1~ 126 。每一个B类地址中,可以容纳主机的数目约为65000。

C类地址,以110开头,前24位为网络地址,后8位为主机地址。C类地址第一段a取值范围为192~ 223 。每一个C类地址中,可以容纳主机的数目为254。

Ipv6,即第六版IP 协议,一个IP 地址由128位二进制组成。采用冒分十六进制。

特殊IP地址

IPv4的地址由32个二进制组成,共约40亿个,在其中有一些特殊使用,包括专用IP地址和特殊使用的IP地址。

专用IP地址,由Internet地址授权机构(IANA)控制IP地址分配方案中,留出了三类网络号,给不连到Internet上的专用网用,分别用于A,B和C类IP网,这些地址如下:

A 10.0.0.0—10.255.255.255 (长度相当于1个A类IP地址)

B 172.16.0.0—172.31.255.255 (长度相当于16个连续的B类IP地址)

C 192.168.0.0—192.168.255.255 (长度相当于256个连续的C类IP地址)

这些地址是不会被Internet分配的,因此它们在Internet上也从来不会被路由,虽然它们不能直接和Internet网连接,但可以通过地址转换技术NAT与Internet通讯。

特殊使用的IP地址:

0.0.0.0,是全零网络,代表默认网络,帮助路由器发送路由表中无法查询的包。如果设置了全零网络的路由,路由表中无法查询的包都将送到全零网络的路由中去的。

127.0.0.1 ,称作回送地址,属于环回地址,IP地址 从127.0.0.0 到 127.255.255.255 都将环回到本地主机中。

255.255.255.255 ,限制广播地址。对本机来说,这个地址指本网段内(同一广播域)的所有主机。

子网掩码

子网掩码是一个32位二进制的值,可以把一个IP地址分离出网络地址和主机地址。采用点分十进制的形式。子网掩码不能单独存在,它必须结合IP地址一起使用。

子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。

将32位的IP地址与32位的子网掩码各位进行二进制的“与”运算 (全1则得1,不全1则得0),得到的是拥有该IP 地址的主机的网络地址。

子网掩码可以判断两台计算机是否属于同一网段,将计算机十进制的IP地址和子网掩码转换为二进制的形式,然后进行二进制“与”运算,如果网络地址是相同的,那么这两台计算机就属于同一网段。

计算示例:

IP 地址 131.107.5.1

子网掩码 255.255.252.0

求该IP的网络地址。

首先将IP 地址,子网掩码转换为二进制形式,对应位置做二进制的“与”运算,得到的就是网络地址,本例结果为131.107.4.0。

1111 1100

0000 0101

子网掩码可以分为缺省子网掩码自定义子网掩码。缺省子网掩码即未划分子网,对应的网络号的位都置1,主机号都置0

A类网络缺省子网掩码:255.0.0.0

B类网络缺省子网掩码:255.255.0.0

C类网络缺省子网掩码:255.255.255.0

自定义子网掩码是将一个网络划分为几个子网,或者将几个子网聚合为一个网络。

详细介绍子网掩码

子网掩码(subnetmask),又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。

对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。利用子网掩码可以把大的网络划分成子网,即VLSM(可变长子网掩码),也可以把小的网络归并成大的网络即超网。

在这里插入图片描述

互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。IP地址在设计时就考虑到 地址分配的层次特点,将每个IP地址都分割成网络号和主机号两部分,以便于IP地址的寻址操作。IP地址的网络号和主机号各是多少位呢?如果不指定,就不知道哪些位是网络号、哪些是主机号,这就需要通过子网掩码来实现。

子网掩码的设定必须遵循一定的规则。与二进制IP地址相同,子网掩码由1和0组成,且1和0分别连续。子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。这样做的目的是为了让掩码与ip地址做按位与运算时用0遮住原主机数,而不改变原网络段数字,而且很容易通过0的位数确定子网的主机数。只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。

在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。

1)将子网数目转化为二进制来表示

2)取得该二进制的位数,为 N

3)取得该IP地址的类子网掩码,将其主机地址部分的前N位置1 即得出该IP地址划分子网的子网掩码。

如欲将B类IP地址168.195.0.0划分成27个子网:

1)27=11011

2)该二进制为五位数,N = 5

3)将B类地址的子网掩码255.255.0.0的主机地址前5位置1(B类地址的主机位包括后两个字节,所以这里要把第三个字节的前5位置1),得到 255.255.248.0

即为划分成27个子网的B类IP地址 168.195.0.0的子网掩码(实际上是划成了32-2=30个子网)。

使用子网是为了减少IP的浪费。因为随着互联网的发展,越来越多的网络产生,有的网络多则几百台,有的只有区区几台,这样就浪费了很多IP地址,所以要划分子网。使用子网可以提高网络应用的效率。

通过IP 地址的二进制与子网掩码 进行二进制与运算,确定某个设备的网络地址和主机号,也就是说通过子网掩码分辨一个网络的网络部分和主机部分。子网掩码一旦设置,网络地址和主机地址就固定了。子网一个最显著的特征就是具有子网掩码。与IP地址相同,子网掩码的长度也是32位,也可以使用十进制的形式。例如,为二进制形式的子网掩码:11111111.1111 1111.1111 1111.0000 0000,采用十进制的形式为:255.255.255.0。

通过计算机的子网掩码判断两台计算机是否属于同一网段的方法是,将计算机十进制的IP地址和子网掩码转换为二进制的形式,然后进行二进制“与” 计算 ,如果得出的结果是相同的,那么这两台计算机就属于同一网段。

子网掩码通常有以下2种格式的表示方法:

1.通过与IP地址格式相同的点分十进制表示

如:255.0.0.0 或255.255.255.128

2.在IP地址后加上"/"符号以及1-32的数字,其中1-32的数字表示子网掩码中网络标识位的长度

如:192.168.1.1/24的子网掩码也可以表示为255.255.255.0

子网掩码一般为255.255.255.0

子网掩码运算示例

IP 地址 192.168.0.1

子网掩码 255.255.255.0

AND运算(AND运算法则:1与1 = 1 ,1 与0 = 0 ,0 与1 = 0 ,0 与0 = 0 ,即当对应位均为1时结果为1,其余为0。)

转化为二进制进行运算:

IP 地址 11000000.10101000.00000000.00000001

子网掩码 11111111.11111111.11111111.00000000

AND运算

11000000.10101000.00000000.00000000

转化为十进制后为:

192.168.0.0

子网掩码一共分为两类。一类是缺省 子网掩码,一类是自定义子网掩码。缺省子网掩码即未划分子网,对应的网络号的位都置1,主机号都置0。

A类网络缺省子网掩码:255.0.0.0

B类网络缺省子网掩码:255.255.0.0

C类网络缺省子网掩码:255.255.255.0

自定义子网掩码是将一个网络划分为几个子网,需要每一段使用不同的网络号或子网号,实际上我们可以认为是将主机号分为两个部分:子网号、子网主机号。形式如下:

未做子网划分的ip地址:网络号+主机号

做子网划分后的ip地址:网络号+子网号+子网主机号

也就是说ip地址在划分子网后,以前的主机号位置的一部分给了子网号,余下的是子网主机号。子网掩码是32位二进制数,它的子网主机标识用部分为全“0”。利用子网掩码可以判断两台主机是否在同一子网中。若两台主机的IP地址分别与它们的子网掩码相“与”后的结果相同,则说明这两台主机在同一子网中。

利用子网掩码可以把大的网络划分成子网,即VLSM(可变长子网掩码),也可以把小的网络归并成大的网络即超网。

域名系统

我们可以通过IP地址去访问网站,但是对于大多数用户来说,访问每个网站都需要记忆一串数字是很繁琐的,用户可以通过域名来访问网站。所说域名,即具有一定含义的字符组合。域名系统是因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址。

域名系统(DNS)的层次命名机构,在Internet中,由中央管理机构(NIC)又称顶级域,将一级域分成若干部分,并将各部分的管理权授予相应机构。再一级级分下去。形成一个层次机构。

一级域名含义:

.COM 美国商业机构

.EDU 美国教育机构或大学

.ORG 美国非赢利组织

.GOV 美国政府部门

.XX 国家代码

域名的表示方式为,在地址表达式中,最右边的是最高层次的域名最左边的主机名,域与域之间用圆点隔开。如ftp.microsoft.com

img

通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析。当应用过程需要将一个主机域名映射为IP地址时,就调用域名解析函数,解析函数将待转换的域名发给本地域名服务器。本地的域名服务器查到域名后,将对应的IP地址放在应答报文中返回。如果本地的域名服务器不能回答该请求,则此域名服务器就暂成为DNS中的另一个客户,向根域名服务器发出请求解析,根域名服务器一定能找到下面的所有二级域名的域名服务器,这样以此类推,一直向下解析,直到查询到所请求的域名。

TCP

TCP即传输控制协议,Transmission Control Protocol,是一种面向连接的可靠的传输层通信协议。

通过端对端检错与纠错提供可靠数据传输,保证数据在网络中正确传输并按照恰当的顺序到达目的节点,重传目的节点没有收到的任何数据,防止接受节点与源节点之间出现重复的数据报文段。

TCP提供一个可靠的,面向连接的,全双工的流传输服务。TCP 被称作端对端(end-to-end)的协议,两端之间是一个很大的因特网,建立连接必须经过“三次握手”,即进行三次数据交换。

TCP端口就是为TCP协议通信提供服务的端口,用16位端口表示进程的地址。 其中小于1024的端口称作熟知端口,分配给固定进程。

TCP,即传输控制协议,是一种面向连接的可靠的基于字节流的传输层通信协议,由IETF的RFC 793定义。在OSI模型中,它完成第四层传输层所指定的功能。 TCP层是位于IP层之上,应用层之下的中间层。不同主机的应用层之间经常需要可靠的、像管道一样的连接,但是IP层不提供这样的流机制,而是提供不可靠的包交换。

应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段 。之后TCP把结果包传给IP层,由它来通过网络 将包传送给接收端 的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端的包按序接收。然后接收端对已成功收到的包 发回一个相应的确认;如果发送端实体在合理的往返时延内未收到确认,那么对应的数据包就被假设为 已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。

在保证可靠性上,采用超时重传和捎带确认机制。

在流量控制上,采用滑动窗口协议,协议中规定,对于窗口内未经确认的分组需要重传

在拥塞控制上,采用广受好评的TCP拥塞控制算法 。该算法主要包括三个主要部分:

1)加性增、乘性减;

2)慢启动;

3)对超时事件做出反应。

TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN+ACK[1] ,并最终对对方的 SYN 执行 ACK 确认。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。

TCP三次握手的过程如下:

客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态。

服务器端收到SYN报文,回应一个SYN (SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态。

客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态。

三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。

TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用在彼此交换数据包之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振铃,等待对方摘机说“喂”,然后才说明是谁。在一个TCP连接中,仅有两方进行彼此通信。广播和多播不能用于TCP。

TCP通过下列方式来提供可靠性:

1.应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的数据长度将保持不变。由TCP传递给IP的信息单位称为报文段(segment)。

2.当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发这个报文段。当TCP收到发自TCP连接另一端的数据,它将发送一个确认。TCP有延迟确认的功能,在此功能没有打开,则是立即确认。功能打开,则由定时器触发确认时间点。

3.TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。

4.既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。

5.既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。

6.TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。

TCP协议用于控制数据段是否需要重传的依据 是设立重发定时器。在发送一个数据段的同时启动一个重传,如果在重传超时前收到确认就关闭该重传,如果重传超时前没有收到确认,则重传该数据段。在选择重发时间的过程中,TCP必须具有自适应性。它需要根据互联网当时的通信情况,给出合适的重发时间。

TCP提供一种面向连接的、可靠的字节流服务。使用三次握手协议建立连接,通过三次握手, TCP客户端和服务器端成功地建立连接,可以开始传输数据。

UDP

UDP 是用户数据报协议,是OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETF RFC 768是UDP的正式规范。

UDP协议与TCP协议一样在传输层工作,是一种无连接的协议。 UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。众多的客户/服务器模式的网络应用 都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。

UDP是OSI参考模型中一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成[2] ,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。

UDP提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据,UDP传输的可靠性由应用层负责。UDP报文没有可靠性保证、顺序保证和流量控制字段等,可靠性较差。但是正因为UDP协议的控制选项较少,在数据传输过程中延迟小数据传输效率高,适合对可靠性要求不高的应用程序,或者可以保障可靠性的应用程序,如DNS、TFTP、SNMP等。

在选择使用协议的时候,选择UDP必须要谨慎。在网络质量令人十分不满意的环境下,UDP协议数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。

报头编辑

UDP报头由4个域组成,其中每个域各占用2个字节,具体如下:

源端口号

目标端口号

数据报长度

校验值

数据报的长度是指包括报头和数据部分在内的总字节数。因为报头的长度是固定的,所以该域主要被用来 计算可变长度的数据部分。数据报的最大长度 根据操作环境的不同而各异。从理论上说,包含报头在内的数据报的最大长度为65535字节。不过,一些实际应用往往会限制数据报的大小,有时会降低到8192字节。

UDP协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方 通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个数据报在传输过程中 被第三方篡改 或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值 将不会相符,由此UDP协议可以检测是否出错。这与TCP协议是不同的,后者要求必须具有校验值。

许多链路层协议都提供错误检查,包括流行的以太网协议,也许你想知道为什么UDP也要提供检查和校验。其原因是链路层以下的协议在源端和终端之间的某些通道可能不提供错误检测。虽然UDP提供有错误检测,但检测到错误时,UDP不做错误校正,只是简单地把损坏的消息段扔掉,或者给应用程序提供警告信息。

(1) UDP是一个无连接协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。

(2) 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。

(3) UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。

(4) 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。

(5)UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表(这里面有许多参数)。

(6)UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。

UDP 是 用户数据报协议,是OSI 参考模型中一种无连接的传输层协议,提供面向事务简单不可靠信息传送服务。UDP协议的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据的传输单位。每一个数据包的前8个字节用来包含报头信息,剩余字节则用来包含具体的传输数据。

路由器

路由器(Router),是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。路由器是用于连接不同的网络,所谓不同网络即网络地址不同。当数据从一个网络传输到另一个网络时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能

路由器的主要工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。在路由器中通过路由表保存着各种传输路径的相关数据,供路由选择时使用。

路由表包括静态路由表和动态路由表

静态路由表:由系统管理员事先设置好固定的路径表称之为静态(static)路径表。

动态路由表:动态(Dynamic)路径表是路由器根据网络系统的运行情况而自动调整的路径表。

数据包送到路由器后,通过数据包首部的目的主机IP地址和子网掩码计算出网络地址,即目的主机所在的网络,查找当前路由器的路由表,选择端口进行转发。

路由器,是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。路由器是互联网络的枢纽。目前路由器已经广泛应用于各行各业,各种不同档次的产品已成为实现各种骨干网内部连接、骨干网间互联和骨干网与互联网互联互通业务的主力军。路由和交换机之间的主要区别就是交换机发生在OSI参考模型第二层(数据链路层),而路由发生在第三层,即网络层。这一区别决定了路由和交换机在移动信息的过程中需使用不同的控制信息,所以说两者实现各自功能的方式是不同的。

路由器,又称网关设备,是用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器的路由功能来完成。因此,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。

路由器是互联网的主要结点设备。路由器通过路由决定数据的转发。转发策略称为路由选择,这也是路由器名称的由来 。作为不同网络之间互相连接的枢纽,路由器系统构成了基于TCP/IP 的国际互联网络Internet 的主体脉络,也可以说,路由器构成了Internet的骨架。它的处理速度是网络通信的主要瓶颈之一,它的可靠性则直接影响着网络互连的质量。因此,在园区网、地区网、乃至整个Internet研究领域中,路由器技术始终处于核心地位,其发展历程和方向,成为整个Internet研究的一个缩影。

路由器原理

(1)工作站A将工作站B的地址12.0.0.5连同数据信息以数据包的形式发送给路由器1。

(2)路由器1收到工作站A的数据包后,先从包头中取出地址12.0.0.5,并根据路径表计算出发往工作站B的最佳路径:R1->R2->R5->B;并将数据包发往路由器2。

(3)路由器2重复路由器1的工作,并将数据包转发给路由器5。

(4)路由器5同样取出目的地址,发现12.0.0.5就在该路由器所连接的网段上,于是将该数据包直接交给工作站B。

(5)工作站B收到工作站A的数据包,一次通信过程宣告结束。

有的路由器仅支持单一协议,但大部分路由器可以支持多种协议的传输,即多协议路由器。由于每一种协议都有自己的规则,要在一个路由器中完成多种协议的算法,势必会降低路由器的性能。路由器的主要工作就是为经过路由器的每个数据帧 寻找一条最佳传输路径,并将该数据有效地传送到目的站点。由此可见,选择最佳路径的策略即路由算法是路由器的关键所在。为了完成这项工作,在路由器中保存着各种传输路径的相关数据--路径表,供路由选择时使用。路径表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名字等内容。路径表可以是由系统管理员固定设置好的。

由系统管理员事先设置好固定的路径表称之为静态 路由表。 动态路由表是路由器根据网络系统的运行情况而自动调整的路径表。

路由器工作在IP协议网络层,用于实现子网之间转发数据。路由器一般都有多个网络接口,包括局域的网络接口和广域的网络接口。每个网络接口连接不同的网络,路由器中记录有每个网络端口相连的网络信息。同时路由器中还保存有一张路由表,它记录有去往不同网络地址应送往的端口号。当一台路由器收到一个IP数据包时,它将根据数据包中的目的IP地址项 查找路由表,根据查找的结果将此IP数据包送往对应端口。下一台IP路由器收到此数据包后继续转发,直至发到目的地。路由器之间可以通过路由协议 来进行路由信息的交换,从而更新路由表。

路由器是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。路由器是互联网络的枢纽,路由器具有判断网络地址和选择IP路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。

猜你喜欢

转载自blog.csdn.net/qq_46456049/article/details/110206757