计算机网络--- TCP/IP协议簇

计算机网络--- TCP/IP协议簇

  • 一、OSI七层模型结构
  • [二、TCP/IP 协议簇](#二、TCP/IP 协议簇)
  • [三、PDU 协议数据单元](#三、PDU 协议数据单元)
  • 四、数据的封装与解封装
    • [4.1 以太网II型帧](#4.1 以太网II型帧)
    • [4.2 封装](#4.2 封装)
  • 五、TCP/UDP(传输层)
    • [5.1 TCP 头部](#5.1 TCP 头部)
    • [5.2 UDP 头部](#5.2 UDP 头部)
    • [5.3 TCP 三次握手与四次挥手](#5.3 TCP 三次握手与四次挥手)
      • [5.3.1 三次握手](#5.3.1 三次握手)
      • [5.3.2 四次挥手](#5.3.2 四次挥手)
    • [5.4 IP头部](#5.4 IP头部)
  • 六、设备管理
    • [6.1 带内管理 --- 通过网络进行管理](#6.1 带内管理 --- 通过网络进行管理)
      • [Telnet 远程登录协议](#Telnet 远程登录协议)
    • [6.2 带外管理 --- 不通过网络进行管理](#6.2 带外管理 --- 不通过网络进行管理)

一、OSI七层模型结构

OSI(open system interconnection(互联))/RM:开放式系统互联参考模型,是国际标准化组织(ISO)定义的网络通信框架

核心思想:分层

  1. 更利于标准化
  2. 降低层次间的关联性 ----> 便于管理
  3. 更利于学习和理解
层次名称 核心功能 典型协议 / 技术
应用层 直接面向用户 应用,提供具体网络服务(如通信、文件传输等),是应用与网络的接口 HTTP、FTP、SMTP、DNS、QQ / 微信通信协议
表示层 处理数据表示形式(编解码、加解密、压缩解压缩),确保接收方正确理解 ASCII、Unicode、SSL/TLS、JPEG、ZIP
会话层 建立、维持、终止设备间的会话 连接,控制会话中数据同步(区分多应用通信) NetBIOS、RPC(远程过程调用)
传输层 实现端到端 可靠数据传输,通过端口号定位目标应用,屏蔽底层网络差异 TCP(可靠)、UDP(高效)
网络层 解决跨网络通信问题 ,通过 IP 地址路由寻址,实现++不同网络++的互联 IP(IPv4/IPv6)、ICMP、路由协议
数据链路层 ++同一网络内++ 相邻设备 通信,将数据包封装为帧,通过 MAC 地址识别设备,简单差错校验 以太网(Ethernet)、Wi-Fi(802.11)
物理层 定义原始比特流的物理传输方式(电 / 光 / 无线电信号),规范物理介质和接口 双绞线、光纤、RJ45 接口、集线器
  • 会话层:

eg. QQ进行通信时,一个用户 A 向另一个用户 B 进行通信

  • 访问之前,A 和 B 会去访问一个服务器,服务器会记录每台设备的 IP(A ---> 服务器 --->B,而不是服务器告诉 A,B 的地址,进而直接 A ---->B ,是为了保证安全性和合法性)

会话层:管理应用程序间的会话(创建、维护、重连)

  • 传输层:

eg. 一台电脑上登录了多个QQ账号(由于同一个设备上,网卡一样,源 IP 地址一样),此时其中一个账号需要给另一台设备发消息,则无法确定是谁要发送,应该回复给谁

  • 通过端口号 来区分各个账号(类似于集线器不知道谁找谁---地址)

    传输层:为主机提供数据传输服务的端口号

  • TCP/UDP 端口号:0~65535(16位二进制)

    • 0:保留
    • 1~1023:知名端口(HTTP 80,DHCP 67/68,HTTPS 443)
    • 1024~65535:

端口号 --- 对应的服务

  • DHCP:动态主机配置,67服务端,68客户端

  • FTP:文件传输,20、21

  • Telnet:远程控制,23

  • HTTP:超文本传输,80

  • HTTPS:加密 https+ssl,443

  • DNS:域名解析,53

数据链路层:有两个子层,介质访问控制层(MAC) + 逻辑链路控制(LLC)

二、TCP/IP 协议簇

TCP/IP 协议族 :由多个协议 组成,能够在多个不同网络间实现信息传输 。包括TCP、IP、UDP、HTTP、FTP等,是互联网的基础协议。TCP 负责可靠传输 ,IP 负责寻址和路由

TCP/IP 通常被划分为四层模型 (与 OSI 七层模型对应,但更简洁),每层负责不同的通信功能,++上层依赖下层提供的服务++:

分层 核心功能 主要协议
应用层 为用户应用提供网络服务(如 HTTP、邮件等) HTTP、HTTPS、FTP、SMTP、DNS、SSH 等
传输层 负责端到端的数据传输控制(可靠性、流量) TCP(可靠传输)、UDP(不可靠传输)
网络层 负责跨网络的数据包路由和转发 IP(IPv4、IPv6)、ICMP、ARP、路由协议等
网络接口层 负责物理网络中的数据帧传输(硬件相关) Ethernet(以太网)、Wi-Fi、PPP 等

TCP/IP 协议簇:适用性更强

TCP/IP 标准模型:

应用层 、表示层 、会话层:都是对数据进行加工处理的

传输层、网络层、数据链路层、物理层 :对数据的运输 到达对端做出工作

三、PDU 协议数据单元

PDU:协议数据单元,在分层的网络结构中,每一层都有各自的数据单元

TTL:生存周期 (数据包不会无限传输,数据包每经过一个路由器,TTL就会减一,TTL为零时,默认数据包死亡

TTL值:最大 255 ,推荐 64 , 常见 128

常用协议:

  • OSI :
层次名称 数据格式
应用层 L1-PDU
表示层 L2-PDU
会话层 L3-PDU
传输层 L4-PDU
网络层 L5-PDU
数据链路层 L6-PDU
物理层 L7-PDU
  • TCP/IP:
层次名称 数据格式
应用层 报文
传输层
网络层
数据链路层
网络层 比特流

四、数据的封装与解封装

数据的封装和解封装:

层次名称 数据
应用层 根据不同的协议封装不同的内容
传输层 TCP/UDP 封装端口号(源端口sport、目的端口dport)
网络层 IP协议 封装IP地址(源IP、目的IP)
数据链路层 以太网协议 封装MAC地址(源MAC、目的MAC)
网络层 转化成比特流

源端口在发送的时候是随机端口

4.1 以太网II型帧

以太网II型帧 (以太网中传递的数据帧,传递在交换机之间的数据结构)

  • preamble 前导符:发送比特流(连续电流),转换为二进制时也是连续的,交替的0和1,设备从静默状态变成有信号状态标志以太网帧的开始
  • Type:type类型值,用来表示上层协议类型(网络层 -- ipv4、ipv6、arp协议)
    • ipv4:0x0800
    • ipv6:0x86dd
    • arp:0x0806
  • Data:上层的信息
  • FCS:帧校验序列,CRC循环冗余算法(检验数据完整性)

以太网II型帧最上层的数字代表长度,单位为字节(1 字节 byte = 8 比特 bit),eg. 目的MAC地址为6:MAC地址是48为二进制组成,6×8=48位 bit 值

  • 封装与解封装过程原理:
    1. 计算机在网络中不断的传输,在不断地封装和解封装 一个数据包,发出后变成坨电流
    2. 扔到交换机,交换机接收这个电流,然后在数据链路层,看MAC地址,看源MAC目标MAC ,决定是++单播还是泛洪++ ,在交换机这个环节,需要解封装数据包分析数据 ,在看完了二层的源MAC和目标MAC后,在决定发出的那一刻,再次封装数据
    3. 发送到路由器,然后到路由器(网络层,第三层设备),也要接收电流,继续解封装,拆到三层(网络层),看里面的IP,源IP,目标IP,从而查询路由表,决定转发还是丢弃,如果转发,继续封装

4.2 封装

模拟一个PC-A 到 PC-B 的过程

PC-A发出时是如何进行封装,PC-B接收时如何解封装

正向:

  1. 从PC-A发出这个小人时,需经过应用层、表示层、会话层三层数据加工,成为一串独特的二进制(应用层 、表示层 、会话层:都是对数据进行加工处理的)

  2. 扔给传输层,这个数据包在传输层要么走TCP协议,要么走UDP协议,具有不同的端口号(体现分段作用)

分段:当数据包过大时,连续发送可能会使数据在传输途中插入别的数据造成损坏,所以需要对数据包进行分段处理, 从而保证数据包的完整性。

传输层:传输层两大经典协议 TCP/UDP 两个功能 1.分段(受到MTU限制)2.提供端口号

  1. 继续封装到网络层,执行互联网协议,填上原IP、目标IP

  2. 二层继续封装,数据链路层,贴上MAC的数据包头部信息,标上原MAC、目标MAC

  3. 交给一层物理层,变成电流、电波发送,到交换机、路由器

逆向:

  1. 再次变成电波扔给PC-B,逆向拆分电波
  2. 一层物理层接收,拆完电流扔到链路层
  3. 数据链路层看MAC,是找我的就继续拆
  4. 网络层 看IP地址是不是找我的,确定是的话,可以开始剖析,看里面内容 到传输层,核对传输层协议,校验核核对后看TCP/UDP协议、端口号能不能对上

对应会话号,然后翻译成二进制,再翻译成编码,最后通过应用层反着解封装到PC-B的电脑显示屏

五、TCP/UDP(传输层)

TCP:传输控制协议(适用于效率要求较低,但可靠性要求高 --- 文件传输ftp、web、邮件...)

  1. 面向连接:在通信双方进行数据传输之前,使用预定的协议建立一条通信线路
  2. 可靠
  3. 可以流量拥塞控制
  4. 可以分段
  5. 速度慢,占用资源

UDP:用户数据报(适用于效率要求高,但可靠性要求低 --- 视频流、语音、DNS)

  1. 无连接,只管发,不管你是否收到
  2. 不可靠
  3. 不可以流量拥塞控制
  4. 不可以分段
  5. 速度快,占用资源小

5.1 TCP 头部

序列号seq:表示tcp端到端的数据流,某一段报文中的第一个字节

确认序列号ack:成功收到对端的数据,seq=a,即确认序列号ack=a+1

首部长度:TCP头部总长度,20~60字节

六位:每一位代表一个二进制位(1bit),取值为0/1,0:未激活

  • URG:紧急标记位,
  • 紧急指针:一段数据有优先处理的数据,会被放到所有数据的最前端,用于标记指明该数据的位置
  • ACK:确认标记位
  • PSH:push,推送标记位,TCP在处理数据时,会将数据放到缓存区中,按序列号排好顺序发给上层处理,当 psh=1 表示该数据无需放入缓存区,直接发给上层处理
  • RST:reset,重置标记位,当 rst=1 时,强制断开 tcp 连接,可用于上网行为管理
  • SYN:同步标记位,当 syn=1 时,请求建立连接
  • FIN:finish,终止标记位

校验和:反码相加法,伪头部校验

5.2 UDP 头部

5.3 TCP 三次握手与四次挥手

TCP协议(传输控制协议)是一种面向连接可靠 的++数据传输协议++ ,它在不可靠的互联网上提供可靠的端到端字节流

TCP三次握手和四次挥手是确保网络通信可靠性的重要机制,它们通过精确的控制报文交换来建立和终止连接,从而保证数据传输的稳定性和可靠性

5.3.1 三次握手

主要原因:确认双方 的接收能力和发送能力是否正常,确保双方都能发送和接收数据,防止资源浪费

  • 第一次握手: 客户端向服务器端发送报文
    证明客户端的发送能力正常
  • 第二次握手:服务器端接收到报文并向客户端发送报文
    证明服务器端的接收能力、发送能力正常
  • 第三次握手:客户端向服务器发送报文
    证明客户端的接收能力正常

三次握手的过程中,每次握手都是为了验证通信双方的发送和接收能力是否正常。

如果只进行两次握手,可能会导致服务器端开启无用的连接,增加服务器开销,或者接收到已失效的连接请求,从而产生错误。

5.3.2 四次挥手

四次挥手的过程是因为++关闭连接时,服务器可能仍有数据待发送++ ,所以需要确认双方都准备好关闭连接

  • 第一次挥手: 客户端给服务器端发送断开请求

    客户端已经将想要发送的数据完成

  • 第二次挥手: 服务器端给客户端回复

    服务器端收到断开请求

  • 第三次挥手: 服务器端给客户端发送断开请求

    需要等到服务器端给客户端发送的数据全部发送完毕后才发送断开请求

  • 第四次挥手: 客户端给服务器端回复

    客户端收到断开请求

5.4 IP头部

4位版本:区分ipv4和ipv6

8位服务类型TOS:

​ QOS:服务质量,发送数据传输的速率、优先级、数据延迟、数据可靠性、吞吐量

16位总长度:

IP分片(受二层MTU值的限制,导致IP必须分片)MTU:最大传输单元

​ 16位标识:

​ 3位标志:第一位,0,保留位;第二位,DF---1,不分片;第三位,MF---1,还有后续分片

​ 13位片偏移:

8位生存时间TTL:time to live,没经过一台路由器,ttl值减1,64/128/256

8位协议:代表TCP --- 6,UDP --- 17

16位首部校验和:

六、设备管理

6.1 带内管理 --- 通过网络进行管理

带内 管理:通过网络进行管理

  • 远程登录协议 telnet(前提是能 ping 通对方,才能进行管理,明文传输)
  • ssh --- 密文传输
  • web --- 图形化界面进行管理
  • snmp

Telnet 远程登录协议

(带内管理 --- 两台设备之间通过网络进行管理)

Telnet:远程登录协议, 23端口,TCP协议,C/S架构,C:client(登录设备 -- 客户端),S:server(被登录设备 -- 服务器)

eg. 电脑 A 去登录电脑 B,对电脑 B 进行一个管理操控

A ----------> B

A:客户端

B:服务端,提供远程登录的服务,让 A 能够进行远程登录

远程登录的重要条件:

  1. ++登录设备++ 和++被登录设备++ 之间的网络必须可达(带内管理,通过网络进行远程控制)
  2. ++被登录设备++ 必须要开启 telnet 服务

配置命令:

  1. 开启 telnet 服务

    • aaa 创建用于telnet登录的用户、权限、密码以及用户服务

    • 创建 vty 视图用于登录虚拟接口,认证方式使用aaa

    • Huawei\] aaa //进入aaa视图

    • Huawei-aaa\] local-user test service-type telnet //规定该用户的服务类型

    • Huawei-ui-vty0-4\] authentication mode aaa //认证方式使用 aaa

    • <Huawei> telnet 192.168.1.2 //用户视图下执行

具体实现过程:

  1. 准备两台路由器设备,两台设备直接需要具备通信条件 :启动两台路由器,分别配置好 IP 地址 ,通过 ping 命令检查两台服务器是否连通 ip add IP地址

  2. 创建一个用于登录的账户,通过进入 aaa 视图,创建 telnet 登录的用户、权限、密码以及用户服务 (一个设备需要对一个服务/设备/程序进行管理,需要一个账户密码,确保安全性)local-user...

  3. 登录的时候需要有一个途径去登录(创建一个虚拟接口 vty 视图用于对方账户进行登录,认证方式使用 aaa)user-interface vty 0 4

    创建一个虚拟接口:通过系统视图底下,user-interface:用户接口,用于用户登录,vty:虚拟接口

  4. telnet 测试:在客户端,用用户视图 (<>)进行登录, telnet 服务端的 IP

    用户视图:<>,系统视图:[ ],通过 system-view 命令进入

  1. 配置 IP 地址,通过 ping 命令检查两台服务器是否连通
bash 复制代码
# A设备(客户端---登录设备)
The device is running!

<Huawei>sy
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname A
[A]int g0/0/0
[A-GigabitEthernet0/0/0]ip add 192.168.1.1 30
[A-GigabitEthernet0/0/0]
Nov  2 2025 16:27:34-08:00 A %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP o
n the interface GigabitEthernet0/0/0 has entered the UP state.

# B设备(服务端---被登录设备)
The device is running!

<Huawei>sy
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname B
[B]int g0/0/0
[B-GigabitEthernet0/0/0]ip add 192.168.1.2 30
[B-GigabitEthernet0/0/0]
Nov  2 2025 16:29:04-08:00 B %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP o
n the interface GigabitEthernet0/0/0 has entered the UP state.

# B设备ping一下A设备
[B-GigabitEthernet0/0/0]q
[B]ping 192.168.1.1
  PING 192.168.1.1: 56  data bytes, press CTRL_C to break
    Reply from 192.168.1.1: bytes=56 Sequence=1 ttl=255 time=140 ms
    Reply from 192.168.1.1: bytes=56 Sequence=2 ttl=255 time=30 ms
    Reply from 192.168.1.1: bytes=56 Sequence=3 ttl=255 time=30 ms
    Reply from 192.168.1.1: bytes=56 Sequence=4 ttl=255 time=20 ms
    Reply from 192.168.1.1: bytes=56 Sequence=5 ttl=255 time=40 ms

  --- 192.168.1.1 ping statistics ---
    5 packet(s) transmitted
    5 packet(s) received
    0.00% packet loss
    round-trip min/avg/max = 20/52/140 ms
# 已连通
[B]
  1. 创建一个用于登录的账户,通过进入 aaa 视图,创建 telnet 登录的用户、权限、密码以及用户服务(一个设备需要对一个服务/设备/程序进行管理,需要一个账户密码,确保安全性)
shell 复制代码
[B]aaa		#三a视图:用于创建登录的用户
[B-aaa]local-user	# local-user:本地用户,用于登录
[B-aaa]local-user ?
  STRING<1-64>    User name, in form of 'user@domain'. Can use wildcard '*',    # 用户名:1-64位的字符串
                  while displaying and modifying, such as *@isp,user@*,*@*.Can  	# 不能包括以下的符号
                  not include invalid character / \ : * ? " < > | @ '
  wrong-password  Use wrong password to authenticate
[B-aaa]local-user test ?
  access-limit   Set access limit of user(s)
  ftp-directory  Set user(s) FTP directory permitted
  idle-timeout   Set the timeout period for terminal user(s)
  password       Set password 		# 密码
  privilege      Set admin user(s) level	# 权限
  service-type   Service types for authorized user(s)
  state          Activate/Block the user(s)
  user-group     User group
[B-aaa]local-user test privilege level ?
  INTEGER<0-15>  Level value		# 可设置0-15级权限,15是最高等级
[B-aaa]local-user test privilege level 15 password ?
  cipher  User password with cipher text	#cipher:是一个密文
[B-aaa]local-user test privilege level 15 password cipher ?
  STRING<1-32>/<32-56>  The UNENCRYPTED/ENCRYPTED password string	#后面应该输入密码(字符串)
[B-aaa]local-user test privilege level 15 password cipher huawei@123
Info: Add a new user.
# 检查是否创建好这个用户
#1. 通过local-user命令,后面跟创建的用户的首字母,按tab键是否可补齐
#2. display this:查看当前视图下的所有配置
[B-aaa]display this 
[V200R003C00]
#
aaa 
 authentication-scheme default
 authorization-scheme default
 accounting-scheme default
 domain default 
 domain default_admin 
 local-user test password cipher %$%$jq;ZA,c)uGAf$;=i1R1Xf7V7%$%$
 local-user test privilege level 15
 local-user admin password cipher %$%$K8m.Nt84DZ}e#<0`8bmE3Uw}%$%$
 local-user admin service-type http
#
return
# 配置服务类型(service-type),要进行telnet服务登录,就应该将telnet这个服务类型登录上去
[B-aaa]local-user test service-type ?
  8021x     802.1x user
  bind      Bind authentication user
  ftp       FTP user
  http      Http user
  ppp       PPP user
  ssh       SSH user
  sslvpn    Sslvpn user
  telnet    Telnet  user	
  terminal  Terminal user
  web       Web authentication user
  x25-pad   X25-pad user
[B-aaa]local-user test service-type telnet
[B-aaa]di	
[B-aaa]display th	
[V200R003C00]
#
aaa 
 authentication-scheme default
 authorization-scheme default
 accounting-scheme default
 domain default 
 domain default_admin 
 local-user test password cipher %$%$jq;ZA,c)uGAf$;=i1R1Xf7V7%$%$
 local-user test privilege level 15
 local-user test service-type telnet
 local-user admin password cipher %$%$K8m.Nt84DZ}e#<0`8bmE3Uw}%$%$
 local-user admin service-type http
#
return
[B-aaa]q
[B]
  1. 登录的时候需要有一个途径去登录(创建一个虚拟接口用于对方账户进行登录)

创建一个虚拟接口:通过系统视图底下,user-interface:用户接口,用于用户登录,vty:虚拟接口

shell 复制代码
[B]user-interface vty ?
  INTEGER<0-4,16-20>  The first user terminal interface to be configured
# 0-4(接口范围),共五个接口,都可进行登录
[B]user-interface vty 0 4

# 通过"联动"将创建好的用户塞到这个接口中,能让其识别到这个用户登录使用的是这个接口登录的
认证方式:采用 aaa 创建的用户名和密码来认证
[B-ui-vty0-4]authentication-mode aaa 
[B-ui-vty0-4]dis	
[B-ui-vty0-4]display th
[V200R003C00]
#
user-interface con 0
 authentication-mode password
user-interface vty 0 4		# 配置成功
 authentication-mode aaa
user-interface vty 16 20
#
return
# 服务端的telnet全部配置完毕
  1. telnet 测试:在客户端,用用户视图 (<>)进行登录, telnet 服务端的 IP

用户视图:<>,系统视图:[ ],通过 system-view 命令进入

shell 复制代码
<A>telnet 192.168.1.2
  Press CTRL_] to quit telnet mode
  Trying 192.168.1.2 ...
  Connected to 192.168.1.2 ...

Login authentication


Username:test
Password:
<B>

6.2 带外管理 --- 不通过网络进行管理

带外管理:不通过网络进行管理(没有联网的情况下进行配置)

  • console 线:配置调试 网络设备,通常用于++将计算机连接到网络设备的Console接口,以便通过终端仿真程序进行本地配置++
  • miniUSB(U盘)

ETH 管理接口:以太网管理口,登录进去是可视化 web 界面(eg. S57系列的交换机:)

  • 开局:设备上什么配置都没有,通过做一个完整的配置实现符合企业需求进而可以上网
  • 传输、升级文件:都是在对设备进行管理
相关推荐
车载测试工程师16 小时前
CAPL学习-AVB交互层-媒体函数2-其他类函数待分类
学习·tcp/ip·媒体·capl·canoe
福尔摩斯张19 小时前
插件式架构:解耦与扩展的艺术与实践(超详细)
linux·服务器·网络·网络协议·tcp/ip
yenggd21 小时前
企业总部-分支-门点-数据中心使用骨干网SRv6 BE互联互通整体架构配置案例
运维·网络·计算机网络·华为·架构
FserSuN21 小时前
TCP RST 与 Broken Pipe:从协议语义到操作系统信号的体系化梳理
网络·网络协议·tcp/ip
apihz1 天前
全球IP归属地查询免费API详细指南
android·服务器·网络·网络协议·tcp/ip
fiveym1 天前
PXE装机遇DHCP错误:ICMP echo reply导致IP分配失败原理解析
网络协议·tcp/ip·php
梁辰兴1 天前
计算机网络基础:局域网的数据链路层
网络·网络协议·计算机网络·计算机·数据链路层·局域网·梁辰兴
老王熬夜敲代码1 天前
IP和MAC的深入理解
linux·网络·笔记·网络协议
梁辰兴1 天前
计算机网络基础:以太网的信道利用率
服务器·网络·计算机网络·计算机·以太网·信道利用率·梁辰兴