【计算机网络】计算机网络核心知识点

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 【计算机网络】计算机网络核心知识点

1.计算机网络分类

  • 按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN)
  • 按照网络使用者:公用网络、专用网络

2.计算机网络的层次结构

(1)OSI 七层模型 Open System Interconnection 七层模型

005922377efe48dcabf9db647b9a0f0b.jpg(2)TCP/IP四层模型与OSI体系结构对比


c0ec0a2202024e8b96eed52c30c90968.jpgTCP/IP 四层模型 Transmission Control Protocol/Internet Protocol)四层模型

  • 应用层:负责应用程序之间的沟通,如 HTTP、FTP、DNS 等
  • 传输层:负责两台主机之间的数据传输,端到端通信,如 TCP、UDP 等
  • 网际层:负责网络包的封装、寻址和路由,如 IP 等
  • 网络接口层:负责网络包在物理网络中的传输,如 MAC 寻址转化、通过网卡传输网络数据帧等

3.层次结构设计的基本原则

  • 各层之间是相互独立的
  • 每一层需要有足够的灵活性
  • 各层之间完全解耦

92fbe6118ff14f979ecb9ebefe7ef9bc.jpg

  • 网络分层模型下,数据在各层之间的传输
  • 发送数据包
  • 在网络协议栈中从上到下逐层处理,最终送到网卡发送出去
  • 接收数据包
  • 需要经过网络协议栈从下到上的逐层处理,最后送到应用程序中使用
  • 注意
  • 应用层是直接面向用户的一层,为应用程序提供统一协议的接口,但不是应用程序
  • 目的是保障不同类型的应用采用的低层通信协议是一致的
  • 6b712dd669fa4fe88b1b543e6f8add8e.jpg
  • 分层的好处:
  • 每层分工明确,利用单一职责模式和责任链模式
  • 开发人员 负责 编写应用层 业务代码
  • 操作系统 负责 建立网络连接、可靠性传输
  • 交换机路由器 负责 物理媒介上传输二进制格式
  • 传输层协议和网际层协议有什么区别
  • 网际层协议负责提供主机间的逻辑通信
  • 互联网上N多台设备,通过IP地址识别通信主机,网络层可以具体定位到哪台设备
  • 网络层的只检验IP数据报首部中的校验和字段是否出现差错,而不检查数据部分
  • 传输层协议负责提供进程间的逻辑通信
  • 一个主机上N多进程,通过端口号识别应用层进程,传输层可以具体定位到哪个进程
  • 需要对收到的报文更进一步进行差错检测

4.网络层核心知识

(1)什么是IP协议(Internet Protocol)

  • IP协议是一种工作在网际层的网络协议,定义如何将数据包从一台计算机传输到另一台计算机。提供一种通用的方法来在网络中传输数据,提供不可靠、无连接的传送服务
  • App发送请求,达到运营商的交换机,交换机根据IP地址在进行路由转发(多次),最后达到目标服务器。IP协议用途是把数据包投递过去,但不确保数据一定送达,可以用传输层TCP协议的机制做可靠性传输。IP协议是其他协议的基础,比如TCP和UDP。

32ac1b3b94e64f5283c67dfe27a1a2fb.jpg

(2)IP协议的用途

  • 寻址和路由
  • IP数据报中有源IP地址和目的IP地址,表示数据包的源主机和目标主机。
  • 数据报在传输过程中,每隔中间的网络节点比如IP网关/路由器等,都是根据网络地址来进行转发的,直至目标主机。
  • 分片和重组
  • 数据报传输过程中会经过不同的网络,不同的网络环境中数据报的最大长度限制是不同的。
  • 通过给每个IP数据报分配一个标识符和分段组装信息,可以让数据报在不同的网络中能够被传输。
  • 被分段的IP数据报可以独立在网络中进行转发,在达到目标主机后由目标主机完成重组工作,恢复程原来的I数据报。

(3)网络层相关协议

  • IP协议(Internet Protocol,因特网互联协议);
  • ICMP协议(Internet Control Message Protocol,因特网控制报文协议)

ARP协议(Address Resolution Protocol,地址解析协议)

RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)

(4)IP地址分类

  • ip地址由4个小段,每个小段由8个bit,即四个字节组成共32位。例如 192.168.0.0 (二进制1100 0000, 1010 0000, 0000 0000, 0000 0000)。
  • IP 地址 = {<网络号>,<主机号>}
  • 网络号:属于互联网的哪一个网络
  • 主机号:属于该网络中的哪一台主机
