计算机网络知识点详解(持续更新...)

一、基本概述

何为计算机网络,计算网络是由若干结点和连接这些结点的链路组成。网络中的结点可以是计算机,集线器,交换机或路由器等。

ISP

ISP(internet service provider)译为互联网服务提供商,类似中国电信,中国移动,中国联通就是国内有名的ISP。ISP可以从互联网管理机构申请到很多IP地址,然后一些机构和个人从某个ISP获取IP地址的使用权,并可通过该ISP连接到互联网。

在这里插入图片描述
互联网交换点(IXP):为了更快地转发分组,IXP允许两个网络直接连接并交换分组,而不需要通过第三个网络来转发分组。例如上图中,主机A和主机B通过2个地区ISP连接起来了,就不必经过最上层的的主干ISP来转发分组。典型的IXP由一个或多个网络交换机组成。

计算机网络:三层ISP结构

电路交换与分组交换

电路交换用于电话通信系统,两个用户要通信之前需要建立一条专用的物理链路,并且在整个通信过程中始终占用该链路。由于通信的过程中不可能一直在使用传输线路,因此电路交换对线路的利用率很低,往往不到 10%。
每个分组都有首部和尾部,包含了源地址和目的地址等控制信息,在同一个传输线路上同时传输多个分组互相不会影响,因此在同一条传输线路上允许同时传输多个分组,也就是说分组交换不需要占用传输线路。

分组交换:在一个邮局通信系统中,邮局收到一份邮件之后,先存储下来,然后把相同目的地的邮件一起转发到下一个目的地,这个过程就是存储转发过程,分组交换也使用了存储转发过程。

电路交换和分组交换

时延

时延是指数据(一个报文或分组,甚至比特)从网络(或链路)的一端传送到另一端所需的时间。它是计算机网络的性能指标之一,包括:
总时延 = 排队时延 + 处理时延 + 发送时延 + 传播时延

排队时延

分组在路由器的输入队列和输出队列中排队等待的时间,取决于网络当前的通信量。

处理时延

主机或路由器收到分组时进行处理所需要的时间,例如分析首部、从分组中提取数据、进行差错检验或查找适当的路由等。

发送时延

发送时延是主机或路由器发送数据帧所需要的时间, 也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需要的时间。发送时延的计算公式为:
发送时延 = 数据帧长度(bit)/ 发送速率(bit/s)

传输时延

传播时延是电磁波在信道中传播一定的距离需要花费的时间。传播时延的计算公式的:
传播时延 = 信道长度(m)/ 电磁波在信道上的传播速率(m/s)

发送时延与传播时延有本质上的差别。发送时延发生在机器内部的发送器中(一般是发生在网络适配器中),与传播信道的长度无关。 而传播时延发生在机器外部的传播信道媒体上,与信号的发送速率无关。传播信道长度越长,传播时延就越大。

动画:什么是计算机网络时延

体系结构

在这里插入图片描述

每层协议

针对标准七层协议来说,每层协议如下:
物理层:RJ45、CLOCK、IEEE802.3 (中继器,集线器);
数据链路:PPP、FR、HDLC、VLAN、MAC (网桥,交换机);
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP、(路由器);
传输层:TCP、UDP、SPX;
会话层:NFS、SQL、NETBIOS、RPC;
表示层:JPEG、MPEG、ASII;
应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS。

协议对应的端口

每一种协议对应的端口:

协议 端口 TCP/UDP
DNS 53 tcp或udp
SMTP 25 tcp
POP3 110 tcp
HTTP 80 tcp
HTTPS 443 udp
TELNET 23 tcp
FTP 20/21 tcp
tftp 69 udp
IMAP 143 tcp
snmp 161 udp
snmptrap 162 udp

每层作用

