TCP/IP五层协议

news2025/4/17 15:57:56

目录

1. 五层模型结构

2. 各层核心功能与协议

(1) 应用层(Application Layer)

(2) 传输层(Transport Layer)

(3) 网络层(Network Layer)

(4) 数据链路层(Data Link Layer)

(5) 物理层(Physical Layer)

3.TCPvsUDP 

4. 数据封装与解封装过程

5. 五层模型 vs 四层模型

6. 关键工具与调试命令

7. 常见问题

Q1:为什么数据链路层需要 MAC 地址?

Q2:物理层不关心数据内容,如何保证传输?

Q3:交换机工作在哪些层?

8. 总结


TCP/IP 五层协议模型是为了教学和理论分析而提出的分层框架,它结合了 TCP/IP 四层模型的实用性和 OSI 七层模型的细节性,更清晰地描述数据从应用程序到物理介质的完整传输过程。以下是五层模型的详细解析:

1. 五层模型结构

层级核心功能关键协议/设备数据单元
应用层处理应用程序逻辑和用户数据格式HTTP, FTP, DNS, SMTP, MQTT消息(Message)
传输层端到端通信控制(可靠性、流量控制)TCP, UDP, SCTP段(Segment)
网络层全局寻址和路由(跨网络传输)IP, ICMP, BGP, OSPF, ARP包(Packet)
数据链路层本地网络帧传输(MAC地址、错误检测)Ethernet, Wi-Fi, PPP, VLAN帧(Frame)
物理层物理介质传输(比特流)电缆(双绞线、光纤)、无线信号比特(Bit)

2. 各层核心功能与协议

(1) 应用层(Application Layer)
  • 功能

    • 定义应用程序间的通信规则(如 HTTP 定义网页请求格式)。

    • 数据编码、加密、压缩(如 HTTPS 使用 TLS 加密)。

  • 典型协议

    • HTTP/HTTPS:网页浏览(端口 80/443)。

    • DNS:域名解析(端口 53)。

    • FTP:文件传输(端口 20/21)。

    • SMTP:邮件发送(端口 25)。

    • MQTT:物联网轻量级消息协议(端口 1883)。

(2) 传输层(Transport Layer)
  • 功能

    • 端到端连接管理:通过端口号标识应用进程(如 80 端口对应 HTTP)。

    • 可靠性保障(仅 TCP):丢包重传、流量控制、拥塞控制。

    • 多路复用/分解:多个应用共享同一网络连接。

  • 典型协议

    • TCP:面向连接、可靠传输(如文件下载)。

    • UDP:无连接、高效传输(如视频流)。

    • SCTP:多路径传输(用于电话信令)。

(3) 网络层(Network Layer)
  • 功能

    • IP 寻址:为每台设备分配唯一 IP 地址(IPv4: 32位,IPv6: 128位)。

    • 路由选择:路由器根据路由表转发数据包(如 BGP 协议决定互联网骨干路径)。

    • 分片与重组:根据网络 MTU(最大传输单元)拆分/重组数据包。

  • 典型协议

    • IP:数据包寻址和路由(IPv4/IPv6)。

    • ICMP:网络状态反馈(如 ping 命令)。

    • BGP/OSPF:动态路由协议。

    • ARP:IP 地址到 MAC 地址的解析(局域网内)。

(4) 数据链路层(Data Link Layer)
  • 功能

    • 帧封装:添加帧头(源/目的 MAC 地址)和帧尾(CRC 校验)。

    • 介质访问控制:解决多设备共享信道冲突(如 CSMA/CD 用于以太网)。

    • 局域网通信:通过交换机基于 MAC 地址转发帧。

  • 典型协议与技术

    • Ethernet(IEEE 802.3):有线局域网标准(如 1000BASE-T)。

    • Wi-Fi(IEEE 802.11):无线局域网标准(如 802.11ac)。

    • VLAN:虚拟局域网划分(隔离广播域)。

    • PPP:点对点协议(如家庭宽带拨号)。

