一:网络基础知识
1.协议
简单来说 ,协议就是计算机与计算机之间通过网络进行通信时事先达成的一种约定。这种约定使得那些不同的计算机之间,只要遵循相同的协议就可以实现通信。反之,如果使用的协议不一致,则无法实现通信。
协议如同人与人之间的对话,只有使用相同语言才能交流。
2.协议分层与OSI模型参考
OSI参考模型将通信协议中必要的功能分成了7层。通过分层,使得那些比较复杂的网络协议简单化。
在这一模型中,每个分层都接收由它下一层提供的服务,并且负责为自己的上层提供服务。
上下层之间进行交互时所遵循的约定叫做接口,同一层之间交互所遵循的约定叫做协议。
3.七层协议
1)物理层
负责0、1比特流与电压的高低、光的闪灭之间的互换
2)数据链路层
将0、1序列划分为具有意义的数据帧传送给对端
3)网络层
将数据传输到目标地址。这层主要负责寻址和路由选择
4)传输层
起到可靠传输的作用
5)会话层
负责建立和断开通信连接,以及数据分割等数据传输相关的工作
6)表现层
将应用处理的信息转换为适合网络传输的格式,或将来自下层的数据转换为上层能够处理的格式
7)应用层
为应用程序提供服务并规定应用程序中通信相关的细节
4.网络传输方式的分类
1)面向有连接型与面向无连接型
* 在面向有连接型中,在发送数据之前,需要在收发主机之间连接一条通信线路,在通信完毕之后,需要进行断开连接的处理(如同打电话一般,先输入对方手机号,只有对方真正拿起电话时才能通话)
* 在面向无连接型中,不要求建立和断开连接,发送端可与任何时候发送数据(如果发快递一般,只要写上对方的地址就可以发送)
2)电路交换与分组交换
* 电路交换:在通信之前在通信双方之间建立一条独占的物理通路(这种独占式的对于多通信用户来说浪费巨大)
* 分组交换:采用存储转发的方式,将一个长报文分割成若干个较短的分组,然后把这些分组(携带源地址、目标地址和编号信息)逐个发送出去
分组交换不需要在通信双方之间建立一条独有通道,不存在建立连接时延,用户可随时发送分组。
注意:若传输的数据量很大且传输时间大于呼叫时间,则采用电路交换较为合适;当端对端的通路有很多段的链路组成时,采用分组交换较为合适;从提高整个网络的信道利用率来看,分组交换优于电路交换
3)根据接收端数量分类
* 单播(Unicast)1对1通信
* 广播(Broadcast)将消息从1台主机发送给与之相连的所有其他主机
* 多播(Multicast)将消息发送多个接收主机
* 任播(Anycast)在特定的主机中任选出一台作为接收端
5.网络的构成要素
1)通信媒介与数据链路
计算机之间通过电缆相互连接,以下是各种不同的数据链路、通信媒介及其标准传输速率
传输速率:两个设备之间数据流动的物理速度。传输速度高指的是单位时间内传输的数据量多(传输速率又称带宽)
吞吐量:主机之间实际的传输速率,单位与传输速率相同都是bps
2)网卡(全称:网络接入卡NIC)
网卡一方面负责接收网络上的数据包,解包后,将数据通过主板上的总线传输给本地计算机;另一方面将本地计算机的数据打包发送到网络。
3)中继器(Repeater)
作用
于物理层上,用于延长网络的设备。由电缆传过来的电信号或光信号经由中继器的波形调整和放大再传给另一个电缆
4)网桥/2层交换机
是作用
于数据链路层上的链接两个网络的设备。
它能够识别数据链路层中的数据帧,并将这些数据帧临时存储于内存,再重新生成信号作为一个全新的帧转发给相连的另一个网段。
5)路由器
作用于网络层上连接两个网络、并对分组报文进行转发的设备。
网桥根据物理地址(Mac地址)进行处理;路由器根据IP地址进行处理
6)4-7层交换机
负责处理从传输层到应用层的数据,比如常用的
负载均衡器
就是这种交换机,用于向多个服务器分散压力
额外知识补充:
lvs优点:
是三个集群软件中性能和稳定性最高的(但是配置管理却是最复杂的)
工作在4层传输层,只用来做分发工作,并无流量的产生
几乎支持所有的应用,如:http,mysql,email等等
对网络要求很高,若是采用DR方式,最好用同一网段进行通信(LB与后端web)
nginx:
工作在7层应用层,可以对http应用层实现分流策略(如:根据域名,根据目录结构)
只支持http和email
对网络要求不是很高,理论上只要ping的通,就可以正常工作(nginx与后端web)
建议:
如果公司的网站比较小,访问人数不是很多,可以采用nginx来做负载均衡
但是若公司网站规模较大,达到门户级别,建议采用lvs
7)网关
负责将从传输层到应用层的数据进行转换和转发的设备。它与4-7层交换机一样都是处理传输层及以上的数据,但是网关不仅转发数据还负责对数据进行转换,它通常会使用一个表示层或者应用层网关,在两个不能直接进行通信的协议之间进行翻译,最终实现两者之间的通信。
二:TCP/IP的标准化
TCP/IP协议一般来说,不仅仅指的是TCP和IP两种协议,而是在利用TCP/IP协议进行通信的时候所必须用到的协议群的统称。
具体来说,IP与ICMP、TCP和UDP、TELNET或FTP、以及HTTP都属于TCP/IP协议。
1)硬件(物理层)
最底层是负责传输数据的硬件。这种硬件相当于以太网或电话线等物理层的设备。
2)网络接口层(数据链路层)
利用以太网中的数据链路层进行通信
3)互联网层(网络层)
网络层,IP协议基于IP地址转发分包数据。TCP/IP总互联网层与传输层的功能通常由操作系统提供。
具体协议:IP(一种分组交换的协议不具有重发机制,属于非可靠新传输协议);ICMP(IP数据包在发送途中一旦发生异常导致无法到达对端地址时,需要发送端发送一个发生异常的同志,ICMP就是为这一功能而制定的);ARP(从分组数据包的IP地址解析出物理地址的一种协议)
4)传输层
主要功能是让应用程序之间能够实现通信。
具体协议:TCP(面向有连接的传输层协议,保证两端通信主机之间的通信可达);UDP(面向无连接的传输层协议,不关注对端是否收到消息,常用于分组较少或多播、广播通信以及视频通信等多媒体领域)
5)应用层
TCP/IP的分层中,将OSI模型中的会话层、表示层、应用层的功能都集中到应用层程序中实现。
具体场景:WWW、E-Mail、FTP、TELNET、SNMP
2.通信示例
每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。
常用名词解释:
包:全能术语;帧:数据链路层中包的单位;数据报:IP和UDP等网络层以上的分层中包的单位;段:TCP数据流中的信息;消息:应用协议中数据的单位
三:数据链路
数据链路,指OSI参考模型中的数据链路层,有时也指以太网、无线局域网等通信手段。
数据链路层的协议定义了通过通信媒介互联的设备之间传输的规范。
在各个设备之间进行数据传输时,数据链路层和物理层都是必不可少的。计算机以二进制0/1来表示信息,然而实际的通信媒介之间处理的却是电压的高低、光的闪灭以及电波的强弱等。把这些信号与二进制的0、1进行转换正是物理层的责任;数据链路层的处理也不再是单纯的0/1序列,该层把它们集合成一个叫做帧的块,然后再进行传输。
1.数据链路相关技术
1)Mac地址
Mac地址长48bit,在使用网卡的情况下,Mac地址一般都会被烧入ROM中,因此,任何一个网卡的Mac地址都是唯一的
2)共享介质型网络
多个设备共享一个通信介质的一种网络,在这种情况下,设备之间使用同一个载波信道进行发送和接收。
此种网络类型有两种介质访问控制方式:争用方式(各个站采用先到先得的方式占用信道发送数据);令牌传递(沿着令牌环发送一种叫做令牌的特殊报文)
3)非共享介质网络
不共享介质,对介质采取专用的一种传输控制方式。网络中的每个站直连交换机,由交换机负责转发数据帧。(可实现全双工通信)
4)根据Mac地址转发
5)环路检测技术
6)VLAN
2.以太网
以太网是为了实现局域网通信而设计的一种技术,它规定了包括物理层的链接、电子信号、介质访问层协议的内容。
以太网是在众多数据链路中最为著名、使用最广泛的
1)以太网帧格式