网络传输基本流程

2023-11-18

网络传输流程图

在这里插入图片描述
在数据链路层有一个标识:每一台主机的唯一符:MAC地址
MAC地址:计算机的网卡在出厂时就打上了一串数据:MAC 地址,其通常是唯一的。
所以局域网中发消息必须加上目的主机的MAC地址。

两台计算机通过 TCP/IP 协议通讯的过程如下所示:
在这里插入图片描述
数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。

TCP/IP 通讯过程:多台主机 —— 局域网

假若有两台主机 A 和 B 发消息:
在这里插入图片描述
A主机发了一条消息给B主机,局域网上的所有主机都收到了,但是只有主机B接收这条消息。其他主机也收到了,但是直接丢弃了这条消息。收到消息之后只有B主机会响应数据给A主机。

A 主机在发消息的时候可能另外的一台主机也发消息,进而导致以太网着一根线上跑了很多的电线号。进而导致它们的电信号互相混合。发消息的两台主机发完消息之后立马做碰撞检测,若检测到没有碰撞,消息已经被对方接受了。若检测到碰撞了,则两台主机做等待处理,即碰撞避免

局域网通信原理:

  1. 局域网内通信 A 主机和 B 主机通信,所有主机都收到了消息,但是所有主机都答消息丢弃了。
  2. 在任何时刻,局域网中只有一个人发消息,如果有多个人发消息,局域网中就会产生数据碰撞。所以每一台主机都有一个基本的功能叫碰撞检测。
  3. 碰撞检测完成一旦发现由有碰撞就应该执行自己的碰撞避免算法,算法的本质就是等待,在合适的时候再发消息。

如何保证每个消息收到:任何时候只有一个人说话。

局域网的数据碰撞:两个人或多个人同时说话。每个人都要做碰撞检测,一旦检测到则做碰撞避免。

数据包封装和分用

下面是数据封装的过程:
在这里插入图片描述
不同的协议层堆数据包有不同的称谓:

  1. 传输层:
  2. 网络层:数据报
  3. 数据链路层:

当数据从上层到下层交付的时候,要进行封装,到了堆端之后要进行解包,在解包的时候要决定数据交给上层,还有一个动作叫分用
数据必须通过物理层(硬件)。

  • 封装:封装数据前加报头,包头后面被封装的叫有效载荷
  • 解包:每一层报头当中必须要提供一种在那个机制,将报头和有效载荷分离。
  • 分用:解包交付的时候必须要明确要交给上一层的谁。确定交给谁的信息必须在当前层的报头当中包含。(确定信息在当前层的报头)

每一层的共性肯定也要有一个功能:将报头和有效载荷分离(下三层)。

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

网络传输基本流程 的相关文章