(5) 物理层(Physical Layer)
  • 功能

    • 比特流传输:将数据转换为电信号、光信号或电磁波。

    • 物理介质定义:规范接口形状、电压、光波长等(如 RJ45 网口、光纤接口)。

  • 典型技术与设备

    • 双绞线(Cat5e/Cat6):传输电信号(最长 100 米)。

    • 光纤:长距离、高速传输(单模/多模)。

    • 无线射频:Wi-Fi(2.4GHz/5GHz 频段)、蓝牙。

    • 中继器/集线器:物理层信号放大(已逐渐被交换机取代)。


3.TCPvsUDP 

以下是 TCP 和 UDP 的核心区别对比表:

对比项TCP(传输控制协议)UDP(用户数据报协议)
连接方式面向连接(需三次握手建立连接)无连接(直接发送数据)
可靠性可靠传输(确认应答、重传、流量控制、拥塞控制)不可靠传输(无确认、不保证数据到达)
传输单位面向字节流面向数据包
通信模式全双工全双工
数据顺序保证数据按发送顺序到达不保证顺序,可能乱序
传输速度较慢(需维护连接和可靠性机制)较快(无连接和复杂控制)
头部大小较大(最小 20 字节,包含序列号、确认号等控制信息)较小(固定 8 字节,仅含源/目的端口和长度)
流量控制支持(滑动窗口机制)不支持
拥塞控制支持(慢启动、拥塞避免等算法)不支持
适用场景要求可靠传输的应用(如网页、文件传输、邮件)实时性优先的应用(如视频、语音、在线游戏)
典型应用协议HTTP、HTTPS、FTP、SMTP、SSHDNS、DHCP、SNMP、QUIC(HTTP/3)、实时流媒体

4. 数据封装与解封装过程

以访问网页(HTTP)为例,说明数据在五层模型中的流动:

  1. 应用层:浏览器生成 HTTP 请求(GET /index.html)。

  2. 传输层:添加 TCP 头部(源端口 5000,目的端口 80,序列号等)。

  3. 网络层:添加 IP 头部(源 IP 192.168.1.100,目的 IP 93.184.216.34)。

  4. 数据链路层:添加以太网帧头(源 MAC 00:1A:2B:3C:4D:5E,目的 MAC 路由器 MAC)。

  5. 物理层:转换为电信号,通过网线传输。

接收端反向解析
物理层 → 数据链路层(校验帧) → 网络层(路由判断) → 传输层(端口分发) → 应用层(处理 HTTP 请求)。


5. 五层模型 vs 四层模型

对比项TCP/IP 四层模型五层模型
分层目的贴近实际协议实现理论教学,兼容 OSI 模型细节
底层划分合并物理层和数据链路层为“网络接口层”明确分离物理层和数据链路层
适用场景工程开发(如网络编程)网络原理教学、设备厂商文档
协议归属ARP 属于网络接口层ARP 属于网络层(更符合逻辑)

6. 关键工具与调试命令

  • 应用层

    • curlwget(模拟 HTTP 请求)。

    • dignslookup(DNS 查询)。

  • 传输层

    • netstatss(查看端口状态)。

    • tcpdumpWireshark(抓包分析)。

  • 网络层

    • ping(ICMP 测试连通性)。

    • traceroute(追踪路由路径)。

  • 数据链路层

    • arp(查看/修改 ARP 缓存)。

    • ethtool(查看网卡配置)。

  • 物理层

    • 网络测线仪(检测网线连通性)。

    • 光功率计(测量光纤信号强度)。


7. 常见问题

Q1:为什么数据链路层需要 MAC 地址?
  • :IP 地址用于全局寻址(网络层),而 MAC 地址用于本地网络(数据链路层)的直接设备通信。数据包跨网络传输时,IP 地址不变,但每跳的 MAC 地址会更新(如从主机到路由器再到下一跳)。

Q2:物理层不关心数据内容,如何保证传输?
  • :物理层仅负责比特流的透明传输(如调制解调器将数字信号转为模拟信号),错误检测由数据链路层的 CRC 校验完成。

