TCP/IP网络模型详解

news2024/9/21 16:25:45

在计算机网络领域,网络模型通常指的是 OSI(Open Systems Interconnection)参考模型或 TCP/IP(Transmission Control Protocol/Internet Protocol)模型。这些模型描述了网络中数据传输的层次结构,便于理解和设计网络系统。

1.OSI七层网络模型

OSI(Open Systems Interconnection)七层网络模型是国际标准化组织(ISO)制定的一种抽象框架,用于描述计算机网络中数据传输和通信的层次化结构。该模型将网络通信分解为七个层次,每个层次负责不同的功能,从物理传输到应用服务的完整处理过程。

OSI七层模型的各层及其职责:

  1. 物理层(Physical Layer)

    • 职责:负责传输比特流(bitstream)通过物理介质(如电缆、光纤)进行通信。它定义了连接设备的机械、电气、功能和过程特性。
    • 例子:Ethernet、WiFi、光纤等。
  2. 数据链路层(Data Link Layer)

    • 职责:确保在物理链路上传输的数据的可靠性和完整性。它负责将原始比特流转换为有意义的帧(Frame),并处理数据帧的错误检测和纠正。
    • 例子:以太网(Ethernet)、MAC(Media Access Control)地址等。
  3. 网络层(Network Layer)

    • 职责:处理网络间的数据传输路径选择和数据包转发。它负责将数据从源主机传输到目标主机,包括寻址、路由和流量控制。
    • 例子:IP(Internet Protocol)、IPv4、IPv6、路由器等。
  4. 传输层(Transport Layer)

    • 职责:提供端到端的数据传输服务,确保数据的可靠性、完整性和顺序性。它负责将数据分段并在通信的端点重新组装。
    • 例子:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)。
  5. 会话层(Session Layer)

    • 职责:管理和维护通信会话,包括建立、管理和终止会话连接。它提供了在数据交换中设置、管理和终止会话的方法。
    • 例子:RPC(Remote Procedure Call)、NetBIOS、Sockets等。
  6. 表示层(Presentation Layer)

    • 职责:处理数据的格式化、编码和加密,以确保应用层能够解释接收到的数据。它负责数据的语法和语义转换。
    • 例子:JPEG、ASCII、加密解密等。
  7. 应用层(Application Layer)

    • 职责:为用户提供网络服务,实现特定的应用功能和协议。它是用户能够直接使用的网络服务接口。
    • 例子:HTTP、FTP、SMTP、DNS等。

2.TCP/IP四层网络模型

由于 OSI 模型实在太复杂,提出的也只是概念理论上的分层,并没有提供具体的实现方案。事实上,我们比较常见,也比较实用的是四层模型,即 TCP/IP 网络模型,Linux 系统正是按照这套网络模型来实现网络协议栈的。

TCP/IP四层模型的各层及其职责:

  1. 网络接口层(Network Interface Layer)

    • 职责:负责将数据包从物理介质发送到网络上的其他设备,处理物理地址(MAC地址)和数据帧的格式。
    • 例子:以太网、WiFi、PPP(Point-to-Point Protocol)等。
  2. 网络层(Internet Layer)

    • 职责:负责在网络中寻址、路由和转发数据包,确保数据包从源主机传输到目标主机。
    • 例子:IP(Internet Protocol)、ICMP(Internet Control Message Protocol)、ARP(Address Resolution Protocol)等。
  3. 传输层(Transport Layer)

    • 职责:提供端到端的数据传输服务,确保数据的可靠性、顺序性和流量控制。
    • 例子:TCP(Transmission Control Protocol)、UDP(User Datagram Protocol)。
  4. 应用层(Application Layer)

    • 职责:提供网络服务给最终用户,支持各种应用程序,如电子邮件、网页浏览、文件传输等。
    • 例子:HTTP(Hypertext Transfer Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)、DNS(Domain Name System)等。

OSI七层模型与TCP/IP四层模型的对应关系:

  • 应用层(OSI模型第7层) 对应 应用层(TCP/IP模型第4层):提供用户接口,支持特定应用程序的协议和数据格式。
  • 表示层(OSI模型第6层)会话层(OSI模型第5层) 在TCP/IP模型中并没有明确的对应层次,这些功能通常由应用层协议自行处理。
  • 传输层(OSI模型第4层) 对应 传输层(TCP/IP模型第3层):提供端到端的数据传输服务,确保数据的可靠性和流量控制。
  • 网络层(OSI模型第3层) 对应 网络层(TCP/IP模型第2层):负责数据包的路由和转发,确保数据从源主机传输到目标主机。
  • 数据链路层(OSI模型第2层)物理层(OSI模型第1层) 在TCP/IP模型中合并为 网络接口层(TCP/IP模型第1层):处理物理介质和数据帧的传输。