类别 描述(商业应用中只用到A、B、C三类)
A类 0开头,前8为网络号,后24位的主机号;即0.0.0.0到127.255.255.255
B类 10开头,前16为网络号,后16位的主机号;即128.0.0.0到191.255.255.255
C类 110开头,前24为网络号,后8位的主机号,即192.0.0.0到223.255.255.255
D和E类 留作未来社会的应用,或做一些实验用到
  • 全球现有的IPv4地址一共有2的32次方个,估算约为42.9亿个,除去一些特用的IP和一些不能用的IP,剩下可用的不到40亿

(5)如果IPv4地址不够用怎么办

  • DHCP技术
  • 动态主机配置协议,动态分配IP地址,指给接入网络的设备分配IP地址。
  • 同一个MAC地址的设备,每次接入互联网时,得到的IP地址可能不一样
  • NAT技术
  • 网络地址转换协议,不同局域网的主机可以使用相同的IP地址,一定程度上缓解了IP资源枯竭的问题。
  • 局域网中使用的IP地址是不能在公网中使用的,当局域网主机想要与公网主机进行通信时,将主机IP地址转换为全球IP地址
  • 原理
  • 从局域网出去的IP数据报,将其IP地址替换为NAT服务器拥有的合法的公共IP地址,并将替换关系记录到NAT映射表
  • 从公共互联网返回IP数据报,根据目的IP地址查找NAT映射表,把内部局域网IP地址替换目的IP地址,转发到内部网络。
  • IPV6
  • 作为接替IPv4的下一代互联网协议,可以实现2的128次方个地址,
  • 即使给地球上每一粒沙子都分配一个IP地址也够用,从根本上解决IPv4地址不够用的问题

(6)什么是MAC地址(Media Access Control Address)

  • 用来定义网络设备的位置,也叫硬件地址,每一个电脑设备都有唯一的Mac地址共48位,使用十六进制表示。
  • MAC地址在世界是唯一的,通常表示12个16进制数。

3b2059a2e9e047a696bc655b5064f693.jpg

ARP协议

  • Address Resolution Protocol,地址解析协议,实现 IP 地址到 MAC 地址的映射,ARP表是自动建立,不需要配置
  • 为网卡的IP地址到对应的硬件地址提供动态映射, 把网络层32位地址转化为数据链路层MAC的48位地址
  • RARP协议
  • Reverse Address Resolution Protocol 逆地址解析协议,把数据链路层MAC的48位地址 转化为 网络层32位地址

(7)IP和Mac的区别

  • MAC地址是数据链路层和物理层使用的地址,写在网卡上的物理地址,不可变更。
  • IP地址是网络层使用的地址,是一种逻辑地址,用来区别网络上的计算机

5.传输层核心知识

(1)什么是传输层

  • 网络层把数据发到对应的节点,传输层则进一步将数据可靠的传送到对应的端口。
  • 使用端口区分不同的进程,信息传送的协议数据单元称为段或报文。
  • 主要的协议:TCP和UDP
  • (2)UDP协议(User Dataram Protocol用户数据报协议)
  • 面向无连接的协议,它不需要建立连接,就可以发送数据。
  • 协议不需要握手,因此发送数据的速度最快,传输效率更高。
  • 不提供可靠性,因为它不会检查发送的数据是否损坏或丢失,所以可能会发生数据丢失或损坏的情况。
  • 支持多种应用,如视频会议、在线游戏等,它可以提供实时性和可靠性。


d0c29a61f5954c7880aa535724317690.jpg

(3)TCP协议 (Transmission Control Protocol 传输控制协议)

  • 面向连接:TCP是面向连接的协议,在正式收发数据前,必须建立可靠的连接。
  • 可靠性:TCP协议提供了丰富的可靠性机制,如检验、确认和重传等,来确保数据的正确性。
  • 流量控制:提供了流量控制机制,可以防止发送方发送数据速度过快,从而使接受方来不及处理,从而确保网络的稳定性。
  • 拥塞控制:提供了拥塞控制机制,可以防止网络拥塞,从而提高网络的吞吐量。
  • 常用于传输文件、电子邮件、FTP等服务,能够校验数据的完整性,以保证数据不被破坏。


faa0465a2b234716bdc8a3d9cbe4babe.jpg

  • 协议部分解析
  • 源端口号:报文的发送端口
  • 目的端口号:报文的接收端口
  • 序号(seq):在TCP传送的数据流都有一个序号
  • 在SYN标志是1时,表示初始发送的序列号
  • 确认号(ack):期望收到对方下次发送的数据的第一个字节的序号,是上次已成功收到数据字节序号+1
  • 例如发送确认号为1001,则表示前1000个字节已经被确认接收
  • 标志位(控制位,方便后续了解TCP三次握手)
  • URG (urgent紧急,很少用)

