什么是网络
网络是有节点和连线构成的图,表示诸多对象及其关系
什么是计算机网络
计算机网络指的是将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信路物理连接(包括有线,无线连接),并在网络操作系统,网络管理软件和网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统
带宽
在数字设备中,值得额是单位时间数据传输量 ,网络传输习惯上使用比特率,即bps每秒传输的二进制位数.
拓扑
总线型
- 所有设备都连接到公共总线上,结点时间使用广播通信方式.一个结点发出的信息,总线上所有的其他结点都可以接收到,一段时间只允许一个结点独占总线.
常见的有同轴电缆连接,总线两端需要终结器.
优点
- 结构简单,易于实现
- 易于拓充,增加或者移除结点比较灵活
- 可靠性高,隔壁结点发送故障时,不影响网络中其他结点的正常工作
缺点:
- 网络传输能力低,安全性低,总线发送故障时,会导致全网瘫痪.
- 所有数据都需要经过总线传输,总线是整个网络的瓶颈,结点数量的增多,会影响网络的性能.
环形结构
环形结构是将联网的计算机由通信线路连成一个闭合的环,在环形结网络中信息按照固定的方向流动,或顺时针方向或逆时针方向
优点:
- 令牌控制,没有线路竞争,实习性强,传输控制容易
缺点: - 维护困难,可靠性不高,一个结点发生故障,导致全网瘫痪,可以使用双环拓扑结构,但是复制性提升.
星形拓扑
- 每个结点都有一条单独的线路,与中心结点相连接,其它结点都与该中心结点有着物理链路的直接互联,其他结点之间不能直接通信,其它结点间的通信需要该中心结点进行转发,因此中心结点必须有着较强的功能和较高的可靠性,需要中继设备,例如hub,switch,router
优点:
-
可靠性高,方便管理易于拓展,传输效率高
缺点: -
线路利用率低,中心结点需要很高的可靠性和冗余度
-
注意,hub工作在一层,这种星型实际上就是芯片的总线网络,只是物理拓扑结构上感觉像是星型.
-
OSI参考模型:
OSI是Open system Interconnection的缩写,意为开放式系统互联,国际化标准组织,(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架,OSI模型把网络通信的工作分为7层,分别是物理层,数据链路层,网络层,传输层,会话层,表示层和应用层.
模型如下:
物理层(一层):
定义了电气规范,设备规范,物理接口等,电信号的变化,数字信号的变化,比特.
链路层(二层):
将比特组织成帧,即对字节进行定义,支持错误检查,使用物理地址,MAC地址,MAC有48为,前24位厂商编号由IEEE分配,后24位设备序号.
**
网络层(三层)**:
将帧组织成包,包传递的路径选择(路由),将包传递到目标地址.使用逻辑地址,IP地址.
传输层(四层):
解决了传输问题,确保数据的可靠性,建立,维护,终止虚拟电路,错误检测和恢复.
会话层(五层):
建立,管理,终止应用程序的逻辑通路,即会话
表示层(六层):
对应用数据格式化,加密解密等,将上层数据转为合适的传输格式,或将下层数据转化为上层能够处理的数据
应用层(七层):
为应用程序提供网络服务接口,用户使用的时候,并不关心会话如何建立,也不关心协议的协商是否加密.
数据传输
- 数据很大,在应用层切分,每一份数据都会在下一次被封装,
在数据链路层会增加tail,即校验位,最后在物理层上都是电信号,0,1发送出去,道理对端设备,由下至上逐层解包,直到合并还原应用层的一份数据
通讯的三种模式
-
单播:包在计算机网络传输中,目的地址为单一目标的传输方式。每次都是点对点的2个实体间相互通信
-
广播: 数据在网络中传输,目标地址是网络中所有设备的传输方式。所有设备是有范围的,这个范围称为广播域。IP v6不支持广播,由组播替代
-
多播,组播:把数据同时传递给一组目的的地址,数据源只发出一份数据,会在尽可能远的设备上复制和分发
冲突域、广播域,参看https://baike.baidu.com/item/%E5%B9%BF%E6%92%AD%E5%9F%9F
冲突域:网络中设备A发送数据时,设备B也发送数据,数据碰撞,发生了冲突,这两个设备就属于同一个冲突域。
交换机可以隔离冲突域。路由器可以隔离广播域
局域网LAN
局域网Local Area Network,指的是某一个区域内,多台计算机互联的计算机组
常见的设备有,网线,有线网卡,无线网卡,集线器,交换机,路由器等
网络设备
网络线缆
有线连接,需要使用网线,最早使用的是同轴电缆,后来使用双绞线,现在高速网络布线可以采用光纤.
常用的双绞线使用RJ45水晶接头
直通采用两端T568B,互连使用一端T568A一端T568B的交叉线,不过目前新型网卡可以自适应,都使用直通线连接即可
集线器hub
工作在一层。使用HUB连接的设备看似是星型,实际是总线型。
它是物理层设备,只认识电信号,所以根本不认识什么MAC地址之类的信息。
早期用来多机互连,信号中继的作用。连入设备越多,广播信号,在一个冲突域,网络效率很低。使用HUB连接的所有设备,都在同一个冲突域
交换机switch
工作在二层。内部记录着MAC表,通过自学习,建立交换机端口和MAC地址对应表。内部有电路交换数据,如同信号立交桥。网桥也工作这一层
路由器Router
工作在三层。内部记录路由表,记录着路由器的端口到网络对应关系。这个表可以静态配置,也可以动态更新。功能:分割广播域;选择路由;维护和检查路由信息;连接广域网。
广域网WAN
广域网,又称外网、公网。连接不同局域网或城域网的计算机通讯网络
互联网Internet
互联网Internet,也称因特网。前身是美国军用ARPA网,后来连入了很多的科研院校,并逐步商业化走向全球。它连接了覆盖全球的网络,是众多的广域网互联的大型网络
互联网使用了TCP/IP协议。
TCP/IP协议栈
TCP/IP,Transmission Control Protocol/Internet Protocol ,传输控制协议/因特网互联协议。它是一个包含很多工作在不同层的协议的协议族,其中最著名的2个协议分别是TCP和IP协议。它最早起源于美国国防部(缩写为DoD)的ARPA网项目,共定义了四层:网络访问层、Internet层、传输层、应用层。
TCP/IP协议是事实标准。目前局域网和广域网基本上也都用该协议
传输层协议
TCP | UDP |
---|---|
连接类型 | 面向连接 |
可靠性 | 可靠 |
有序 | 数据包有序 |
使用场景 | 大多数场合,数据不能出任何问题 |
- 连接
- TCP需要通讯双方预先建立连接,需要三次握手、四次断开
- UDP不需要预先建立连接
- 可靠性
- TCP需要确定每一个包是否收到,丢包重发,效率低一些
- UDP尽最大努力交付数据,不需要确认数据包,丢包无法知道,也不重复,效率高一些
- 有序
- TCP包有序号,可以进行顺序控制。第一个包序号随机生成,之后的序号都和它有关
- UDP包无序,无法纠正,只能在应用层进行验证
- 三次握手建立连接 Three-way Handshake
- Client端首先发送一个SYN包告诉Server端我的初始序列号是X
- Server端收到SYN包后回复给Client一个ACK确认包,告诉Client说我收到了。Server端也需要告诉Client端自己的初始序列号,于是Server也发送一个SYN包告诉Client我的初始序列号是Y。这两个包一起发送
- Client收到后,回复Server一个ACK确认包说我知道了
- 四次断开
- Client发送一个FIN包来告诉Server需要断开
- Server收到后回复一个ACK确认FIN包收到
- Server在自己也没数据发送给Client后,Server也发送一个FIN包给Client,表示也无数据发送了
- Client收到后,就会回复一个ACK确认Server的FIN包
- 主动发出Fin包就是主动关闭方,就会进入TIME_WAIT,原因是被动关闭方发来的FIN包需要确认,万一此包丢失,被动关闭方未收到确认会超时重发FIN包,主动关闭方还在,可以重发ACK
IP地址
IP地址是IP协议提供的一种同一个地址格式,它为互联网上的网络设备分配一个用来通信的逻辑地址。目前分为IP v4和IP v6。
IP V4
- IP v4 是一个32位二进制数,不便记忆,为了使用方便,使用“点分十进制”表示法,将这个二进制数每8位断开,每8位是一个字节,一个字节表示的十进制正整数范围是0~255。
- IP v4地址早期比较充足,随着全球连入互联网,在2011年IP v4地址分配完毕。
- IP 地址分类
- 公有地址:需向因特网信息中心申请,在互联网上可以直接使用的IP地址
- 私有地址:不需要注册,可以组织内部网络使用的IP地址
IP地址这个数被分成2部分,即网络位 + 主机位。
网络位表示设备同属一个网络;主机位表示网络中不同的设备的唯一ID。
子网掩码
子网掩码将IP地址划分为网络ID和主机ID。IP地址位与子网掩码就是网络ID。
IP v4地址被分为下面A、B、C、D、E五类
类别 | 最大网络数 | IP地址范围 | 单个网段最大主机数 | 私有IP地址范围 |
---|---|---|---|---|
A类 | 126(2^7-1-1) | 1.0.0.0-127.255.255.255 | 16777214 | 10.0.0.0-10.255.255.255 |
B类 | 16384(2^14) | 128.0.0.0-192.255.255.255 | 65534 | 172.16.0.0-172.31.255.255 |
C类 | 2097152(2^21) | 192.0.0.0-223.255.255.255 | 254 | 192.168.0.0-192.168.255.255 |
-
A类
- 第一字节(最高字节)为网络位。
- 第一个字节变化为0000 0001 到0111 1111,共127,减去回环地址,剩余126个。
- A类地址范围1.0.0.0到127.255.255.255。
- 二进制表示为:00000001 00000000 00000000 00000000 - 01111111 11111111 11111111 11111111。
- 最后一个是广播地址。子网掩码255.0.0.0每一个网络中主机个数等于最高位是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=65536-2=65534,最高位是10
-
C类
- 前3个字节为网络位,其变化为19.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地址。