我是靠谱客的博主 文艺板栗,最近开发中收集的这篇文章主要介绍网络,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

网络和磁盘IO是影响较大
的数据库又分为关系型数据库和非关系型数据库
数据库类型    数据库    介绍
关系型数据库    MYSQL    开源免费的数据库,中型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费 . 
    Oracle    收费的大型数据库,Oracle公司的产品 . Oracle收购SUN公司,收购MYSQL . 
    DB2    IBM公司的数据库产品,收费的 . 常应用在银行系统中.
    SQLServer    MicroSoft 公司收费的中型的数据库 . C# .net等语言常使用 . 
    SQLite    嵌入式的小型数据库,应用在手机端 . 
非关系型数据库
    Redis    是一个小而美的数据库,主要用在key-value 的内存缓存,读写性能极佳
    HBase    HBase是列式数据库,目标是高效存储大量数据
    MongoDB        MongoDB是文档型数据库,非常接近关系型数据库的 . 
内连接 显示内连接不产生笛卡尔积 隐式内连接产生笛卡尔积

业务数据层 现在是rdb(业务数据库,例如最近几个月的的数据,为了保证极致性能)和nosql(速度,冷数据)混合搭建
TTL数据生存周期    既可以到时间删除也可以到archive
daemon守护进程
在后台运行并且不受任何终端控制的进程
驱动相当于功能插件
数据运营层(ODS)
ODS:Operation Data Store 数据准备区,也称为贴源层.数据仓库源头系统的数据表通常会原封不动的存储一份,这称为ODS层,是后续数据仓库加工数据的来源.
ODS层数据的来源方式:
业务库
经常会使用sqoop来抽取,例如每天定时抽取一次.
实时方面,可以考虑用canal监听mysql的binlog,实时接入即可.
埋点日志
日志一般以文件的形式保存,可以选择用flume定时同步
可以用spark streaming或者Flink来实时接入
kafka也OK
消息队列:即来自ActiveMQ Kafka的数据等.
2.2数据仓库层(DW)
将源表进行预处理,会出现多份数据,也会有数据的冗余,便于业务分析 本层比较复杂 DW1 DW2 ETC 如果业务需求很简单可以跳过DW层
DW数据分层,由下到上为DWD,DWB,DWS.
DWD:data warehouse details 细节数据层,是业务层与数据仓库的隔离层.主要对ODS数据层做一些数据清洗和规范化的操作.
数据清洗:去除空值 脏数据 超过极限范围的
DWB:data warehouse base 数据基础层,存储的是客观数据,一般用作中间层,可以认为是大量指标的数据层.
DWS:data warehouse service 数据服务层,基于DWB上的基础数据,整合汇总成分析某一个主题域的服务数据层,一般是宽表.用于提供后续的业务查询,OLAP分析,数据分发等.
用户行为,轻度聚合
主要对ODS/DWD层数据做一些轻度的汇总.
2.3应用层(ADS)
一次结果表 二次结果表 预处理结果表
ADS:applicationData Service应用数据服务,该层主要是提供数据产品和数据分析使用的数据,一般会存储在ES mysql等系统中供线上系统使用.
我们通过说的报表数据,或者说那种大宽表,一般就放在这里
宽表
含义:指字段比较多的数据库表.通常是指业务主体相关的指标 维度 属性关联在一起的一张数据库表.
特点:
宽表由于把不同的内容都放在同一张表,宽表已经不符合三范式的模型设计规范:
坏处:数据有大量冗余
好处:查询性能的提高和便捷
宽表的设计广泛应用于数据挖掘模型训练前的数据准备,通过把相关字段放在同一张表中,可以大大提供数据挖掘模型训练过程中迭代计算的消息问题
 
大数据分析流程
大数定理
亚马逊30%收入是推荐系统来的
推荐系统也提高的用户体验度 双赢
用户要求的体验度越来越高 推荐系统不断升级 量身定制产品 个性化
分布式集群:不同的角色进行通信,角色在物理机中
%20 创造 %100效益 28分割
在中国推广极其重要
人心弱点推广 momo 大v
正规渠道推广
不择手段各种渠道推广产品
20w注册用户
4w粉丝用户 就很成功
忠实粉丝很重要
高并发 好多人同时访问 etc
中国 南北网 南网电信
            北网联通
3G 几十k 带宽
4G 100M带宽
5G 10G带宽

全球13台dns解析服务器 前置服务器 DHCP获取(通过路由器获取,最近的物理拓扑运营商DNS解析服务器)通过域名解析劫持来区域划分

数据包在路由器上的时间可以忽略
路由器就是一个前置的负载均衡服务器(分发数据包,二进制匹配)
负载均衡服务器不做业务上的处理只分发数据包和链接复杂匹配(有阻塞)

ftp(File Transfer Protocol,文件传输协议)是TCP/IP协议组的协议之一


比特流


将所有的东西转换成ip包传输

多服务进程CS连接方式


对网络带宽要求较高

物理层


广播


全双工传输(英文Full-Duplex )是指交换机在发送数据的同时也能够接收数据,两者同步进行,这好像我们平时打电话一样,说话的同时也能够听到对方的声音 . 目前的交换机都支持全双工 .  全双工的好处在于迟延小,速度快 .  
半双工(英文Half Duplex)与全双工对应的是这个概念,就是指一个时间段内只有一个动作发生,举个简单例子,一天窄窄的马路,同时只能有一辆车通过,当目前有两量车对开,这种情况下就只能一辆先过,等到头儿后另一辆再开,这个例子就形象的说明了半双工的原理 . 早期的对讲机 以及早期集线器等设备都是实行半双工的产品 . 随着技术的不断进步,半双工会逐渐退出历史舞台 . 


频谱频段
导向传输媒体


1类 电话线
3类 音频线
5,6 计算机网络数据连接线

有线电视

计算机网络使用的双绞线


LED光源 反射传播 便宜距离受限制 相对较粗

激光 直线传播 成本高传输距离远 直径头发丝粗细
非导向传输媒体
电磁波
短波通行
微波通信
地面微波接力

50-100m高度 中间是中继站
卫星通信
将中继站移到天上 通信卫星

C波段和微波接力是同频段
KU波段容易受到气候的影响

缺点
通信费用较高 延时较大 例如 美国现场直播有明显的滞后(1到几秒延时)

电台广播

缺点 时隙浪费


棱镜原理
密集型波分复用 例如8个2.5G通道,单模光纤,120公里中继

每个地址都有一个唯一的地址码来区分
模拟信号是指用连续变化的物理量所表达的信息,如温度 湿度 压力 长度 电流 电压等等,我们通常又把模拟信号称为连续信号,它在一定的时间范围内可以有无限多个不同的取值 . 而数字信号是指在取值上是离散的 不连续的信号 . 


利用XDSL技术扩展到1GHZ

C调制解调器S数字用户接入复用器
0-3400HZ 日常模拟话音通信


DMT技术频谱分布

适配器是一个接口转换器,它可以是一个独立的硬件接口设备,允许硬件或电子接口与其它硬件或电子接口相连,也可以是信息接口 . 比如:电源适配器 三角架基座转接部件 USB与串口的转接设备等 . 
以太网是一种计算机局域网技术 . IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线 电子信号和介质访问层协议的内容 . 以太网是目前应用最普遍的局域网技术,tcp/ip协议

一 局域网
局域网(Local Area Network),简称LAN,是指在某一区域内由多台计算机互联成的计算机组 . "某一区域"指的是同一办公室 同一建筑物 同一公司和同一学校等,一般是方圆几千米以内 . 局域网可以实现文件管理 应用软件共享 打印机共享 扫描仪共享 工作组内的日程安排 电子邮件和传真通信服务等功能 . 局域网是封闭型的,可以由办公室内的两台计算机组成,也可以由一个公司内的上千台计算机组成 . 自己花钱买设备带宽有保证
二 广域网
广域网(Wide Area Network),简称WAN,是一种跨越大的 地域性的计算机网络的集合 . 通常跨越省 市,甚至一个国家 . 广域网包括大大小小不同的子网,子网可以是局域网,也可以是小型的广域网 . 花钱同运营商买带宽租别人的线路

1范围不同 WAN一般上百公里以上
2.接口类型 LAN(以太网RJ-45 电接口 LC/SC/ST 多模光纤 单模光纤1550纳米100公里 1310纳米公里 )
WAN(串口 ,T1 ,POS ,ATM,E1)
3.速率不同 LAN (10/100/1000/10000/10G/40G/100G)
WAN(ISDN/PSTN/T1/E1/T3/E3/OC-3/OC-12/OC-48/OC-192 SONET提出)
4.协议不同 LAN(以太网) WAN(PPP,HDLC)
5设备不同
6介质不同 光纤 E1,同轴电缆,DB-25
7管理职责不同 LAN 自己管就行,WAN 一般有运营商的参与
8架构不同 传输
9作用不同 WAN用于互连地理范围的局域网
10寻址不同 2层 3层的不同
11两者的IP地址设置不一样 . 局域网里面,必须在网络上有一个唯一的IP地址,这个IP地址是唯一的,在另外一个局域网,这个IP地址仍然能够使用 . 广域网上的每一台电脑(或其他网络设备)都有一个或多个广域网IP地址,而且不能重复 . 
12局域网是靠交换机来进行连接的,而广域网则是靠路由器将多个局域网进行连接 . 

工作层次不同:交换机主要工作在数据链路层(第二层)路由器工作在网络层(第三层) . 
转发依据不同:交换机转发所依据的对象时:MAC地址 . (物理地址)路由转发所依据的对象是:IP地址 . (网络地址)
主要功能不同:交换机主要用于组建局域网,而路由主要功能是将由交换机组好的局域网相互连接起来,或者接入Internet . 交换机能做的,路由都能做 . 交换机不能分割广播域,路由可以 . 路由还可以提供防火墙的功能 . 路由配置比交换机复杂 . 
交换机可以使连接它的多台电脑组成局域网,如果还有代理服务器的话还可以实现同时上网功能,但是交换机没有路由器的自动识别数据包发送和到达地址的功能 . 
路由器提供了防火墙的服务 . 路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送 . 
价格不同
路由器实现了不同网络之间的数据转发,交换机实现了特定网络内的数据交换
使用交换机上网是分别拨号,各自使用自己的宽带账号,大家上网互不影响 . 而路由器是共用一个宽带账号,大家上网会相互影响 . 
数据链路层


