网络概念
网络
- 网络是由节点和连线组成的图,表示诸多对象及其关系
计算机网络 - 计算机网络是将地理位置不同的具有独立功能的多态计算机及其外部设备,通过通信线路物理连接(包括有线连接、无线连接),并在网络操作系统、网络管理软件和网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
带宽 - 在数字设备中,指的是单位时间数据的传输量
- 网络传输习惯上使用比特率,即bps每秒传输的二进制位数
拓扑
- 总线型
所有设备都连接在公共总线上,结点间使用广播通信方式,一个结点发出的信息,总线上所有其他结点都可以接收到,一段时间只允许一个结点独占总线。
常见使用同轴电缆连接,总线两端需要终结器。
优点:
- 结构简单、易于实现
- 易于扩充、增加或者移除结点比较灵活
- 可靠性高,个别结点发生故障时,不影响网络中其他结点的正常工作。
缺点:
-
网络传输能力低,安全性低,总线发生故障时,会导致全网瘫痪
-
所有数据都需要经过总线传输,总线是整个网络的瓶颈。结点数量的增多会影响网络性能。
-
环形结构
环形结构是将联网的计算机由通信线路连接成一个闭合的环,在环形结构中信息按照固定方向流动,或顺时针,或逆时针方向。
优点:令牌控制,没有线路竞争,实时性强,传输控制容易
缺点:维护困难,可靠性不高,一个结点发生故障时,可能导致全网瘫痪,可以使用双环拓扑结构,但是复杂性提升。
目前在工业网络中有部分使用 -
星型拓扑
每个结点都由一条单独的通信线路与中心结点连接,其他各结点都与该中心结点有着物理链路的直接互连,其他结点不能直接通信,其他结点直接的通信需要该中心结点进行转发,因此中心结点有着较强的功能和较高的可靠性。
优点:可靠性高,方便管理,易于扩展,传输效率高
缺点:线路利用率低,中心结点需要很高的可靠性和冗余度
注意,hub工作在一层,这种星型实际上就是芯片化的总线网络,只是物理拓扑结构上感觉像是星型。
OSI参考模型
OSI是Open System Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架,OSI模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。
物理层:定义了电气规范、设备规范、物理接口等,电信号的变化,或数字信号变化。
链路层:二层,将比特组织成帧,即对字节进行定义,支持错误检查。使用物理地址、MAC地址。MAC有48位,前24位厂商编号由IEEE分配,后24位设备序号。
网络层:三层,将帧组织成包,包传递的路径选择(路由),将包传输成目标地址。使用逻辑地址、IP地址。
传输层:四层。解决传输的问题,确保数据传输的可靠性;建立、维护、终止模拟电路;错误检测和恢复
会话层:建立、管理、终止应用程序间的逻辑电路,即会话
表示层:对应用数据格式化、加密解密等。将上层数据转化为适合网络传输的格式,或将下层数据转化为上层能够处理的数据
应用层:七层,为应用程序提供网络服务接口,用户使用的时候并不关心会话如何建立保持,也不关心协议的协商是否加密等。
数据传输
数据在一端设备的应用层开始向下逐层开始封装,最终以比特流(电信号的形式)在物理设备上进行传递到另一个设备的物理层,逐层开始结构,最终在应用层得到数据。
数据很大,在应用层切分,每一份数据都会在下一层被封装。
在数据链路层会增加tail即校验位,最终在物理层上都是电平信号0、1发送出去。
到了对端设备,由下至上逐层解包组合,直到合成并还原应用层的一份数据。
通讯的三种模式
- 单播:包在计算机网络传输中,目的地址为单一目标的传输模式,每次都是点对点的2个实体间相互通信。
- 广播:数据在网络中传输,目标地址是网络中所有设备的传输方式。所有设备是有范围的,这个范围成为广播域,IPV6不支持广播,由组播替代。
- 多播、组播:把数据同时传递给一组目的地址。网络源只发出一份数据,会在尽可能远的设备上复制和分发。
冲突域:网络中设备A发送数据时,设备B也发送数据,数据碰撞,发生了冲突,这两个设备就属于同一个冲突域。
局域网LAN
局域网Local Area Network ,指的是某一个区域内,多台计算机互联的计算机组。
常见组网设备,网线,有线网卡,无线网卡,集线器,交换机,路由器等。
网络设备
网络线缆
有线连接,需要使用网线,最早使用同轴电缆,后来使用双绞线,现在高速网络布线可以采用光纤。
常用的双绞线使用RJ45水晶头。
直通采用双端T568B,互连使用一端T568A一端T568B的交叉线,不过目前新型网卡可以自适应,都使用直通线连接即可。
- 集线器hub
工作在一层,使用HUB连接的设备看似是星型,实际是总线型。
它是物理层设备,只认识电信号,所以根本不认识什么MAC地址之类的信息。早期用来多机互连,信息中继的作用。
连入设备越多,广播信号,在一个冲突域,网络效率很低。
使用HUB连接的所有设备,都在同一个冲突域。 - 交换机switch
工作在二层,内部记录着MAC表,通过自学习,建立交换机端口和MAC地址对应表。内部有电路交换数据,如果信号立交桥,网桥也工作在这一层。 - 路由器Router
- 工作在三层,内部记录路由表,记录着路由器的端口到网络对应关系。这个表可以静态配置,也可以动态更新。
功能:分割广域网;选择路由,维护和检查路由信息,连接广域网。
TCP/IP协议栈
TCP/IP,Transmission Control Protocol /Internet Protocol,传输控制协议、因特网互联协议。
它是一个包含很多工作在不同层的协议的协议族,其中最著名的2个协议是TCP和IP协议。
共定义了四层:网络访问层、Internet层、传输层、应用层。
TCP/IP协议是事实标准。目前局域网和广域网基本上也都用该协议。
传输层协议
TCP | UDP | |
---|---|---|
连接类型 | 面向连接 | 无连接 |
可靠性 | 可靠 | 不可靠 |
有序 | 数据包有序号 | 没有包序 |
使用场景 | 大多数场合,数据不能出任何问题 | 视频、音频 |
连接:
- TCP需要通讯双发预先先建立连接,需要三次握手、四次断开
- UDP不需要预先建立连接
可靠性: - TCP需要确定每一个包是否收到,丢包重发,效率低一些
- UDP尽最大努力交付数据,不需要确认数据包,丢包无法知道,也不重复,效率高一些
有序 - TCP包有序号,可以进行顺序控制,第一个包序号随机生成,之后的包序号都和它相关
- UDP包无序,无法纠正,只能在应用层进行验证
TCP协议三次握手、四次断开
三次握手建立连接
1、Client端首先发送一个SYN包告诉Server端我的初始序列号是X
2、Server端收到SYN包后回复到Client一个ACK确认包,告诉Client服务器已经收到了,Server端也需要告诉Client端自己的初始序列号,于是Server也发送一个SYN包告诉Client客户端的序列号Y,两个包一起发送
3、Client收到后,回复Server一个ACK确认包。
四次断开
1、Client发送一个FIN包来告诉Server需要断开
2、Server收到后回复一个ACK确认FIN包收到
3、Server在自己也没数据发送给Client后,Server也发送一个FIN包给Client,表示也无数据发送
4、Client收到后,会回复一个ACK确认Server的FIN包
主动发出FIN包就是主动关闭方,就会进入TIME_WAIT,原因是被动关闭方发来的FIN包需要确认,万一此包丢失,被动关闭方未收到确认会超时重发FIN包,主动关闭方还在,可以重发ACK。
IP地址
IP地址是IP协议提供的一种同一个地址格式,它为互联网上的网络设备分配一个用来通信的逻辑地址。
目前分为IPV4和IPV6
- IPV4
IPV4是一个32位二进制,不便于记忆,为了方便,采用“点分十进制”表示法,将这个二进制数每8位断开,每8个是一个字节,一个字节表示的十进制正整数范围是0-255。
IP地址分类: - 公有地址:需要向因特网信息中心申请,在互联网上可以直接使用的IP地址
- 私有地址:不需要注册,可以组织内部网络使用的IP地址
IP地址被分为2部分,网络位+主机位
网络位表示设备同属一个网络;主机位表示网络中不同的设备的唯一ID
子网掩码 : - 子网掩码将IP地址分为网络ID和主机ID
- IP地址位于子网掩码就是网络ID
IP 地址被分为A、B、C、D、E五类
类别 | 最大网络数 | IP地址范围 | 单个网段最大主机数 | 私有IP地址范围 |
---|---|---|---|---|
A类 | 126 | 1.0.0.0-127.255.255.255 | 16777214 | 10.0.0.0-10.255.255.255 |
B类 | 16384 | 128.0.0.0-191.255.255.255 | 65534 | 172.16.0.0-172.31.255.255 |
C类 | 2097152 | 192.0.0.0-223.255.255.255 | 254 | 192.168.0.0-192.168.255.255 |
A类
第一字节(最高字节)为网络位,第一个字节变化为
0000 0001到
0111 1111,共127个减去回环地址,剩余126个
地址范围1.0.0.0到127.255.255.255,二进制表示为:
00000001 00000000 00000000 00000000
01111111 11111111 11111111 11111111
最后一个是广播地址,子网掩码是255.0.0.0
每一个网络中主机个数等于256**3-2=1677714
最高位是0
B类
前2个字节为网络位,其变化为128.0-191.255,相当于
1000 0000 0000 0000 到
1011 1111 1111 1111,实际上就是后14位变化,共2^14 = 16384个网络。
B类IP地址地址范围128.0.0.0-191.255.255.255 。二进制表示为:10000000 00000000 00000000 00000000 -
10111111 11111111 11111111 11111111)。 最后一个是广播地址。
子网掩码255.255.0.0
每一个网络中主机个数等于256**2-2=65534
最高位是10
C类
前3个字节为网络位,其变化为192.0.0~223.255.255,相当于
1100 0000 0000 0000 0000 0000 到
1101 1111 1111 1111 1111 1111 ,实际上就是后21位变化,共2^21 = 2097152个网络。
C类IP地址地址范围192.0.0.0-223.255.255.255 。二进制表示为:11000000 00000000 00000000 00000000 -
11011111 11111111 11111111 11111111)。 最后一个是广播地址。
子网掩码255.255.255.0
每一个网络中主机个数等于256-2=254
最高位是110
D类
多播地址,或组播地址。
多播地址最高4位必须是1110,那么地址范围就是224.0.0.0到239.255.255.255。
224.0.0.1特指所有主机
E类
实验用地址
特殊IP地址
0.0.0.0表示当前主机
255.255.255.255 限制广播地址。路由器不会转发这个受限广播地址的数据报文,此地址只能用于本网广播
IP地址中以127开头的地址称为Loopback回环地址
169.254.x.x,windows主机使用了DHCP获取IP,但没有获得地址,windows会临时获得这样的地址
网关GATEWAY 网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,用于网络间互联。
举例
IP地址192.168.3.200,要配合子网掩码使用,假设子网掩码为255.255.255.0,说明它是C类地址。
网络ID为192.168.3.0,广播地址为192.168.3.255。
剩余192.168.3.1~192.168.3.254能够分配给网络中其他设备。
网关地址配置一般习惯使用1、100、254等。本例使用192.168.3.1。
其作用是连接不同的网络,也称为处在不同的网段。
又有一个IP地址为192.168.100.10/24,它也是C类地址,网络ID是192.168.100.0。
和上面的IP处在不同的网络,这两个地址的主机通信,就需要使用网关,由网关将数据包转发到另一个网IP v6
互联网上的公有地址在2011年分配完,而随着互联网的发展,接入设备越来越多,尤其是物联网的到来必须解决。由此,提出了IP v6。
IP v6采用128位二进制数表示,基本解决IP地址短缺现象,同时,该协议还解决原有协议的诸多问题。
路由Routing
跨网络通信就需要使用路由,通过路由器将数据包从一个网络发往另一个网络。
路由器上维护着路由表,它知道如何将数据包发往另外的网络。
windows使用 route print , Linux使用 route -n 可以查看路由表。
路由器所有端口都有自己的IP地址,这些IP地址往往处在不同的网络,所以,路由器连接了不同了网络。
路由表中记录着路由设备所有端口对应的网络,分为静态、动态配置。
静态路由:由管理员手动配置的固定的路由信息
动态路由:网络中的路由器,根据实时网络拓扑变化,相互通信传递路由信息,利用这些路由信息通过路由选择协
议动态计算,并更新路由表。常见的协议有RIP、OSPF等等。
网关:下一跳地址,就是到下一个网络,从哪个网关出去
到192.168.0.0/24和10.0.0.0/8网络,R1本身就直接连接着这些网络,所以网关为空,不需要。
到172.16.0.0/16网络需要找到R2,所以写R2的接口1地址即可。
DHCP
动态主机设置协议(Dynamic Host Configuration Protocol,DHCP)是一个局域网的网络协议,基于UDP协议工
作。
主要用途就是用于内部网或网络服务供应商自动给网络中的主机分配IP地址。