什么是网络
- 网络是由节点和连线构成的图,表示诸多对象及其关系
什么是计算机网络
- 计算机网络指的是将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路物理连接(包括有线、无线连接),并在网络操作系统、网络管理软件和网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统
带宽
- 在数字设备中,指的是单位时间数据的传输量
- 网络传输习惯上使用比特率,即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
- 工作在二层。内部记录着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包无序,无法纠正,只能在应用层进行验证
TCP协议三次握手/四次断开
- 三次握手建立连接 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五类
A类
- 最高位是 0
- 第一字节(最高字节)为网络位。第一个字节变化为
0000 0001 到
0111 1111,共127,减去回环地址,剩余126个网络 - A类IP地址范围1.0.0.0到127.255.255.255。二进制表示为:
00000001 00000000 00000000 00000000 至
01111111 11111111 11111111 11111111。最后一个是广播地址。 - 子网掩码
255.0.0.0
- 每一个网络中主机个数等于
256³ - 2 = 1677716 -2 = 1677714
B类
- 最高位是10
- 前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 = 65535 -2 = 65534
C类
- 最高位是110
- 前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
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类地址
,/16
指B类地址,/8
指A类地址。网络ID是192.168.100.0
- 和上面的IP处在不同的网络,这两个地址的主机通信,就需要使用网关,由网关将数据包转发到另一个网络
IP v6
- 互联网上的公有地址在2011年分配完,而随着互联网的发展,接入设备越来越多,尤其是物联网的到来,此问题必须解决。由此,提出了IP v6
- IP v6采用128位二进制数表示,基本解决IP地址短缺现象,同时,该协议还解决原有协议的诸多问题
路由Routing
- 跨网络通信就需要使用路由,通过路由器将数据包从一个网络发往另一个网络
- 路由器上维护着路由表,它知道如何将数据包发往另外的网络
- windows使用
route prin
t ,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地址