分段转发 一层层进行数据流动


网卡负责数据帧的产生再通过网卡的接口发送出去
网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件 . 由于其拥有MAC地址,因此属于OSI模型的第2层 . 它使得用户可以通过电缆或无线相互连接 . 每一个网卡都有一个被称为MAC地址的独一无二的48位串行号,它被写在卡上的一块ROM中 . 在网络上的每一个计算机都必须拥有一个独一无二的MAC地址 . 没有任何两块被生产出来的网卡拥有同样的地址 . 这是因为电气电子工程师协会(IEEE)负责为网络接口控制器(网卡)销售商分配唯一的MAC地址 . 
网卡上面装有处理器和存储器(包括RAM和ROM) . 网卡和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的 . 而网卡和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行 . 因此,网卡的一个重要功能就是要进行串行/并行转换 . 由于网络上的数据率和计算机总线上的数据率并不相同,因此在网卡中必须装有对数据进行缓存的存储芯片 . 
网卡以前是作为扩展卡插到计算机总线上的,但是由于其价格低廉而且以太网标准普遍存在,大部分新的计算机都在主板上集成了网络接口 . 这些主板或是在主板芯片中集成了以太网的功能,或是使用一块通过PCI (或者更新的PCI-Express总线)连接到主板上的廉价网卡 . 除非需要多接口或者使用其它种类的网络,否则不再需要一块独立的网卡 . 甚至更新的主板可能含有内置的双网络(以太网)接口 . 
在安装网卡时必须将管理网卡的设备驱动程序安装在计算机的操作系统中 . 这个驱动程序以后就会告诉网卡,应当从存储器的什么位置上将局域网传送过来的数据块存储下来 . 网卡还要能够实现以太网协议 . 
网卡并不是独立的自治单元,因为网卡本身不带电源而是必须使用所插入的计算机的电源,并受该计算机的控制 . 因此网卡可看成为一个半自治的单元 . 当网卡收到一个有差错的帧时,它就将这个帧丢弃而不必通知它所插入的计算机 . 当网卡收到一个正确的帧时,它就使用中断来通知该计算机并交付给协议栈中的网络层 . 当计算机要发送一个IP数据包时,它就由协议栈向下交给网卡组装成帧后发送到局域网 . 
随着集成度的不断提高,网卡上的芯片的个数不断的减少,虽然各个厂家生产的网卡种类繁多,但其功能大同小异 . 
主要功能
1 数据的封装与解封
发送时将上一层传递来的数据加上首部和尾部,成为以太网的帧 . 接收时将以太网的帧剥去首部和尾部,然后送交上一层
2 链路管理
主要是通过CSMA/CD(Carrier Sense Multiple Access with Collision Detection ,带冲突检测的载波监听多路访问)协议来实现
3 数据编码与译码
即曼彻斯特编码与译码 . 其中曼彻斯特码,又称数字双向码 分相码或相位编码(PE),是一种常用的的二元码线路编码方式之一,被物理层使用来编码一个同步位流的时钟和数据 . 在通信技术中,用来表示所要发送比特 流中的数据与定时信号所结合起来的代码 .  常用在以太网通信,列车总线控制,工业总线等领域 . 
按照网卡支持的计算机种类分类,主要分为标准以太网卡和PCMCIA网卡:
标准以太网卡用于台式计算机联网,而PCMCIA网卡用于笔记本电脑 . 
按照网卡支持的传输速率分类,主要分为10Mbps网卡 100Mbps网卡 10/100Mbps自适应网卡和1000Mbps网卡四类:
根据传输速率的要求,10Mbps和100Mbps网卡仅支持10Mbps和100Mbps的传输速率,在使用非屏蔽双绞线UTP作为传输介质时,通常10Mbps网卡与3类UTP配合使用,而100Mbps网卡与5类UTP相连接 . 10/100Mbps自适应网卡是由网卡自动检测网络的传输速率,保证网络中两种不同传输速率的兼容性 . 随着局域网传输速率的不断提高,1000Mbps网卡大多被应用于高速的服务器中 . 
按网卡所支持的总线类型分类,主要可以分为ISA EISA PCI等:
由于计算机技术的飞速发展,ISA总线接口的网卡的使用越来越少 . EISA总线接口的网卡能够并行传输32位数据,数据传输速度快,但价格较贵 . PCI总线接口网卡的CPU占用率较低,常用的32位PCI网卡的理论传输速率为133Mbps,因此支持的数据传输速率可达100Mbps . 
为了使2块网卡实现高效双冗余备份,必须保证这2块网卡具有相同的物理地址和IP地址这样 对于上层应用系统而言,系统中呈现"单网卡"的特征;反之,当系统中一块网卡切换到另一块网卡工作时,如果IP地址发生变化,则系统无法正常接收和发送数据 . 如果IP地址不改变,而物理地址改变,则会引起协议栈中ARP绑定表的变化,而重新对应ARP绑定表中IP地址与网卡物理地址的关系会延长两个网卡之间的切换时间 .  
然而,每块网卡的物理地址在全世界范围内是唯一的,它保存在网卡的PROM中 . 为了使2块网卡具有相同的物理地址,在网卡初始化时,从PROM中读出其中一块网卡的物理地址,将该物理地址的内容写入另一 块网卡物理地址寄存器和数据结构变量中,在此情况下,这2块网卡就具有完全相同的物理地址了 .  
光纤网卡,指的是光纤以太网适配器,简称光纤网卡,学名Fiber Ethernet Adapter.传输输的是以太网通信协议,一般通过光纤线缆与光纤以太网交换机连接 . 按传输速率可以分为100Mbps 1Gbps 10Gbps,按主板插口类型可分为PCI PCI-X PCI-E(x1/x4/x8/x16)等,按接口类型分为LC SC FC ST等 . 
无线网卡用于连接无线网络,就是利用无线电波作为信息传输的媒介构成的无线局域网(WLAN),与有线网络的用途十分类似,最大的不同在于传输媒介的不同,利用无线电技术取代网线,可以和有线网络互为备份,只可惜速度太慢 . 无线网卡是终端无线网络的设备,是无线局域网的无线覆盖下通过无线连接网络进行上网使用的无线终端设备 . 具体来说无线网卡就是使你的电脑可以利用无线来上网的一个装置,但是有了无线网卡也还需要一个可以连接的无线网络,如果你在家里或者所在地有无线路由器或者无线AP(Access Point,无线接入点)的覆盖,就可以通过无线网卡以无线的方式连接无线网络可上网 . 无线网卡的工作原理是微波射频技术

数据帧(Frame):数据链路层,传递的单位是frame 帧,就是数据链路层的协议数据单元,它包括三部分:帧头,里面有mac地址,通过这个地址可以在底层的交换机这个层面里顺着网线找到你的计算机 . 数据部分,ip数据包,意思是使用ip地址定位的一个数据包 . 帧尾 . 其中,帧头和帧尾包含一些必要的控制信息,比如同步信息 地址信息 差错控制信息等;数据部分则包含网络层传下来的数据,比如ip数据包 . 
数据链路层数据传输的单位通常用数据帧来表示
不同的数据链路层协议对应着不同的帧,所以,帧有多种,比如PPP帧 MAC帧等        
数据包(Packet):TCP/IP协议通信传输中的数据单位,处于网络层,在局域网中,"包"是包含在"帧"里的 . packet是整个tcpip通信协议里网络层的传输单位,也是最小的单位 . 一个ip包里有什么呢?跟帧一样,有着目的地的ip地址及其来源的ip地址和其他的校验信息 . 它也被称为头 . 那么还有什么呢?来自传输层托付给自己待传送的信息 . 这个信息会被分成多个ip数据包发送出去 . 
所以网络层传递的是ip包,ip包里是待传输消息的一部分 .   
数据报(Datagram):现在来到传输层了,传输层直接接受来自你的消息,小到你给朋友发个晚安,大到你给别人传递个文件,只要提供对方的ip地址(还有端口号),其它的都交给传输层帮助你实现 . 就很像你与快递公司的关系 . 一种发送前会先探路,保证送货到家的,这是tcp协议,另一种只管寄,不管是否查收的就是udp . 这两种协议都会在发送前把你的消息拆分成多个ip数据包来传输 . udp英文就叫 user datagram protocol . 所以数据报是啥,就是带地址的消息 . 
 有人说,局域网中传输的不是"帧"(Frame)吗?没错,但是TCP/IP协议是工作在OSI模型第三层(网络层) 第四层(传输层)上的,而帧是工作在第二层(数据链路层) . 上一层的内容由下一层的内容来传输,所以在局域网中,"包"是包含在"帧"里的 .  
也就是数据链路层的传输单位叫frame,传送的数据其实是ip数据包 . 
备注:
分组交换中,分组在网络中传播有两种方式,一种称为数据报(Datagram),另一种称为虚电路(VirtualCircuit) . 数据报方式类似于报文交换 . 每个分组在网络中的传播路径完全是根据网络当时的状况随机决定的,到达目的地的顺序可能和发送的顺序不一致,目标主机必须对收到的分组重新排序恢复原来的信息 . 分组在各路由器存储转发时需要排队,会造成一定的时延 . 
数据报和数据包区别
数据报(Datagram):是在传输层了,传输层直接接受来自你的消息;
而数据包是TCP/IP协议通信传输中的数据单位,处于网络层,在局域网中,"包"是包含在"帧"里的 . packet是整个tcpip通信协议里网络层的传输单位,也是最小的单位 . 

出错检测,循环冗余码


1将不同的网络层协议进行封装


ppp协议面向字节(长度整数个字节)
FCS 帧校验序列,数据帧差错检测

局域网
传统以太网


适配器就是网卡


令牌帧,谁先抢到就是谁的
用于工业控制环境


