首页 > 其他分享 >【计算机网络】计算机网络核心知识点

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

时间:2023-02-18 12:37:12浏览次数:42  
标签:知识点 协议 IP IP地址 网络 TCP 计算机网络 核心 数据包


文章目录

  • ​​1.计算机网络分类​​
  • ​​2.计算机网络的层次结构​​
  • ​​3.层次结构设计的基本原则​​
  • ​​4.网络层核心知识​​
  • ​​5.传输层核心知识​​
  • ​​6.MTU-MSS介绍​​
  • ​​7.计算机网络的核心指标​​
  • ​​8.ifconfig命令简介​​
  • ​​9.网络统计分析命令netstat​​

1.计算机网络分类

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

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

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

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

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

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

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

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

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

【计算机网络】计算机网络核心知识点_数据_03

  • 网络分层模型下,数据在各层之间的传输
  • 发送数据包
  • 在网络协议栈中从上到下逐层处理,最终送到网卡发送出去
  • 接收数据包
  • 需要经过网络协议栈从下到上的逐层处理,最后送到应用程序中使用
  • 注意
  • 应用层是直接面向用户的一层,为应用程序提供统一协议的接口,但不是应用程序
  • 目的是保障不同类型的应用采用的低层通信协议是一致的

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

  • 分层的好处:
  • 每层分工明确,利用单一职责模式和责任链模式
  • 开发人员 负责 编写应用层 业务代码
  • 操作系统 负责 建立网络连接、可靠性传输
  • 交换机路由器 负责 物理媒介上传输二进制格式
  • 传输层协议和网际层协议有什么区别
  • 网际层协议负责提供主机间的逻辑通信
  • 互联网上N多台设备,通过IP地址识别通信主机,网络层可以具体定位到哪台设备
  • 网络层的只检验IP数据报首部中的校验和字段是否出现差错,而不检查数据部分
  • 传输层协议负责提供进程间的逻辑通信
  • 一个主机上N多进程,通过端口号识别应用层进程,传输层可以具体定位到哪个进程
  • 需要对收到的报文更进一步进行差错检测

4.网络层核心知识

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

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

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

(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进制数。

【计算机网络】计算机网络核心知识点_数据_06

  • 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用户数据报协议)

  • 面向无连接的协议,它不需要建立连接,就可以发送数据。
  • 协议不需要握手,因此发送数据的速度最快,传输效率更高。
  • 不提供可靠性,因为它不会检查发送的数据是否损坏或丢失,所以可能会发生数据丢失或损坏的情况。
  • 支持多种应用,如视频会议、在线游戏等,它可以提供实时性和可靠性。

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

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

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

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

  • 协议部分解析
  • 源端口号:报文的发送端口
  • 目的端口号:报文的接收端口
  • 序号(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命令简介

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

【计算机网络】计算机网络核心知识点_数据_09

字段

说明

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 端口 :显示指定系统端口使用和进程情况

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


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

  • netstat -nupl:UDP类型的端口

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

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

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

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

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

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

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

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

【计算机网络】计算机网络核心知识点_数据_16

字段

说明

Proto

协议名 tcp协议 或 udp协议

recv-Q

网络接收队列,表示收到的数据已经在本地接收缓冲,但还有多少没有被进程取走

send-Q

网络发送队列,发送队列不能很快清零,则可能是有应用向外发送数据包过快,或对方接收数据包不够快

Local Address

表示本地IP地址

:::port 表示对外开放的IPv6端口,外网可访问,::: 这三个冒号:中, 前两个"::“是"0:0:0:0:0:0:0:0"的缩写,表示IPv6的"0.0.0.0”,第三个冒号:是IP和端口的分隔符

如127.0.0.1:port 表示只能本机访问的端口,外网无法访问;

如0.0.0.0:port 表示对外开放的IPv4端口,外网可访问 如为0.0.0.0:* 则表示没有对外开放;

如是 : : : * 表示对外开放

Foreign Address

表示远程IP地址,显示规则与 Local Address 相同, 一般都是0.0.0.0:(IPv4) 和 :::(IPv6)。

State

链路状态 有11种,TCP连接建立的三次握手和TCP连接断开的四次挥手过程来描述

PID/Program

PID即进程id,Program即使用该socket的应用程序

(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状态)


标签:知识点,协议,IP,IP地址,网络,TCP,计算机网络,核心,数据包
From: https://blog.51cto.com/u_15646271/6065291

相关文章

  • Java基础知识点(二维数组)
                       二维数组1.二维数组的定义方式有多种。下面介绍常见的三种方式:第一种:数据类型[][]数组名=new数据类型[行的......
  • 一个小知识点
    old={'l':2}new=oldprint('id(old)',id(old))new['l']=3print('id(new)',id(new))print(old)old=2new=old(new)=3print('id(old)',id(old))print('id(new)',id......
  • react知识点汇总
    一、react认识用于构建用户界面的JavaScript库二、创建react项目:react脚手架创建react项目,创建新的react应用npxcreate-react-appmy-appcdmy-appnpm......
  • Java基础知识点(数组遍历以及常见问题)
    一:数组遍历:将数组中的所有内容取出来,取出来之后可以对它进行一系列的操作。注意:遍历指的是取出数据的过程,不要局限的理解为遍历就是打印。在Java中,关于数组的一个长度属性.l......
  • Java基础知识点(数组较难的的一个练习-数组的排序)
    冒泡排序:第一步:从第一个元素开始,将相邻的两个元素进行比较,如果前一个元素比后一个元素大,则交换他们的位置,直到最后两个元素完成比较。整个过程完成后,数组中最后一个元素自然......
  • vue-day05——组件通信(父传子、子传父及其他小知识点)、ref属性、动态组件、slot插槽、
    目录一、组件其他二、组件间通信之父传子(通过自定义属性)三、组件间通信之子传父(通过自定义事件)四、ref属性五、动态组件5.0不使用动态组件5.1动态组件component标签5.2......
  • HTTP知识点
    HTTP请求/响应的步骤:(工作原理)客户端连接到Web服务器一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.ba......
  • Flask知识点
    Flask导入fromflaskimport(Flask,request,render_template,redirect,session,url_for,Markup,make_response,views,jsonify,flash,get_flashed_messages,)......
  • 计算机网络-NAT和NAPT 技术
    一、什么是NATNAT(NetworkAddressTranslator)是用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的技术。除了转换IP地址,还出现了可以转换TCP\UDP端口号的......
  • 计算机网络安全
    1、计算机网络协议与标准协议:计算机网络中互相通信的对等实体之间交换信息时所必须遵守的规则的集合(可以理解为规则)协议的三要素:语法:用户数据与控制信息的结构与格式,......