随机推荐

  • unity制作血条

    unity制作血条 在hierarchy中create gt UI gt image 重命名为border 将血条框拖入Source Image Set Native Size 防止变形 在Canvas下create empty 命名为He
  • 反编译 APK 的基本步骤

    文章目录 反编译 APK 的基本步骤 1 编写一个简单的安卓 app 2 将 release app apk 解压缩 3 将 classes dex 文件反编译为 jar 文件 4 使用 jd gui 可视化阅读 classes dex2j
  • 测试用例之支付功能测试点整理【建议收擦】

    一 梳理支付的业务流程如下 点击支付 gt 选择支付方式 gt 确认金额 gt 输入密码 gt 成功支付 完成这个流程测试 也就是完成了项目的冒烟测试 然后需要测试针对流程中的每个阶段和步骤 具体分析可能导致异常的测试点 所以我们按阶段和输
  • socket,socket.io,mongodb

    Socket 网络上的程序实现双向的数据链接 这个链接的一端成为socket 1 Socket是一个持久链接 2 Socket是双向通信的 Socket VS ajax轮询 ajax轮询 是利用客户端来发送请求 每隔几秒发送一个http请求
  • elementui 表格中单元格自定义功能

    客户相让表格的可操作空间变得更大 比如说可以修改表格内容 双击之后出现input 点击某一单元格可以弹窗等等 让一切可以需要的功能再单击单元格中实现 其实在elementui的官方文档中也可以找到很详细的说明和demo 但是对于新手前端来说
  • 问题记录:修改NuGet的默认存放位置

    具体流程参考了博主 修改nuget包默认存放路径 但是没找到配置文件 C Users 用户 AppData Roaming NuGet NuGet Config 其他的答案如 C Program Files x86 NuGet Config
  • 移动端页面禁止放大缩小

    安卓 在index html文件中添加meta标签 IOS 在 src app vue 中 script 标签内添加代码
  • [Codeforces] games (R1200) Part.3

    Codeforces games R1200 Part 3 题单 https codeforces com problemset tags games 0 1200 1672A Log Chopping 原题指路 https codefor
  • PhotoShop 之移动选区

    不能使用 移动工具 移动选区 否则会出现剪切的效果 移动后 出现了背景颜色 如下图 移动选区 矩形选框工具 魔棒工具等选区工具都可以移动选区 移动选区的时候 注意选区按钮必须在新选区 水平或垂直移动选区的时候 请注意必须先移动选区再按住Sh
  • 2、基于51单片机智能交流电表抄表OLED屏

    毕设帮助 开题指导 技术解答 有偿 见文末 目录 摘要 一 硬件方案 二 设计功能 三 实物图 四 原理图 五 PCB图 六 程序源码 七 资料包括 摘要 电表表示着人们日常用电的多少 现在每家每户安装的根本上是带有转盘的那种电表 它只能显
  • Vue页面监听 键盘按键

    1 监听方法 监听键盘 keyDown document onkeydown e gt 事件对象兼容 let e1 e event window event arguments callee caller arguments 0 键盘按键判
  • Linux 基础知识

    一 从认识操作系统开始 1 1 操作系统简介 我通过以下四点介绍什么操作系统 操作系统 Operation System 简称OS 是管理计算机硬件与软件资源的程序 是计算机系统的内核与基石 操作系统本质上是运行在计算机上的软件程序 为用户
  • 【状态估计】基于无味卡尔曼滤波模拟倾斜传感器研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码及讲解 1 概述 本文包括两部分中的第一部分 第一部分设计
  • VT Msr Hook Syscall

    VT Msr Hook Syscall 什么是系统调用 系统调用是内核提供给应用层的接口 比如在 win10x64 应用层打开一个应用 其实就是 explorer 调用了 CreateProcess 这个函数通过 NTDLL 调用表的 0x
  • 大数据技术——hadoop集群搭建出现的问题

    出现的问题和解决方案 ssh免密出现的问题 解决方法 出现上图的是语法错误 在ssh和 keygen中多了空格 去掉即可 2 ssh免密登录出现的问题 ssh登陆报错 WARNING REMOTE HOST IDENTIFICATION H
  • 区块链的工作原理

    区块链系统由数据层 网络层 共识层 激励层 合约层和应用层组成 其中 数据层封装了底层数据区块以及相关的数据加密和时间戳等基础数据和基本算法 网络层则包括分布式组网机制 数据传播机制和数据验证机制等 共识层主要封装网络节点的各类共识算法 激
  • tcp/ip 详细解析以及网络层简单的发送syn

    利用tcp发送syn 我们可以从网络层进行下发 其实就是组装tcp ip包发送出去 include
  • 微信小程序列表item左滑操作

    页面DOM index wxml
  • TLAB简单介绍

    1 什么是TLAB 新对象都是在Eden区分配空间 这块空间是在多线程间共享的 那么考虑一下 多线程是可能同时创建新对象的 这时候必然需要一种同步机制 使用队列 或者通过互斥 这些方式确实都可以 不过 我们还有一种更好的方式 TLAB 它全
  • 网络传输基本流程

    网络传输流程图 在数据链路层有一个标识 每一台主机的唯一符 MAC地址 MAC地址 计算机的网卡在出厂时就打上了一串数据 MAC 地址 其通常是唯一的 所以局域网中发消息必须加上目的主机的MAC地址 两台计算机通过 TCP IP 协议通讯的