电信号也叫信号,信号的每秒钟变化的次数叫频率,单位赫兹(HZ) . 信号的频率有高有低,就象声音有高有低一样,低频到高频的范围叫频带,不同的信号有不同的频带 . 
基带
在数据通信中,由计算机或终端等数字设备直接发出的二进制数字信号形式称为方波,即"1"或"0",分别用高(或低)电平或低(或高)电平表示,人们把方波固有的频带称为基带(由消息直接转换成的未经调制变换的信号所占的频带,理论上基带信号的频谱是从0到无穷大),方波电信号称为基带信号 .  
在数字信号频谱中,把直流(零频)开始到能量集中的一段频率范围称为基本频带,简称为基带 . 因此,数字信号被称为数字基带信号,在信道中直接传输这种基带信号就称为基带传输 . 在基带传输中,整个信道只传输一种信号,通信信道利用率低 . 一般来说,要将信源的数据经过变换变为直接传输的数字基带信号,这项工作由编码器完成 . 在发送端,由编码器实现编码;在接收端由译码器进行解码,恢复发送 端原发送的数据 . 基带传输是一种最简单最基本的传输方式 . 是典型的矩形电脉冲信号,其频谱包括直流 低频和高频等多种成份 . 
由于在近距离范围内,基带信号的功率衰减不大,从而信道容量不会发生变化,因此,在局域网中通常使用基带传输技术 . 
在基带传输中,需要对数字信号进行编码来表示数据 . 
频带
远距离通信信道多为模拟信道,例如,传统的电话(电话信道)只适用于传输音频范围(300-3400Hz)的模拟信号,不适用于直接传输频带很宽 但能量集中在低频段的数字基带信号 . 
频带传输就是先将基带信号变换(调制)成便于在模拟信道中传输的 具有较高频率范围的模拟信号(称为频带信号),再将这种频带信号在模拟信道中传输 . 
计算机网络的远距离通信通常采用的是频带传输 . 
基带信号与频带信号的转换是由调制解调技术完成的 . 
宽带
通过借助频带传输,可以将链路容量分解成两个或更多的信道,每个信道可以携带不同的信号,这就是宽带传输 . 宽带传输中的所有信道都可以同时发送信号 . 如CATV ISDN等 . 波分复用,无冲突
所谓宽带,就是指比音频(4KHZ)带宽还要宽的频带
T 双绞线 F光缆
光纤是一种传输bai光束的细而柔du软的媒质 . 多数光纤在使用前必zhi须由几层保护结构包覆dao,包覆后的缆线即被称为光缆 . 所以光纤是光缆的核心部分,光纤经过一些构件极其附属保护层的保护就构成了光缆 . 

PC到集线器最大距离不能超过100M


D的地址和数据帧首部地址一致才接受数据,所有PC都可以接收到帧,发现不是自己的就会丢弃数据帧 . 
快速以太网 对10M以太网的一个升级

带宽升级 将最上层集线器换成100base-tx集线器
带宽应用的领域非常多,可以用来标识信号传输的数据传输能力 标识单位时间内通过链路的数据量 标识显示器的显示能力 . 
1. 在模拟信号系统又叫频宽,是指在固定的时间可传输的资料数量,亦即在传输管道中可以传递数据的能力 . 通常以每秒传送周期或赫兹(Hz)来表示 . 
2. 在数字设备中,带宽指单位时间能通过链路的数据量 . 通常以bps来表示,即每秒可传输之位数 . 

曼彻斯特编码效率只有50%

工作过程
先听后发
边听边发
冲突停发
随机重发

随机事件采用2机制算法确定 2^r r是重发次数 重发次数越多延时越大

固化在网卡里 即网卡地址
以太网MAC地址采用EUI48的定义方式


地址块为三个字节


单播"(Unicast) "多播"(Multicast)和"广播"(Broadcast)
这个概念可以运用于各层
单播:网络节点之间的通信就好像是人们之间的对话一样 . 如果一个人对另外一个人说话,那么用网络技术的术语来描述就是"单播",此时信息的接收和传递只在两个节点之间进行 . 单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的,只是一般网络用户不知道而已 . 例如,你在收发电子邮件 浏览网页时,必须与邮件服务器 Web服务器建立连接,此时使用的就是单播数据传输方式 . 
单播 是主从之间的 .  点对点 没有主从概念 . 都是对等的 . 
2.多播:"多播"也可以称为"组播",在网络技术的应用并不是很多,网上视频会议 网上视频点播特别适合采用多播方式 . 因为如果采用单播方式,逐个节点传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;如果采用不区分目标 全部发送的广播方式,虽然一次可以传送完数据,但是显然达不到区分特定数据接收对象的目的 . 采用多播方式,既可以实现一次传送所有目标节点的数据,也可以达到只对特定对象传送数据的目的 .    IP网络的多播一般通过多播IP地址来实现 . 多播IP地址就是D类IP地址,即224.0.0.0至239.255.255.255之间的IP地址 . Windows 2000中的DHCP管理器支持多播IP地址的自动分配 . 
3.广播:"广播"在网络中的应用较多,如客户机通过DHCP自动获得IP地址的过程就是通过广播来实现的 . 但是同单播和多播相比,广播几乎占用了子网内网络的所有带宽 . 拿开会打一个比方吧,在会场上只能有一个人发言,想象一下如果所有的人同时都用麦克风发言,那会场上就会乱成一锅粥 . 集线器由于其工作原理决定了不可能过滤广播风暴,一般的交换机也没有这一功能,不过现在有的网络交换机(如全向的QS系列交换机)也有过滤广播风暴功能了,路由器本身就有隔离广播风暴的作用 .    广播风暴不能完全杜绝,但是只能在同一子网内传播,就好像喇叭的声音只能在同一会场内传播一样,因此在由几百台甚至上千台电脑构成的大中型局域网中,一般进行子网划分,就像将一个大厅用墙壁隔离成许多小厅一样,以达到隔离广播风暴的目的 .    在IP网络中,广播地址用IP地址"255.255.255.255"来表示,这个IP地址代表同一子网内所有的IP地址 . 
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理 分配IP地址和子网掩码,使网络环境中的主机动态的获得IP地址 Gateway地址 DNS服务器地址等信息,并能够提升地址的使用率 . 

IP地址 子网掩码 默认路由器的IP地址 DNS地址
例如wifi连上即自动配置完成


DHCP提供报文 DHCPoffer


dhcp是为了让电脑能自动获取IP地址 子网掩码网关 dns等信息,免去手工一一配置的麻烦 . NAT是为了让内部私网ip地址共用 WAN口的ip地址来上网
DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动 . 当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置 . 
1) 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址
2) 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用
3) 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机
三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址
DHCP消息的格式是基于BOOTP(Bootstrap Protocol)消息格式的,这就要求设备具有BOOTP中继代理的功能,并能够与BOOTP客户端和DHCP服务器实现交互 . BOOTP中继代理的功能,使得没有必要在每个物理网络都部署一个DHCP服务器 . RFC 951和RFC 1542对BOOTP协议进行了详细描述 .  [2]
子网掩码是在IPv4地址资源紧缺的背景下为了解决lP地址分配而产生的虚拟lP技术,通过子网掩码将A B C三类地址划分为若干子网,从而显著提高了IP地址的分配效率,有效解决了IP地址资源紧张的局面 . 另一方面,在企业内网中为了更好地管理网络,网管人员也利用子网掩码的作用,人为地将一个较大的企业内部网络划分为更多个小规模的子网,再利用三层交换机的路由功能实现子网互联,从而有效解决了网络广播风暴和网络病毒等诸多网络管理方面的问题 . 

运营商显然不可能给你一个区区办公室就分20个公网IPv4地址,能给你一个公网IP地址就不错了 . 那那么多设备都要上网咋办?NAT!给每个终端设备整个私网地址,再做一下私网IP和公网IP的转换呗 . 于是现在的接入网管都是有NAT功能的,在网关上保存终端 私网IP 端口号的映射关系,对报文进行私网IP到公网IP的转换,完美解决地址不够用的问题(IPV6心里有句MMP不知当讲不当讲) . 

类型字段表示网络层协议,数据(例如ip数据报)为网络层解析提供服务
46-1500字节
FCSV 帧校验序列

确定帧的同步

网卡不仅要实现物理层的功能,还要实现链路层的功能
高速以太网

8B10B编码方案
编码效率80%


多模光纤全双工最长传输距离可达到550M
单模光纤全双工最长传输距离可达到3000M


万M以太网将局域网和广域网标准统一在一起

 
标准都是万M以太网的标准中间不需要经过帧的转换这样就提高了传输效率,降低了传输的成本


实现广电转换


碰撞域越小越好

例如10M集线器无法和100M集线器互联,因为集线器没有缓冲功能

网桥


网桥工作在数据链路层


例如以太网和令牌环网进行互联

MAC地址与接口的对应站表
网桥通过自学习算法和建立转发表建立对数据的转发功能
自学习算法
收到帧,查找网桥内的转发表是否有匹配的地址(自学习)没有则在转发表插入一条地址接口时间数据并通过所有接口将该帧转发出去,如果有则会将该条数据进行更新并通过转发表给出的接口进行转发帧
,如果转发表给出的接口就是该帧进入网桥的接口则丢弃掉该帧(在不同网段网桥才会转发该数据帧)

一个网段发生冲突时,网桥会检查出该冲突不会将该冲突转发给另外的网段

网桥不会过滤广播,广播帧会不断在两个网桥进出,造成广播风暴
为避免环路采用生成树算法,构建树形回路


万维网一般指www . 万维网WWW是World Wide Web的简称,也称为Web 3W等 . 
Internet因特网提供的主要服务有万维网(WWW) 文件传输(FTP) 电子邮件(E-mail) 远程登录(Telnet) 手机 (3GHZ) 等 . 


