当前位置: 首页 > news >正文

局域网如何进行内网连接和外网连接

这里写目录标题

  • 什么是局域网
  • 什么是内网和外网
  • 为什么使用局域网
  • 内网连接 --- 小型局域网
      • 数据发送过程
      • 交换机知道IP地址对应的MAC地址(一对一单播)
      • 交换机不知道IP地址对应的MAC地址(一对多广播)
      • 数据接收过程
  • 外网连接
    • 中型或大型局域网
    • 外网
      • 数据发送过程
      • 数据接收过程同上

什么是局域网

简单来说,局域网就是一个区域内的网络,比如说一栋大楼,一所学校,一个部门的网络,既然是局部的,那么超出这个范围就不能使用。

什么是内网和外网

内网就是局域网,一个局域网可以被划分成多个子网,这些子网共同组成了局域网。
外网就是超出局域网范围的网络,这个其实相对内网而言的。
如果中型或大型局域网,拿一栋楼举例子,如果相对于这一层楼,一层楼的局域网就是内网,一栋楼的局域网就是外网。如果相对于这一栋楼,一栋楼的局域网就是内网,楼以外的网络就是外网
如果是小型局域网,可能这个小型局域网就是内网,相对于这个小型局域网以外的网络就是外网。

为什么使用局域网

  1. 局域网内的数据传输速度快
  2. 局域网内的通信更安全

内网连接 — 小型局域网

数据发送过程

  1. 应用层生成数据:用户通过应用层软件(如浏览器、邮件客户端等)生成需要发送的数据。
  2. 传输层封装TCP/UDP段:数据在应用层被封装成应用层协议所规定的格式后,传输层(如TCP或UDP)会进一步将数据封装成段或数据报,并添加源端口号和目的端口号等信息。
  3. 网络层封装IP数据包:传输层的数据在网络层被封装成IP数据包,并添加源IP地址和目的IP地址
  4. 数据链路层封装成帧:网络层的数据包在数据链路层被封装成帧。帧的头部包含了目的MAC地址、源MAC地址和帧类型等信息。这一步是确保数据能够在局域网内正确传输的关键。
  5. 通过网卡发送数据给交换机:发送设备的网卡将数据帧转换成适合在物理介质上传输的信号,并通过网线等介质发送给交换机
  6. 交换机转发数据:交换机接收到数据帧后,会查看帧中的目的MAC地址,并在其内部的MAC地址表中查找对应的端口。如果找到匹配的端口,交换机会将数据帧直接转发到该端口;如果没有找到,交换机可能会采取广播的方式,将数据帧发送到除了接收端口之外的所有端口,或者在某些情况下,通过ARP协议来查询目的MAC地址。

交换机知道IP地址对应的MAC地址(一对一单播)

在这里插入图片描述

交换机不知道IP地址对应的MAC地址(一对多广播)

在这里插入图片描述

数据接收过程

  1. 网卡接收数据:目标设备的网卡接收到来自交换机的数据帧信号,并将其转换回二进制数据。
  2. 数据链路层解封装:目标设备在数据链路层对数据进行解封装,提取出IP数据包,并检查帧的完整性和正确性。
  3. 网络层解封装:IP数据包在网络层被解封装,提取出传输层的数据段或数据报
  4. 传输层解封装:传输层的数据段或数据报在传输层被解封装,提取出应用层的数据
  5. 应用层数据处理:最终,应用层接收到数据,并根据需要进行处理(如显示网页内容、保存文件等)。

外网连接

中型或大型局域网

在这里插入图片描述

外网

在这里插入图片描述

数据发送过程

  1. 应用层生成数据
  2. 传输层封装TCP/UDP段
  3. 网络层封装IP数据包
  4. 数据链路层封装成帧
  5. 通过网卡发送数据给交换机
  6. 路由器处理:如果目的IP地址不在局域网内,帧会被转发到路由器。路由器查看IP数据包的目的IP地址。
  7. NAT(网络地址转换):在路由器上,局域网内的私有IP地址通过NAT转换为公有IP地址。路由器通常有一个公有IP地址,它会为通过它的数据包分配端口号,创建一个NAT表项,将私有IP地址和端口映射到公有IP地址和端口。
  8. 路由器转发到外网:路由器将IP数据包转发到外网,使用其公有IP地址作为源地址,并将数据包发送到路由表指定的下一跳。

数据接收过程同上

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 语音识别概述
  • 基于Jetpack Compose实现的Android Preference
  • 代码随想录(day6)哈希表-求两个数组的交集
  • 土壤分析仪:解密土壤之奥秘的科技先锋
  • 探索 Java 8 新特性:函数式接口
  • ES6 Generator函数的语法 (七)
  • Android 自定义Edittext 和TextView 提示文字和填入内容不同的粗细组件
  • 【Linux】shell基础知识点(updating)
  • 欧科云链研究院:坎昆升级后,Layer2变得更好了吗?
  • 解决了一个java Bug:Exception in thread “main“ java.lang.NullPointerException
  • [Hello-algo] 复杂度分析
  • 【数据基础】— B树
  • IOT 可编程控制系统
  • 智慧校园信息化大平台整体解决方案PPT(75页)
  • Python | Leetcode Python题解之第227题基本计算器II
  • 2017年终总结、随想
  • Android开源项目规范总结
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • js操作时间(持续更新)
  • js面向对象
  • mysql innodb 索引使用指南
  • PHP那些事儿
  • quasar-framework cnodejs社区
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • VuePress 静态网站生成
  • Vue官网教程学习过程中值得记录的一些事情
  • web标准化(下)
  • 分类模型——Logistics Regression
  • 关于springcloud Gateway中的限流
  • 前端相关框架总和
  • 前端性能优化——回流与重绘
  • 数组大概知多少
  • 字符串匹配基础上
  • 带你开发类似Pokemon Go的AR游戏
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​比特币大跌的 2 个原因
  • ## 基础知识
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #在 README.md 中生成项目目录结构
  • (2)MFC+openGL单文档框架glFrame
  • (42)STM32——LCD显示屏实验笔记
  • (70min)字节暑假实习二面(已挂)
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (第27天)Oracle 数据泵转换分区表
  • (二)hibernate配置管理
  • (论文阅读11/100)Fast R-CNN
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .Net MVC4 上传大文件,并保存表单
  • .NET 的程序集加载上下文
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET下ASPX编程的几个小问题
  • /bin/bash^M: bad interpreter: No such file ordirectory