网络总结
网络层次划分
为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在 1978 年提出了"开放系统互联参考模型",即著名的 OSI/RM 模型(Open System Interconnection/Reference Model)。
除了标准的 OSI 七层模型以外,常见的网络层次划分还有 TCP/IP 四层协议以及 TCP/IP 五层协议,它们之间的对应关系如下图所示:
在网络体系结构中网络通信的建立必须是在通信双方的对等层进行,不能交错。
在整个数据传输过程中,数据在发送端时经过各层时都要附加上相应层的协议头和协议尾(仅数据链路层需要封装协议尾)部分,也就是要对数据进行协议封装,以标识对应层所用的通信协议。
不同层的数据包如下
- 在四层,既传输层数据被称作段(Segments);
- 三层网络层数据被称做包(Packages);
- 二层数据链路层时数据被称为帧(Frames);
- 一层物理层时数据被称为比特流(Bits)。
OSI 七层模型
在理论上,还有一个 OSI 七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。这是一个理想模型,由于其复杂性并没有被大家广泛采用。
物理层(Physical Layer)
激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。物理层记住两个重要的设备名称,中继器(Repeater,也叫放大器)和集线器。
数据链路层(Data Link Layer)
数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路必须具备一系列相应的功能,主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
有关数据链路层的重要知识点:
- 数据链路层为网络层提供可靠的数据传输;
- 基本数据单位为帧;
- 主要的协议:以太网协议;
- 两个重要设备名称:网桥和交换机。
网络层(Network Layer)
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。如果您想用尽量少的词来记住网络层,那就是"路径选择、路由及逻辑寻址"。
网络层中涉及众多的协议,其中包括最重要的协议,也是 TCP/IP 的核心协议——IP 协议。IP 协议非常简单,仅仅提供不可靠、无连接的传送服务。IP 协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。与 IP 协议配套使用实现其功能的还有地址解析协议 ARP、逆地址解析协议 RARP、因特网报文协议 ICMP、因特网组管理协议 IGMP。具体的协议我们会在接下来的部分进行总结,有关网络层的重点为:
- 网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能;
- 基本数据单位为 IP 数据报;
- 包含的主要协议:
- IP 协议(Internet Protocol,因特网互联协议);
- ICMP 协议(Internet Control Message Protocol,因特网控制报文协议);
- ARP 协议(Address Resolution Protocol,地址解析协议);
- RARP 协议(Reverse Address Resolution Protocol,逆地址解析协议)。
- 重要的设备:路由器。
传输层(Transport Layer)
第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。 传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。 网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。 有关网络层的重点:
- 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;
- 包含的主要协议:TCP 协议(Transmission Control Protocol,传输控制协议)、UDP 协议(User Datagram Protocol,用户数据报协议);
- 重要设备:网关。
会话层
会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
表示层
表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。
应用层
为操作系统或网络应用程序提供访问网络服务的接口。
会话层、表示层和应用层重点:
- 数据传输基本单位为报文;
- 包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3 协议(邮局协议),HTTP 协议(Hyper Text Transfer Protocol)。
ARP/RARP 协议
地址解析协议,即 ARP(Address Resolution Protocol),是根据 IP 地址获取物理地址的一个 TCP/IP 协议。主机发送信息时将包含目标 IP 地址的 ARP 请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该 IP 地址和物理地址存入本机 ARP 缓存中并保留一定时间,下次请求时直接查询 ARP 缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送 ARP 应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机 ARP 缓存;由此攻击者就可以向某一主机发送伪 ARP 应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个 ARP 欺骗。ARP 命令可用于查询本机 ARP 缓存中 IP 地址和 MAC 地址的对应关系、添加或删除静态对应关系等。
ARP 工作流程举例:
主机 A 的 IP 地址为 192.168.1.1,MAC 地址为 0A-11-22-33-44-01;
主机 B 的 IP 地址为 192.168.1.2,MAC 地址为 0A-11-22-33-44-02;
当主机 A 要与主机 B 通信时,地址解析协议可以将主机 B 的 IP 地址(192.168.1.2)解析成主机 B 的 MAC 地址,以下为工作流程:
- 根据主机 A 上的路由表内容,IP 确定用于访问主机 B 的转发 IP 地址是 192.168.1.2。然后 A 主机在自己的本地 ARP 缓存中检查主机 B 的匹配 MAC 地址。
- 如果主机 A 在 ARP 缓存中没有找到映射,它将询问 192.168.1.2 的硬件地址,从而将 ARP 请求帧广播到本地网络上的所有主机。源主机 A 的 IP 地址和 MAC 地址都包括在 ARP 请求中。本地网络上的每台主机都接收到 ARP 请求并且检查是否与自己的 IP 地址匹配。如果主机发现请求的 IP 地址与自己的 IP 地址不匹配,它将丢弃 ARP 请求。
- 主机 B 确定 ARP 请求中的 IP 地址与自己的 IP 地址匹配,则将主机 A 的 IP 地址和 MAC 地址映射添加到本地 ARP 缓存中。
- 主机 B 将包含其 MAC 地址的 ARP 回复消息直接发送回主机 A。
- 当主机 A 收到从主机 B 发来的 ARP 回复消息时,会用主机 B 的 IP 和 MAC 地址映射更新 ARP 缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机 B 的 MAC 地址一旦确定,主机 A 就能向主机 B 发送 IP 通信了。
逆地址解析协议,即 RARP,功能和 ARP 协议相对,其将局域网中某个主机的物理地址转换为 IP 地址。
比如局域网中有一台主机只知道物理地址而不知道 IP 地址,那么可以通过 RARP 协议发出征求自身 IP 地址的广播请求,然后由 RARP 服务器负责回答。
RARP 协议工作流程:
- 给主机发送一个本地的 RARP 广播,在此广播包中,声明自己的 MAC 地址并且请求任何收到此请求的 RARP 服务器分配一个 IP 地址;
- 本地网段上的 RARP 服务器收到此请求后,检查其 RARP 列表,查找该 MAC 地址对应的 IP 地址;
- 如果存在,RARP 服务器就给源主机发送一个响应数据包并将此 IP 地址提供给对方主机使用;
- 如果不存在,RARP 服务器对此不做任何的响应;
TCP/IP 协议
TCP/IP 协议是 Internet 最基本的协议、Internet 国际互联网络的基础,由网络层的 IP 协议和传输层的 TCP 协议组成。通俗而言:TCP 负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而 IP 是给因特网的每一台联网设备规定一个地址。
详情看TCP 协议
详情看IP 协议
UDP 协议
详情看UDP 协议
DNS 协议
DNS 是域名系统(DomainNameSystem)的缩写,该系统用于命名组织到域层次结构中的计算机和网络服务,可以简单地理解为将 URL 转换为 IP 地址。域名是由圆点分开一串单词或缩写组成的,每一个域名都对应一个惟一的 IP 地址,在 Internet 上域名与 IP 地址之间是一一对应的,DNS 就是进行域名解析的服务器。DNS 命名用于 Internet 等 TCP/IP 网络中,通过用户友好的名称查找计算机和服务。
域名服务器一般监听在端口 53 上。
NAT 协议
NAT 网络地址转换(Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法 IP 地址的转换技术,它被广泛应用于各种类型 Internet 接入方式和各种类型的网络中。原因很简单,NAT 不仅完美地解决了 lP 地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
DHCP 协议
DHCP 动态主机设置协议(Dynamic Host Configuration Protocol)是一个局域网的网络协议,使用 UDP 协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配 IP 地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
HTTP 协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。
详情看HTTP 协议
网络性能指标
速率
在计算机与计算机之间通信时传输数据位数的速率 单位 bit/s 1 bit 也就是 1 位
|
|
我们人们常说的我的网络是 8M 为什么下载速度只有 1M/S 呢?
这里的 8M,单位是 Mb,也就是按位来算的, 而下载速度是按字节算的 8M = 8000Kb = 8000,000bit = 1000,000 byte ≈1000kb ≈1M
所以一般都市直接除以 8,8M 的网络下载速度就是 1M/s 100M 的网下载速度也就 10M/s
带宽
接口支持最高的传输速率, 也就是我们的带宽是 8M, 带宽是 100M. 就是最高支持一次传输 8M,自己换算一下,能传多个位。
吞吐量
单位时间内通过某个网络的数据量
简单的说,就是通过一根网线一次性传输的多少个位,最高位就是带宽,但不是每次传输都达到了带宽值,有可能通过的只有 3M,5M,都不一定,通过的量就是我们说的吞吐量
时延
发送时延、传播时延、处理时延、排队时延
发送时延 = 数据块长度(bit)/信道宽度(bit/s)
过一个特定情景来讲解
A—————-路由器———————B
A 发送 0101010101(10bit)数据到 B 带宽是 10bit/s A 距离 B 100 米 信号在信道上的传播速率 10 米/s
当从开始发送 1 到最后一个 0 从 A 的网卡中出来结束,发送时延 = 10bit/10bit/s = 1s
传播时延 = 信道长度(米)/信号在信道上传播速率(米/秒)
传播时延:从 A 发送 1 开始,到路由器,接受最后一个 0 结束,这一段也算是传播时延,路由器到 B 之间也是 100/10 = 10 秒。 在电线上花费的时间是 10 秒
排队时延:路由器接受数据,有一个缓冲区,相当于队列,数据到路由器,先到缓冲区排队等待路由器一个个接受数据,直到路由器开始接受第一个位,这就是排队时延,从路由器出来也需要排队时延
处理时延:路由器开始接受第一个位,这就开始处理数据了,到最后一个位接受完,这之间就是处理时延
时延带宽积
其实也就是在信道中有多少位数据在其中,用的是带宽,也就是最高的数据。
传播时延 * 带宽
往返时间
从 A 到 B,在 B 返回数据到 A,之间用了多少时间
使用命令 ping www.baidu.com 从我们浏览器到存放百度地址的主机,然后返回数据到我们计算机需要的时间
参考
https://tonydeng.github.io/sdn-handbook/basic/tcpip.html
https://www.runoob.com/w3cnote/summary-of-network.html