Q3:交换机工作在哪些层?
    • 二层交换机:数据链路层(基于 MAC 地址转发)。

    • 三层交换机:网络层(具备路由功能,基于 IP 地址转发)。


8. 总结

五层模型通过明确分离 物理层 和 数据链路层,更清晰地描述了数据从应用程序到物理介质的完整传输过程。理解各层的核心协议(如 HTTP、TCP、IP、Ethernet)和功能(寻址、路由、错误检测、物理信号转换),是掌握网络通信原理、进行网络故障排查和优化的基础。实际工程中,开发者通常关注上三层(应用层、传输层、网络层),而网络工程师需深入理解下两层(数据链路层、物理层)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2330817.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Dify接口api对接,流式接收流式返回(.net)

试了好多种方法除了Console.WriteLine()能打印出来,试了好些方法都不行,不是报错就是打印只有一行,要么就是接收完才返回...下面代码实现调用api接收流式数据,并进行流式返回给前端: using Furion.HttpRemote; using …

代码随想录算法训练营第五十二天|图论专题: 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿

101. 孤岛的总面积 本题要求找到不靠边的陆地面积,那么我们只要从周边找到陆地然后 通过 dfs或者bfs 将周边靠陆地且相邻的陆地都变成海洋,然后再去重新遍历地图 统计此时还剩下的陆地就可以了。 1、从左边和后边向中间遍历 2、从上边和下边向中间遍历…

仿modou库one thread one loop式并发服务器

源码:田某super/moduo 目录 SERVER模块: Buffer模块: Socket模块: Channel模块: Connection模块: Acceptor模块: TimerQueue模块: Poller模块: EventLoop模块&a…

SpringSecurity6.0 通过JWTtoken进行认证授权

之前写过一个文章,从SpringSecurity 5.x升级到6.0,当时是为了配合公司的大版本升级做的,里面的各项配置都是前人留下来的,其实没有花时间进行研究SpringSecurity的工作机制。现在新东家有一个简单的系统要搭建,用户的认…

【Java】Maven

一、概念 是一个项目管理和构建工具&#xff0c;它基于项目对象模型&#xff08;POM&#xff09;的概念&#xff0c;通过一小段描述信息来管理项目的构建。 二、Maven坐标 <groupId>com.itheima</groupId><artifactId>maven-project01</artifactId>&…

MATLAB中plot函数的详细参数表

LineSpec - 线型、标记和颜色 线型说明-实线--虚线:点线-.点划线 标记说明o圆圈加号*星号.点x叉号_水平线条|垂直线条s方形d菱形^上三角v下三角>右三角<左三角p五角形h六角形 颜色说明 y 黄色 m 品红色 c 青蓝色 r 红色 g 绿色 b 蓝色 w 白色 k 黑色 MarkerFaceColor…

R语言赋能气象水文科研:从多维数据处理到学术级可视化

全球气候变化加剧了极端天气与水文事件的复杂性&#xff0c;气象卫星、雷达、地面观测站及水文传感器每天产生TB级‌时空异质数据‌。传统研究常面临四大瓶颈&#xff1a; ‌数据清洗低效‌&#xff1a;缺失值、异常值处理耗时&#xff1b;‌时空分析模型构建复杂‌&#xff1…

BGP路由协议之属性2

Orgin 起源 公认必遵属性 起源名称标记描述IGPi如果路由是由始发的 BGP 路由器使用 network 命令注入到 BGP 的&#xff0c;那么该 BGP 路由的 origin 属性为 IGPEGPe如果路由是通过 EGP 学习到的&#xff0c;那么该 BGP 路由的 Origin 属性为 EGPIncomplete?如果路由是通过…