每一层的作用如***意下面括号内文字):
物理层:通过媒介传输比特,确定机械及电气规范(比特Bit);
数据链路层:将比特组装成帧和点到点的传递(帧Frame);
网络层:负责数据包从源到宿的传递和网际互连(包PackeT);
传输层:提供端到端的可靠报文传递和错误恢复(段Segment);
会话层:建立、管理和终止会话(会话协议数据单元SPDU);
表示层:对数据进行翻译、加密和压缩(表示协议数据单元PPDU);
应用层:允许访问OSI环境的手段(应用协议数据单元APDU)。

数据在各层之间的传递过程

在向下的过程中,需要添加下层协议所需要的首部或者尾部,而在向上的过程中不断拆开首部和尾部。

路由器只有下面三层协议,因为路由器位于网络核心中,不需要为进程或者应用程序提供服务,因此也就不需要传输层和应用层。

二、IP地址的分类

在这里插入图片描述
ABC类地址对应的网络号、IP范围和主机数:
在这里插入图片描述

子网划分

一个有500台主机的网络,如果使用C类地址,则无法满足主机数量需求,使用B类地址则会造成IP地址的浪费。由此,需要在ABC类网络的基础上进行子网划分:即占用主机号的前几位表示子网号。子网掩码的概念由此被引入。
在这里插入图片描述
子网划分是通过借用IP地址中若干位主机地址来充当子网的网络地址,从而将原网络划分为若干子网。
划分子网时,随着子网地址借用主机位数的增多,子网的数目随之增加,但每个子网中的可用主机数逐渐减少。
如C类地址,原有8位主机位,2^8-2即254个主机地址,默认子网掩码255.255.255.0。(全0或全1不可用)
借用1位主机位,产生21=2个子网,每个子网有2^7个主机地址;
借用2位主机位,产生22=4个子网,每个子网有2^6个主机地址;
……
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
子网掩码中的 1 标识了 IP 地址中相应的网络号,0 标识了主机号。将 IP 地址和子网掩码进行逻辑与运算 ,结果就能得到网络号和子网号。
注意:外部网络看不到子网的存在。

子网划分及子网掩码计算方法

特殊用途IP地址

  1. 地址为127.0.0.1(127.0.0.1~127.0.0.255)用于本机测试
  2. 地址为0.0.0.0 严格意义上来说,0.0.0.0已经不是真正意义上的ip地址了。它表示的是这样一个集合,所有不清楚的主机和目的网络。这里的不清楚是指在本机的路由表里没有特定条目指明如何到达。
  3. 255.255.255.255 受限制的广播地址,对本机来说,这个地址指本网段内(同一个广播域)的所有主机,该地址用于主机配置过程中IP数据包的目的地址,这时主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也还不知道。
    在这里插入图片描述

三、通信方式

根据信息在传输线上的传送方向,分为以下三种通信方式:

单工通信:单向传输
半双工通信:双向交替传输
全双工通信:双向同时传输

单工、半双工和双工通信

四、以太网

以太网(Ethernet)和无线局域网(WLAN)

如何区分LAN,WAN,WLAN ,VLAN 和v*n?

五、各种协议的介绍

ICMP协议: 因特网控制报文协议。它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
TFTP协议: 是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
HTTP协议: 超文本传输协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
NAT协议:网络地址转换属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术,
DHCP协议:动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段,使用UDP协议工作。具体用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。

六、IP数据报文

