感觉好浮躁啊,手上的项目还么完又要申请新项目,复习一下网络去一去浮躁,希望后面项目工作都顺利。
概述:
计算机两种通信方式:C/S 和P2P(还是c/s模型,只是两端对等互相服务)
- 只要两个主机都运行了对等连接软件(P2P 软件),它们就可以进行平等的、对等连接通信。
- 视频网站优酷:采用c/s无须知道客户ip,而自己的分布式服务器系统可以使用p2p
分布式系统:(它是P2P网络+分布式系统算法)
分布式系统是由许多独立的计算机组成的一个系统。从外来用户看,它就是一个单一的系统。
它在计算机网络中应用非常的广泛。
分布式存储系统:用于Youku, 土豆等视屏网络,百度云盘等等。它的Middeware有:BigTable, Chord等。
分布式计算系统:大数据,云计算。它的Middleware有:google的Hoodoop, UC Berkeley Matei Zaharia 主导开发的spark。
物理层:
有导向的传输介质:双绞线、同主电缆、光纤。+无线传输 公用电话系统PSTN、同步光纤网SONET
数据链路层:
媒体接入控制子层MAC + 逻辑链路控制子层LLC
功能:成帧------->帧界定(字节填充/位填充)
差错控制——>CRC ARQ 停等式ARQ
流量控制
PPP协议:
PPP三大功能:应用最广泛的数据链路层协议,点到点通信协议。
1)提供封装IP 数据报到不同链路(SONET,ADSL)的功能。
2)提供链路控制协议 LCP (Link Control Protocol),对链路的通断状态进行检查,建立连接,释放连接等。
3)提供网络控制协议 NCP (Network Control Protocol),对网络进行相关配置,如IP地址分配等
无须ARQ或者序列号:有良好的信道环境,FCS检错不纠错。
ppp工作流程:
1)当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
2)PC 机向路由器发送一系列的 LCP 分组,和NCP分组,配置链路参数(最大帧长),认证,并给新接入的 PC机分配一个临时的 IP 地址。
3)通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
MAC控制子层:(广播,以太网协议)
网卡:
功能:串/并转换。数据缓存。在系统上安装设备驱动程序。实现以太网协议
以太网:
广播方式发送数据(PC自行MAC匹配) 曼彻斯特编码
无连接+不编号(无需确认)+不纠错(无ARQ,丢弃,信道环境好上层处理)
核心协议:1坚持型CSMA/CD(载波侦听多直接入冲突避免) 半双工
争用期r:2t (两倍的端到端往返时延)未碰撞则成功,争用期传输字节为64字节,前64字节未撞后面不会撞,故最短有效帧长为64字节。
碰撞:二进制指数退避算法(2k -1) r +最大重传数k(超过k向上层报告) +强化碰撞
信道利用率:帧长不能太短,否则信道利用率会变小。
硬件地址:48位=24(注册机构RA)+24(厂商) 2^24 MAC-48
以太网帧格式:
以太网扩展:
集线器:碰撞域增大了,子网吞吐量下降。
网桥:隔离了各个子网的碰撞域,不降低子网吞吐量,缓存提高了可靠性,但是增加时延。
交换机:全双工;无碰撞(无须CSMA/CD)
无线网络:
MAC层协调确定移动站点什么时候发送数据
MAC:PCF(无争用服务,备选)+DCF(争用服务,必选,CSMA/CA)
隐藏终端+暴露终端 RTS CTS短帧
CSMA/CA-----冲突避免(预约信道+二进制指数退避算法)
网络层:
协议栈
Ping应用程序不经过传输层,利用ICMP报文检测网络连接,调试网络,直接面向网络层。
OSPF:开放最短路径协议,一种动态路由协议,直接面向网络层。
网络的边缘节点一般会有4层协议栈,中间大部分路由节点只有到网络层。
传输层以下都封装在内核里面,通过socket套接字进行调用。
IP协议
IP分片:
当IP长度超过MTU时则会进行分片,分片可能发生在发送端或路由器,在接收端内核的IP模块会进行IP分片重组。与IP分片有关的三个字段(第二行),16位标志符,3位标志位,13位偏移量。
以太网MTU1500,IP头20字节,最大负载1480,现在传1481的ICMP报文,ICMP报文头部传一次就可以,没必要浪费带宽。
IP转发:
Ip协议特点:
无状态:ip协议是无态的,通信双方不能同步信息,相互独立,没有上下文联系。无法处理乱序的报文,依赖上层。但是简单,高效,如UDP和HTTP都是无状态的。
无连接:不会长久的维持对方的信息,每次都得指定对方的ip.
不可靠:
网际协议IP:
不同层的链接方式中继(relay)系统:
物理层中继系统:集线器(repeater)。
数据链路层中继系统:网桥 (bridge)。
网络层中继系统:路由器(router)。
网络层以上的中继系统:网关(gateway)。
IP地址与MAC地址:
H1根据目的IP2找到自己路由表--àip3,在ARP表中找到IP3的MAC地址,然后将IP数据包和自己的MAC地址传递给HA3。
ARP协议:
解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
不管网络层上面用什么协议,最终在链路层上传输数据必须用MAC地址进行识别传输。
每个主机都有高速缓存(ARP) 先查看ARP缓存,没有在启动ARP协议。
ARP(同一局域网内使用):广播目的IP,自己IP+MAC,同一网中收到,若目的IP和自己匹配则回发ARP报文报告自己MAC地址。
ARP协议使用4中情况:
- 发是主机,下一跳IP目的IP一致。ARP 找到就是目的主机的MAC。
- 发是主机,下一跳IP与目的IP不一致。ARP 找到本网络上一个路由器的MAC。
- 发是路由器,下一跳IP与目的IP一致。ARP 找到就是目的主机的MAC。
- 发是路由器,下一跳IP与目的IP不一致。ARP 找到本网络上另一个路由器MAC。
IP数据报格式:
IP路由转发算法:
(1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。
(2) 若网络 N 与路由器直接相连,则把数据报交目的主机 D;否则间接交付,下一步。
(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行下一步。
(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行下一步。
(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行下一步。
(6) 报告转发分组出错
三级网络地址:
划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id;
网络号 子网号 主机号 需要子网掩码 网络地址 = IP and 子网掩码
划分子网的路由转发算法
(1) 从收到的分组的首部提取目的 IP 地址 D。
(2) 若路由表中有目的地址为 D 的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行(3)。
(3) 对路由表中的每一行的子网掩码和 D 逐位相“与”,若其结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行(4)。
(4) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行(5)。
(5) 报告转发分组出错。
无分类两级地址:(CIDR)
子网掩码长度可变,CIDR地址块 128.4.32.0/20 网络号占前20位。
CIDR在查找时可能会有多个网络地址匹配,选择匹配长度最长的,最长前缀匹配路由信息最具体,无分类编制的路由表存放在搜索二叉树中。
网际控制报文协议(ICMP)
为了提高IP数据报的交付成功几率,在网际层用ICMP报文。
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。
ICMP 报文的有两大类:ICMP 差错报告报文和 ICMP 询问报文
回送请求和应答:是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的机器必须给源主机发送ICMP回送应答报文。这种询问报文用来测试目的站是否可达以及了解其有关状态。(ping应用)
时间戳请求或回答:ICMP时间戳请求允许系统向另一个系统查询当前的时间。该ICMP报文的好处是它提供了毫秒级的分辨率,而利用其他方法从别的主机获取的时间只能提供秒级的分辨率。请求端填写发起时间,然后发送报文。应答系统收到请求报文时填写接收时间戳,在发送应答时填写发送时间戳。
IP多播:
IGMP:不知道IP多播组有多少成员,也不知道位置,让链接本地局域网上的多播路由器知道本局域网上是否有目标主机加入。
第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器。
第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。
只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。但一个组经过几次的探询后仍没一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。
VPN:虚拟专用网络
本地地址:仅在机构内部使用,可由机构自行分配。
全球地址:全球唯一IP地址,必须向Internet的管理机构申请。
远程登录公司内网:开启vpn软件,建立与公司内网的vpn隧道,保密。
NAT:(网络地址转换)
专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IPG。本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。
基础NAT:一对一(one-to-one)NAT,在基础NAT下,网关路由器一一转换一个外部IP地址和一个私有IP地址。
NAPT:NAPT (Network Address and Port Translation)。在基础NAT中,高层协议的端口号并不会改动。NAPT下,IP地址和端口号可能同时改动。
我们看到,通往IP 199.165.145.1建立了三个端口的连接:8888, 8889和8080。它们分别在NAPT处改为通往10.0.0.1:80, 10.0.0.1:8080和10.0.0.3:6000。NAPT记录有外部IP:端口和内部IP:端口的一一对应关系。在IP包经过时,网关路由器会更改IP地址,端口号以及相关的checksum。
利用NAPT我们可以使用一个(或者多个但少量的)外部IP和大量的端口号,来对应多个内部IP以及相应的端口号,从而大大减小了对全球IP地址的需求。
必须内部发起,NAT路由表是内部主机动态发起传送动态建立的。外部主机并不知道
没有严格在网络层:NAT路由器要查看传输层的端口号,违反网络的体系结构。
正向代理和反向代理:
正向代理:
用户访问不了某网站,但能访问一个代理服务器,这个代理服务器能访问那个网站,于是先连上代理服务器,告诉他我需要那个无法访问网站的内容,代理服务器去取回来,然后返回给我。从网站的角度,只在代理服务器来取内容的时候有一次记录,有时候并不知道是用户的请求,也隐藏了用户的资料,这取决于代理告不告诉网站。
客户端必须设置正向代理服务器,当然前提是要知道正向代理服务器的IP地址,还有代理程序的端口。
作用:
反向代理:
实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
作用:
- 保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击:大型网站,通常将反向代理作为公网访问地址,Web服务器是内网。
- 负载均衡,通过反向代理服务器来优化网站的负载
IPV6: 128位
参考文献:
TCP/IP详解卷1
Linux高性能服务器编程
计算机网络
西电计算机网络PPT
博客