当URG=1时,此报文应尽快传送

RST (reset重置)

重置复位标志,用于复位对应的TCP连接

RST一般是在FIN之后才会出现为1的情况,表示的是连接重置

FIN (finish结束)

结束标志,用于结束一个TCP会话,释放连接

PSH (push传送)

指数据包到达接收端以后,不对其进行队列处理,尽快把数据交给应用程序处理

常规数据发送流程

主机发送数据时,会放在TCP缓冲区中,直到该段达到一定大小,然后发送到接收器

当段到达接收端时,被放置在TCP传入缓冲器中,会等待直到其他段到达,完成后数据就被传递到应用层

这种设计保证数据传输尽可能高效,将它们组合成一个或多个较大的片段,节省时间和带宽

上述流程大多数情况下是没问题的,但是有些则需要尽快处理,所以有这个标识位

ACK (acknowledgement 确认)

确认标志,1表示确认收到请求,0表示未确认

SYN( 同步序列编号Synchronize Sequence Numbers)

SYN标志位和ACK标志位搭配使用,用来建立连接

当连接请求的时候,SYN=1,ACK=0,代表连接开始但是未获得响应

当连接被响应的时候,标志位中ACK会置为1 代表确认收到连接请求,变成了SYN=1,ACK=1

SYN与FIN不会同时为1的,因为前者 表示的是建立连接,而后者表示的是断开连接

6.MTU-MSS介绍

(1)什么是MTU(Maximum Transmission Unit)

  • MTU是指在网络中,单个数据包能够传输的最大字节数,数据链路层提供给上层网络最大一次传输大小。
  • 是网络设备在处理数据包时所能支持的最大封装单元大小(不同网卡的MTU也是不一样的)。
  • 以太网数据链路层中约定的数据载荷部分最大长度,数据不超过它时就无需分片。
  • MTU值越大传输的速率就越快,但也会增加网络的延迟
  • 数据包从发送端传输到接收端,要经过多个网络,每条网络的MTU都可能不一样,通信过程中最小的MTU称为路径MTU

(2)什么是MSS(Max Segment Size,是TCP最大报文段大小)

  • 是一个TCP报文段中包含的最大字节,传输层TCP提交给网络层最大分段大小。
  • TCP在传输大量数据时以MSS的大小将数据进行分割发送,重发时也是以MSS位单位。
  • MSS的值由发送端和接收端在建立连接的请求时,会在TCP首部中写入MSS选项,告诉对方自己的接口能够适应的MSS的大小。
  • MSS = MTU -IP header头大小 - TCP头大小
  • TCP的MSS最大值是:以太网MSS = 1500(MTU)-20(IP首部长度)-20(TCP首部大小) = 1469字节

(3)TCP和UDP每次能够传输的最大长度是多少?

以太网数据包(packet)的大小是固定1522字节

其中22字节是头信息(head), 1500 字节是负载(payload)

IP 数据包在以太网数据包的负载里面,它也有自己的头信息20字节,所以 IP 数据包的负载最多为1480字节

TCP 数据包在 IP 数据包的负载里面,它的头信息最少也需要20字节,所以 TCP 数据包的最大负载是 1480 - 20 = 1460 字节

但 IP 和 TCP 协议往往有额外的头信息,所以 TCP 负载实际为1400字节左右

UDP 数据包每次能够传输的最大长度 MSS = MTU(1500B)- IP头(20B) - UDP头(8B) = 1472(Bytes)

TCP 数据包每次能够传输的最大长度 MSS = MTU(1500B) - IP头(20B) - TCP头(20B) = 1460 (Bytes)

发送10MB数据包,最终应用程序是怎样获取数据的?

假如发送一个 10MB 的文件,因为一个包最多1400字节,就必须分成多个包,起码需要发送7100多个包。

注意:数据包大小在不同协议不一样,HTTP/2对比HTTP/1有优化压缩 HTTP协议的头信息。

服务器的操作系统会把收集的数据包组装完成,根据TCP包的端口转给应用程序,应用程序不用关心数据通信的细节。

7.计算机网络的核心指标

  • 比特是计算机中的数据量单位,一个比特是一个1或一个0
  • 1Byte(字节)=8bit(比特) 字节的简写为B,比特简写为b
  • 小写b和大写B分别对应大小单位bit(比特)和byte(字节)