3.数据通信过程

当数据从发送方传输到接收方时,会经历多个层次的封装和解封装过程。

数据封装过程(发送方)

  1. 应用层

    • 应用层生成应用数据,如HTTP请求或电子邮件。
    • 数据形态:应用数据(Application Data)
  2. 传输层

    • 传输层将应用数据封装在TCP或UDP报文段(Segment)中,增加传输层首部(如TCP首部,包含端口号、序列号等)。
    • 数据形态:TCP报文段(TCP Segment)或UDP数据报(UDP Datagram)
  3. 网络层

    • 网络层将传输层报文段封装在IP数据包(Packet)中,增加网络层首部(如IP首部,包含源IP地址、目标IP地址等)。
    • 数据形态:IP数据包(IP Packet)
  4. 网络接口层

    • 网络接口层将IP数据包封装在帧(Frame)中,增加数据链路层首部和尾部(如以太网首部和尾部,包含源MAC地址、目标MAC地址等)。
    • 数据形态:帧(Frame)

封装完成后,数据通过物理介质(如电缆、无线电波等)传输到网络。

数据解封装过程(接收方)

  1. 网络接口层

    • 接收方的网络接口层接收帧并解封装,移除数据链路层的首部和尾部,提取出IP数据包。
    • 数据形态:IP数据包(IP Packet)
  2. 网络层

    • 网络层解封装IP数据包,移除网络层首部,提取出传输层报文段。
    • 数据形态:TCP报文段(TCP Segment)或UDP数据报(UDP Datagram)
  3. 传输层

    • 传输层解封装传输层报文段,移除传输层首部,提取出应用数据。
    • 数据形态:应用数据(Application Data)
  4. 应用层

    • 应用层处理并使用解封装后的数据,如显示网页内容或存储电子邮件。

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

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

相关文章

ROS2从入门到精通2-3:详解机器人3D物理仿真Gazebo与案例分析

目录 0 专栏介绍1 什么是Gazebo?2 Gazebo架构2.1 Gazebo前后端2.2 Gazebo文件格式2.3 Gazebo环境变量3 Gazebo安装与基本界面4 搭建自己的地图4.1 编辑地图4.2 保存地图4.3 加载地图5 常见问题0 专栏介绍 本专栏旨在通过对ROS2的系统学习,掌握ROS2底层基本分布式原理,并具有…

【面试八股文】计算机操作系统

参考:大佬图解文章 → 小林coding 简介:之前在学习小林大佬的八股文时,摘录了一些个人认为比较重要的内容,方便后续自己复习。【持续更新ing ~💯】 注:加五角星标注的,是当前掌握不牢固的&…

WEB攻防-通用漏洞-SQL注入-MYSQL-union一般注入

前置知识 MySQL5.0以后存放一个默认数据库information_schemaschemata表存放该用户创建的所有库名,schemata. schema_name字段存放库名tables表存放该用户创建的所有库名和表明,tables.table_schema字段存放库名,tables.table_name存放表名co…

Elastic 及阿里云 AI 搜索 Tech Day 将于 7 月 27 日在上海举办

活动主题 面向开发者的 AI 搜索相关技术分享,如 RAG、多模态搜索、向量检索等。 活动介绍 参加 Elastic 原厂与阿里云联合举办的 Generative AI 技术交流分享日。借助 The Elastic Search AI Platform, 使用开放且灵活的企业解决方案,以前所…

基于YOLO8的目标检测系统:开启智能视觉识别之旅

文章目录 在线体验快速开始一、项目介绍篇1.1 YOLO81.2 ultralytics1.3 模块介绍1.3.1 scan_task1.3.2 scan_taskflow.py1.3.3 target_dec_app.py 二、核心代码介绍篇2.1 target_dec_app.py2.2 scan_taskflow.py 三、结语 在线体验 基于YOLO8的目标检测系统 基于opencv的摄像头…

Spring Cloud GateWay(4.1.4)

介绍 该项目提供了一个建立在 Spring 生态系统之上的 API 网关,包括:Spring 6、Spring Boot 3 和 Project Reactor。Spring Cloud Gateway 旨在提供一种简单而有效的方法来路由到 API,并为其提供跨领域关注点,例如:安…

华清数据结构day3 24-7-18

基于昨天代码增加增删改查功能 zy.h #ifndef ZY_H #define ZY_H #define MAX 100 //最大容量 //定义学生类型 struct Stu {char name[20];int age;double score; }; //定义班级类型 struct Class {struct Stu student[MAX]; //存放学生的容器int size; //实际…

【Git】(基础篇五)—— Git进阶