路由器和交换机的区别?
外形上
1
路由器一般都集成了交换机的功能,LAN口就是作为交换机的端口来使,
WAN用于连接外网的端口 . 
2
工作层次不同
二层交换机在数据链路层(实现数据帧的转发),而路由器在网络层(肩负着网络互连的作用) . 
3
路由器提供防火墙服务,二层交换机不能提供该功能 . 
4
交换机用来将一根网线变为多根,如果网络需要登录大家各自分别登录 . 桥接(桥接连不上网是因为运营商最多只给你一个ip)
路由器用来将一条网络变为多条,分出的多条网络共享主线的网络带宽 . NAT
5
路由器有DHCP服务器
交换机无DHCP服务器

三层交换机也能路由,路由器也有asic芯片也能交换 . 不过二者侧重不同而已 . 
总之,一个局域网有一个路由器,若干个交换机,一个DHCP服务器,一个WAN(多拨除外)口与外界联通

VLAN限制了接收广播信息工作站的数量,使得网络不会因为传播过多的广播信息造成性能的恶化

VID VLAN的标识符 指明发送数据的工作站属于哪个局域网

缺点 MAC地址是固化的,如果其中一台PC换了网卡,需要重新进行配置


 

门户 将无线局域网连到另一个非无线局域网的局域网 门户的作用相当于一个网桥


MIMO多输入多输出
OFDM正交频分复用


CSMA/CA冲突避免协议


802.11MAC帧主要有三种类型 控制帧 数据帧 管理帧
数据帧

帧控制包含11个字段16位2字节


FLASH闪存 二层以上的设备相当于一个简化版PC

NVRAM不受断电影响
二类交换机  路由器

路由器

console口 控制端口


增加链路带宽:聚合链路的带宽最大为聚合组中所有成员链路的带宽和
access存储转发模式

VLAN标识是主干线的封装,PC到交换机依然使用以太网的封装

例如在拥有1000多台交换机大企业里面,每增加一个VLAN,就得分别在1000多台交换机里配置,这样岂不是要浪费巨大的时间去配置?
access:(普通模式)主要用来接入终端设备,如PC机 服务器 打印服务器等,只能在同一个vlan中使用
trunk:(中继模式)主要用在连接其它交换机,以便在线路上承载多个vlan ,能多个vlan中使用

虚电路是一条逻辑的连接
电信网络中多有使用

虚电路通信与电路交换类似,两者都是面向连接的,即数据按照正确的顺序发送,并且在连接建立阶段都需要额外开销 . 
虚电路标识 知道路由器该往哪个地方(端口,路由器)转发


数据报


面向连接的虚电路服务主要用于广域网
面向无连接的数据报服务主要用于因特网
1 虚电路
1)在每次分组发送之前,必须在发送方与接收方之间建立一条逻辑连接 . 这是因为不需要真正去建立一条物理链路,连接发送方与接收方的物理链路已经存在 . 
2)一次通信的所有分组都通过这条虚电路顺序传送,因此报文分组不必带目的地址 源地址等辅助信息 . 分组到达目的结点时不会出现重复与乱序的现象 . 
2 数据报
1)同一报文的不同分组可以由不同的传输路径通过通信子网 . 
2)同一报文的不同分组到达目的结点时可能出现乱序 重复与丢失现象 . 
3)每一个分组在传输过程中都必须带有目的地址与源地址 . 
从单独的通信网来说,采用有连接的虚电路方式,或是采用无连接的数据报方式都是可以的 . 但是对于网间互联或IP业务,则是采用数据报方式有利 . 因为数据报方式可以最大限度地节省对网络节点的处理要求,不需要采取可靠性措施或流量控制,不需要预先建立逻辑的连接路径,它在遇到网内拥塞等情况时,可以迅速改变路由,因而适用于各种不同类型的网络 . 在国际计算机互联网(因特网)中,用的就是数据报方式 . 虚电路适合于交互式通信,数据报方式更适合于单向地传送息 . 


路由器主要解决在不同网络之间存储转发数据帧

直接交付 数据包直接发给目的主机

路由器是网络互联的核心设备
路由器是有很多书如何输出端口的专用计算机,用来转发分组


通过路由选择处理机产生转发表对分组进行处理
路由选择处理机是路由器中的一个进程,通过路由选择协议形成路由表
转发表直接作用于数据包,而路由表是转发表生成的依据,转发表通过路由表生成 . 一个特定的进程可以通过使用路由表中的信息,加上自身的主机方面的信息-比如网卡等信息-加以综合,得到一张转发表
两表存储的信息是不同的,路由表只存储三元素-目标(IP),掩码,下一跳;而转发表存储更详细的信息,比如输出端口信息,比如标记信息等 . 转发表描述了主机方面的信息,在主机内部将一个数据包从一个端口导向另一端口,而路由表描述网络信息,将数据包从一个机器导向另一机器 . 
网络掩码(netmask)又称子网掩码 地址掩码 子网络遮罩 用于从IP地址中提取网络号或主机号 . 

分析每一个数据分组的源地址和目的地址 通过转发表来拟定分组该如何转发

从输入端口将数据读到内存中通过转发表转发到输出系统
共享路由器的内存即系统总线
在同一时刻只能一路进一路出

共享背板总线

TCP/IP协议定义了一个在因特网上传输的包,称为IP数据报


首部

版本号,ipv4 4位 ipv6 6位
首部长度4个单位,最大15,每个单位代表四个字节即首部长度最大60个字节(IPv4数据包由首部和数据两部分组成,首部由固定20字节的基本部分和0~40字节可变长度的任意选项组成 . 由此可知,首部的最小长度为20字节)
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务 . 它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网
例如:微软公司的Web服务器的IP地址是207.46.230.229,其对应的域名是www.microsoft.com,不管用户在浏览器中输入的是207.46.230.229还是www.microsoft.com(域名),都可以访问其Web网站 . 
区分服务 如要求当前的数据报设置高优先级优先发送 比如话音业务视频业务高优先级 优先传输
1位=1比特;1字=2字节;1字节=8位;1字=16位
总长度 总长度指首部和数据之和的长度,单位为字节 . 总长度字段为16位,因此数据报的最大长度为2^16-1=65535字节 . 
在IP层下面的每一种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传送单元MTU(Maximum Transfer Unit) . 当一个数据报封装成链路层的帧时,此数据报的总长度(即首部加上数据部分)一定不能超过下面的数据链路层的MTU值 . 
标识 产生一个计数器给ip数据报一个标识
标志 3B 前两位有意义 分片标志 最低两位mf 1该ip包后面还有分片的ip包 0这是最后一个ip包的分片数据
df是不是要进行一个分片 0允许该ip包进行分片操作
片的偏移 13B 一个数据包进行分片后如何在接收端通过片的偏移量还原成最初的数据包,以8个字节为偏移单位

网络层负责ip数据报的产生以及ip数据包在逻辑网络上的路由转发 . 
传输层提供端到端通信服务层次,提供可靠及非可靠连接 . 
网络层只是根据网络地址将源结点发出的数据包传送到目的结点(点到点),其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径 . 该层控制数据链路层与传输层之间的信息转发,建立 维持和终止网络的连接 . 具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择 分段组合 顺序 进/出路由等控制,将信息从一个网络设备传送到另一个网络设备 . 
而传输层则负责将数据可靠地传送到相应的端口(端到端),传输层提供了主机应用程序进程之间的端到端的服务 . 传输层利用网络层提供的服务,并通过传输层地址提供给高层用户传输数据的通信端口,使高层用户看到的只是在两个传输实体间的一条端到端的 可由用户控制和设定的 可靠的数据通路 .


生存期 一个数据报在网络里可以生存的时间,生存的时间为0时代表该数据报不能在网络里继续传输了

ip包数据部分承载的是什么协议的数据内容

只检测首部

源IP地址目标IP地址
可变部分 排错测量及安全 增加可变部分就是增加ip数据报的功能
同时因为ip数据报首部长度可变也增加了每个路由器处理ip数据报的开销,当然可变部分很少被使用
分类的IP地址
子网划分
构成超网


E类地址主要用于internet的一些测试

主机号全为0代表本网络
主机号全为1本网络广播地址
网络号主机号全部都为1 有限广播地址 一台主机不知道自己处于什么网络中该如何广播(255.255.255.255)
网络号主机号全部都为0 0地址 0.0.0.0代表着所有的网络
回送地址(127.x.x.x)是本机回送地址(Loopback Address),即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回之,不进行任何网络传输 . ping不通则IP堆栈出了故障

这些地址不可以放到外网上也是不可以路由的
路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程

多宿主主机 主机同时连到两个网络则该主机拥有两个网络的ip地址,这两个网络ip地址网络号不应相同
如果多个主机连接同一网络则这组主机ip处于同一网络号网络下
网络地址 逻辑地址


机构分配网络号,主机号由使用者自己分配,方便了网络的管理
路由器根据目的主机网络转发分组,减少路由表的项目数,减少路由表的存储空间


每台主机都有一个arp的高速缓存


现在ARP缓存中查找,ARP响应是单播,将B的mac地址和ip地址保存在A的ARP高速缓存的mac ip映射表中
ARP自动完成
目标主机和源主机不在同网段,则将ARP请求数据包转发给路由器再由路由器转发数据包


特定主机路由 特定主机路由是对特定的目的主机指明的一个路由 . 
默认路由

路由器转发分组
A-B-C-D
B    本网络
不是    有特定路由 
没有    有路由
没有    有默认路由
没有
报告出错,丢弃
网关是负责不同网络通信的角色 . 不同网络指的是 ip 地址中的网络号不同,比如 192.168.2.3/24,这个 ip 表示网络号为192.168.2(前24位)


IP地址是以网络号和主机号来表示网络上的主机的,只有在一个网络号下的计算机之间才能"直接"互通,不同网络号的计算机要通过网关(Gateway)才能互通 . 但这样的划分在某些情况下显得并不十分灵活 . 为此子网就把IP网络还允许划分成更小的网络,对内而言充分的利用了地址空间 . 
子网掩码 判断IP地址是没有划分子网的还是划分之后的


逻辑与,符号为"&&",只有两个操作数都是真,结果才是真

路由器和相邻的路由器交换信息时必须把自己网络的子网掩码告诉相邻的路由器,路由表中的每一项除了要有目的网络地址还要有此网络的子网掩码,一个路由器连接两个子网就要有两个网络地址和两个子网掩码