(1)速率

  • 连接在计算机网络上的主机在数字信道上传送比特的速率,也称为比特率或速率。
  • 单位:bit/s(b/s,bps) 或 kb/s = 10³ b/s(小写k指10³
  • 案例
  • 假如 数据块大小 100MB,网卡发送速率是100Mbps,发送时间大体是 8秒多
  • 100MB*8 / 100Mbps 约等于 8秒, 特别注意:1/8(B/s)=b/s,即1B=8bit,平时计算需要单位换算

(2)带宽

  • 网络通信线路所能传送数据的能力,在单位时间内从网络中的某一点到另一点所能通过的“最高数据率”,单位同速率也是bps
  • 案例
  • 家里带宽为800M,是指800Mbps或800Mb/s,真实速度其实要在带宽的基础上除以8即,800Mbps/8=100M/s
  • 用户在网上下载时显示的速率单位往往是Byte(字节)/s(秒),注意是大写字母B,字节和比特之间的关系为1Byte=8Bits;
  • (3)吞吐量
  • 单位时间内通过某个网络(或信道、接口)的实际的数据量,单位通常为 b/s(比特 / 秒)或者 B/s(字节 / 秒)
  • 吞吐量受带宽限制,吞吐量 / 带宽,就是该网络的使用率
  • 常用的网络吞吐率的单位有

PPS(即每秒发送多少个分组数据包)Packet Per Second(包 / 秒)表示以网络包为单位的传输速率

云服务器实例每秒最多可以处理的网络数据包数量(包括收发包两个方向)

网络收发包用于衡量云服务器的网络质量,PPS数值越大网络性能越好

  • BPS(Bytes Per Second)即每秒发送多少字节
  • bPS (bits Per Second )即每秒发送多少比特

(4)时延

  • 指数据(一个报文或分组,甚至比特)从网络的一端传送到另一端所需的时间
  • 源主机和目的主机之间路径会由多个链路和多个路由器组成,网络时延主要由 发送+传播+处理时延组成

(5)往返时间RTT

  • 从源主机发送信号到目标主机,目标主机接收信号再返回到源主机所需要时间(一个来回)

(6)丢包率

  • 丢包率即分组丢失率,是指在一定的时间范围内,传输过程中丢失的分组数量与总分组数量的比率。
  • 场景 :老王打王者荣耀游戏时丢包造成游戏卡顿

8.ifconfig命令简介

  • 展示网络信息和网卡接口手法数据包的统计信息

b2753d159d5245b095faef8718e9b4cf.jpg

字段 说明
flags=4163<UP,BROADCAST,RUNNING,MULTICAST> RUNNING 表示物理网络是连通的,网卡已连接到交换机或路由器。如果没有,通常表示网线被拔掉
mtu 最大的传输单元,默认大小是 1500
inet ipv4地址,ECS实例绑定弹性公网IP(EIP)后,操作系统中只显示私网IP地址,不显示EIP的公网IP地址 公网IP存在于网关设备,并不在ECS实例的网卡上,所以在操作系统内看不到公网IP,只能看到网卡上的私网IP
netmask 子网的掩码
broadcast 广播地址
ether mac地址
RX,TX 接收和发送的数据包的个数 或 字节数
packets 包数
bytes 字节数
errors 表示发生错误的数据包数,比如校验错误等
dropped 表示丢弃的数据包数
overruns 表示超限数据包数,网络 I/O 速度过快,数据包来不及处理而导致的丢包
carrier 表示发生 carrirer 错误的数据包数,比如物理电缆出现问题等
collisions 表示碰撞数据包数

9.网络统计分析命令netstat

(1)netstat命令简介

  • 内核中访问网络及相关信息的命令,显示与IP、TCP、UDP和ICMP协议相关的统计数据,检验本机各端口的网络连接情况
参数 说明
-r –route,显示路由表信息
-n -n选项禁用域名解析功能,默认情况下netstat会通过反向域名解析技术查找每个ip地址对应的主机名
-s –statistics,按照每个协议来分类进行统计
-p –programs,与链接相关程序名和进程的PID
-l –listening,显示所有监听的端口
-a -all,显示所有链接和监听端口
-u –udp 显示UDP传输协议的连接状况
-t –tcp 显示TCP传输协议的连接状况
-i –interfaces,显示网卡界面信息

(2)应用场景

  • netstat -anp :显示系统端口使用和进程情况
  • netstat -anp |grep 端口 :显示指定系统端口使用和进程情况

72f714c7efff4435bdda4cac45ea5e9f.jpg

8e8a0010d6fc409880e4a60a51d847c2.jpg

  • netstat -nupl:UDP类型的端口

a05310e2066d479aaad7df5fdba46fe3.jpg

  • netstat -ntpl:TCP类型的端口
  • netstat -na|grep ESTABLISHED|wc -l:统计已连接上的,状态为"established"

a1e6d658850e445b95ca451f7c178ae6.jpg

  • netstat -l:只显示所有监听端口


6abc40676d9e4d5192f9509a10e1abee.jpg

  • netstat -lt:只显示所有监听tcp端口

f56793b3c836409a905d4bd955238105.jpg

  • netstat -atnlp 常用固定参数命令

image.png

(3)state状态简介

  • LISTEN(socket进行监听)
  • SYN_SENT(客户端tcp发送一个SYN以请求建立一个连接.之后状态)
  • SYN_RECV(服务端发出ACK确认客户端的 SYN 后状态置为SYN_RECV)
  • ESTABLISHED(打开的连接,双方可以进行或已经在数据交互)
  • FIN_WAIT1(主动关闭端应用程序调用close,TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态)
  • CLOSE_WAIT(被动关闭端TCP接到FIN后,发出ACK以回应FIN请求,并进入CLOSE_WAIT)
  • FIN_WAIT2(主动关闭端接到ACK后,就进入了FIN-WAIT-2)
  • LAST_ACK(被动关闭端一段时间后程序将调用CLOSE关闭连接,TCP发送一个 FIN,等待对方的ACK.进入LAST-ACK)
  • TIME_WAIT(在主动关闭端接收到FIN后,TCP 就发送ACK包,并进入TIME-WAIT状态)
  • CLOSING(少见,等待远程TCP对连接中断的确认)
  • CLOSED(被动关闭端在接受到ACK包后,就进入了closed的状态。连接结束)
  • UNKNOWN(未知的Socket状态)
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
1月前
|
安全 前端开发 网络协议
网络安全入狱知识点
在面试时,网络安全也会被经常问到,至少要知道常见的攻击,以及防 御措施。在这里 Mark 下,不做深入分析。
|
2月前
|
算法 网络协议 网络架构
计算机网络-网络层:IP协议
【2月更文挑战第1天】
46 0
|
1月前
|
存储 算法 网络协议
计算机网络-网络互联
计算机网络-网络互联
21 0
|
2天前
|
SQL 存储 前端开发
< 今日份知识点:web常见的攻击方式(网络攻击)有哪些?如何预防?如何防御呢 ? >
网络安全威胁日益严重,2017年的永恒之蓝勒索病毒事件揭示了网络攻击的破坏力。为了防御Web攻击,了解攻击类型至关重要。Web攻击包括XSS、CSRF和SQL注入等,其中XSS分为存储型、反射型和DOM型,允许攻击者通过注入恶意代码窃取用户信息。防止XSS攻击的方法包括输入验证、内容转义和避免浏览器执行恶意代码。CSRF攻击则伪装成用户执行操作,防范措施包括同源策略和CSRF Token验证。SQL注入则通过恶意SQL语句获取数据,预防手段包括输入验证和使用预编译语句。面对网络威胁,加强安全意识和实施防御策略是必要的。
|
5天前
|
边缘计算 人工智能 监控
《计算机网络简易速速上手小册》第10章:未来网络技术趋势(2024 最新版)
《计算机网络简易速速上手小册》第10章:未来网络技术趋势(2024 最新版)
26 2
|
5天前
|
监控 负载均衡 算法
《计算机网络简易速速上手小册》第6章:网络性能优化(2024 最新版)
《计算机网络简易速速上手小册》第6章:网络性能优化(2024 最新版)
42 3
|
5天前
|
安全 网络安全 网络虚拟化
《计算机网络简易速速上手小册》第3章:计算机网络设备和工具(2024 最新版)
《计算机网络简易速速上手小册》第3章:计算机网络设备和工具(2024 最新版)
23 1
|
1月前
|
网络协议 算法 网络架构
计算机网络:网络层(IP组播)
计算机网络:网络层(IP组播)
|
1月前
|
网络架构
计算机网络:网络层(无分类编址CIDR、计算题讲解)
计算机网络:网络层(无分类编址CIDR、计算题讲解)
|
1月前
|
缓存 网络协议 SDN
计算机网络:网络层上(数据平面)
计算机网络:网络层上(数据平面)

热门文章

最新文章