IP地址目前有两个版本, 分别是IPv4和IPv6。 IPv4是一个32位的地址, 由于通信技术的发展导致近些年物联网/互联网的爆发, 使得基本上每一台智能设备都有联网的需求, 这样导致IPv4地址即将枯竭。 而IPv6的地址长度为128位, 是IPv4地址长度的4倍, 这基本上可以保证地球上每一粒沙子都可以有一个IP地址,所以国家最近也在大力推动IPv6的使用。
在这里插入图片描述
版本:IP协议的版本,目前的IP协议版本号为4,下一代IP协议版本号为6。
首部长度:IP报头的长度。固定部分的长度(20字节)和可变部分的长度之和。共占4位。最大为1111,即10进制的15,代表IP报头的最大长度可以为15个32bits(4字节),也就是最长可为15*4=60字节,除去固定部分的长度20字节,可变部分的长度最大为40字节。
服务类型:Type Of Service。
总长度:IP报文的总长度。报头的长度和数据部分的长度之和。
标识:唯一的标识主机发送的每一分数据报。通常每发送一个报文,它的值加一。当IP报文长度超过传输网络的MTU(最大传输单元)时必须分片,这个标识字段的值被复制到所有数据分片的标识字段中,使得这些分片在达到最终目的地时可以依照标识字段的内容重新组成原先的数据。
标志:共3位。R、DF、MF三位。目前只有后两位有效,DF位:为1表示不分片,为0表示分片。MF:为1表示“更多的片”,为0表示这是最后一片。
片位移:本分片在原先数据报文中相对首位的偏移位。(需要再乘以8)
生存时间:IP报文所允许通过的路由器的最大数量。每经过一个路由器,TTL减1,当为0时,路由器将该数据报丢弃。TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64。发送 ICMP 回显应答时经常把 TTL 设为最大值 255。
协议:指出IP报文携带的数据使用的是那种协议,以便目的主机的IP层能知道要将数据报上交到哪个进程(不同的协议有专门不同的进程处理)。和端口号类似,此处采用协议号,TCP的协议号为6,UDP的协议号为17。ICMP的协议号为1,IGMP的协议号为2.
首部校验和:计算IP头部的校验和,检查IP报头的完整性。
源IP地址:标识IP数据报的源端设备。
目的IP地址:标识IP数据报的目的地址。

七、ARP 和RARP

在这里插入图片描述

ARP

地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址。

基本原理:

  1. 首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
  2. 当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机 IP地址,源主机MAC地址,目的主机的IP 地址。
  3. 当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
  4. 源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。广播发送ARP请求,单播发送ARP响应。

RARP

RARP是将MAC物理地址转换成IP地址。RARP也有request与reply,并且RARP request也是广播,没有目标地址;RARP reply也是有目标地址,也是单播。这两点与ARP都相同。

工作原理:

  1. 将源设备和目标设备的MAC地址字段都设为发送者的MAC地址和IP地址,发送主机发送一个本地的RARP广播,能够到达网络上的所有设备,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址; ​
  2. 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址;
  3. 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用;如果不存在,RARP服务器对此不做任何的响应;
  4. 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。

ARP与RARP详细解析

ARP欺骗攻击

ARP欺骗攻击原理及其防御

八、路由协议

根据不同路由协议是否在路由更新中发送子网掩码,一般可将ip路由协议分为两大类:

  • 有类路由选择协议(早期使用,不发送子网掩码)(RIPv1、IGRP)
  • 无类路由选择协议(目前使用,发送子网掩码)(RIPv2、OSPF、EIGRP)

路由协议

九、IP 协议相关技术

IP 旨在让最终目标主机收到数据包,但是在这一过程中仅仅有 IP 是无法实现通信的。必须还有能够解析主机名称和 MAC 地址的功能,以及数据包在发送过程中异常情况处理的功能。

DNS

  • 我们平常在访问某个网站时不适用 IP 地址,而是用一串由罗马字和点号组成的字符串。而一般用户在使用 TCP/IP 进行通信时也不使用 IP 地址。能够这样做是因为有了 DNS (Domain Name System)功能的支持。DNS 可以将那串字符串自动转换为具体的 IP 地址。
  • 这种 DNS 不仅适用于 IPv4,还适用于 IPv6。

工作原理:当DNS客户机需要在程序中使用名称时,它会查询DNS服务器来解析该名称。客户机发送的每条查询信息包括三条信息:包括:指定的DNS域名,指定的查询类型,DNS域名的指定类别。基于UDP服务,端口53. 该应用一般不直接为用户使用,而是为其他应用服务,如HTTP,SMTP等在其中需要完成主机名到IP地址的转换。