VLSM(Variable Length Subnet Mask——可变长子网掩码)
VLSM允许一个组织在同一个网络地址空间中使用多个子网掩码.利用VLSM可以使管理员"把子网继续划分为子网",使寻址效率达到最高.

子网的聚合就是超网

CIDR表示法给出任何一个IP地址,就相当于给出了一个CIDR地址块,这是由连续的IP地址组成的,所以CIDR表示法构成了超网,实现了路由聚合,即从一个IP地址就可以得知一个CIDR地址块 . 例如:已知一个IP地址是:128.14.35.7/20,那么这个已知条件告诉大家的并不仅仅是一个IP地址这么简单,我们来分析一下 . 
    128.14.35.7/20 = 10000000  00001110  00100011  00000111
    即前20位是网络前缀,后12位是主机号,那么我们通过令主机号分别为全0和全1就可以得到一个CIDR地址块的最小地址和最大地址,即
    最小地址是:128.14.32.0      = 10000000  00001110  00100000  00000000 
    最大地址是:128.14.47.255  = 10000000  00001110  00101111 11111111     
    子网掩码是:255.255.240.0  = 11111111  11111111  11110000  00000000 
因此就可以看出来,这个CIDR地址块可以指派(47-32+1)256=4096个地址,这里没有把全0和全1除外 . 

将路由表数量减少

最长前缀匹配

路由选择
静态路由选择策略
所有设置都是管理员手工录入路由器中,网络拓扑发生变化时必须人工修改
动态路由选择策略(自适应的路由选择算法)
网络拓扑发生变化时自动变化,开销较大


RIP路由信息协议

每一个路由器仅和相邻的路由器交换信息,即自己的路由表,该路由表可能没有更新完,在更新的过程中不断的改进,边更新边发送,按照固定的时间交换信息,例如30s
路由表的建立
每个路由器和数目有限的相邻的路由器交换路由信息,经过若干次更新所有的路由器都会知道到达本自制系统任何一个网络的最短距离和下一跳的地址

RIP算法


OSPF 开放最短路径优先协议
基于分布式链路状态的协议,所有路由器发送信息的方法是洪泛法
发送与本路由器相连的所有路由器链路状态的信息
只有链路状态发生变化,路由器才会用洪泛法向所有路由器发送此信息
OSPF是基于链路状态的,每个路由器都保留着一个链路状态数据库(全网拓扑结构)
全网一致性,保持同步保证每个路由器拓扑图都是一样的

洪泛法(Flooding)是一种路由算法,将收到的封包,往所有的可能连结路径上递送,直到封包全部到达为止,所有路由器给最初的更新源发送确认报文 . 

主干路由器
区域边界路由器
OSPF 直接将OSPF数据报放在IP数据报里传送的
数据报很短,减少了路由信息的通信量,也不用分片传送,避免了分片的丢失以至于数据报的重传
路由OSPF的度量值是cost代价!
OSPF对于接口的代价是10^8/Bandwidth
10M的接口,那代价就是10
100M的接口,代价就是1
1000M的接口,代价也是1
路径代价相同则将通信量负载均衡到这几条路径上
ospf交换分组有鉴别功能,鉴别路由器身份,保证安全
支持变长子网的划分
支持无分类编址CIDR的使用


 OSPF共有以下五种分组类型:
   (1)类型1,问候(Hello)分组,用来发现和维持邻站的可达性 . 
   (2)类型2, I1-304-2数据库描述(Database Description)分组,向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息 . 
   (3)类型3,链路状态请求(Link State Request)分组,向对方请求发送某些链路状态项曰的详细信息 . 
   (4)类型4,链路状态更新(Link State Update)分组,用洪泛法对全网更新链路状态 . 这种分组是最复杂的,也是OSPF协议最核心的部分 . 路由器使用这种分组将其链路状态通知给邻站 . 链路状态更新分组共有五种不同的链路状态[RFC 2328],这里从略 . 
   (5)类型5,链路状态确认(Link State Acknowledgment)分组,对链路更新分组的确认 . 
   OSPF规定,每两个相邻路由器每隔10秒钟要交换一次问候分组 . 这样就能确知哪些邻站是可达的 . 对相邻路由器来说,"可达"是最基本的要求,因为只有可达邻站的链路状态信息才存入链路状态数据库(路由表就是根据链路状态数据库计算出来的) . 在正常情况下,网络中传送的绝大多数OSPF分组都是问候分组 . 若有40秒钟没有收到某个相邻路由器发来的问候分组,则可认为该相邻路由器是不可达的,应立即修改链路状态数据库,并重新计算路由表 . 
   其他的四种分组都是用来进行链路状态数据库的同步 . 所谓同步就是指不同路由器的链路状态数据库的内容是一样的 . 两个同步的路由器叫做"完全邻接的"(fully adjacent)路由器 . 

每隔30分钟,刷新一次链路数据库中的链路状态

BGP力求寻找一条能够到达目的网络且比较好的路由,而且并非要选择一条最佳路由
每一个AS都会选择一个路由器作为BGP发言人
两个发言人一般通过共享的网络连接在一起的
发言人一般都是边界路由器 建立TCP连接在此基础上传输BGP报文,建立起BGP会话,通过BGP会话实现路由信息交换,因为使用的是TCP连接所以简化了路由选择的服务

BGP也支持CIDR

ICMP网际控制报文协议  允许报告差错情况和异常情况的报告 ICMP是IP层的协议
ICMP通过IP数据报传输
ICMP报文
ICMP差错报告报文
ICMP询问报文

ICMP仅仅是报告差错,不能纠正差错,差错的纠正是留给高层(上层)协议做的
它可以根据源站点的ip地址将ICMP发送给源站点让源站点重新发送报文
终点不可达 当路由器找不到路由或者主机无法交付IP数据报的时候,这时候路由器或者主机就会向IP数据报的源站点发送不可达ICMP(主机不可达,网络不可达,协议不可达,端口不可达etc)
源站抑制报文(source quench message)一般被接收设备用于帮助防止它们的缓存溢出 . 接收设备通过发送源抑制报文来请求源设备降低当前的数据发送速度 . 
首先,接收设备由于缓存溢出而开始丢弃数据,然后接收设备开始向源设备发送源抑制报文,其发送速度是每丢弃一个数据包就发送一个源抑制报文 . 源设备接收到源抑制报文就开始降低它的数据发送速度,直到不再接收源抑制请求为止 . 最后只要不再接收到作为接收方目的设备的源抑制请求,源设备就会又逐渐开始增加其发送速度 . 
时间超时报文 
数据报生存期为0,目的主机就会丢弃它并向数据报的源站发送一个ICMP超时报文
分片不能重组 IP包分片发出的时候如果在规定的时间内不能重组数据报时,目的主机就会丢弃已收集的分片并向源站发送ICMP超时报文
参数问题 如果一个路由器或者目的主机发现IP数据报首部出现差错就会丢弃数据报并向源站发送ICMP差错报告
改变路由 重定向 当一台路由器发现一台主机处于非优化路由时,就会向源站发送ICMP重定向报文来改变路由

差错报文和询问报文首部四个字节一致后面有ICMP类型
询问报文
回送请求 回答报文
时间戳请求 回答报文

IGMP internet组管理协议 使路由器知道多播组有哪些成员

多播使用的是多播的组地址 D类地址 多播地址只能使用在目的地址不能使用在源地址
使用多播时组成员可动态调整
使用硬件来进行多播

多播路由选择协议(DVMRP:Distance Vector Multicast Routing Protocol) 将多播数据报通过多播路由器传给internet上的其它路由器


多播路由选择比单播路由选择复杂的多,转发时需要动态适应成员变化

VPN虚拟专用网 公共网络之上建立一个专用的网络,通常使用加密技术,实现安全的通信,通过VPN的网关实现数据包的加密,通过数据包IP地址的转换实现远程的访问

NAT网络地址转换协议
这种方法需要在专用网连接到因特网的路由器上安装NAT软件 . 装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址 . 这样,所有使用本地地址的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,并记录在转换表上,才能和因特网连接 . 
NAT不仅能解决IP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机 . 
1.宽带分享:这是 NAT 主机的最大功能 . 
2.安全防护:NAT 之内的 PC 联机到 Internet 上面时,他所显示的 IP 是 NAT 主机的公共 IP,所以 Client 端的 PC 当然就具有一定程度的安全了,外界在进行 portscan(端口扫描) 的时候,就侦测不到源Client 端的 PC  . 
ALG(Application Level Gateway),即应用程序级网关技术:传统的NAT技术只对IP层和传输层头部进行转换处理,但是一些应用层协议,在协议数据报文中包含了地址信息 . 为了使得这些应用也能透明地完成NAT转换,NAT使用一种称作ALG的技术,它能对这些应用程序在通信时所包含的地址信息也进行相应的NAT转换 . 例如:对于FTP协议的PORT/PASV命令 DNS协议的 "A" 和 "PTR" queries命令和部分ICMP消息类型等都需要相应的ALG来支持 . 
如果协议数据报文中不包含地址信息,则很容易利用传统的NAT技术来完成透明的地址转换功能,通常我们使用的如下应用就可以直接利用传统的NAT技术:HTTP TELNET FINGER NTP NFS ARCHIE RLOGIN RSH RCP等 . 
全球地址 IPG


端口地址转换(PAT,Port Address Translation)是对网络地址转换(NAT)的扩展,它允许本地网(LAN)上的多个设备映射到一个单一的公共IP地址 . 
将传输层的端口号也加入到了转换表中

IPV4和IPV6一样使用无连接传送即数据报
IPV6将协议数据单元称为分组
更大的地址空间
扩展的地址层次结构
灵活的首部格式 首部长度完全固定 采用扩展首部的方式进行补充
有效载荷中进行传输
允许协议继续扩充
支持即插即用
支持资源预分配


明确说明下一个首部类型

扩展首部由两端的源站和目的站端到端处理,中间的路由器仅处理一个基本首部,大大提高了中继路由器的处理效率

