TCP/IP协议概述

news/2025/10/27 20:12:40/文章来源:https://www.cnblogs.com/lsksp/p/19170034

一、网络分层体系

1、OSI参考模型

OSI 参考模型(Open Systems Interconnection Reference Model)是由国际标准化组织(ISO)制定的网络通信框架标准,通过定义七层标准化通信体系,为不同厂商设备互联提供统一规范:

  1. 目的:解决早期网络设备兼容性问题,实现跨厂商、跨平台的互联互通;
  2. 核心思想:分层解耦,每层专注特定功能,下层为上层提供服务;
  3. 意义:虽实际网络中TCP/IP协议栈更常用,但OSI模型仍是网络协议设计的理论基础和教学工具。

2、TCP/IP的分层

网络协议通常分不同层次进行开发,每一层分别负责不同的通信功能。TCP/IP分层模型是互联网协议套件的基础,它简化了OSI模型,将网络通信过程划分为四个层次。TCP/IP模型的主要目的是提供一个实际可行的网络通信架构,它是互联网和许多其他网络的基础。TCP /IP,是一组不同层次上的多个协议的组合。 TCP/ IP通常被认为是一个四层协议系统,如下图所示。

  • 应用层:定义数据格式与交互规则,提供 HTTP、FTP、SMTP、DNS 等协议,通过端口与传输层衔接,实现多应用并发。
  • 传输层:通过端口复用实现端到端通信;TCP 提供可靠连接、重传与拥塞控制,UDP 仅增加端口与可选校验,高效但不可靠。
  • 网络层:以 IP 为核心,负责跨网寻址、路由与转发;配套 ICMP、IGMP、ARP 实现差错报告、组播管理和地址解析,支持分片重组,构建全球统一地址空间。
  • 链路层:处理比特流传输,将报文封装成帧,添加 MAC 地址与 CRC;通过 ARP 解析硬件地址,实现局域网互联,为 TCP/IP 提供无差别的帧级传输接口。

OSI七层模型是网络通信的理论标准,TCP/IP四层则是实际应用的简化版本,通过分层协作实现了高效的数据传输。

OSI分层 TCP/IP四层 典型协议/单元 功能简述
应用层 应用层 HTTP, FTP, SMTP, DNS 用户业务数据格式与交互规则
表示层 应用层 SSL/TLS, JPEG, ASCII 数据加密、压缩、格式转换
会话层 应用层 RPC, NetBIOS 会话建立、维持、终止
传输层 传输层 TCP, UDP 端到端可靠/不可靠传输、端口复用
网络层 网络层 IP, ICMP, IGMP, ARP 跨网寻址、路由、分片、差错报告
数据链路层 链路层 Ethernet, PPP, ARP 帧封装、MAC 寻址、差错检测
物理层 链路层 比特流, RJ-45, 光纤 电气/光学信号、比特传输

二、数据的封装和分用

当应用程序用 TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程叫做数据的封装。当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作数据的分用。过程如下所示。

三、以太网帧数据的传输

在讲述网络传输之前,了解以下网络中的名词是十分重要的。

名称 所在层级 作用域 核心职能
IP 地址 网络层 (L3) 全网逻辑 跨网络标识主机,决定“去哪”;与掩码配合判断本地/远程
MAC 地址 链路层 (L2) 本地物理段 固化标识网卡,同网段内“交给谁”
子网掩码 网络层 (L3) 主机本地 划分 IP 中的网络位与主机位,决定“是否同一网段”
网关 (默认路由) 网络层 (L3) 跨网段 提供下一跳 IP,把远程流量送出本段
交换机 链路层 (L2) 单广播域 自学习 MAC 地址,按表二层转发帧,隔离冲突域
路由器 网络层 (L3) 多广播域 查 IP 路由表,跨网转发包,隔离广播,实现网际互联
CAM表 链路层 (L2) 交换机内部 MAC-端口映射表,用于快速硬件查表,决定帧从哪个端口发出
路由表 网络层 (L3) 路由器内部 目的网络-下一跳-出接口映射,指导 IP 报文跨网转发

