网络---协议(TCP/IP五层模型)

2023-05-16

文章目录

    • 1.TCP/IP五层模型
      • 1.1 分层
      • 1.2 封装
      • 1.3 分用

“协议” 即一种约定
网络通信协议――>网络通信中的数据的格式约定。
协议分层:一些组织为了能够实现网络互联,将复杂的网络通信环境,按照提供的不同的服务,使用的不同的协议接口划分为多层。

OSI七层模型(不实用)分为:应用层,表示层,会话层,传输层,网络层,链路层,物理层

OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型,是一个逻辑上的定义和规范;
把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备,比如路由器,交换机;
OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;
但是, 它既复杂又不实用;。

1.TCP/IP五层模型

分为:应用层,传输层,网络层,链路层,物理层
其中上层需要遵循下层的协议,下面四层的协议是网络早期设计的,上层应用需要下层所提供的网络来完成自己的需求.

1.1 分层

  1. 应用层:负责进程间的沟通;可自己定义,或者使用一些知名协议 -------HTTP;文件传输协议(FTP)等。网络编程主要就是针对应用层.

  2. 传输层:负责两台主机之间的数据传输, 能够确保数据可靠的从源主机发送到目标主机.;------- TCP/UDP协议,

  3. 网络层:负责地址管理与路由选择;转发设备–>路由器;--------IP协议(有源端IP,对端IP信息)。

  4. 链路层:负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.;-------ETH(以太网协议)–>有源端对端物理网卡信息。

  5. 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念集线器; --------以太网协议(ETH)。

假设在一个局域网(L A N)如以太网中有两台主机,二者都运行 F T P协议,图 1 - 2列出了该过程所涉及到的所有协议。
在这里插入图片描述
图1 - 2列举了一个 F T P客户程序和另一个 F T P服务器程序,在同一层上,双方都有对应的一个或多个协议进行通信。例如,某个协议允许 T C P层进行通信,而另一个协议则允许两个 I P层进行通信。在图1 - 2的右边,我们注意到应用程序通常是一个用户进程,而下三层则一般在(操作系统)内核中执行。尽管这不是必需的,但通常都是这样处理的,例如 U N I X操作系统。在图1 - 2中,顶层与下三层之间还有另一个关键的不同之处。应用层关心的是应用程序的细节,而不是数据在网络中的传输活动。下三层对应用程序一无所知,但它们要处理所有的通信细节。在图1 - 2中列举了四种不同层次上的协议。 F T P是一种应用层协议, T C P是一种运输层协议, I P是一种网络层协议,而以太网协议则应用于链路层上。 T C P / I P协议族是一组不同的协议组合在一起构成的协议族。尽管通常称该协议族为 T C P / I P,但T C P和I P只是其中的两种协议而已。