域名系统(DNS)概述

ICMP

  • ICMP 的主要功能包括,确认 IP 包是否成功送达目标地址,通知在发送过程当中 IP 包被废弃的具体原因,改善网络设置等。
  • IPv4 中 ICMP 仅作为一个辅助作用支持 IPv4。也就是说,在 IPv4 时期,即使没有 ICMP,仍然可以实现 IP 通信。然而,在 IPv6 中,ICMP 的作用被扩大,如果没有 ICMPv6,IPv6 就无法进行正常通信。

ICMP协议详解

DHCP

  • 如果逐一为每一台主机设置 IP 地址会是非常繁琐的事情。特别是在移动使用笔记本电脑、只能终端以及平板电脑等设备时,每移动到一个新的地方,都要重新设置 IP 地址。
  • 于是,为了实现自动设置 IP 地址、统一管理 IP 地址分配,就产生了 DHCP(Dynamic Host Configuration Protocol)协议。有了 DHCP,计算机只要连接到网络,就可以进行 TCP/IP 通信。也就是说,DHCP 让即插即用变得可能。
  • DHCP 不仅在 IPv4 中,在 IPv6 中也可以使用。

NAT技术

  • NAT(Network Address Translator)是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。
  • 除转换 IP 地址外,还出现了可以转换 TCP、UDP 端口号的 NAPT(Network Address Ports Translator)技术,由此可以实现用一个全局 IP 地址与多个主机的通信。
  • NAT(NAPT)实际上是为正在面临地址枯竭的 IPv4 而开发的技术。不过,在 IPv6 中为了提高网络安全也在使用 NAT,在 IPv4 和 IPv6 之间的相互通信当中常常使用 NAT-PT。

NAT(地址转换技术)详解

在这里插入图片描述

IP 隧道

在这里插入图片描述

  • 如上图的网络环境中,网络 A 与网络 B 之间无法直接进行通信,为了让它们之间正常通信,这时必须得采用 IP 隧道的功能。
  • IP 隧道可以将那些从网络 A 发过来的 IPv6 的包统合为一个数据,再为之追加一个 IPv4 的首部以后转发给网络 C。
  • 一般情况下,紧接着 IP 首部的是 TCP 或 UDP 的首部。然而,现在的应用当中“ IP 首部的后面还是 IP 首部”或者“ IP 首部的后面是 IPv6。

TCP/IP协议

虚拟专用网

虚拟专用网

十、TCP和UDP的区别

TCP和UDP的最完整的区别

十一、TCP三次握手和四次挥手

三次握手过程、为什么不是两次一次握手:用动画给面试官解释 TCP 三次握手过程
用动画给女朋友讲解 TCP 四次分手过程

图解 TCP 三次握手和四次挥手面试题

关于三次握手与四次挥手面试官想考什么

十二、TCP粘包问题

什么是TCP粘包?怎么解决这个问题

十三、重传机制、滑动窗口、流量和拥塞控制

在这里插入图片描述

全:图解重传机制、滑动窗口、流量控制、拥塞控制

推荐:TCP流量控制和拥塞控制

流量控制和拥塞控制区别

十四、TCP如何实现可靠传输

  1. 校验和:TCP 将保持它首部和数据的检验和,这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP 将丢弃这个报文段和不确认收到此报文段;
  2. 将数据切割成合理的长度(应用数据被分割成 TCP 最认为适合发送的数据块大小)
  3. 有序接受(TCP 给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层)
  4. 丢弃重复的数据(TCP 的接收端会丢弃重复的数据)
  5. 流量控制: TCP 连接的每一方都有固定大小的缓冲空间,TCP 接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据时,能提示发送方降低发送的速率,防止包丢失。TCP 使用的流量控制协议是可变大小的滑动窗口协议 ( TCP 利用滑动窗口实现流量控制);
  6. 拥塞控制: 当网络拥塞时,减少数据的发送;
  7. ARQ 协议: 也是为了实现可靠传输的,它的基本原理就是每发完一个分组就停止发送,并等待对方确认,在收到确认之后,再发下一个分组;
  8. 超时重传: 当 TCP 发出一个段后,会启动一个定时器,等待目的端确认收到这个报文段,如果不能及时收到这个确认,那么将重发这个报文段。

