一、网络基本知识
1.1 网络基本知识
计算机与网络发展的7个阶段
年代 |
内容 |
说明 |
20世纪50年代 |
批处理 |
事先将用户程序和数据装入卡带或磁带,由计算机按一定顺序读取,使用户要执行的程序和数据能够一并批量得到处理的方式 |
20世纪60年代 |
分时系统 |
多个终端和同一个计算机相连,允许多个用户同时使用一台计算机系统; 特点:多路性、独占性、交互性、及时性 |
20世纪70年代 |
计算机间通信 |
计算机之间以通信线路连接,加快了数据读取时间,极大地缩短了传输数据时间,多台计算机分布式处理,架构变得更加灵活,操作更加人性化 |
20世纪80年代 |
计算机网络 |
窗口系统的产生,方便了用户操作,用户不仅可以同时执行多个程序,还能*切换作业; 窗口系统:在计算机上可以打开多个图形窗口进行处理的系统。代表性的有常用于Unix上的XWindowSystem、微软的Windows、苹果的MacOSX等 |
20世纪90年代 |
互联网普及 |
异构型计算机连接和电子邮件、万维网等信息传播方式促使互联网开始从大到整个公司小到一个家庭内部开始普及互联网,实现了世界各地用户通过接入互联网而即时沟通与交流 |
2000年 |
以互联网为中心 |
代表性事件:作为通信基础设施、支撑通信网络的电话网,被IP网所替代 |
2010年 |
TCP/IP网络 |
|
1.2 协议
网络体系结构 |
协议 |
说明 |
TCP/IP |
IP、ICMP、TCP、UDP、HTTP、TELNET、SNMP、SMTP… |
互联网、局域网 |
IPX/SPX(NetWare) |
IPX、SPX、NPC… |
个人电脑局域网 |
NetBEUI |
|
适用局域网,不具备路由和跨网段操作功能。 |
(1)协议的分层
概念:ISO(国际标准化组织)在指定标准的OSI(OpenSystemInterconnect)之前,提出了作为通信协议设计指标的OSI参考模型,将协议分为七层,使得原来复杂的网络协议更加简单化。
定义:在七层模型中,每个分层都接受由它下一层所提供的特定服务,并且负责为自己的上一层提供特定的服务,上下层之间进行交互所遵循的约定叫做“接口”,同一层之间的交互所遵循的约定叫做“协议”。
OSI七层模型 |
协议 |
物理层 |
以太网、调制解调器、电力线通信(PLC)、SONET/SDH、G.709、光导纤维、同轴电缆、双绞线等。 |
数据链路层 |
Wi-Fi(IEEE802.11)、WiMAX(IEEE802.16)、ATM、DTM、令牌环、以太网、FDDI、帧中继、GPRS、EVDO、HSPA、HDLC、PPP、L2TP、PPTP、ISDN·STP、CSMA/CD等 |
网络层 |
IP(IPv4、IPv6)、ICMP、ICMPv6·IGMP、IS-IS、IPsec、ARP、RARP、RIP等 |
传输层 |
TCP、UDP、TLS、DCCP、SCTP、RSVP、OSPF等 |
会话层 |
DHCP、DNS、FTP、Gopher、HTTP、IMAP4、IRC、NNTP、XMPP、POP3、SIP、SMTP、SNMP、SSH、TELNET、RPC、RTCP、RTP、RTSP、SDP、SOAP、GTP、STUN、NTP、SSDP、BGP等 |
表示层 |
|
应用层 |
OSI模型
TCP/IP四层模型 |
协议 |
网络接口层 |
Ethernet802.3、TokenRing802.5、X.25、Framerelay、HDLC、PPPATM等 |
网络层 |
IP(InternetProtocol,英特网协议)、ICMP(InternetControlMessageProtocol,控制报文协议)、ARP(AddressResolutionProtocol,地址转换协议)、RARP(ReverseARP,反向地址转换协议)。 |
传输层 |
TCP(TransmissionControlProtocol,传输控制协议)和UDP(UserDatagramprotocol,用户数据报协议)。 |
应用层 |
FTP(FileTransferProtocol,文件传输协议)、TELNET(用户远程登录服务协议)、DNS(DomainNameService,是域名解析服务)、SMTP(SimpleMailTransferProtocol,简单邮件传输协议)、NFS(NetworkFileSystem,网络文件系统)、HTTP(HypertextTransferProtocol,超文本传输协议)。 |
TCP/IP模型
协议分层的优点:
1)降低复杂性
2)标准化接口
3)简化模块化设计
4)确保技术的互操作性
5)加快发展速度
6)简化教学
每个分层可以独立使用,其实系统中某些分层发生变化,也不会影响整个系统,因此可以构造一个扩展性和灵活性都比较强的系统;
此外,通过分层可以细分通信功能,更易于单独实现每个分层的协议,界定各个分层的具体责任和义务。
协议分层的劣势:
过分模块化,处理变得更加沉重,以及每个模块都不得不事先相似的处理逻辑等。
(2)OSI模型与TCP/IP模型
1.3 网络传输方式
(1)面向有连接型和面向无连接型
发送数据之前,需要在收发主机之间建立一条通信线路,在通信传输前后,专门进行建立和断开连接的处理,如果与对端之间无法通信,可避免发送无谓的数据。
这种类型不要求建立和断开连接,发送端可任何时候发送数据,接收端也不知道自己何时从哪里接受数据,这种情况下,接收端需要时常确认是否收到数据,彼此也不需要确认对方是否存在。
(2)电路交换和分组交换
软件通信方式大致分为3种:电路交换、报文交换和分组交换,TCP/IP协议组,采用的就是分组交换。
1)电路交换
电路交换的三个过程:
电路建立->数据传输->电路拆除;
在通信之前要在通信双方之间建立一条被双方独占的物理通路(由通信双方之间的交换设备和链路逐段连接而成)。
2)报文交换
报文交换方式的数据传输单位是报文,报文就是站点一次性要发送的数据块,其长度不限且可变。当一个站要发送报文时,它将一个目的地址附加到报文上,网络节点根据报文上的目的地址信息,把报文发送到下一个节点,一直逐个节点地转送到目的节点。
每个节点在收到整个报文并检查无误后,就暂存这个报文,然后利用路由信息找出下一个节点的地址,再把整个报文传送给下一个节点。因此,端与端之间无需先通过呼叫建立连接。
3)分组交换
分组交换是报文交换的一种改进,它将报文分成若干个分组,每个分组的长度有一个上限,有限长度的分组使得每个节点所需的存储能力降低了,分组可以存储到内存中,提高了交换速度。它适用于交互式通信,如终端与主机通信。
最初,一台计算机收发信息时会独占整个电路,其他计算机只能等待,且无法预测何时结束通信,为解决这个问题,将发送的数据分为多个数据包,按一定的顺序排列后发送,这就是分组交换。
1.什么是分组?
发送一段数据,将该段数据进行分组发送,而不是一次性全发送完。
2.什么是分组交换?
分组交换的大致处理过程:发送端将数据分组分给路由器,路由器收到后缓存到自己的缓冲区,然后再转发给目标计算机;因此,分组交换也称为:蓄积交换;
分组交换中,由分组交互机(路由器)连接通信线路;网路中,路由器跟路由器之间有一定的距离,我们计算机要发送一段数据出去,首先将数据分成n个分组,在每个分组首部写入发送端与接收端地址,也可以确认区分每个分组的数据目的地,以及它与哪台计算机通信,形成数据包。路由器收到数据包后根据顺序进行缓存至相应队列,然后按照“先进先出”顺序将其逐一发送(有时会优先发送目标地址较特殊的数据)。其中,路由器接受这些数据包,是一部分一部分的发送,接受,在发送其中一个数据包的过程中,占用其中的道路,发送完这一个,就释放,并不是一直占用该资源,直到传输结束。
分组交换的缺陷:
分组交换中,通信线路共享,因此,通信传输速度可能有差异,根据网络拥堵情况,数据到达目标地址时间长短不同;另外,路由器缓存饱和或溢出时,可能发生数据丢失,无法发送到接收端的情况;
3)分组交换、电路交换、报文交换的区别?
电路交换:就是电话线,A打给B,AB之间的电话线就接通了,那么不管他两说没说话,说多久,直到挂断之前,该线都是在占用之中。
报文交换:一次性发送完整的数据,那么该段路就被占用,传完就释放,然后接下一步的传送。直到到达目的地;
分组交换:高效、灵活、迅速、可靠。
(3) 根据接收端数据分类
1)单播
简单来说就是一对一通信,最早的固定电话就是单播通信的一个典型例子。
2)广播
将消息从一台主机发送给与之相连的其他所有主机;
典型例子就是电视播放(将电视信号一齐发送给非特定的多个连接对象)。
3)多播
与广播类似,也是将消息发送给多个相连接的接收主机;
不同之处在于多播要限定某一组主机作为接收端
4)任播
在特定的多台主机中选择一台作为接收端的一种通信方式(从目标主机群中选择一台最符合的主机作为目标主机发送消息,一般被选中的主机将返回一个单播信号,随后发送端只会和这台主机通信)。
PS:几种不同方式的思维逻辑图:
2. 网络的构成要素
2.1 RJ接口
RJ45是布线系统中信息插座(即通信引出端)连接器的一种,连接器由插头(接头、水晶头)和插座(模块)组成,插头有8个凹槽和8个触点。
RJ(RegisteredJack),意思是“注册的插座”。
在FCC(美国联邦通信委员会标准和规章)中RJ是描述公用电信网络的接口,计算机网络的RJ45是标准8位模块化接口的俗称。
RJ45接口:就是能够插水晶头的那个接口。
2.2 网卡
网卡,networkadapter(网络适配器)或者NetworkInterfaceCard(网络接口卡)。
网卡是工作在链路层的网络组件,是局域网中连接计算机和传输介质的接口,不仅能实现与局域网传输介质之间的物理连接和电信号匹配,还涉及帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码以及数据缓存的功能等。
不同类型的网卡传输效率差距很大,有100Mbps也有10Mbps。现在网卡大致可以分为有线网卡和无线网卡两种,网卡的物理地址即MAC地址是48位的,这个是全球唯一的。
有线网卡:
无线网卡
网卡:网络中的数据表现为一帧一帧的数据,需要网卡来进行封包和解包,没有网卡是无法识别这些数据的。
2.3 中继器
中继器(Repeater)是连接网络线路的一种装置,常用于两个网络节点之间物理信号的双向转发工作。中继器是最简单的网络互联设备,主要完成物理层的功能,负责在两个节点的物理层上按位传递信息,完成信号的复制、调整和放大功能,以此来延长网络的长度。它在OSI参考模型中的位置物理层。
由于存在损耗,在线路上传输的信号功率会逐渐衰减,衰减到一定程度时将造成信号失真,因此会导致接收错误。中继器就是为解决这一问题而设计的。它完成物理线路的连接,对衰减的信号进行放大,保持与原数据相同。
中继器是模拟设备,用于连接两根电缆段。中继器不理解帧、分组和头的概念,他们只理解电压值。
总结:中继器,就是简单的信号放大器,信号在传输的过程中是要衰减的,中继器的作用就是将信号放大,使信号能传的更远。
2.4 集线器
(1)概述
集线器(HUB)属于数据通信系统中的基础设备,集线器的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它和双绞线等传输介质一样,是一种不需任何软件支持或只需很少管理软件管理的硬件设备。它被广泛应用到各种场合。
集线器工作在局域网(LAN)环境。应用于OSI参考模型第一层,因此又被称为物理层设备。集线器与网卡、网线等传输介质一样,属于局域网中的基础设备,采用CSMA/CD(即带冲突检测的载波监听多路访问技术)介质访问控制机制。
集线器(hub)属于纯硬件网络底层设备,基本上不具有类似于交换机的"智能记忆"能力和"学习"能力。它也不具备交换机所具有的MAC地址表,所以它收发数据时都是没有针对性的,而是采用广播方式收发数据。也就是说当它要向某节点发送数据时,不是直接把数据发送到目的节点,而是把数据包发送到与集线器相连的所有节点。
HUB是一个多端口的转发器,当以HUB为中心设备时,网络中某条线路产生了故障,并不影响其它线路的工作。所以HUB在局域网中得到了广泛的应用。大多数的时候它用在星型与树型网络拓扑结构中,以RJ45接口与各主机相连(也有BNC接口),HUB按照不同的说法有很多种类。
集线器(HUB)是一种共享介质的网络设备,而且HUB本身不能识别目的地址,是采用广播方式向所有节点发送。即当同一局域网内的A主机给B主机传输数据时,数据包在以HUB为架构的网络上是以广播方式传输的,对网络上所有节点同时发送同一信息,然后再由每一台终端通过验证数据包头的地址信息来确定是否接收。在这种方式下我们知道很容易造成网络堵塞,因为其实接收数据的一般来说只有一个终端节点,而现在对所有节点都发送,那么绝大部分数据流量是无效的,这样就造成整个网络数据传输效率相当低。另一方面由于所发送的数据包每个节点都能侦听到,那显然就不会很安全了,容易出现一些不安全因素。
(2)工作过程
集线器的工作过程是非常简单的,它可以这样的简单描述:首先是节点发信号到线路,集线器接收该信号,因信号在电缆传输中有衰减,集线器接收信号后将衰减的信号整形放大,最后集线器将放大的信号广播转发给其他所有端口。
1)用集线器扩展局域网优点:
- 使原来属于不同碰撞域的局域网上的计算机能够进行跨碰撞域的通信。
- 扩大了局域网覆盖的地理范围。
2)用集线器扩展局域网缺点:
- 碰撞域增大了,但总的吞吐量并未提高。
- 如果不同的碰撞域使用不同的数据率,那么就不能用集线器将它们互连起来。
- 由于集线器总有这样的缺点,所以网桥这个设备就出来。
2.5 网桥
(1)概述
网桥(Bridge)是早期的两端口数据链路层网络设备,用来连接不同网段的计算机网络设备同时它又可隔离冲突域,因为它的两个端口不是共享一条背板总线(分别有一条独立的交换信道),比当时的集线器(Hub)性能更好(集线器上各端口都是共享同一条背板总线的)。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switch)所取代。
网桥(Bridge)也称为桥接器,有人把“网桥”比喻成一个聪明的中继器(Repeater)。因为中继器只是对所接收的信号进行放大,然后直接发送到另一个端口连接的电缆上,主要用于扩展网络的物理连接范围;而网桥除了可以扩展网络的物理连接范围外,还可以对MAC地址进行分区,隔离不同物理网段之间的碰撞(也就是隔离“冲突域”)。集线器和中继器都是物理层设备,而网桥属于二层设备。
这里“网段”更准确地讲应该是叫“物理网段”,是指IP地址属于同一网络地址段(也就是IP地址中的网络ID一样),位于不同地理位置的不同LAN分段,是基于物理意义上的地理区域进行划分的。
通常说的网段是指IP地址属于不同网络地址段的网络或子网,是一个三层概念,应该称做逻辑网段,是基于逻辑意义上的网络地址进行划分的。
无论是网桥,还是二层交换机,虽然每个端口可以连接一个网段,但是它们所连接的主机都在同一网络,或者同一子网中。如连接的主机位于不同办公室或者不同办公楼中,则可采用同一网络地址的两个或多个小LAN,以组成一个可以统一管理的大LAN。但要注意的是,因为网桥只有两个端口,所以所连接的两个物理网段的主机通常就是由当时的集线器进行集中连接的(网桥端口通常不是直接连接主机的)。
软件中通常所说的桥接(如VMware中的桥接工作模式)也就是网桥的作用,它连接的也是同一网络或子网中的两个网段。
基本网桥只有两个端口,还有一种网桥叫做多口网桥,多口网桥有多个端口。
图1
(2)优点
有两个优点,能识别mac地址,遇到陌生的mac地址,会在内部mac表中记录下该mac地址。
1)根据MAC帧的目的地址对收到的帧进行转发;
2)过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发此帧,而是先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口;
(3)网桥原理
图2
网桥具有两种主要特性:一是可基于物理网段的MAC地址进行学习,二是可以隔离冲突域。
下面通过一个示例来进行解析。
假设图1中所示的物理网段1和物理网段2中的主机都是通过集线器集中连接的,则这样这两个物理网段各自形成一个冲突域,因为集线器是采用共享介质传输的,而网桥的背板信道不是共享的(每个端口的数据收发都有一条单独的信道),所以一个集线器就是一个冲突域。
网桥的数据转发原理如图2所示。
图3
图3是用一个网桥连接的两个网络,网桥的A端口连接A子网,B端口连接B子网,为什么网桥知道哪些数据包该转发,哪些包不该转发呢?那是因为它有两个表A和B,当有数据包进入端口A时,网桥从数据包中提取出源MAC地址和目的MAC地址。
一开始的时候,表A和表B都是空的,没有一条记录,这时,网桥会把数据包转发给B网络,并且在表A中增加一条MAC地址(把源MAC地址记录表中),说明这个MAC地址的机器是A子网的,同理,当B子网发送数据包到B端口时,网桥也会记录源MAC地址到B表。
当网桥工作一段时候后,表A基本上记录了A子网所有的机器的MAC地址,表B同理,当再有一个数据包从A子网发送给网桥时,网桥会先看看数据包的目的MAC地址是属于A子网还是B子网的,如果从A表中找到对应则,抛弃该包,如果不是,则转发给B子网,然后检查源MAC地址,是否在表中已经存在,如果不存在,在表A中增加一条记录。
(4)透明网桥
局域网上的站点并不知道所发送的帧将经过哪几个网桥,因为网桥对各站来说是看不见的;
是一种即插即用设备,其标准是IEEE802.1D
(5)网桥的优点与缺点
1)网桥优点:
- 过滤通信量。网桥可以使用局域网的一个网段上各工作站之间的信息量局限在本网段的范围内,而不会经过网桥溜到其他网段去。
- 扩大物理范围,也增加了整个局域网上的工作站的最大数目。
- 可使用不同的物理层,可互连不同的局域网。
- 提高了可靠性。如果把较大的局域网分割成若干较小的局域网,并且每个小的局域网内部的信息量明显地高于网间的信息量,那么整个互连网络的性能就变得更好。
2)网桥缺点:
- 由于网桥对接收的帧要先存储和查找站表,然后转发,这就增加了时延。
- 在MAC子层并没有流量控制功能。当网络上负荷很重时,可能因网桥缓冲区的存储空间不够而发生溢出,以致产生帧丢失的现象。
- 具有不同MAC子层的网段桥接再一起时,网桥在转发一个帧之前,必须修改帧的某些字段的内容,以适合另一个MAC子层的要求,增加时延。
- 网桥只适合于用户数不太多(不超过几百个)和信息量不太大的局域网,否则有时会产生较大的广播风暴。
2.6 交换机
(1)概述
交换机(Switch)可以说同时是集线器和网桥的升级换代产品,因为交换机具有集线器一样的集中连接功能,同时它又具有网桥的数据交换功能。所以说,交换机是带有交换功能的集线器,或者说交换机是多端口的网桥。外形上,集线器与交换机产品没什么太大区别。
“交换”和“交换机”最早起源于电话通讯系统(PSTN)。最原始的电话交换机系统,是一种人工电话交换系统。目前计算机交换机是在这个电话交换机技术上发展而来。
在计算机网络系统中,交换概念的提出是相对于共享工作模式的改进。
交换机拥有一条很高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上。控制电路收到数据包以后,处理端口会查找内存中的MAC地址(网卡的硬件地址)对照表以确定目的MAC的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵直接将数据迅速包传送到目的节点,而不是所有节点,目的MAC若不存在,才广播到所有的端口。这种方式我们可以明显地看出一方面效率高,不会浪费网络资源,只是对目的地址发送数据,一般来说不易产生网络堵塞;另一个方面数据传输安全,因为它不是对所有节点都同时发送,发送数据时其它节点很难侦听到所发送的信息。这也是交换机为什么会很快取代集线器的重要原因之一。
交换机还有一个重要特点就是它不是像集线器一样每个端口共享带宽,它的每一端口都是独享交换机的一部分总带宽,这样在速率上对于每个端口来说有了根本的保障。
另外,使用交换机也可以把网络“分段”,通过对照地址表,交换机只允许必要的网络流量通过交换机。通过交换机的过滤和转发,可以有效的隔离广播风暴,减少误包和错包的出现,避免共享冲突。这样交换机就可以在同一时刻可进行多个节点对之间的数据传输,每一节点都可视为独立的网段,连接在其上的网络设备独自享有固定的一部分带宽,无须同其他设备竞争使用。
如当节点A向节点D发送数据时,节点B可同时向节点C发送数据,而且这两个传输都享有带宽,都有着自己的虚拟连接。打个比方就是,如果现在使用的是10Mbps8端口以太网交换机,因每个端口都可以同时工作,所以在数据流量较大时,那它的总流量可达到8*10Mbps=80Mbps,而使用10Mbps的共享式HUB时,因为它是属于共享带宽式的,所以同一时刻只能允许一个端口进行通信,那数据流量再忙HUB的总流通量也不会超出10Mbps。如果是16端口、24端口的更是明显了!
(2)交换机的基本功能如下:
1)交换机可以实现一根网线复用的功能。
2)交换机的每一个端口地位都是等价的。
3)一个交换机就可以组建一个子网,多个交换机的串接使用可以组建规模更大的子网。
4)通过这个交换机的转发功能,同一个子网的计算机可以相互访问。子网内与子网外的机器相互访问就需要用到路由器。
5)交换机的MAC地址自动学习功能:当交换机从某个端口收到一个数据帧后,先读取帧头部的源MAC地址,并与自己缓存中的映射表(CAM表)进行比较,如果没有找到,则在CAM表中添加一个该源MAC地址与发送该帧的源端口映射表项。
6)如果在CAM表项查到了帧中源MAC地址,则继续查看是否有帧中目的MAC地址所对应的映射表项。如果有,则直接把该帧转发到目的MAC地址节点所连接的交换机端口,然后由该端口发送到目的主机。
7)如果在交换机CAM表中没有找到帧中目的MAC地址所对应的表项,则把该数据帧向除源端口外的其他所有端口上进行泛洪。
8)当MAC地址与帧中目的MAC地致的主机接收了该数据帧后就会向源主机产生一个应答帧,交换机获取该应答帧后从其中的源MAC地址中获取了对应的MAC地址和所连接端口的映射关系,并添加到CAM表中。这样下次再有MAC地址为这个MAC地址的帧发送时交换机就可以直接从CAM表中找到对应的转发端口,直接转发,不用再泛洪了。
(3)交换机VS网桥
1)具有多个交换端口
网桥通常只是两个交换端口,其设计目的主要就是用来连接两个距离超过单段网线传输限制的物理网段(当然也可以用来直接连接两台主机),所以它的应用受到比较多的限制。再加上当时用于主机和其他网络设备集中连接的设备仍是传输效率和信道利用率都非常低下的集线器,根本不适应于计算机网络的发展。
对于交换机,一台交换机可以有多个端口,而且与网桥一样,不仅每个端口可以连接一个不同的物理网段(交换机上一个端口对应一个物理网段),还可以有大量的端口来集中连接主机,这时交换机就可以同时担当集线器和网桥的双重角色,而且在使用性能和扩展性能、交换性能等方面都有较大提高,大大促进了计算机网络的发展。
2)数据转发效率更高
在网桥时代,集中连接主机的仍是集线器。集线器发送数据是用广播方式,所以信道中的无效载荷比例相当高,造成数据转发率和信道利用率都非常低。
对于交换机,因为大多数主机都是直接连接在交换机端口上,即使不是,也主要是连接在其他交换机端口,所以数据的转发基本上都是通过提取帧中的MAC地址直接发送到目的主机上的,而不是通过广播方式(仅在未知目的MAC地址时采用广播),数据转发效率和信道利用率都大幅提高。
3)更强的MAC地址自动学习能力
网桥通常只有两个端口,仅可以连接两个由集线器集中连接的物理网段,所以它的MAC地址自动学习功能仅限于它的两个端口与对应的物理网段的映射。这样造成一个网桥端口要与多个源主机MAC地址之间的映射,也就是一对多映射关系。
而交换机上的端口多数是直接连接主机的,所以在映射表中基本上都是一个源主机MAC地址与一个交换端口间的一对一映射。一对一的映射查找起来明显比一对多的映射效率要高,所以交换机在数据转发效率要高于网桥。另外,交换机的缓存通常比网桥的要大,所以交换机中可以保存的MAC地址与端口映射表较多,更适用于较大网络。
(4)交换机VS集线器
1)工作层次不同
集线器工作在第一层(物理层),而交换机至少是工作在第二层,更高级的交换机可以工作在第三层(网络层)、第四层(传输层)和第七层(应用层),对应也就有三层交换机、四层交换机、七层交换机等之说了。一般我们说的就是二层交换机。
2)数据传输方式不同
集线器的数据传输方式是多次复制方式的广播传输,而交换机的数据传输是有目的的,数据只对目的节点发送,只是在自己的MAC地址表中找不到的情况下第一次使用以FF-FFFF-FF-FF-FF作为MAC地址的“泛洪”广播方式传输。所以,交换机在数据传输效率和信道利用率方面要远高于集线器,集线器更容易产生“广播风暴”。
随交换机产品价格的日益下降,集线器市场日益痿缩,不过,在特定的场合,集线器以其低延迟的特点可以用更低的投入带来更高的效率。交换机不可能完全代替集线器。
2.7 路由器
路由器(Router)是一种负责寻径的网络设备,它在互连网络中从多条路径中寻找通讯量最少的一条网络路径提供给用户通信。
路由器用于连接多个逻辑上分开的网络,所谓逻辑网络是代表一个单独的网络或者一个子网。当数据从一个子网传输到另一个子网时,可通过路由器来完成。因此,路由器具有判断网络地址和选择路径的功能,它能在多网络互联环境中,建立灵活的连接,可用完全不同的数据分组和介质访问方法连接各种子网,路由器只接受源站或其他路由器的信息,属网络层的一种互联设备。它不关心各子网使用的硬件设备,但要求运行与网络层协议相一致的软件。
对用户提供最佳的通信路径,路由器利用路由表为数据传输选择路径,路由表包含网络地址以及各地址之间距离的清单,路由器利用路由表查找数据包从当前位置到目的地址的正确路径。路由器使用最少时间算法或最优路径算法来调整信息传递的路径,如果某一网络路径发生故障或堵塞,路由器可选择另一条路径,以保证信息的正常传输。
路由器可进行数据格式的转换,成为不同协议之间网络互连的必要设备。路由器使用寻径协议来获得网络信息,采用基于“寻径矩阵”的寻径算法和准则来选择最优路径。
按照OSI参考模型,路由器是一个网络层系统。路由器分为单协议路由器和多协议路由器。
现在路由器有发展成为有线路由器和无线路由器两种,无线路由器比有线路由器多了一个无线信号发送模块。
路由器的主要工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。路由器的基本功能是,把数据(IP报文)传送到正确的网络,细分则包括:
- IP数据报的转发,包括数据报的寻径和传送;
- 子网隔离,抑制广播风暴;
- 维护路由表,并与其它路由器交换路由信息,这是IP报文转发的基础;
- IP数据报的差错处理及简单的拥塞控制;
- 实现对IP数据报的过滤和记帐。
路由器构成了Internet的骨架。它的处理速度是网络通信的主要瓶颈之一,它的可靠性则直接影响着网络互连的质量。因此Internet研究领域中,路由器技术始终处于核心地位。
事实上,路由器还具有网络流量控制功能。有的路由器仅支持单一协议,但大部分路由器可以支持多种协议的传输,即多协议路由器。由于每一种协议都有自己的规则,要在一个路由器中完成多种协议的算法,势必会降低路由器的性能。因此,我们以为,支持多协议的路由器性能相对较低。用户购买路由器时,需要根据自己的实际情况选择自己需要的网络协议的路由器
路由具有转发与路由的功能。转发(forward)只涉及到一个路由器,路由(route)则涉及到多个路由器。家用路由器一般有一个Wlan口与多个LAN口,Wlan口用来接收外网信号,lan口则相当于交换机的端口。
家用路由器与企业级路由器的区别:
家用路由严格来说路由功能是可有可无的,家用路由器主要用来共享IP和发WiFi的,通过一个家用路由器可以组建一个子网,家用路由器具有NAT协议转换功能,并且还具有DHCP协议,也就是用来动态分配IP地址的,通过这两个协议来实现共享IP的功能。(计算机可以通过网线连接家用路由器来进行相关设置,注意要接LAN口)
企业级路由器就是专门用来数据传输选路的功能,可以在不同网络间自动学习路由表并且实现选路转发,当然这两种路由器在设备性能上也有着很大的差距。
2.8 网关
(1)概述
网关(Gateway):网间连接器、协议转换器。
网关是在采用不同体系结构或协议的网络之间进行互通时,用于提供协议转换、路由选择、数据交换等网络兼容功能的设施。
网关在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连,网关既可以用于广域网互连,也可以用于局域网互连。
网关是用于连接网络层之上执行不同协议的子网,组成异构的互连网,网关能实现异构设备之间的通信,对不同的传输层、会话层、表示层、应用层协议进行翻译和变换。网关具有对不兼容的高层协议进行转换的功能。当连接两个完全不同结构的网络时,必须使用网关。网关工作在OSI模型的最高层应用层。网关的主要功能:把一种协议变成另一种协议,把一种数据格式变成另一种数据格式,把一种速率变成另一种速率,以求两者的统一。
网关是一种充当转换重任的计算机系统或设备。在使用不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。
从根本上说,网关不能完全归为一种网络硬件。用概括性的术语来讲,它们应该是能够连接不同网络的软件和硬件的结合产品。特别地,它们可以使用不同的格式、通信协议或结构连接起两个系统。网关实际上通过重新封装信息以使它们能被另一个系统读取。为了完成这项任务,网关必须能运行在OSI模型的几个层上。网关必须同应用通信,建立和管理会话,传输已经编码的数据,并解析逻辑和物理地址数据。
与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。同时,网关也可以提供过滤和安全功能。大多数网关运行在OSI7层协议的顶层--应用层。
一般来说,路由器的LAN接口的IP地址就是你所在局域网中的网关。当你所在的局域网的计算机需要和其它局域网中的计算机,或者需要访问互联网的时候,你所在局域网的计算机会先把数据包传输到网关(路由器的LAN接口),然后再由网关进行转发。
‘网关’一个大概念,不具体特指一类产品,只要连接两个不同的网络的设备都可以叫网关;而‘路由器’一般特指能够实现路由寻找和转发的特定类产品,路由器很显然能够实现网关的功能。当然电信行业说的‘路由器’又和家用的‘路由器’两个概念。
网关(Gateway)就是一个网络连接到另一个网络的“关口”。
(2)网关的分类
在OSI中,网关有两种:一种是面向连接的网关,一种是无连接的网关。当两个子网之间有一定距离时,往往将一个网关分成两半,中间用一条链路连接起来,我们称之为半网关。
按照不同的分类标准,网关也有很多种。TCP/IP协议里的网关是最常用的,在这里我们所讲的“网关”均指TCP/IP协议下的网关。
1)网关实质上是一个网络通向其它网络的IP地址。这个IP地址,是具有路由功能的IP地址,默认网关也是一个网关,也是具有路由功能的设备的IP地址。注意:在填写默认网关时,主机的IP地址必须和默认网关的IP地址处于同一段。
例:网络A和网络B,网络A的IP地址范围为“192.168.1.1~192.168.1.254”,子网掩码为255.255.255.0;
网络B的IP地址范围为“192.168.2.1~192.168.2.254”,子网掩码为255.255.255.0。
在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换机(或集线器)上,TCP/IP协议也会根据子网掩码(255.255.255.0)判定两个网络中的主机处在不同的网络里。
若实现这两个网络之间的通信,则必须通过网关。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给A自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。
2)网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。
3)一台主机可以有多个网关。默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。主机正在使用的网关,一般指的是默认网关。
(3)默认网关
一台主机的默认网关是不可以随随便便指定的,必须正确地指定,否则一台电脑就会将数据包发给不是网关的电脑,从而无法与其他网络的电脑通信。
默认网关是什么,默认网关事实上不是一个产品而是一个网络层的概念,PC本身不具备路由寻址能力,所以PC要把所有的IP包发送到一个默认的中转地址上面进行转发,也就是默认网关。这个网关可以在路由器上,可以在三层交换机上,可以在防火墙上,可以在服务器上,所以和物理的设备无关。
必须要把计算机中的默认网关地址设置成路由器LAN接口的地址的原因,因为路由器的LAN接口就是你所在网络的网关,你的电脑要上网,数据包必须要经过网关转发出去。一般使用192.168.x.1作为LAN接口的地址,其中192.168.0.1和192.168.1.1这两个地址也是目前家用路由器中最常见的网关地址。
作为普通的用户,只需要记住,手动配置IP地址的时候,默认网关的地址就是路由器的LAN接口的地址,也就是你路由器的管理页面登陆地址。如果你选择自动获取ip地址,那么就不需要关注默认网关地址了,但路由器的DHCP服务器分配下来的默认网关也一定是路由器的LAN接口的IP地址。
手动设置适用于电脑数量比较少、TCP/IP参数基本不变的情况,比如只有几台到十几台电脑。因为这种方法需要在联入网络的每台电脑上设置“默认网关”,非常费劲,一旦因为迁移等原因导致必须修改默认网关的IP地址,就会给网管带来很大的麻烦,所以不推荐使用。
b.自动设置
自动设置就是利用DHCP服务器来自动给网络中的主机分配IP地址、子网掩码和默认网关。这样做的好处是一旦网络的默认网关发生了变化时,只要更改了DHCP服务器中默认网关的设置,那么网络中所有的电脑均获得了新的默认网关的IP地址。这种方法适用于网络规模较大、TCP/IP参数有可能变动的网络。
(4)附注:
配置默认网关,可以在IP路由表中创建一个默认路径。
赋予路由器IP地址的名称,与本地网络连接的机器必须把向外的流量传递到此地址中以超出本地网络,从而使那个地址成为本地子网以外的IP地址的"网关".也就是最近常用的网关,当主机路由表目或网络输入不存在于本地主机的路由表时数据包发送到那里。
网关和路由器最大的区别是是否连接相似的网络。如果连接相似的网络,则称为路由器。而连接不相似的网络,称为网关。相似的网络和不相似的网络有两种不同的含义。逻辑层面:相似的网络:如果都是互联网上的两个网络,我们称为相似的网络。不相似的网络:如果一个是私网,一个是公网。我们称为不相似的网络。物理层面:相似的网络:都是以太网或者同一种介质的网络。不相似的网络:一边是以太,一边是SDH或者ATM等。
3. 网络通信的各种指标
速率、带宽、吞吐量、时延、时延带宽积、往返时间、利用率
3.1 速率
在计算机与计算机之间通信时传输数据位数的速率单位bit/s1bit也就是1位;
byte与bit的区别和换算
byte:字节bit:位
1byte=8bit
按字节换算
1k=1024byteM与byte之间的换算是1024
1M=1024K
按位换算
1kb=1000bit
1Mb=1000Kb
1Gb=1000Mb
问题一:我们人们常说的我的网络是8M为什么下载速度只有1M/S呢?
这里的8M,单位是Mb,也就是按位来算的,而下载速度是按字节算的8M=8000Kb=8000,000bit=1000,000byte≈1000kb≈1M
所以一般都市直接除以8,8M的网络下载速度就是1M/s100M的网下载速度也就10M/s
3.2 带宽
接口支持最高的传输速率,也就是我们的带宽是8M,带宽是100M.就是最高支持一次传输8M,自己换算一下,能传多个位。
3.3 吞吐量
单位时间内通过某个网络的数据量
简单的说,就是通过一根网线一次性传输的多少个位,最高位就是带宽,但不是每次传输都达到了带宽值,有可能通过的只有3M,5M,都不一定,通过的量就是我们说的吞吐量
3.4 时延
发送时延、传播时延、处理时延、排队时延
发送时延=数据块长度(bit)/信道宽度(bit/s)
过一个特定情景来讲解
A----------------路由器---------------------B
A发送0101010101(10bit)数据到B带宽是10bit/sA距离B100米信号在信道上的传播速率10米/s
当从开始发送1到最后一个0从A的网卡中出来结束,发送时延=10bit/10bit/s=1s
传播时延=信道长度(米)/信号在信道上传播速率(米/秒)
传播时延:从A发送1开始,到路由器,接受最后一个0结束,这一段也算是传播时延,路由器到B之间也是100/10=10秒。在电线上花费的时间是10秒
排队时延:路由器接受数据,有一个缓冲区,相当于队列,数据到路由器,先到缓冲区排队等待路由器一个个接受数据,直到路由器开始接受第一个位,这就是排队时延,从路由器出来也需要排队时延
处理时延:路由器开始接受第一个位,这就开始处理数据了,到最后一个位接受完,这之间就是处理时延
3.5 时延带宽积
其实也就是在信道中有多少位数据在其中,用的是带宽,也就是最高的数据。
传播时延*带宽
3.6 往返时间
从A到B,在B返回数据到A,之间用了多少时间。
使用命令pingwww.baidu.com从我们浏览器到存放百度地址的主机,然后返回数据到我们计算机需要的时间;
3.7 环回接口(loopback):
大多数的产品都支持环回接口,以允许运行同一台主机上的客户程序和服务器程序通过TCP/IP协议进行通信。A类网络号127就是为环回接口预留的,根据惯例环回地址为localhost。一旦传输层检测到目的端地址是环回地址时,应该可以省略部分传输层和所有网络层的逻辑操作。但是大多数的产品还是照样完成传输层和网络层的所有过程,只是当IP数据报离开网络层时把它返回给自己。
3.8 最大传输单元(MTU)/路径MTU:
以太网和IEEE802.3对数据帧的长度都有限制,其最大值分别是1500和1492字节,将这个限制称作最大传输单元(MTU,MaximumTransmissionUnit);如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就要进行分片(Fragmentation),把数据报分成若干片,这样每一片都小于MTU。点到点的链路层(如SLIP和PPP)的MTU并非指的是网络媒体的物理特性。相反,它是一个逻辑限制,目的是为交互使用提供足够快的响应时间。
当网络上的两台主机互相进行通信时,两台主机之间要经过多个网络,每个网络的链路层可能有不同的MTU,其中两台通信主机路径中的最小MTU被称作路径MTU。
路径MTU的发现方法:
这是确定两个IP主机之间路径最大传输单元的技术,其目的就是为了避免IP分片。首先源地址将数据报的DF(不要分片)位设置为1,再逐渐增大发送的数据报的大小——路径上任何需要将分组进行分片的设备都会将这种数据报丢弃并返回“数据报过大“的ICMP响应到源地址——这样源主机就”学习“到了无需分片就能通过这条路径的最大的最大传输单元。
4. OSI参考模型
OSI(OpenSystemInterconnect),即开放式系统互联。一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。它是由国际标准化组织提出的一种概念模型,是一个试图使各种计算机在世界范围内互连为网络的标准框架。
但是OSI参考模型并没有提供一个可以实现的方法,而是描述了一些概念,用来协调进程间通信标准的制定。即OSI参考模型不是一个标准,而是一个在制定标准时所使用的框架性框架。
分层的基本想法是每一层都在它的下层提供的服务基础上提供更高级的增值服务,而最高层提供能运行分布式应用程序的服务。
发送请求的过程是从最顶层(应用层)出发,每一层负责封装属于自己的信息到请求中,最后将一整个请求发送给对方。
接收请求的过程是从最底层(网络接口层)开始,每一层的协议负责解析属于自己的东西,比如网际层(IP)处理ip信息,传输层(TCP)处理点对点的端口,应用层(HTTP)处理Request或Response的Line\Header\Body。
4.1 OSI模型的分层
简而言之,上三层总称应用层,用来控制软件方面。下四层总称数据流层,用来管理硬件。除了物理层之外其他层都是用软件实现的。
4.2 物理层(Physical)
物理层规定激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的物理媒体。
在这一层,数据的单位称为比特(bit)。
属于物理层定义的典型规范代表包括:EIA/TIARS-232、EIA/TIARS-449、V.35、RJ-45、FDDI令牌环网等。
常用设备有(各种物理设备)集线器、中继器、调制解调器、网线、双绞线、同轴电缆。这些都是物理层的传输介质。
物理层:在物理媒介上传输原始的数据比特流(分8位一组);
4.3 数据链路层(DataLink)
数据链路层在不可靠的物理介质上提供可靠的传输。
该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
数据链路层协议的代表包括:ARP、RARP、SDLC、HDLC、PPP、STP、帧中继等。
数据链路层:控制网络层和物理层之间的通信。接收物理层传送的比特流,将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测。
这一层的数据叫做“帧(frame)”,在这一层工作的设备叫交换机,网络交换机主要用于局域网通信,通过mac地址进行广播通信。
数据链路层又分为2个子层:逻辑链路控制子层(LLC)和媒体访问控制子层(MAC)。
MAC子层处理CSMA/CD算法、数据出错校验、成帧等;LLC子层定义了一些字段使上次协议能共享数据链路层。在实际使用中,LLC子层并非必需的。
早期的时候,数据链路层就是来对电信号来做分组的。现在形成统一的标准(标准就是协议),即以太网协议Ethernet。以太网协议标准(Ethernet):一组电信号称之为一个数据包,在数据链路层叫“帧”,即数据帧。
一个数据帧由两个数据组成:报头(head)+数据(data)
一组电信号称之为一个数据包,或者叫做一个“帧”
head包含:(固定18个字节)
发送者(源地址,6个字节)
接收者(目标地址,6个字节)
数据类型(6个字节)
data包含:(最短46字节,最长1500字节)
数据包的具体内容:
head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送。
4.4 网络层(Network)
网络层:IP寻找和路由选择;本层通过IP寻址来建立两个节点之间的连接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。
在这一层工作的设备是路由器。把这一次的数据叫做数据包(packet)。
网络层负责对子网间的数据包进行路由选择。网络层还可以实现拥塞控制、网际互连等功能。
网络层协议的代表包括:IP、IPX、RIP、OSPF等。
是通常说的IP层,即IP协议层。IP协议是Internet的基础。
4.5 传输层(Transport)
传输层是第一个端到端,即主机到主机的层次。
传输层建立、维护、管理端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。端口号既是这里的“端”。
在这一层,数据的单位称为数据段(segment)。
传输层协议的代表包括:TCP、UDP、SPX等。
补充:端口范围0-65535,0-1023为系统占用端口,其他应用程序用的是1024以上的端口。
4.6 会话层(Session)
会话层:通过传输层(端口号:传输端口与接受端口)建立数据传送的通路,管理主机之间的会话进程,即负责建立、管理和终止表示层实体之间的通信会话。该层的通信由不同设备中的应用程序之间的服务请求和响应组成。会话层还利用在数据中插入校验点来实现数据的同步。
这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。
该层允许不同机器上的用户之间建立会话关系,既可以进行类似传输层的普通数据传输,也可以被用于远程登录到分时系统或在两台机器间传递文件。
4.7 表示层(Presentation)
表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。
表示层提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,
用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩和加密也是表示层可提供的转换功能之一。
例子:由于公司A和公司B是不同国家的公司,他们之间的商定统一用英语作为交流的语言,所以此时表示层(公司的文秘),就是将应用层的传递信息转翻译成英语。同时为了防止别的公司看到,公司A的人也会对这份报价单做一些加密的处理。这就是表示的作用,将应用层的数据转换翻译等。
这一层需要解决用户信息的语法表示问题,它将欲交换的数据从适合某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。例如图像格式的显示,就是由位于表示层的协议来支持。这一层的主要功能是定义数据格式以及加密和数据压缩。
4.8 应用层(Application)
应用层为操作系统或网络应用程序提供访问网络服务的接口。
OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务。
应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。
该层包含了大量人们普遍需要的协议。不同的文件系统有不同的文件命名原则和不同的文本行表示方法等,不同的系统之间传输文件还有各种不兼容问题,这些都将由应用层来处理。此外,应用层还有虚拟终端、电子邮件和新闻组等各种通用和专用的功能。
应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式。
应用层功能:规定应用程序的数据格式。
例:TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了”应用层”。
4.9 总结
应用层ApplicationLayer:用户的应用程序与网络之间的接口(/老板);
表示层PresentationLayer:协商数据交换格式(/相当公司中简报老板、替老板写信的助理);
会话层SessionLayer:允许用户使用简单易记的名称建立连接(/相当于公司中收寄信、写信封与拆信封的秘书);
传输层TransportLayer:提供终端到终端的可靠连接(/相当于公司中跑邮局的送信职员);
网络层NetworkLayer:使用权数据路由经过大型网络(/相当于邮局中的排序工人);
数据链路层DataLinkLayer:决定访问网络介质的方式(/相当于邮局中的装拆箱工人);
物理层PhysicalLayer:将数据转换为可通过物理介质传送的电子信号(/相当于邮局中的搬运工人);
5. OSI参考模型与TCP/IP模型
OSI七层模型 |
TCP/IP四层模型 |
TCP/IP五层模型 |
应用层(Application) |
应用层 |
应用层 |
表示层(Presentation) |
||
会话层(Session) |
||
传输层(Transport) |
传输层 |
传输层 |
网络层(Network) |
网络层 |
网络层 |
数据链路层(DataLink) |
网络接口层 |
数据链路层 |
物理层(Physical) |
物理层 |