eg:TCP/IP的分层:
在这里插入图片描述

  1. T C P和U D P是两种最为著名的运输层协议,二者都使用 I P作为网络层协议。虽然T C P使用不可靠的 I P服务,但它却提供一种可靠的运输层服务。
  2. U D P为应用程序发送和接收数据报。一个数据报是指从发送方传输到接收方的一个信息单元(例如,发送方指定的一定字节数的息)。但是与 T C P不同的是, U D P是不可靠的,它不能保证数据报能安全无误地到达最终目的。
  3. I P是网络层上的主要协议,同时被 T C P和U D P使用。 T C P和U D P的每组数据都通过端系统和每个中间路由器中的I P层在互联网中进行传输。
  4. I C M P是I P协议的附属协议。 I P层用它来与其他主机或路由器交换错误报文和其他重要信息。尽管I C M P主要被I P使用,但应用程序也有可能访问它。
  5. I G M P是I n t e r n e t组管理协议。它用来把一个 U D P数据报多播到多个主机。
  6. A R P(地址解析协议)和 R A R P(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换 I P层和网络接口层使用的地址。

1.2 封装

应用程序数据在发送到物理网络上之前,将沿着协议栈从上往下依次传递。每层协议都在上层数据的基础上加上自己的头部信息(有时也包含尾部信息),以实现该层的功能,这个过程就称为封装(原始数据在系统中通过层层封装描述的过程。)。

流程如下图所示:当应用程序用 T C P传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图 下图所示。 T C P传给I P的数据单元称作 T C P报文段或简称为 T C P段(T C Ps e g m e n t)。 I P传给网络接口层的数据单元称作 I P数据报(IP datagram)。通过以太网传输的比特流称作帧(Fr a m e )。其中帧头和帧尾下面所标注的数字是典型以太网帧首部的字节长度。
在这里插入图片描述

1.3 分用

数据到达对端主机后,层层解析的过程。
当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用(D e m u l t i p l e x i n g),下图显示了该过程是如何发生的
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网络---协议(TCP/IP五层模型) 的相关文章

  • 【电路】PT1000/PT100温度采集电路

    目录 原理图下载链接 xff1a https download csdn net download Roger 717 33823983https download csdn net download Roger 717 33823983h
  • 【QT】手把手制作一个QT网络调试助手(准备阶段)

    目录 1 新建一个工程 2 mainwindow ui设计 2 1 对窗口主体进行栅格化布局 2 2 添加网络通信配置GroupBox 2 2 1 填充内容 2 2 2 栅格布局GroupBox 2 3 总结 3 Pro程序配置 4 头文件
  • 【PR】PR视频剪辑实用技巧

    1 两个视频叠加 1 首先 xff0c 找到要导入的视频所在文件夹 xff0c 将视频拖动到项目面板中 按住Ctrl拖动视频再复制两个视频 2 将素材视频分别拖入到序列的 视频轨道1 2 3 3 点击选中轨道1上的视频 xff0c 在源面板
  • 【Project】项目管理软件学习笔记

    一 前言 使用Project制定项目计划步骤大致如下 xff1a 以Project2013为例 xff0c 按照上图步骤指定项目计划 二 实施 2 1 创建空白项目 点击文件 新建 空白项目 xff0c 即完成了空白项目的创建 xff0c
  • 【硬件】P沟道和N沟道MOS管开关电路设计

    场效应管做的开关电路一般分为两种 xff0c 一种是N沟道 xff0c 另一种是P沟道 xff0c 如果电路设计中要应用到高端驱动 的话 xff0c 可以采用PMOS来导通 P沟道MOS管开关电路 PMOS的特性 xff0c Vgs小于一定
  • 多线程基础之七:多线程遇上printf的“延迟写”策略

    0 运行库提供的IO读写函数采用 延迟写 策略的原因 编程时经常会用到printf 函数 xff0c 但是由于printf 函数涉及到和显示器或磁盘等外设进行交互 xff0c 所以操作涉及到从 用户态 gt 内核态 gt 返回用户态 的一系
  • VC和VS区别

    S是Visual Studio xff0c 它是微软提供的一个工具集 xff0c 由各种各样的工具组成 VS可以支持C C 43 43 VB JAVA C 编程 然了一次只能支持一种编程方式 在VS安装完成 xff0c 第一次运行的时候会让
  • 【potplayer安装及设置LAV Splitter】

    potplayer安装及设置LAV Splitter 下载及安装Lav Splitter解码器配置Lav Splitter解码器 potplayer是一款windows平台上一款轻量功能强大的播放器 xff0c 它界面简洁 xff0c 功能
  • 关于头文件的相互包含

    编程过程中 xff0c 经常会碰到头文件的相互包含 xff0c 如果处理不慎 xff0c 就会报错 比如在头文件A h中有如下代码 xff08 代码中的B Handle是在头文件B h中定义的 xff09 xff1a span class
  • Python list中去重的多种方法

    去重之后顺序会改变 set去重 列表去重会让列表改变原来的顺序 l1 61 1 4 4 2 3 4 5 6 1 l2 61 list set l1 print l2 1 2 3 4 5 6 但是 xff0c 可以通过列表中索引 xff08
  • TI学习笔记之“振动补偿算法”

    一些应用中 xff0c 负载和机械角度有关 xff0c 比如空调压缩机 典型压缩机应用的负载曲线如下图所示 xff0c 不难发现 xff0c 在一个机械周期内 xff0c 负载和机械角度存在一定的关系 xff0c 这种情况在转子式压缩机中尤
  • “compilerPath“的问题

    在c cpp properties josn文件中 xff0c complierPath的问题解决如下 如果正在编译c 43 43 文件 xff0c 先在终端输入which g 43 43 我的弹出了 usr bin g 43 43 把这个
  • Digest Authentication Response 如何计算

    Session Initiation Protocol NOTIFY Request Line NOTIFY sip 192 168 125 130 5060 SIP 2 0 Method NOTIFY Request URI sip 19
  • ROS-Melodic 编译Moveit全过程记录和错误解决方案

    ROS Melodic 编译Moveit全过程记录和错误解决方案 在Ros Melodic版本下 xff0c 直接运行sudo apt get install ros melodic moveit会出现以下错误 xff1a 下列软件包有未满
  • Jetson TX2在ROS下使用Realsense D435i跑rtabmap、octomap、VINS-Mono和ORB-SLAM2

    使用环境 xff1a Ubuntu 16 04 JetPack 3 3 xff0c ROS Kinetic硬件设备 xff1a 英伟达Jetson TX2 xff0c 英特尔Realsense D435i 安装Realsense相关的相机驱
  • C++实现流式socket聊天程序

    目录 协议设计 消息的类型 消息的语法 消息的语义 消息的处理 发送消息 接收消息 程序设计 模块的划分和功能 Client客户端 Server服务器 模块流程图 程序实现 辅助代码 client cpp server cpp 程序测试 本
  • STM32 串口 FIFO

    使用FIFO实现串口数据的收发功能 FIFO的相关实现参照链接 xff1a CSDN https mp csdn net mp blog creation editor 120448361 1 Cubemx串口配置 使用Cubmx对串口进行
  • C Primer Plus

    C Primer Plus作为一本被人推崇备至的c入门经典 xff0c C primer plus绝非浪得虚名 应该算得上C教材里最好的入门书了 在知识广度上 xff0c 很少有书能匹及 它能为你系统学习c提供一个良好的平台 作者对c的见解
  • Python 如何处理大文件

    Python作为一门程序设计语言 xff0c 在易读 易维护方面有独特优势 xff0c 越来越多的人使用 Python 进行数据分析和处理 xff0c 而 Pandas 正是为了解决数据分析任务而创建的 xff0c 其包含大量能便捷处理数据

随机推荐

  • C++构造DHCP Discovery报文并使用socket发送

    DHCP由BOOTP协议发展而来 xff0c 而后者基于UDP IP协议 xff0c 这使得使用socket发送DHCP报文成为可能 本文示例构造了DHCP Discovery报文并调用socket接口发送 xff0c 值得注意的是 xff
  • pycharm 常用快捷键整理

    pycharm常用快捷键 1 编辑 xff08 Editing xff09 Ctrl 43 Space 基本的代码完成 xff08 类 方法 属性 xff09 Ctrl 43 Alt 43 Space 快速导入任意类 Ctrl 43 Shi
  • RTT串口V1版本的使用分析及问题排查指南(一)

    本文由RT Thread论坛用户123原创发布 xff1a https club rt thread org ask article 2894 html RTT串口V1版本的使用分析及问题排查指南 一 简述 无论是刚接触 RT Thread
  • 总结基于寄存器与基于固件库stm32编程的差异

    基于寄存器与基于固件库stm32编程方式有什么差异 总的来说是专业层面或者说是应用层面的区别 总的来说是专业层面或者说是应用层面的区别 从应用角度讲 xff0c 寄存器相对来说是属于更底层的 xff0c 类似于驱动层 xff0c 而固件库则
  • Python 3中HTTPparse 的使用

    在python中能够进行html和xhtml的库有很多 xff0c 如HTMLParser sgmllib htmllib BeautifulSoup mxTidy uTidylib等 xff0c 这里介绍一下HTMLParser Beau
  • STorM32三轴云台控制器PID参数调节(1)

    本文是一篇利用STorM32板子控制三轴云台的经验贴 xff0c 内容包括从所有的硬件到位开始到pid参数调节完成中的一些经验 xff0c 完成这一步后 xff0c 就可以拥有一个稳定的云台了 本文是基于 STorM32 BGC32Bit
  • Centos libevent install

    1 下载安装包 xff1a 官网 http libevent org libevent 2 1 8 stable tar gz 2 解压 tar zxvf libevent 2 1 8 stable tar gz 3 进入目录 cd lib
  • windows waveIn 录音

    windows waveIn 录音 编写背景1查找设备2 根据设备名称找到设备3 打开设备4 开始录音5 结束录音 编写背景 windows xp 系统不支持 WASAPI xff0c 选择 waveIn API 1查找设备 获取音频设备数
  • waveIn 录音遇到的问题与解决方案

    问题点 1 录音过程中拔出设备 xff0c 程序死锁 添加缓存的之前需要检查设备是否存在 case WIM DATA if xff08 is device exsit xff09 设备是否存在 xff0c 可以通过获取设备信息来判断 预处理
  • vs2013编译32位的libcurl

    编译 libcurl 下载 CURL源码打开 VS2013 x86 本机工具命令提示cd 进入 curl 源码 winbuild 目录执行命令 xff1a nmake f Makefile vc mode 61 static VC 61 1
  • python两个列表获取交集,并集,差集

    list1 61 1 2 3 4 5 6 list2 61 2 3 4 交集 方法一 xff1a list3 61 new for new in list1 if new in list2 方法二 xff1a list3 61 list s
  • FFMPEG 指令

    ffplay 拉取流 ffplay exe i rtmp address fflags nobuffer ffmpeg commend lines 只推屏幕 dshow 模式 ffmpeg ffmpeg exe f dshow i vide
  • 电子罗盘

    电子罗 种重要的导航工具 xff0c 能实时提供移动物体的航向和姿态 随着半导体工艺的进步和手机操作系统的发展 xff0c 集成了越来越多传感器的智能手机变得功能强大 xff0c 很多手机上都实现了电子罗盘的功能 而基于电子罗盘的应用 xf
  • C++中的.和::和:和->的区别

    在学习C 43 43 的过程中我们经常会用到 和 和 xff1a 和 gt xff0c 在此整理一下这些常用符号的区别 1 A B则A为对象或者结构体 xff1b 2 A gt B则A为指针 xff0c gt 是成员提取 xff0c A g
  • STM32 HAL库函数学习 UART篇

    从今天开始定时更新一下有关STM32 HAL库学习的过程 xff0c 主要是对HAL库函数的所有讲解 本章是关于uart串口的函数 1 HAL UART Init xff08 UART HandleTypeDef husart xff09
  • 常见排序算法性能分析比较(快排,希尔,堆排,归并,插入排序等)

    文章目录 1 各种排序算法实现及其特点1 1 直接插入排序1 2 希尔排序1 3 直接选择排序1 4 堆排序1 5 冒泡排序1 6 快速排序1 7 归并排序1 8 计数排序 2 排序算法复杂度及稳定性分析 1 各种排序算法实现及其特点 1
  • 将visdrone数据集转化为coco格式并在mmdetection上训练,附上转好的json文件

    visdrone是一个无人机的目标检测数据集 xff0c 在很多目标检测的论文中都能看到它的身影 标签从0到11分别为 ignored regions pedestrian people bicycle car van truck tric
  • mmdetection --tools工具简单使用1

    文章目录 demo使用单张图片测试 image demo py视屏推理 video demo py本地摄像头测试 xff1a webcam demo py 测试现有模型 test py单 GPU 测试多 GPU 测试 训练 train py
  • 网络---IP地址和端口

    1 网络分类 根据网络大小 xff1a 局域网 xff0c 城域网 xff0c 广域网 xff08 互联网 61 因特网 更大的广域网 xff09 根据网络的组网方式 xff1a 以太网 xff0c 令牌环网 2 IP地址 计算机网络 IP
  • 网络---协议(TCP/IP五层模型)

    文章目录 1 xff34 xff23 xff30 xff0f xff29 xff30 五层模型1 1 分层1 2 封装1 3 分用 协议 即一种约定 网络通信协议 xff1e 网络通信中的数据的格式约定 协议分层 xff1a 一些组织为了能