附:TLV封包与解包详解

十五、UDP如何实现可靠传输

  1. 超时重传(定时器)
  2. 有序接受 (添加包序号)
  3. 应答确认(Seq/Ack应答机制)
  4. 流量控制(滑动窗口协议)

十六、浏览器中输入网址后执行的全部过程

在浏览器地址栏输入一个URL后回车,背后会进行哪些技术步骤

十七、交换机、路由器和网关概念以及用途

交换机

在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背 部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部 交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表 中。
交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过ARP协议学习它的MAC地址,保存成一张 ARP表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不 能划分网络层广播,即广播域。
交换机被广泛应用于二层网络交换,俗称“二层交换机”。
交换机的种类有:二层交换机、三层交换机、四层交换机、七层交换机分别工作在OSI七层模型中的第二层、第三层、第四层盒第七层,并因此而得名。

路由器

路由器(Router)是一种计算机网络设备,提供了路由与转送两种重要机制,可以决定数据包从来源端到目的端所经过 的路由路径(host到host之间的传输路径),这个过程称为路由;将路由器输入端的数据包移送至适当的路由器输出端(在路由器内部进行),这称为转送。路由工作在OSI模型的第三层——即网络层,例如网际协议。
路由器的一个作用是连通不同的网络,另一个作用是选择信息传送的线路。 路由器与交换器的差别,路由器是属于OSI第三层的产品,交换器是OSI第二层的产品(这里特指二层交换机)。

附:交换机和路由器之间区别

网关

网关(Gateway),网关顾名思义就是连接两个网络的设备,区别于路由器(由于历史的原因,许多有关TCP/IP 的文献曾经把网络层使用的路由器(Router)称为网关,在今天很多局域网采用都是路由来接入网络,因此现在通常指的网关就是路由器的IP),经常在家 庭中或者小型企业网络中使用,用于连接局域网和Internet。 网关也经常指把一种协议转成另一种协议的设备,比如语音网关。

在传统TCP/IP术语中,网络设备只分成两种,一种为网关(gateway),另一种为主机(host)。网关能在网络间转递数据包,但主机不能 转送数据包。在主机(又称终端系统,end system)中,数据包需经过TCP/IP四层协议处理,但是在网关(又称中介系 统,intermediate system)只需要到达网际层(Internet layer),决定路径之后就可以转送。在当时,网关 (gateway)与路由器(router)还没有区别。

在现代网络术语中,网关(gateway)与路由器(router)的定义不同。网关(gateway)能在不同协议间移动数据,而路由器(router)是在不同网络间移动数据,相当于传统所说的IP网关(IP gateway)。
网关是连接两个网络的设备,对于语音网关来说,他可以连接PSTN网络和以太网,这就相当于VOIP,把不同电话中的模拟信号通过网关而转换成数字信号,而且加入协议再去传输。在到了接收端的时候再通过网关还原成模拟的电话信号,最后才能在电话机上听到。
对于以太网中的网关只能转发三层以上数据包,这一点和路由是一样的。而不同的是网关中并没有路由表,他只能按照预先设定的不同网段来进行转发。网关最重要的一点就是端口映射,子网内用户在外网看来只是外网的IP地址对应着不同的端口,这样看来就会保护子网内的用户。

集线器、交换机与路由器

集线器、交换机与路由器有什么区别?

十八、http

【漫画】https 加密那点事

万字长文:看完这篇HTTP,跟面试官扯皮就没问题了

HTTP总结

未完待续…

========================================================

参考链接

牛客网

https://github.com/CyC2018/CS-Notes/blob/master/notes/HTTP.md