每一个扩展首部第一个字段都是8位的下一个首部字段
IPV6地址
单播
多播
任播 目的站是一组计算机 但是数据交付的时候仅交付给其中最近的一台
节点(所有的主机和路由器)和接口(一个节点就可能有多个与链路相连的接口)
一个接口可能有多个ip地址(全球网络地址,本地链路地址)
IPV6地址 冒号16进制 128位地址分成8个16位组

允许将数字前的0省略掉
零压缩表示法 6个0用:表示 只能使用一次连续的0压缩

未指明地址 ::/28 给一个还没有配置IP地址的主机当作源地址
环回地址 相当于IPV4本地地址 ::1/128
多播地址 前8位是1后面全是0 ff00::/8
本地链路单播地址1111101010 fe80::/10 本地通信

所以一个接口可拥有多个IPV6地址


双协议栈


隧道技术

包包包

B E双协议栈
数据链路层功能 保证相邻节点无差错传输,CDC失败则直接丢弃
网络层提供不可靠的传输


两个端到端主机之间的通信实际上是两个主机中应用进程的通信
应用层不同进程的报文可以发送端复用同一个运输层报文,在接收端可以分用,将报文提交给不同的进程对收到的报文进行差错控制

udp 用户数据报协议
tcp 传输控制协议

tcp首部增大很多还要占用很多处理器资源

UDP只是在IP的数据报服务至上增加了复用和分用的功能还有差错检测的功能
UDP没有拥塞控制所以网络发生的拥塞不会使源主机发送速率降低

保留应用层交下来的报文的边界,UDP一次交付一个完整的报文


首部8个字节
伪首部仅仅为了计算校验和(通常用来在通信中,尤其是远距离通信中保证数据的完整性和准确性 . )

TCP面向字节流
TCP给上层提供了正序的保证送达且不重复服务,正序 不重复和可靠都是TCP层要完成的工作 . 所以上层看起来就是一个不间断的数据流 . 

TCP链接的端点叫做套接字(socket)或插口,端口号拼接到(contatenated with)IP地址即构成套接字
Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议


停止等待ARQ
连续ARQ
GO-Back-N ARQ
选择ARQ

确认消息ACK
停止等待协议实现的可靠传输

A对每一个已发送的分组都设置一个超时计时器
A只要在超时计时器到期之前收到ACK就撤销超时计时器

重传确认分组ACK

发送窗口 发送方维护 发送窗口内的分组可以连续的发送出去不需要等待对方的确认

选择ARQ 对出错的分组重传 分组失序接收需要重新排序
TCP传送的单元是报文段

可变长度40字节


A收到确认号后发送窗口向前滑动


流量控制发送窗口实时变化
TCP连接使用CS架构
C主动连接 S被动等待连接

握手 TCP建立连接的过程
客户和服务器之间交换三次TCP报文段 TCP连接建立的过程 三次握手
三报文握手 防止已失效的连接请求报文突然又传送到了发生错误


TCP连接释放 四报文握手


协议分别有:
1 物理层协议有:EIA/TIA-232, EIA/TIA-499,V.35, V.24,RJ45, Ethernet, 802.3 
2 数据链路层协议有:Frame Relay,HDLC,PPP, IEEE 802.3/802.2
3 网络层协议有:IP,IPX,AppleTalk DDP 
4 传输层协议有:TCP,UDP,SPX
5 会话层协议有:RPC,SQL,NFS,NetBIOS,names,AppleTalk
6 表示层协议有:TIFF,GIF,JPEG,PICT,ASCII,EBCDIC,encryption
7 应用层协议有:FTP,WWW,Telnet,NFS,SMTP,Gateway,SNMP

CS架构
协议最多的一层,一直在扩展

13个根域名服务器有很多辅助的服务器和镜像的服务器
13个知识一个逻辑的概念

根域名服务器负责回应找谁去查
baidu域名也属于baidu域名服务器

递归:客户端只发一次请求,要求对方给出最终结果 . 
迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,
          客户端会再向返回的列表中发出请求,直到找到最终负责所查域名的名称服务器,从它得到最终结果 . 
授权回答:向dns服务器查询一个域名,刚好这个域名是本服务器负责,返回的结果就是授权回答 . 
从递归和迭代查询可以看出:
客户端-本地dns服务端:这部分属于递归查询 . 
本地dns服务端---外网:这部分属于迭代查询 . 
递归查询时,返回的结果只有两种:查询成功或查询失败.
迭代查询,又称作重指引,返回的是最佳的查询点或者主机地址.

简单来说,一条域名的DNS记录会在本地有两种缓存:浏览器缓存和操作系统(OS)缓存 . 在浏览器中访问的时候,会优先访问浏览器缓存,
如果未命中则访问OS缓存,最后再访问DNS服务器(一般是ISP提供),然后DNS服务器会递归式的查找域名记录,然后返回 . 
DNS记录会有一个ttl值(time to live),单位是秒,意思是这个记录最大有效期是多少 . 经过实验,OS缓存会参考ttl值,但是不完全等于ttl值,
而浏览器DNS缓存的时间跟ttl值无关,每种浏览器都使用一个固定值 . 
Windows访问DNS后会把记录保存一段短暂的时间,
可通过ipconfig /displaydns 查看windows的DNS缓存 通过ipconfig /flushdns来清除 . 

RAM主存 随机存储器 与CPU交换数据的内部存储器 就是内存
ROM 只读存储器
高速缓冲存储器(Cache)其原始意义是指存取速度比一般随机存取记忆体(RAM)来得快的一种RAM,一般而言它不像系统主记忆体那样使用DRAM技术,而使用昂贵但较快速的SRAM技术,也有快取记忆体的名称 . 
高速缓冲存储器是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度 . 在计算机存储系统的层次结构中,是介于中央处理器和主存储器之间的高速小容量存储器 . 它和主存储器一起构成一级的存储器 . 高速缓冲存储器和主存储器之间信息的调度和传送是由硬件自动进行的 . 
例如 一台主机问DNS解析域名之后DNS将解析数据加入高速缓存中,另一台主机相同询问请求时会直接返回缓存中的域名解析

超文本和超媒体是一种典型的数据库技术,是由节点和表达节点之间关系的链组成的网.每个节点都链接在其它节点上,用户对网进行浏览 查询和注释等操作.
超媒体与超文本之间不同之处是,超文本主要是以文字的形式表示信息,建立的链接关系主要是文句之间的链接关系.超媒体除了使用文本外,还使用声音 图形 图像 动画和视频片段等多种媒体信息来表示信息,建立的链接关系是文本 声音 图形 图像 动画和视频片段之间的链接关系.
表现层——用户接口层;超文本抽象机层——节点和链;数据库层——存储 共享数据和网络访问.
超文本传输协议(Hyper Text Transfer Protocol ,HTTP).
文本标记语言(Hyper Text Markup Language ,HTML ).
HTML 被设计用来显示数据,其焦点是数据的外观
扩展标记语言(EXtensible Markup Language,XML)
XML 的设计宗旨是传输数据,而不是显示数据
XML 标签没有被预定义 . 您需要自行定义标签
XML 被设计为具有自我描述性
XML 是 W3C 的推荐标准

应用层所有应用全部是CS模式
HTTPS是身披SSL外壳的HTTP . HTTPS是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包 . HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性 . 
TLS是传输层加密协议,前身是SSL协议

端口号的范围是从1~65535 . 
其中1~1024是被RFC 3232规定好了的,被称作"众所周知的端口"(Well Known Ports);
从1025~65535的端口被称为动态端口(Dynamic Ports),可用来建立与其它主机的会话,也可由用户自定义用途 . 
一些常见的端口号及其用途如下:
20 21端口:FTP 文件传输服务
22端口:SSH 远程连接服务
23端口:TELNET 终端仿真服务
25端口:SMTP 简单邮件传输服务
53端口:DNS 域名解析服务
80端口:HTTP 超文本传输服务
443端口:HTTPS 加密的超文本传输服务
3306端口:MYSQL数据库端口
5432端口:postgresql数据库端口
6379端口:Redis数据库端口
8080端口:TCP服务端默认端口
8888端口:Nginx服务器的端口
9200端口:Elasticsearch服务器端口
27017端口:mongoDB数据库默认端口
22122端口:fastdfs服务器默认端口A
统一资源定位系统(uniform resource locator;URL)是因特网的万维网服务程序上用于指定信息位置的表示方法

路径是逻辑上的路径

HTTP 2.0

HTTP使用传输层的TCP为它提供服务

DNS
握手
主页默认的文件名


协议,是指通信的双方,在通信流程或内容格式上,共同遵守的标准
通信流程:断开式(无状态)
断开式:http协议每次响应完成后,会断开与客户端的连接
无状态:由于服务器断开了之前的连接,就无法知晓连接间的关系
内容格式:消息头和消息体

GET 简单的资源信息读取,不对资源状态造成影响,保证幂等性
幂等 一次和多次请求某一个资源对于资源本身应该具有同样的结果
SELECT col1 FROM tab1 WHER col2=2,无论执行多少次都不会改变状态,是天然的幂等
UPDATE tab1 SET col1=1 WHERE col2=2,无论执行成功多少次状态都是一致的,因此也是幂等操作
UPDATE tab1 SET col1=col1+1 WHERE col2=2,每次执行的结果都会发生变化,这种不是幂等的
HEAD 与GET响应相同的header,但是响应中没有任何body保证幂等性
POST 在服务器上执行一系列操作,如创建新资源 更新资源 变更资源等  POST方法期初是用来向服务器输入数据的,实际上,通常会用它来支持HTML的表单 . 表单中填好的数据通常会被送给服务器,然后由服务器将其发送到它要去的地方
PUT 完整地更新或替换一个现有资源,也可以用客户端制定的URI来创建一个新资源 和POST方法一样,PUT方法也改变了资源的状态,所以是非安全的 . 但是有一点和POST不同,它是幂等的  PUT方法用来传输文件 . 就像FTP协议的文件上传一样,要求在请求报文主体中包含文件的内容,然后保存到请求URL指定的位置
PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉 . (所以PUT用来改资源)
Post请求:后一个请求不会把第一个请求覆盖掉 . (所以Post用来增资源)
DELETE 使用该方法来删除资源 . 对于客户端而言,资源在成功响应后,就不复存在了 和POST方法一样,DELETE方法也改变了资源的状态,所以是非安全的 . 但是有一点和POST不同,它是幂等的

 