1、局域网间通讯

如(图)网络传输所示,若电脑A与电脑B通讯,数据传输步骤如下所示:

  1. 电脑A用子网掩码判断目标IP与自身同网段 → 走局域网直接交付。
  2. 电脑A查本地ARP缓存:
    • 命中 → 直接得到电脑B的MAC;
    • 未命中 → A发ARP请求(广播),B单播回应MAC,A缓存并填充帧头。
  3. 电脑A构造以太网帧:目的MAC=B,源MAC=A,类型=0x0800,载荷为IP报文。
  4. 帧进入交换机A:
    • 交换机A学习源MAC,更新CAM表;
    • 查目的MAC,若表项存在则单播转发到对应端口;若无表项则泛洪到同一VLAN内所有端口(除源端口)。
  5. 电脑B收到帧,FCS校验正确后解封→交IP层→确认目的IP为本机,完成通信。

2、跨网络通讯

如(图)网络传输所示,若电脑A与电脑E通讯,数据传输步骤如下所示:

  1. 电脑A用子网掩码判断目标IP与自身不同网段 → 需走默认网关。
  2. 电脑A查本地ARP缓存:
    • 命中 → 直接得到网关MAC;
    • 未命中 → A发ARP请求(广播),网关单播回应MAC,A缓存并填充帧头。
  3. 电脑A构造以太网帧:目的MAC=网关,源MAC=A,类型=0x0800,载荷为IP报文(目的IP=E)。
  4. 帧进入交换机A:
    • 学习源MAC,更新CAM表;
    • 查目的MAC命中网关端口,单播转发给路由器A。
  5. 路由器A收帧→解封至IP层→查路由表得下一跳(路由器B接口)→减TTL→重新封装新帧: 目的MAC=路由器B接口MAC,源MAC=本出接口MAC。
  6. 帧经交换机B(若存在)→送达路由器B。
  7. 路由器B解封→查路由表得目的网络直连本地接口→查ARP缓存:
    • 命中 → 直接得到电脑E的MAC;
    • 未命中 → B发ARP请求(广播),E单播回应MAC,B缓存并填充帧头。
  8. 路由器B构造末帧:目的MAC=E,源MAC=本接口MAC,类型=0x0800,发往交换机C。
  9. 交换机C学习源MAC,查目的MAC命中E端口,单播转发。
  10. 电脑E收到帧,FCS校验正确后解封→交IP层→确认目的IP为本机,完成跨网络通信。

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

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

相关文章

极值定理

若函数 \(f\) 在 \(x = c\) 处有一个局部最大值或局部最小值,则 \(f\) 在 \(x = c\) 处不可导或者 \(f(c)=0\) 。 比如说 \(f\) 在 \(x = c\) 处是个尖角,那么肯定就不可导。 若可导,不妨令是最大值(最小值类似)则…

10.25 CSP-S 模拟赛

