网络基础(上篇)
作者 | 孙超
编辑 | 徐广欣
tips1.网络名词说明、物理层网络协议、数据链路层网络协议、网络层网络协议~
一. 名词
internet
互联网,由多个计算机网络互联而成的网络。
Internet
因特网,特定的计算机网络。
ISP
因特网服务提供商(Interne Service Provider),例如电信、移动,他们向因特网管理机构申请海量IP。
IXP
因特网交换点(Internet exchange point)。
p2p
peer-to-peer。两个主机都运行了对等连接软件(P2P软件),进行平等的、对等连接通信。
路由器
一种具有多个输入端口和多个输出端口的专用计算机。实现分组交换的关键构件。使用存储转发技术。
存储转发
在发送报文之前,先将较长的报文划分为一个个小的等长数据段,每个数据段前面加上Header,这样就构成了分组 Packet,也成为包。包是网络中传输的基本单元。
报文(Message),要发送的整体数据。
Header包头,包含诸如目标地址、源地址等控制信息。
分组转发,路由器收到一个包,先暂存,然后根据Header去查找转发表,将包转发到下一个路由器。
带宽
单位时间内网络从一点到另一点所能通过的 “最高数据率”。
吞吐量
单位时间内通过某个网络(或信号、接口)的数据量。100Mb/s的以太网,典型吞吐量70Mb/s。
延迟
数据从网络一端到另一端所需要的时间。总延迟 = 发送延迟 + 传播延迟 + 处理延迟 + 排队延迟。
发送延迟
主机或路由器发送数据帧所需时间,也称为传输延迟 = 数据帧长度(b) / 发送速率(b/s)。
传播延迟
电磁波在信道上传播一定距离所需时间,信道长度(m) / 传播速率(m/s)。其中光纤的传播速率是
2 * 10⁵ km/s。
处理延迟
主机或路由器进行分组转发所花费的时间。
排队延迟
分组进入路由器后,先在输入队列排队等待处理,确定了转发接口后,在输出队列中等待转发。RTT: 往返时间(Round-Trip Time),从发送方发送数据开始,到发送方收到接收方的确认。
利用率
信道利用率和网络利用率,利用率过高会产生非常大的延迟。上行带宽:用户到ISP的带宽。
下行带宽
ISP到用户的带宽。TTL:数据报在网络中的寿命,单位是跳数。
二.网络协议
应用层:应用进程根据应用层协议(例如:http、smtp等),相互发送报文。
传输层:为应用进程的通信提供传输服务。传送报文到下层(网络层),接受下层数据返回到应用层。
TCP:数据传输协议,面向连接的,基本传输单位是报文段(segment)。
UDP:用户数据报协议,无连接的数据传输服务,基本传输单位是用户数据报。
网络层:提供通信服务,使用IP协议。接受传输层的报文段,封装成包(Packet)(或IP数据报),负责查找路由进行传输。需要使用设备路由器。
数据链路层:(data link layer),接受网络层的 IP数据报,组装成帧(framing),每一帧由 数据+控制信息 组成。收到一个帧后,抽取数据部分,传给网络层。
物理层:连接传输媒体传输bit流数据。传输数据的单位是bit,将数据交由硬件设备(光缆、无线信道等)进行处理。
集线器(hub):主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。即多端口转发器,网络中某条线路产生了故障,并不影响其它线路的工作。
物理链路:一个节点到相邻节点的一段物理线路(有线或无线)。
逻辑链路:物理线路 + 通信协议 + 实现软/硬件(例:网络适配器)。
信道类型:点对点信道、广播信道。
点对点协议:封装成帧、透明传输、差错检测。
封装成帧:将IP数据报的前后添加Header和Tailer,构成一个帧。
透明传输:无论IP数据包是什么内容,都可以构成帧进行传输。(帧的开始、结束符是特定的控制字符,不能在数据中出现)。
PPPoE:PPP over Ethernet 宽带上网的主机使用的链路层协议。将PPP帧在封装成 Ethernet帧。
适配器:PC 和 LAN通过适配器进行通信,含有处理器和存储器(RAM 和 ROM),计算机发送IP数据报,由协议栈将IP数据报向下交给适配器,组装成帧后发送到局域网,硬件地址也成为MAC地址(适配器地址)。
单播帧(unicast): 收到的帧的MAC地址与本站的硬件地址相同。
广播帧(broadcast): 发送给本局域网上所有站点的帧。
多播帧(multicast): 发送给本局域网上一部分的帧。
网桥(桥接器):用来连接不同的网段,简单的网桥有两个端口,分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突区。每个端口与一个网段互联,可扩展局域网。
连接两个局域网的一种存储/转发设备,它能将一个大的LAN分割为多个网段,或将两个以上的LAN互联为一个逻辑LAN,使LAN上的所有用户都可访问服务器。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switch)所取代。
交换机(switch):一种基于MAC(网卡的硬件地址)识别,能完成封装转发数据包功能的网络设备。交换机交换机拥有一条很高带宽的背部总线和内部交换矩阵,可以“学习”MAC地址,并把其存放在内部地址表中,通过在数据帧的发送者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。
网络层向上(运输层)只提供简单的、无连接的、尽最大努力交付(传输错误)的数据报服务。
a.协议
IP协议
所有的网络之间使用IP协议进行互联,构成一个大的网络。
地址解析协议 ARP(Address Resolution Protocol)
数据链路层传输的是MAC帧,ARP 协议通过在主机 ARP 高速缓存中存放一个从IP到硬件地址的映射表,此表动态更新。
bogon:~ dante$ arp -a
bogon (10.10.0.1) at 3c:8c:40:5e:ea:d5 on en0 ifscope [ethernet]
bogon (10.10.0.16) at 6c:19:c0:68:a8:e1 on en0 ifscope [ethernet]
bogon (10.10.0.18) at 44:6e:e5:1c:e8:19 on en0 ifscope [ethernet]
bogon (10.10.0.24) at b0:48:1a:3f:6b:d9 on en0 ifscope [ethernet]
bogon (10.10.0.39) at c0:a5:3e:79:8c:57 on en0 ifscope [ethernet]
bogon (10.10.0.43) at 78:7b:8a:3c:e2:6b on en0 ifscope [ethernet]
bogon (10.10.0.44) at 6c:4d:73:67:47:e1 on en0 ifscope [ethernet]
bogon (10.10.0.56) at 20:ab:37:22:81:f1 on en0 ifscope [ethernet]
网际控制报文协议 ICMP(Internet Control Message Protocol)
ICMP 允许主机或路由报告差错情况和提供有关异常情况的报告,ICMP报文封装在IP数据报中,作为数据部分。
差错报告报文
询问报文
ping,分组网间探测(Packet InterNet Groper),用来测试两个主机之间的连通性。使用 ICMP 的回送请求和回送回答报文,即由主机或路由器向一个特定的目的主机发出的询问,收到此报文的主机必须给源主机发送ICMP回送回答报文。
bogon:~ dante$ ping baidu.com
PING baidu.com (220.181.57.216): 56 data bytes
64 bytes from 220.181.57.216: icmp_seq=0 ttl=52 time=8.477 ms
64 bytes from 220.181.57.216: icmp_seq=1 ttl=52 time=6.015 ms
64 bytes from 220.181.57.216: icmp_seq=2 ttl=52 time=38.573 ms
64 bytes from 220.181.57.216: icmp_seq=3 ttl=52 time=13.032 ms
64 bytes from 220.181.57.216: icmp_seq=4 ttl=52 time=40.353 ms
网际组管理协议 IGMP(Internet Group Manage Protocol)
b.IP分类
IP地址 = <网络号>,<主机号>
分组转发算法
从数据报的首部提取目的主机的IP地址 D,从而获取网络地址 N。
若 N 与此路由器直连,则进行直接交付。否则,间接交付。
若路由表中有目标地址为D的特定路由,则数据发送到路由表中指明的下的路由器。否则,下一步。
若路由表中有一个默认路由,则把数据报传送到默认路由器。否则,转发分组错误。
子网寻址(划分子网)
将IP地址变成三级结构,只把IP地址的主机号部分进行划分,不改变原来的网络号。
IP地址 = <网络号>,<子网号>,<主机号>
子网掩码,用来计算子网地址的掩码,计算方式 IP 和 子网掩码 逐位相“与”。
例如:IP是 141.14.72.24,子网掩码是 255.255.192.0,计算出网络地址。
IP二进制 = 10001101 00001110 01001000 00011000
子网掩码 = 11111111 11111111 11000000 00000000
逐位相与 = 10001101 00001110 01000000 00000000
计算结果 = 141.14.64.0
分组转发:目的网络地址 + 子网掩码 + 下一跳地址
c.无分类编址 CIDR
IP地址 = <网络前缀> , <主机号>/<网络前缀的位数>
CIDR 地址块
网络地址前缀相同的连续的IP地址组成一个 “CIDR 地址块”。
128.14.35.7/20 = 10000000000011100010 0011 00000111
子网掩码
11111111111111111111 0000 00000000 = 255.255.240.0
最大、小地址
10000000000011100010 0000 00000000 = 128.14.32.0
10000000000011100010 1111 11111111 = 128.14.47.255
简写
10.0.0.0/10 简写为 10/10
分组转发
网络前缀 + 下一跳地址,选择具有最长网络前缀的路由。
d.路由选择协议
因特网将整个互联网划分为许多个较小的自治系统(Autonomous System),即 AS。
内部网关协议 IGP ,在一个自治系统内部使用的路由选择协议,例如 RIP 和 OSPF 协议。
RIP
分布式的基于距离向量的路由选择协议,按固定的时间间隔与相邻路由器交换信息。交换的信息是自己当前的路由表,即到达本AS系统中所有网络的最短距离,以及到每一个网络应经过的下一跳路由器。
OSPF
分布式链路状态协议,只在链路状态发生时,才向 AS 中的所有路由器发送链路状态信息。所有的路由器最终都能建立一个全网的拓扑结构图。
外部网关协议 BGP,源主机和目标主机处在不同的自治系统中的路由选择协议,例如 BGP 边界网关协议,致力于寻找一条能过到达目的网络且比较好的路由,而非要寻找一条最佳路由。BGP 采用了路径向量(Path Vector)路由选择协议。
因特网的规模太大,使得 AS 之间路由选择非常困难。在一个主干网路由器中,一个路由表中的项目数超过5万个网络前缀,若使用链路状态协议,则每个路由器都会维护一个很多的链路状态数据库。并且不同的 AS 评价标准不同,因此无法使用 RIP 协议。所以,对于不同的 AS 之间的路由选择,可在各个 AS 之间交换可达性(可达或不可达)信息。
AS 之间的路由选择必须考虑有关策略(政治、安全、经济等)。
例如:
国内站点的通信不需要经过国外的AS。
AS1 发送数据给 AS2,线路上经过 AS3 是最好选择,但 AS3 可能不愿意承受这部分的流量
BGP 发言人:每个 AS 中的 BGP 边界路由器通过一个共享网络(核心交换机)连接在一起。
邻站(neighbor或peer):不同 AS 的 BGP 发言人通过 TCP 建立连接,交换路由信息,被连接的两个 BGP 发言人彼此成为对方的邻站(或对等站)。
报文
BGP 有四种报文,如下:
OPEN 报文,用来和相邻的另一个 BGP 发言人建立关系,初始化通信。
UPDATE 报文,用来通告某一路由的信息,以及列出要撤销的多条路由。
KEEPALIVE 报文,用来周期性的证实邻站的连通性。
NOTIFACATION 报文,用来发送检测到的差错。
BGP 自治系统连通图
树形结构,不存在回路问题。
e. VPN
在公用网络上建立专用网络,进行加密通讯。一个机构要构建自己的 VPN 就必须为它的每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的VPN系统都知道其他场所的地址。
f. 网络地址转换 NAT
专有网内的本地IP,要和因特网上的主机进行通信,需要在专有网连接到因特网的路由器上安装 **NAT** 软件(NAT路由器),他至少具有一个全球唯一的外部IP。所有使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将本地地址转化为全球IP地址。
NAT路由器如何将目的IP转化成专用网内的哪一个本地IP,通过网络地址和端口号转换。
让我知道你在看