网络数据传输流程

2023-11-08

目录

一,局域网传输流程

1.集线器

2.交换机

 3.交换机+路由器

二,广域网数据传输流程

主要过程


一,局域网传输流程

1.集线器

主要过程

  1. 源主机:从上到下封装,如果知道目的IP主机的MAC地址就直接封装在数据链路层的以太网帧头中,如果没有找到进行ARP寻址(相当于喊话)收到MAC地址后,封装好在发送
  2. 集线器给每一台主机都发,不同主机判断这个数据包是不是给自己的
  3. 目的主机进行从下到上的分用

2.交换机

主要过程

  1. 源主机从上到下封装数据包中,如果知道目的IP主机的MAC地址,就封装在以太网帧头中,没有的话,就进行ARP寻址,找到后就发送给交换机
  2. 交换机在内部维护了一个MAC地址表,记录了MAC地址对应的端口号,如果有,就通过相应的端口直接发送,如果没有就进行ARP广播找,记录返回的端口并发送
  3. 目的主机接收到数据包,从下到上进行分用

 3.交换机+路由器

主要过程(我们这里以同一局域网,不同网段)

  1. 源主机从上到下封装数据包(根据子网掩码计算不是在同一网段,封装目的MAC为网关路由器的MAC地址,通过本地的ARP缓存表从网关的IP找到MAC)
  2. 将数据包交给交换机,交换机通过本地维护的MAC地址表,找到网关对应的端口发送给网关路由器
  3. 路由器接收到数据包进行分用,将源IP和源MAC修改为自己的IP/MAC地址,同时通过分用获取到目的IP,并将目的MAC修改为目的IP主机的MAC
  4. 目的主机收到数据包,从下到上分用

二,广域网数据传输流程

或者可以说:在浏览器地址栏输入url按下回车后,发生了什么事情?(

主要过程

1)解析域名,通过DNS协议找到域名对应ip地址

2)源主机:

  1. 通过子网掩码计算目的主机是否是在同一网段,如果是同一网段就直接设置目的IP和MAC为目的主机的IP和MAC,表明下一跳的设备就是目的设备
  2. 如果不是同一网段,就设置目的MAC为网关路由器的MAC(找不到就基于ARP缓存表找)
  3. 将源IP和源MAC设置为源主机的IP和MAC

3)交换机

  1. 交换机接收到数据包后,根据目的MAC,在本地维护的MAC地址转换表寻找对应的端口,找到了就直接通过对应端口,发送到相应的设备
  2. 如果没找到就进行ARP广播,找到对应的端口,更新到MAC地址转换表中,并通过这个端口发送出去

4)路由器

  1. 先下到上分用到网络层
  2. 通过NAPT技术将源IP和源port(局域网内源主机的IP和port),修改为路由器的公网ip和port
  3. 基于路由功能,根据目的ip,计算出下一跳的设备是哪个,到目的主机更近
  4. 从上到下进行封装,将源IP和port修改为路由器的IP和port,修改源MAC修改为路由器的MAC地址,通过ARP缓存表(依据路由功能找的下一跳设备的IP)找到下一跳设备的MAC,修改目的MAC为下一跳设备的MAC地址

5)路途中其他的设备

和(4)中除了第二步之外,其余的基本类似,只需修改目的MAC和源MAC

6)目的主机接收到数据

  1.  从下到上进行分用,分用到网络层,目的IP和我一样,交给传输层
  2. 分用到传输层:根据目的端口号,将数据报发送至相应的端口,交给对应的进程来处理(如tomcat
  3. 分用到应用层:tomcat根据相应协议来进行解析

7)tomcat处理数据

8)tomcat返回响应

  1. 从上到下进行封装
  2. 将目的IP和port与源IP和port进行交换操作
  3. 执行相应的流程,把数据发送给对应主机 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

网络数据传输流程 的相关文章

