网络基本概念和TCP、UDP协议mysql
------------------------------------------------------------------------------------------------------------------------------------------算法
冲突域:若是几台设备同时向一台设备发送数据产生冲突,则这几台设备处于一个冲突域中,反之不在一个冲突域sql
总线拓扑:总线不能断缓存
星型拓扑:中间交换机不能够故障安全
扩展星型拓扑服务器
环形拓扑网络
双环拓扑
架构
全网状拓扑oracle
部分网状拓扑
app
了解主机到主机通讯
旧模型
专有产品
由一个厂商控制应用程序和嵌入的软件
基于标准的模型
多厂商软件
分层方法
网络模型
OSI:开放系统互联
ISO:国际标准化组织
逻辑寻址:人为指定ip地址以便于管理
下层只为相邻的上层提供服务
物理层:二进制传输
为启动、维护以及关闭物理链路定义了电器规范、机械规范、过程规范和功能规范,数据格式为0101……
数据链路层:访问介质
定义如何格式化数据以便进行传输以及如何控制对网络的访问,数据格式为帧;
支持错误检测;
MAC地址在数据链路层定义
网络层:数据传输
路由数据包;
选择传递数据的最佳路径;
支持逻辑寻址和路径选择
传输层:传输问题
确保数据传输的可靠性;创建、维护和终止虚拟电路;经过错误检测和恢复;
信息流控制来保障可靠性
会话层:主机间通讯
创建、管理和终止应用之间的会话
表示层:数据表示
确保接受系统能够读出该数据;
格式化数据;
构建数据;
协商用于应用层的数据传输语法;
提供加密
应用层:网络进程访问应用层
为应用程序进程(例如电子邮件、文件传输和终端仿真)提供网络服务;
提供用户身份验证
数据封装:按照七层模型从上到下的顺序对数据进行处理,在本身的设备上完成数据封装
数据解封
FCS:校验位
对等通讯
PDU
PDU: Protocol Data Unit,协议数据单元是指对等层次之间传递的数据单位
物理层的PDU是数据位bit
数据链路层的PDU是数据帧frame
网络层的PDU是数据包packet
传输层的PDU是数据段segment
其余更高层次的PDU是消息message
三种通信模式
单播:数据报文地址内的发送目标为1台设备
广播:数据发送目标为必定范围内全部设备,广播越多,对网络干扰越大
组播(多播):数据发送目标为多组设备
单工:目标主机和本主机之间通信为单向,有去无回,好比电视
半双工:目标主机和本主机之间通信为双向的,数据传输为轮流传输,好比对讲机
全双工:目标主机和本主机之间通信为双向的,数据传输为同时传输,好比视频聊天
局域网:Local Area Network
基于广播机制通信
广域网
基于点对点机制通信
网线:UTP非屏蔽式双绞线
STP屏蔽式双绞线,加一层金属保护,加强抗干扰
T568A线序:绿白、绿、橙白、蓝、蓝白、橙、棕白、棕
T568B线序:橙白、橙、绿白、蓝、蓝白、绿、棕白、棕
百兆之内用到4根线:一、二、三、6,12发,36接
千兆之内用到所有线
两边线序同样称做UTP直通线
T568A和T568B互为UTP交叉线
由于如今硬件设备能够自动识别T568A和T568B,所以广泛使用T568B线
双绞线传输最远距离为100米
GBIC:千兆电信号转换为光信号的接口器件
以太网:是数据链路层的协议之一(协议里有PPPOE、以太网、高级链路控制协议、帧中继、异步传输模式),属于局域网协议,它既定义了双绞线的标准,又定义了数据帧的格式
帧:frame
帧的结构 : 前导信息 目标地址 源地址 类型 数据 校验位
位 : 8 6 6 2 46-1500 4
类型是上层类型编号,用来让计算机识别位于哪一层
数据包括从网络层、传输层、会话层、表现层、app、data的数据
冲突检测的载波侦听多路访问CSMA/CD
早期以太网协议中设备低于1024台,不然冲突过多
Hub:多端口中继器,工做在物理层
Hub并不记忆该信息包是由哪一个MAC地址发出,哪一个MAC地址在Hub的哪一个端口
Hub的特色:共享带宽、半双工
Hub性能差、不安全
ISO七层网络模型,但实际工做中没有应用到这么多,目前使用的是TCP/IP协议
以太网桥:计算机经过Hub链接到以太网桥,能够记录计算机在哪一个域,从而在之后的使用中将数据不走其它线路而直接送达目标计算机
交换机:直接链接计算机,每一个接口都是一个独立的冲突域,全双工机制,大大提高了速率,能够隔断冲突域,但不能隔断广播域
交换机工做在数据链路层
以太网桥:计算机经过Hub链接到以太网桥,能够记录计算机在哪一个域,从而在之后的使用中将数据不走其它线路而直接送达目标计算机
交换机:直接链接计算机,每一个接口都是一个独立的冲突域,全双工机制,大大提高了速率,能够隔断冲突域,但不能隔断广播域
交换机工做在数据链路层
减小冲突域内或者广播域内计算机能够提高网络性能
交换机能够隔断冲突域
路由器能够隔断广播域
路由表不是路由器专有的,PC也有,设备依靠路由表寻找数据的转发路径
路由器:分隔广播域
选择路由表中到达目标最好的路径
维护和检查路由信息
链接广域网
网卡工做在数据链路层
ACL:访问控制列表
路由器:路由器工做在网络层
路由表:route table,路由表组成
网络地址:分析目标地址
接口:数据有可能从路由器的哪一个出口出来,哪一个就是接口
网关:目标网络与发数据的设备不在一个网段内,下一个路由器邻近主配置路由器的接口ip就是网关,线路和路由器链接的口网关不用配置
metric:能够理解为跃点数,该值越小,路由选择此路径优先级越高
VLAN:虚拟局域网,能够看做是广播域,是一种逻辑网络
特色:分隔广播域、安全、灵活管理
trunk:公共干道接口,不属于某个单独的vlan,多个vlan数据都会使用该接口
802.1Q:trunk上加vlan标签的协议,使得数据能够跨vlan传输
分层的网络架构
核心层:Core Layer,快速转发数据
分布层:Distribution Layer,用路由器隔开,设置访问权限
访问层:AccessLayer,先将设备连入网络,汇入分布层
STP:生成树协议,解决交换机回环问题,是一种动态算法
TCP/IP协议
Transmission Control Protocol / Internet Protocol
传输控制协议 / 因特网互联网协议
1983年取代了旧的网络控制协议NCP
定义了四层
四层模型和OSI七层模型对应关系
应用层协议
File transfer
–FTP
–TFTP
–Network File System
–Simple Mail Transfer Protocol
Remote login
–Telnet
–rlogin
Network management
–Simple Network Management Protocol
Name management
–Domain Name System
传输层两大协议:UDP和TCP
可靠性 |
传输效率 | |
链接类型 |
面向链接 |
非面向链接 |
协议 | TCP | UDP |
按序号前后接收数据 | Yes | No |
用途 |
邮件 文件共享 下载 |
音频 视频 |
TCP特性
工做在传输层
面向链接协议:确认对方与本身有稳定的网络状态
全双工协议:能够同时传输数据
半关闭:单方面关闭数据链接
错误检查
将数据打包成段,排序
确认机制
数据恢复,重传
流量控制,滑动窗口
拥塞控制,慢启动和拥塞避免算法
传输层报文头部结构
TCP包头
源端口号从0-65535,即216个端口号
序号:靠序号实现数据包可靠传输
确认号:指望对方下次发送数据包的编号,用小写ack表示
序号和确认号结合起来能够实现数据的安全通讯
数据偏移:说明报文有多长
标记位:占6位,其中含义有
URG:表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段(urgent pointer)只有当URG=1时才有效
ACK:确认位,表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字段才有效。TCP规定,链接创建后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段,例如ACK12表示本设备但愿对方下次发送第12号数据包
PSH:提示接收端应用程序应该当即从TCP接收缓冲区中读走数据,为接收后续数据腾出空间。若是为1,则表示对方应当当即把数据提交给上层应用,而不是缓存起来,若是应用程序不将接收到的数据读走,就会一直停留在TCP接收缓冲区中
RST:若是收到一个RST=1的报文,说明与主机的链接出现了严重错误(如主机崩溃),必须释放链接,而后再从新创建链接。或者说明上次发送给主机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文段
SYN:同步位,在创建链接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一个请求创建链接的报文段;当SYN=1,ACK=1时,表示对方赞成创建链接。SYN=1,同步位说明这是一个请求创建链接或赞成创建链接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段
FIN:分手位,表示通知对方本端要关闭链接了,标记数据是否发送完毕。若是FIN=1,即告诉对方:“个人数据已经发送完毕,你能够释放链接了”,带FIN标志的TCP报文段称为结束报文段
窗口:表示发送设备发多少个包接收设备会确认1次,协商双方能接收多少数据
TCP三次握手
前三步肯定稳定的网络状态,以后能够正常通信
图中seq代表设备自身的该文件编号
TCP四次挥手
11种有限状态机
CLOSED 没有任何链接状态
LISTEN 侦听状态,等待来自远方TCP端口的链接请求
SYN-SENT 在发送链接请求后,等待对方确认
SYN-RECEIVED 在收到和发送一个链接请求后,等待对方确认
ESTABLISHED 表明传输链接创建,双方进入数据传送状态
FIN-WAIT-1 主动关闭,主机已发送关闭链接请求,等待对方确认
FIN-WAIT-2 主动关闭,主机已收到对方关闭传输链接确认,等待对方发送关闭传输链接请求
TIME-WAIT 完成双向传输链接关闭,等待全部分组消失
CLOSE-WAIT 被动关闭,收到对方发来的关闭链接请求,并已确认
LAST-ACK 被动关闭,等待最后一个关闭传输链接确认,并等待全部分组消失
CLOSING 双方同时尝试关闭传输链接,等待对方确认
孤儿链接: 客户端执行半关闭后,未等服务器关闭链接就强行退出了,此时客户端链接由内核来接管
DDOS攻(龘)击:拒绝服务攻(龘)击,伪造大量ip,对服务器进行访问,使得服务器的回应长时间无响应,占据大量访问数,从而使得正经常使用户没法正常访问
协议端口
FTP 用TCP21端口
Tlenet用TCP23端口
Http用TCP80端口
DNS用TCP 53和UDP53端口
TFTP用UDP69端口
SNMP用UDP161端口
传输层经过port号,肯定应用层协议
Port number:
tcp:传输控制协议,面向链接的协议;通讯前须要创建虚拟链路;结束后拆除链路
0-65535
udp:User Datagram Protocol,无链接的协议
0-65535
IANA:互联网数字分配机构(负责域名,数字资源,协议分配)
0-1023:系统端口或特权端口(仅管理员可用) ,众所周知,永久的分配给固定的系统应用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)
1024-49151:用户端口或注册端口,但要求并不严格,分配给程序注册为某应用使用,1433/tcp(SqlServer), 1521/tcp(oracle), 3306/tcp(mysql), 11211/tcp/udp(memcached)
49152-65535:动态端口或私有端口,客户端程序随机使用的端口,其范围的定义:/proc/sys/net/ipv4/ip_local_port_range
TCP超时重传
异常网络情况下(开始出现超时或丢包),TCP控制数据传输以保证其承诺的可靠服务
TCP服务必须可以重传超时时间内未收到确认的TCP报文段。为此,TCP模块为每一个TCP报文段都维护一个重传定时器,该定时器在TCP报文段第一次被发送时启动。若是超时时间内未收 到接收方的应答,TCP模块将重传TCP报文段并重置定时器。至于下次重传的超时时间如何选择,以及最多执行多少次重传,就是TCP的重传策略
与TCP超时重传相关的两个内核参数:
/proc/sys/net/ipv4/tcp_retries1,指定在底层IP接管以前TCP最少执行的重传次数,默认值是3
/proc/sys/net/ipv4/tcp_retries2,指定链接放弃前TCP最多能够执行的重传次数,默认值15(通常对应13~30min)
拥塞控制
网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可承受的能力,网络的性能就会变坏。这种状况就叫作拥塞
TCP为提升网络利用率,下降丢包率,并保证网络资源对每条数据流的公平性。即所谓的拥塞控制
TCP拥塞控制的标准文档是RFC 5681,其中详细介绍了拥塞控制的四个部分:慢启动(slow start)、拥塞避免(congestion avoidance)、快速重传(fast retransmit)和快速恢复(fast recovery)。拥塞控制算法在Linux下有多种实现,好比reno算法、vegas算法和cubic算法等。它们或者部分或者所有实现了上述四个部分
当前所使用的拥塞控制算法,/proc/sys/net/ipv4/tcp_congestion_control
UDP特性
工做在传输层
提供不可靠的网络访问
非面向链接协议
有限的错误检查
传输性能高
无数据恢复特性
UDP包头
16位源端口号
16位目标端口号
16位UDP长度
16位UDP校验码