Contest CSP-ST1 你脑子呢? 确定的情况即选比 \(a_i\) 小的,记 \(a_i\) 的排名为 \(rank_i\),则答案为 \(\binom{rank_i - 1}{k - 1}\)。 T2 大力分讨。 无论什么情况都有一个直接走到的选项 \(\operatorname{lcm}(…

【CI130x 离在线】如何运行 curl 脚本

在各种大模型的API文档中,经常会用到 curl 工具,那么——如何运行 curl 脚本呢?在Linux平台 对于复杂的代码,建议创建脚本文件:# 创建脚本文件 nano myscript.sh然后执行以下指令 # 在文件中粘贴代码,然后保存退…

日总结 18

Hive 是基于 Hadoop 生态的大数据仓库工具,通过类 SQL 的 HQL 语法简化大规模结构化 / 半结构化数据的离线批处理,底层依赖 HDFS 存储数据,计算引擎支持 MapReduce、Tez、Spark 等;其架构包含用户接口、元数据存储…

一场比赛

题目难度 颜色 分值入门 红 100普及- 橙 150普及/提高- 黄 250普及+/提高 绿 500提高+/省选- 蓝 1500省选/NOI- 紫 3500

这才是真正的AI NAS!极空间私有云Z2Ultra评测

这才是真正的AI NAS!极空间私有云Z2Ultra评测Posted on 2025-10-27 20:02 lzhdim 阅读(0) 评论(0) 收藏 举报一、前言 在NAS以及私有云领域,可能有些老玩家只知道群晖。但实际上根据天猫及京东销售数据统计,极…

新东方第三节课名言作文

开头段:1引入名言(照抄);2概括名言主题(补充一下);3个人立场(证据)A famous and enlihtening saying goes that"Respect others,and you will be respected."This remark convers a thought-provok…

【性能优化必看】CPU耗时飙高?GC频繁停顿?一文教你快速定位!​

本文分享了Java应用性能问题的排查方法,分为CPU飙升和JVM排查两部分。CPU问题排查需从进程到线程递进分析,使用top、jstack等工具定位高负载线程和代码位置。JVM排查则涉及内存溢出、GC异常等场景,通过jstat、jmap等…

​Fedora 37 安装 libicu-71.1-2.fc37.x86_64.rpm 教程(命令行步骤)​

​Fedora 37 安装 libicu-71.1-2.fc37.x86_64.rpm 教程(命令行步骤)​​一、先确认你的系统 这个包是 ​Fedora 37、64位系统(x86_64)​​ 的,所以:你得是 ​Fedora 37​ 系统电脑是 ​64位​ 的(现在大多数都是…

十月阅读_3

“简单工具的力量” 在本章被诠释得淋漓尽致。作者以 “石头剪刀布” 的极简逻辑,隐喻编程中 “基础思维决定复杂问题解法” 的本质。我曾在一个分布式任务调度项目中,因过度依赖第三方框架的复杂配置而陷入困境;后…

学校协同云盘怎么选?2025年10大热门教育网盘推荐与对比

为满足学校在教学、科研与安全合规上的需求,选择合适的协同云盘至关重要。本文深度对比了坚果云与Zoho两款主流方案。坚果云凭借其专业的无感同步、强大的文件历史版本功能以及金融级的公安部等保三级安全认证,在效率…

从神经信号到驾驶安全:Mentalab无线脑电图系统赋能汽车人因研究与HMI优化 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

GPU集群之间的交互

目前,分散在各地的GPU智算集群之间通常没有直接的、实时的相互调用关系来共同训练一个单一的大模型。它们之间的关系更多是独立运作、资源错配或通过更高层级的调度系统进行间接协调,而不是像单个集群内部的GPU那样紧…

Java并发编程基础:从线程管理到高并发应用实践

本篇主要是多线程的基础知识,代码示例较多,有时间的可以逐个分析,具体细节都放在代码注释中了。 1. 理解线程:多任务执行的基石 1.1 什么是线程? 在现代操作系统中,进程是资源分配的基本单位,而线程是CPU调度的最…

基于ECharts 6.0实现实时材料监控看板

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

python爬取京东评论 -

python爬取京东评论使用DrissionPage模块进行爬取,DrissionPage是一个自动化的模块,可以模拟人的操作,进行翻页等操作,比传统爬取更加方便 在使用DrissionPage之前,需要先初始化路径运行下面的代码,需要将rD:\Ch…

CF1267G Game Relics

CF1267G Game Relics有 \(n\) 个物品,你可以进行下面两种操作:花费 \(c_i\) 元购买第 \(i\) 个物品。花费 \(x\) 元抽奖,等概率随机获得一个物品 \(i\)。若你已经拥有第 \(i\) 个物品,则你本次抽奖的花费改为 \(\d…

Spring Cloud Alibaba + Dubbo

Spring Cloud Alibaba + Dubbo 在微服务世界里,服务间的调用就像小伙伴之间传纸条。你可以直接跑过去,也可以用 Dubbo——微服务界的“极速传声筒”,帮你瞬间把消息传到对方手里,还保证安全可靠。 本文将从 Dubbo …

鲜花10/27

我留下了如同美梦一般的回忆/不过时间到了/最后我还想拜托你一件事/希望你可以把我忘掉