随机推荐

  • 独孤九剑第七式-物以类聚 人以群分(K-means模型)

    文章适合于所有的相关人士进行学习 各位看官看完了之后不要立刻转身呀 期待三连关注小小博主加收藏 小小博主回关快 会给你意想不到的惊喜呀 各位老板动动小手给小弟点赞收藏一下 多多支持是我更新得动力 文章目录 前言 K means模型讲解 K
  • sparkstreaming读取文件读取不到数据

    今天用了下sparkstreaming读取hdfs文件或本地目录文件 发现文件内容一直不会被处理 使用了下面两种方法都不行 阅读源码并开启DEBUG后发现 textFileStream后面也是调用fileStream方法 并且newFile
  • make时遇到File `Makefile' has modification time 4e+04 s in the future的解决办法

    1 原因 是虚拟机时间和电脑时间不匹配造成 2 解决办法 在VMware 菜单虚拟机 M gt 设置 S gt 选项下设置开启时间同步 然后重启虚拟机 3 若还出现 warning Clock skew detected Your buil
  • 对Unity中的欧拉角的理解

    前言 欧拉角对人来说是十分直观的 很适合人机交互中 但不适用于插值和迭代 在说到欧拉角时有两点非常重要 旋转方式和旋转顺序 旋转方式 首先要区分每次旋转是绕固定轴旋转的 还是绕旋转之后的轴旋转的 绕固定轴旋转就是旋转过程中XYZ轴不变 绕旋
  • android自定义可缩放,移动图像裁剪框

    在实际项目中 经常要制作一个简易的图像裁剪功能 即获取一张图片 并用一个遮罩层选择目标范围并截取保存的功能 如下图所示 在此分享下该自定义视图的制作过程 需求说明 整一个视图包含一个透明的遮罩层 一个透明带白色边框的矩形 要实现的功能是 点
  • 代理IP与网络安全:保障跨境电商和游戏的顺畅运行

    在今天的数字时代 跨境电商和在线游戏已经成为全球互联网经济的两个重要组成部分 然而 这两者都需要强大的网络基础设施来支持其运行 同时 网络安全问题也变得愈发突出 在这个背景下 代理IP技术以及特别是Socks5代理协议 成为了网络工程师们重
  • react-router 5 管理路由

    实现功能 全局路由统一管理 支持配置路由重定向 路由懒加载 自定义meta字段等 全局路由拦截 支持读取路由meta配置 支持拦截跳转其他路由等 依赖版本 react 17 0 2 react router dom 5 3 0 react
  • 老杜:分享Java零基础小白学习方法和Java学习路线 课程笔记

    微信 https mp weixin qq com s muWNq6A6GjpM2rHxKo6FOA 一 学习前的准备 1 一个好的学习方法 合格程序员需要具备两个能力 指法速度 左手ASDF 右手JKL 形成肌肉记忆 编程思想 编程思想的
  • 关掉\禁用win7自动配置ipv4地址的方法 默认网关自动消失的解决办法

    转载自 http blog csdn net zouqin369 article details 6913692 今天去公司设置好IP后 无论怎么样都上不了internet 再次打开本地后发现默认网关自动消失 cmd下输入ipconfig后
  • MySQL学习笔记[学习资料来源于B站黑马测试]

    目录 一 数据库的基本知识 1 数据库概念 2 常见的数据库分类 1 当前主要使用的两种类型数据库 2 关系型数据库 3 非关系型数据库 二 SQL基本知识 1 SQL介绍 2 SQL语言的分类 三 MySQL基本知识 1 MySQL介绍
  • STM32------串口

    文章目录 前言 一 串口概述 1 定义 2 开发板硬件与PC相连 3 帧格式 4 流控 二 库函数 1 很多模块默认出厂的硬件参数配置如下 2 代码初始化思路 三 重定向printf 1 概述 2 关键分析 总结 前言 STM32 串口 提
  • VUE 下拉框选择时给其他文本框赋值

    VUE 下拉框选择时给其他文本框赋值
  • Python线程,以及多线程带来的数据错乱和死锁的解决方法

    摘至本人有道云笔记 Python线程 1 python多线程的创建 在Python中 同样可以实现多线程 有两个标准模块thread和threading 不过我们主要使用更高级的threading模块 threading模块提供的类 Thr
  • 日撸 Java 三百行(51-60天,kNN 与 NB)

    目录 总述 01 10天 基本语法 11 20天 线性数据结构 21 30天 树与二叉树 31 40天 图 41 50天 查找与排序 51 60天 kNN 与 NB 61 70天 决策树与集成学习 71 80天 BP 神经网络 81 90天
  • Box2D C++教程6-定制器(Fixtures)

    Box2D C 教程6 定制器 Fixtures 时间 2012 09 01 17 10 24 CSDN博客 原文 http blog csdn net wen294299195 article details 7932770 Box2D
  • Jetbrains IntelliJ IDEA破解方法

    IntelliJ IDEA 一套智慧型的Java整合开发工具 PHPStorm PHP 集成开发工具 PyCharm 智能Python集成开发工具 RubyMine RubyMine 是一个为Ruby 和Rails开发者准备的IDE Web
  • ActivityManagerService新加listener及触发其回调

    ActivityManagerService新加listener及触发其回调 前言 Android mk ActivityManager java ActivityManagerNative java IActivityManager ja
  • 汇编语言rep movsd

    汇编语言rep movsd rep movsd 一般为 mov esi offset s1 mov edi offset s2 mov ecx 数 cld rep movsd 查找了几个资料 都说得不怎么完整 也许是我知道的太少了 所以觉得
  • 区块链学习1:Merkle树(默克尔树)和Merkle根

    前往老猿Python博文目录 一 简介 默克尔树 Merkle tree MT 又翻译为梅克尔树 是一种哈希二叉树 树的根就是Merkle根 关于Merkle树老猿推荐大家阅读 Merkle树 这篇文章 Merkle树和Merkle根在区块
  • 网络数据传输流程

    目录 一 局域网传输流程 1 集线器 2 交换机 3 交换机 路由器 二 广域网数据传输流程 主要过程 一 局域网传输流程 1 集线器 主要过程 源主机 从上到下封装 如果知道目的IP主机的MAC地址就直接封装在数据链路层的以太网帧头中 如