例如404
HTTP 超文本传输协议
HTTPS 超文本传输安全协议 安全的HTTP通道

TCP(有很多安全漏洞)远程登录 主要用于远程配置(例如路由)
为支持异构性(在不同平台和系统中的互操作性),TELNET协议定义了网络虚拟终端(NVT,network virtual terminal ),即数据和命令序列在Internet上传输的标准表示方式 . 


传输可以是上传 即C向S传输
99%失败就是20端口传送完毕21进程挂掉

IMAP4协议与POP3协议一样也是规定个人计算机如何访问网上的邮件的服务器进行收发邮件的协议,但是IMAP4协议同POP3协议相比更高级 . IMAP4支持协议客户机在线或者离开访问并阅读服务器上的邮件,还能交互式的操作服务器上的邮件 . IMAP4协议更人性化的地方是不需要像POP3协议那样把邮件下载到本地,用户可以通过客户端直接对服务器上的邮件进行操作(这里的操作是指:在线阅读邮件 在线查看邮件主题 大小 发件地址等信息) . 用户还可以在服务器上维护自己邮件目录(维护是指移动)新建 删除重命名共享 抓取文本 等操作),也提供web网页发送邮件支持,还允许部分阅读
由RFC3501定义 . 本协议是用于客户机远程访问服务器上电子邮件,它是邮件传输协议新的标准 . 
协议特性
IMAP4协议访问模式:离线/在线
IMAP4协议存储邮件模式:分布式


MIME的全称是Multipurpose Internet Mail Extensions,即多用途互联网邮件扩展类型 . 
这是HTTP协议中用来定义文档性质及格式的标准 . IETF RFC 6838,对HTTP传输内容类型进行了全面定义 . 
而 IANA(互联网号码分配机构)是负责管理所有标准MIME类型的官方机构 . 可以在这里)找到所有的标准MIME . 
服务器通过MIME告知响应内容类型,而浏览器则通过MIME类型来确定如何处理文档 . 
每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio 图象image等,后面定义具体的种类 . 
常见的MIME类型(通用型):
超文本标记语言文本 .html text/html
xml文档 .xml text/xml
XHTML文档 .xhtml application/xhtml+xml
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
PDF文档 .pdf application/pdf
Microsoft Word文件 .word application/msword
PNG图像 .png image/png
GIF图形 .gif image/gif
JPEG图形 .jpeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar

A记录 DNS ip域名转换记录
NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析
MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据 收信人的地址后缀来定位邮件服务器 . 例如,当Internet上的某用户要发一封信给 user#mydomain.com 时,该用户的邮件系统通过DNS查找mydomain.com这个域名的MX记录,如果MX记录存在, 用户计算机就将邮件发送到MX记录所指定的邮件服务器上
SMTP发送方即为C接收方即为S

quit退出命令


传输层弥补传输可靠性
TCP/IP 是用于因特网 (Internet) 的通信协议 . 
TCP/IP 是供已连接因特网的计算机进行通信的通信协议 . 
TCP/IP 指传输控制协议/网际协议(Transmission Control Protocol / Internet Protocol) . 
TCP/IP 定义了电子设备(比如计算机)如何连入因特网,以及数据如何在它们之间传输的标准 . 
在 TCP/IP 中包含一系列用于处理数据通信的协议:
TCP (传输控制协议) - 应用程序之间通信
UDP (用户数据报协议) - 应用程序之间的简单通信
IP (网际协议) - 计算机之间的通信
ICMP (因特网消息控制协议) - 针对错误和状态
DHCP (动态主机配置协议) - 针对动态寻址
TCP/IP由四个层次组成:网络接口层 网络层 传输层 应用层 . 

应用层(Application) 如我们进行万维网(WWW)访问用到了HTTP协议 文件传输用FTP协议 电子邮件发送用SMTP 域名的解析用DNS协议 远程登录用Telnet协议等等 TFTP  HTTP,SNMP,FTP,SMTP,DNS,Telnet,都是属于TCP/IP应用层的;
表示层(Presentation) 数据化格式,代码转换,数据加密 没有协议
会话层(Session) 解除或建立与别的点的联系,没有协议
传输层(Transport) 四层交换机,工作在第四层的路由器,提供端对端的接口 TCP,UDP
网络层(Network) 为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
数据链路层(Data Link) 传输有地址的帧以及错误检测功能SLIP,CSLIP,PPP,ARP,RARP,MTU
物理层(Physical) 以二进制数据形式在物理媒体上传输数据 ISO2110,IEEE802,IEEE802.2
TCP的特性就是面向连接的,是可靠传输,可以差错控制和流量控制,TCP的数据传送是建立在虚电路的基础上的 . 虚电路,应该是指"意"的虚 . 就是存在那么一条电路,逻辑上好象是固定的存在的,但事实它是随着会话的不同而使用不同的路径 . 
TCP 用于应用程序之间的通信 . 
当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求 . 这个请求必须被送到一个确切的地址 . 在双方"握手"之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信 . 
这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止 . 
IP 是无连接的
IP 用于计算机之间的通信 . 
IP 是无连接的通信协议 . 它不会占用两个正在通信的计算机之间的通信线路 . 这样,IP 就降低了对网络线路的需求 . 每条线可以同时满足许多不同的计算机之间的通信需要 . 
通过 IP,消息(或者其他数据)被分割为小的独立的包,并通过因特网在计算机之间传送 . 
IP 负责将每个包路由至它的目的地 . 
TCP/IP
TCP/IP 意味着 TCP 和 IP 在一起协同工作 . 
TCP 负责应用软件(比如您的浏览器)和网络软件之间的通信 . 
IP 负责计算机之间的通信 . 
TCP 负责将数据分割并装入 IP 包,然后在它们到达的时候重新组合它们 . 
IP 负责将包发送至接受者 . 

TCP/IP协议
应用层 遵从表示形式

传输控制层


网络层 ip层
ping www.qq.com -t 不间断
分工明确达到很好的解耦
客户端大量请求 ========> 负载均衡服务器 ==========> 多台后台服务器
用户请求webserver log字段  IP地址 
时间 
请求哪个URI 
返回的状态 
返回的时间
从哪来的(来自于哪个域名 百度搜索 朋友圈 微博 没有源浏览器过来的 收藏夹直接访问的etc)
掩盖访问轨迹比较少 先从好几个地方访问目标 最终再从一个地方访问目标
日志比较客观
推广流量渠道分析 各渠道用户访问量分析
百度点击扣款 百度找小公司刷流量
日志和交易记录join 哪个渠道销售产品多
转化率吧 访问量下的用户投资比率
数据包 数据和数据的描述
流是双向的
报文 封装的字符串内容

传输控制层 紫色 目的端口号 80端口 百度端口号
                源端口号 浏览器自动申请的端口号
由该层创建包
host 65535个端口号
源端口号 => 目的端口号
flag 6个二进制位 数据包状态 数据包在通讯过程中哪个阶段的 干啥用的
例如
C -> sync S S -> sync + ack C C ->ack S 
三次握手
后带上7层的请求头
交互完成后断开链接就是释放资源
C->fi (finally) S S->收到C S->fi C C->收到 过一个很小的时间片同时释放资源
四次分手
握手和分手的对象必须是一台服务器
7 -> 1包才会出去

>4 sync->3

n不进行转换全都以ip地址方式显示
p program程序 显示进程和进程的id号

地址
端口号
LISTEN 监听状态
ESTABLISHED 已建立连接
tcp连接就是socket通信 就是 IP PUT
IP 地址 描述互联网主机地址 逻辑上的两个端点
MAC 物理上连接的两个节点(跳点)


IP地址 网络号地址  哪个小网里面
       网络主机地址  小网里面的谁
IP地址点分字节 8个二进制位 0-255 字节为单位做计算很快

eth0网卡配置文件

ip
掩码与ip 按位与 全1为1 有0则0 网络号主机号
网关 通过网关可以上网 路由器就是一个网关
route

前面主机后面网关
添加默认路由

局域网叫啥进入哪个局域网
网关地址
dns服务器
互联网包以下一跳的方式传输
ping百度 先域名解析拿到目标百度ip地址

网络层决策下一跳(网关)
直接把数据包扔给网关主机(路由器etc)就不管了

默认网关

同一局域网通信不需要中间者
跨网通通信需要有个host需要连接两根网线(路由器,访问另外的网)
3层 网络层 放目标地址
2层 链路层 网关地址(下一跳)包着2

9.2有个主机 网卡地址是mac地址
3 ->2
将包包起来
一开始网关没有mac地址
先源地址自己目标全1数据包在交换机广播给所有设备,网关机接到把mac地址返回
交换机也有端口mac地址的映射表,使用转发机制避免广播占用所有端口(广播冲撞)

服务公网地址 百度域名解析的地址
负载均衡服务器转发给后端服务器的转发源地址
后端服务器的地址
客户端和后端服务器握手,负载均衡服务器只做转发不做握手
后端server镜像,功能逻辑代码一样的
负载均衡服务器不触发socket
拓扑图 描述网络传输关系的抽象图
客户端访问的是域名
客户端 CIP -> VIP 负载均衡服务器  DIP -> RIP 后端服务器
                                   -> RIP 后端服务器
                                   ......
                                   -> RIP 后端服务器


路由地址
公网地址 互联网可见可以访问(全网唯一)

私有地址

同一网段通信不需要跳点

访问百度
NAT 私有地址转换成公网地址发出请求

路由器也有65535端口号
路由器内再随机生成端口号做内部地址端口号的映射
S_NAT替换源地址
NAT模式外部无法主动访问私有地址设备(如果路由器没有记录静态地址映射关系)
ipv6拓宽ip地址范围


D_NAT 负载均衡服务器替换目标地址