Git进阶 之前关于本地和远程仓库的各种操作都已经非常基础了,本文介绍git的一些进阶使用和设置 用户名和邮箱 之前介绍的每一次提交(commit) 都会产生一条日志(log) 信息,这条日志信息不仅会记录提交信息,还会记录执行提交操作的这个用户的…

【QAC】分布式部署下其他机器如何连接RLM

1、 文档目标 解决分布式部署下其他机器如何连接RLMLicense管理器。 2、 问题场景 分布式部署下QAC要在其他机器上单独运行扫描,必须先连接RLMLicense管理器,如何连接? 3、软硬件环境 1、软件版本:HelixQAC23.04 2、机器环境…

ClusterIP、NodePort、LoadBalancer 和 ExternalName

Service 定义 在 Kubernetes 中,由于Pod 是有生命周期的,如果 Pod 重启它的 IP 可能会发生变化以及升级的时候会重建 Pod,我们需要 Service 服务去动态的关联这些 Pod 的 IP 和端口,从而使我们前端用户访问不受后端变更的干扰。 …

SpringBoot Security OAuth2实现单点登录SSO(附源码)

文章目录 基础概念1. 用户认证2. 单点登录(SSO)3. 授权管理4. 安全性和配置 逻辑实现配置认证服务器配置Spring Security两个客户端 页面展示本篇小结 更多相关内容可查看 附源码地址:https://gitee.com/its-a-little-bad/SSO.git 基础概念 …

HarmonyOS 状态管理(一)

1. HarmonyOS 状态管理 1.1. 说明 官方文档(https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-state-management-V5) 1.1.1. 状态管理(V1稳定版) 状态管理(V1稳定版)提供了多种…

90+ Python 面试问答(2024 版)

90+ Python 面试问答(2024 版) 一、介绍 欢迎来到准备数据科学工作面试的第一步。这里有一个全面而广泛的 Python 面试问题和答案列表,可帮助您在面试中取得好成绩并获得理想的工作!Python 是一种解释型通用编程语言,由于其在人工智能 (AI) 中的使用,如今需求量很大。…

python大小写转换、驼峰大小写转换

一 大小写转换 1第1个单词的首字母大写 capitalize() 2每个单词的首字母大写 title() 3所有字母大小写转换 swapcase() 代码示例 texttoday is sundaYprint(text.capitalize()) # 仅第1个单词的首字母大写 print(text.title()) # 每个单词的首字母大写 print(text.swapcase…

Vue 多选下拉框+下拉框列表中增加标签

1、效果图 2、代码部分 &#xff08;1&#xff09;代码 <el-select class"common-dialog-multiple multipleSelectStyle" change"clusterListChange" v-model"form.clusterId" placeholder"请先选择" multiple filterable defaul…

【BUG】已解决:AttributeError: ‘str‘ object has no attribute ‘read‘

AttributeError: ‘str‘ object has no attribute ‘read‘ 目录 AttributeError: ‘str‘ object has no attribute ‘read‘ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998https://bbs.csdn.net/topics/617804998 欢迎来到我的主…

(7) cmake 编译C++程序(二)

文章目录 概要整体代码结构整体代码小结 概要 在ubuntu下&#xff0c;通过cmake编译一个稍微复杂的管理程序 整体代码结构 整体代码 boss.cpp #include "boss.h"Boss::Boss(int id, string name, int dId) {this->Id id;this->Name name;this->DeptId …

error C2011: “sockaddr_in”:“struct”类型重定义的修改办法

问题 windows.h和winsock2.h存在有类型重定义,往往体现在头文件包含winsock2.h和windows.h时出现编译错误: error C2011: “sockaddr_in”:“struct”类型重定义 2>D:\Windows Kits\10\Include\10.0.22000.0\shared\ws2def.h(442,5): error C2143: 语法错误: 缺少“}”(…

为什么大家都想学大模型?一文揭秘!

小编只是普通的汽车软件工程师&#xff0c;想了解人工智能&#xff0c;又感觉好遥远&#xff0c;仔细的看了半天&#xff0c;就一个想法 好好拥抱AI吧。真的好强。 相比之下&#xff0c;Autosar 是个 der 啊。。。。 人工智能基础概念全景图 AI -> 机器学习 机器学习 ->…

探索 Python 的新视界:ttkbootstrap 库

探索 Python 的新视界&#xff1a;ttkbootstrap 库 背景与简介 在 Python 的世界中&#xff0c;库的丰富性是其强大功能的重要体现之一。今天&#xff0c;我们将一起探索一个令人兴奋的库——ttkbootstrap。这个库不仅提供了丰富的界面组件&#xff0c;还使得界面设计变得简单…