纯个人整理,蓝桥杯使用的算法模板day2(0-1背包问题),手打个人理解注释,超全面,且均已验证成功(附带详细手写“模拟流程图”,全网首个

算法索引 01背包优化前空间优化版&#xff08;使用一维数组&#xff09;优化后的模拟流程图为何优化后&#xff0c;j不能使用正序遍历模拟流程图 代码对应实现案例 01背包 优化前 /*** 0-1背包问题解法&#xff08;与下方代码表格示例对应&#xff0c;已模拟验证&#xff09;*…

算法与数据结构线性表之栈和队列

Hello大家好&#xff01; 很高兴与大家见面&#xff01; 给生活添点快乐&#xff0c;开始今天的编程之路。 我的博客:<但愿. 我的专栏:C语言、题目精讲、算法与数据结构、C 欢迎点赞&#xff0c;关注 一 栈 1概念&#xff1a;栈是⼀种特殊的线性表&#xff0c;其只允许…

python应用之使用pdfplumber 解析pdf文件内容

目录标题 一. 通过 pdfplumber.open() 解析复杂PDF&#xff1a;1-2. 报错&#xff1a;V2 &#xff1a; 1-3. v3 使用tk 库&#xff0c;弹框选择文件运行环境准备完整代码保存运行测试步骤方式二&#xff1a;命令行方式&#xff08;适用于自动化&#xff09; 测试用例示例常见问…

Vue中使用antd-table组件实现数据选择、禁用、已选择禁用-demo

实现案例 实现过程 表格代码 关键代码 :row-selection="rowSelection" <div><div class="flex items-center justify-between pt-[24px] pb-[16px]"><p>已选:{{ keysNum }}</p><a-input-search v-model:value="productN…

C语言--统计输入字符串中的单词个数

输入 输入&#xff1a;大小写字母以及空格&#xff0c;单词以空格分隔 输出&#xff1a;单词个数 代码 如果不是空格且inWord0说明是进入单词的第一个字母&#xff0c;则单词总数加一。 如果是空格&#xff0c;证明离开单词&#xff0c;inWord 0。 #include <stdio.h&g…

Kubernetes 集群搭建(三):使用dashboard用户界面(需要访问外网获取yaml)

&#xff08;一&#xff09;简介 K8s Dashboard是Kubernetes提供的一种基于Web的用户界面工具&#xff0c;用于可视化地管理和监控Kubernetes集群 主要功能&#xff1a; 资源查看与管理&#xff1a; 查看Kubernetes集群中的各种资源&#xff0c;如节点、Pod、服务、部署等。 对…

Debian 12 服务器搭建Beego环境

一、Debian 12系统准备 1.更新系统 #apt update && apt upgrade -y 2.安装基础工具 #apt install -y git curl wget make gcc 二、安装Go环境 Go语言的镜像官网&#xff1a;https://golang.google.cn/ 1.下载go最新版 #cd /usr/local/src #wget -o https://golang.go…

游戏引擎学习第208天

运行游戏并回顾我们的情况 今天&#xff0c;我们将继续完成之前中断的调试输出工作。最近的工作偏离了一些&#xff0c;展示了如何进行元编程的实践&#xff0c;主要涉及了一个小的解析器。尽管这个解析器本身是一个玩具&#xff0c;但它展示了如何完成一个完整的循环&#xf…

【 <二> 丹方改良:Spring 时代的 JavaWeb】之 Spring Boot 中的监控:使用 Actuator 实现健康检查

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、引子&…

蓝桥杯—数字接龙(dfs+减枝)

一.题目 二.思路 一看就是迷宫问题的变种&#xff0c;从左上角到达右下角&#xff0c;要解决 1.8个方向的方向向量&#xff0c;用dx&#xff0c;dy数组代表方向向量 2.要按照一个规律的数值串进行搜索0&#xff0c;1&#xff0c;2&#xff0c;k-1&#xff0c;0&#xff0c;1…

Docker与VNC的使用

https://hub.docker.com/r/dorowu/ubuntu-desktop-lxde-vnc 下载nvc 客户端 https://downloads.realvnc.com/download/file/viewer.files/VNC-Viewer-7.12.0-Windows.exe 服务端 docker pull dorowu/ubuntu-desktop-lxde-vnc#下载成功 docker pull dorowu/ubuntu-desktop-l…

C++——清明

#include <iostream> #include <cstring> #include <cstdlib> #include <unistd.h> #include <sstream> #include <vector> #include <memory> #include <ctime>using namespace std;class Weapon; // 前置声明class Hero{ pr…