之间的通信
后端服务器默认网关指向负载均衡服务器
请求远远小于回复 非对称网络 电话线拨号
后端服务器单独配置光纤返回解决这一问题,后端服务器就必须有自己独立的vip(ip不能在网络中重复出现,只让负载均衡服务器vip对外暴露,配置后端服务器vip,后端服务器的vip对外隐藏,持有但不暴露给外部网络设备)
直接收发不用间接转化了
DR路由模型
负载均衡器只需处理上行数据 

    

MAC欺骗 必须是同一网段 不需要跳点不然的话重新发到vip负载均衡服务器造成死循环,ttl生命周期到会被抛弃
负载均衡服务器和real server必须在同一局域网
数据中心 VIP
每个数据中心的人访问那个数据中心(数据中心就是一个局域网,一个域名的网)


代理客户端 -----> 香港云主机 代理服务器 ------------->访问外网
vpn 和翻墙 IP数据包包着IP包

主机可以有多块网卡
环回接口 将发包变成入包送给内核再从内核给进程 不会为外部服务
任何系统都支持一个接口(物理接口网卡 环回接口lo)上配置多个ip地址

接收响应 1
向外通告 2
网卡数据包数据到网卡 -> 内核空间 事件终端-> 程序在用户空间(用户进程读到数据包报文) -> 内核空间 ->出去
所以将他收录到内核
内核态 ->切换 用户态 减少用户态内核态切换的过程


wrr 分配权重 权重多多干活
lc 看flag 比如看到哪个链接给哪个加一 分手则在记录中减一 给链接少的server多分配
负载 就是分配
lvs
数据包接收
数据包负载

接收到什么数据包触发lvs
service-address可以是多个端口 分别负载均衡 哪个端口号的负载
scheduler调度算法

默认DR模型
链接状况 后端realserver和客户端的链接状况


1 转换成路由器 收到数据包的目标地址不是自己的则转发出去

配置vip

配置内核转发 
/proc下只能用重定向覆盖的方式

内核映射即时生效,但是是临时配置
配置通告响应级别

配置隐藏ip到环回接口子接口
255.255.255.255
让他的网络号就是他的ip如果是24那么环回接口优先级更高就会由环回接口发出回应包,而环回接口无法发送出本机

安装httpd server


http://node0002
192.168.72.32

模拟浏览器请求url

fin_wait断开

RS上

lvs上没有链接
客户端只与RS握手
缺点   假如RS服务器死掉lvs照样发给死掉的RS端口
       lvs服务器也可能挂掉
单点模型 -> 主备模型 高可用性 sm 级     争抢制
谦让制(推举制) 按某一规则决定谁是主   备机不断查询主是否活着
                              主以广播形式发包给所有节点备机收到则确认主活着,如多次没有收到包则确定主已死亡策划推举
监控RS和lvs 健康检查
检测RS7层而不是三层 包含http协议


HA high available
VRRP 如果两条带宽数据包被打散,数据包顺序被打散造成IO失败

一条带宽IO失败立刻启用备用带宽
vip 在一台lvs上如果他死掉vip会到备用lvs上
iptable 防火墙
因为lvsDR和防火墙内核冲突所以要关闭该防火墙

防火墙放在数据中心中
内网防火墙关闭

清除网卡

清空ipvsadm内核配置


lvs主修复抢回来
有一些技术是主不抢回来备为主 例如hdfs namenode 要想备变主,备机锁住(因为元数据在内存不断变化),同步数据,成本太大,所以不第一时间抢回
企业中用不同的网卡跑不同的数据包 物理上将网络划分 各业务之间不影响


priority 正线性关系 谦让制

只有主配相当于

ip地址 掩码 桥接器(可以不写) 设备 权重(可以不写) 子标签


lvs的记录如果客户端在50s内已经由某个RS那么将还由它处理

健康检查支持http和https
最下面 连接超时时间容忍 失败间隔次数
dG

scp

httpd上线才会启动健康检查
service keepalived start
备机和主同时对RS做着健康检查

禁用网卡
up启用网卡

master我活着这个进程
检查两个RS的子进程
如果主突然kill -9死亡就会出现打散问题
zoopeeper可以保证自己的高可用 keepalived不能保证自己的HA
面向服务模块化开发 可以拆的无限小 例如每个模块一台tomcat服务器,域名一样uri不同
在前面握手再有前面几期转发到后面,tomcat并发量为千级别
第一种模式  lvs  IO流   十台 IO流  tomcat(没有业务只握手转发) 无数RS
静态页面 流的对接没有计算,从磁盘读文件或者从后面RS区
tomcat基于jvm资源消耗比较大
所以两个IO流对接 识别请求URI不用jvm engiscs 五万 百万级别 多dns解析到多数据中心 物理位置的切割
用户体验度 3s
中间这个层是代理层 代理层解决三次握手 采集请求头 分而治之
client知道代理为正向代理 不知道为反向代理 反向代理的同时负载均衡 请求和响应都要通过nginx而不是DR模型
没有任何软件技术可以解决硬件的问题
计算器层后还有共享服务器 存储层

web和邮件系统代理服务器
i7四颗物理加上超线程8颗
多颗物理核心 服务器最少四个12核24线程
nginx请求静态httpRS后会缓存资源 不用再次请求 和浏览器一样

一连接一子进程apache
cpu一个核心一时间只能一个进程 晶振1s 1000-10000次震荡 1000-10000次切换(将cpu内寄存器和123级缓存的数据刷回内存,调用决策下一进程的方法将该进程保护现场的数据从内存恢复现场) 内核调度时间 用户进程时间70%
到80% 而apache模型必然会有内核调度时间 处理一个链接的时候其它链接是阻塞等待状态
nginx 轮询遍历所有链接文件(挨个询问)哪个来了数据包就处理哪个少了内核切换的过程 1个进城可以一万个链接
tengine是nginx淘宝改良版

安装nginx

vi nginx
粘入命令脚本

服务开关 权重

可执行程序位置

配置文件位置


nginx.conf

有几颗物理cpu核心就写几或者两倍
NIO 一个进程接收很多的链接
非阻塞模型 1000个或者几百个链接交给一个线程处理(java)可以把cpu和进程做亲密 该cpu只跑这一个进程
阻塞模型 socketIO可以抛出多个线程,一个线程维护一个链接(线程数有熟练限制,每个线程有一个线程栈,开辟一个内存空间)(java)
         来了一个链接,apache孵化出一个子进程处理一个链接
nginx和apache(httpd)都是静态的
同一时刻只会有一个进程接受处理,一颗cpu一核
用的最多的反向代理是nginx
cpu比内存快(纳秒)内存比硬盘(毫秒)快
top

cpu使用率

程序和内核的cpu使用率
用户空间 
内核空间
IO BIO NIO AIO

日志存储位置
ps -fe |grep nginx

nginx支持热加载热升级
worker 负责处理用户链接 nobody权限 为了安全
master root权限   worker是master子进程 更改nginx.conf不用停服务 新生的worker按新的配置文件生成(简单的页面升级则可以,如果逻辑不一样就不能使用滚动升级要闭服)
热升级 新进程产生老进程退出
可以参考思路 写一个agent进程到各个节点访问一个server,该server更新模块往上部署就会拷贝到各个节点形成新的进程

最大worker链接数 可以10000

1G内存可以10w个文件描述符 所有进程加起来的文件描述符

默认最多一个进程1024个文件描述符
连进来连进去是两个IO


日志记录字段和格式 remote_addr 客户端地址
nginx也可以是一个大量并发写入存储系统(因为可以存大量日志)(数据采集,tcp模块向nginx发送数据包写入日志文件,小数据包 比如在数据线接一条链接进nginx服务器进行报文分析黑客行为)

0拷贝
例如client读一张图片,硬盘只有内核才能读 read系统调用,进程需要向内核发出读硬盘的请求,读完之前进程阻塞,先读到内核buffer缓冲区,然后拷贝到进程的地址空间 网卡也是同理(input和output两个IO,切到内核中完成就是0拷贝)减掉了内核态用户态切换和内存地址空间映射的过程
jvm java虚拟机
内核读不懂
onheap堆内空间 虚拟机的空间
offheap堆外空间 字节数组存数据 内核可以读到 支持0拷贝 netty(spark底层封装netty)很多软件基于offheap

buffer开关

http协议最新2.0 keepalive保持链接不断开(不用频繁握手分手,重复RS开辟资源)生产系统一定开启

开启压缩 传输更多返回东西,传输更快,传输量更大


index     返回页面
autoindex 自动索引 展示目录
          
修改该配置文件指向该yum源,指向该域名
nginx服务器可以作为内网yum源

ip相同host域名不同
如果多个虚拟服务器访问ip则指向第一个


url

uri
安装目录logs下


nginx支持虚拟服务器(例如把80端口的百度京东阿里装载一台服务器里)

root 定义页面文件的相对目录(安装路径下)
index 主页页面是哪个文件
一个server一个root(存储路径)
一个server可以定义多个location

不是这两个则在子目录文件中匹配

重新加载配置文件

正则一旦匹配上就不往下走

反向代理


相同

没有则不替换直接发上面的URI,有URI则不发上面的


定义服务器池
先访问服务器池没有则hosts文件没有则dns服务器


基于两个地址做负载均衡
dns也可以,只要拿到地址表就行
session在cookie或者页面里以辨明用户身份
因为session和client交流会负载到不同RS则会造成session不同步重复登录   session一致性
     把session写在文件数据库里可以解决(磁盘IO太慢了)
     内存数据库 或者是HBASE(开辟磁盘,但是内存缓存热数据所以很快)
     即便是使用磁盘也是用磁盘的顺序读写

集群的每个node时间要一致


后台运行 内存128m 端口号11211 listen服务器地址


tomcat下conf下context.xml
lib下传输
session放在memcached服务器中

修改时间
70年的机器认可session没过期,但是19年机器不认可因为过期了,进程会出现各种问题10s 20s偏差的话

最后

以上就是文艺板栗为你收集整理的网络的全部内容,希望文章能够帮你解决网络所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部