NAT技术和链路层概述

NAT技术和链路层概述

文章目录

  • NAT技术和链路层概述
    • 一、前言
    • 二、回顾和导入
    • 三、因特网的公网和私网
      • [3.1 公网和私网](#3.1 公网和私网)
      • [3.2 NAT技术](#3.2 NAT技术)
      • [3.3 因特网的接入方式](#3.3 因特网的接入方式)
        • [3.3.1 电话线入户](#3.3.1 电话线入户)
        • [3.3.2 光纤入户](#3.3.2 光纤入户)
    • 四、计算机网络的链路层
      • [4.1 数据链路层概述](#4.1 数据链路层概述)
        • [4.1.1 定义](#4.1.1 定义)
        • [4.1.2 链路协议](#4.1.2 链路协议)
      • [4.2 数据链路层的三个问题](#4.2 数据链路层的三个问题)
        • [4.2.1 封装成帧](#4.2.1 封装成帧)
        • [4.2.2 透明传输](#4.2.2 透明传输)
        • [4.2.3 差错检测](#4.2.3 差错检测)
    • 五、小结

一、前言

本篇将开启链路层的学习啦~

二、回顾和导入

IP:网络号 + 主机号

交换机 :适用于同一个网络
路由器:适用于异构网络之间的互联

互联网 :无公网私网之分
因特网 :建立在互联网的基础上发展起来的

将网络地址分成私网IP公网IP
因特网的网络设备边缘网络设备骨干网设备 (典型的就是路由器)

因特网在骨干网上增加了一个限制:路由器不允许转发私网IP

这是因特网和互联网之间一个很大的不同

三、因特网的公网和私网

3.1 公网和私网

  • 公网(public)

    • Internet上路由器中只有到达公网的路由表,没有到达私网的路由表
    • 公网IP由因特网信息中心(Internet Network Information Centre, Inter NIC)同一分配管理
    • ISP需要向Inter NIC申请公网IP
  • 私网(private)

    • 主要用于局域网

    • A类:10.0.0.0/8,1个A类网络

    • B类:172.16.0.0/16~172.31.0.0/16,16个B类网络

    • C类:192.168.0.0/24~192.168.255.0/24,256个C类网络

      192.168开头的就是C类网络

3.2 NAT技术

  • 私网IP访问Internet需要进行NAT转换为公网IP
    • NAT(Network Address Translation,网络地址转换)
    • 这一步可以由路由器来完成
  • NAT特点
    • 可以节约公网IP资源
    • 会隐藏内部真实IP
  • NAT分类
    • 静态转换,手动配置NAT映射表
    • 动态转换,定义外部地址池,动态随机转换,一对一转换
    • PAT(Port Address Translation),多对一转换
      • 采用端口多路复用技术

NAT本质就是一个服务,可以实现网络地址转换

举个例子~

A、B、C是一个局域网(192.168.1.x),D、E、F是另一个局域网(195.33.44.x),这两个局域网之间有很多路由器,便于两个局域网之间的数据传输。

src:192.168.1.3(A)

dest:195.33.44.3(D)

私网的数据包在骨干网上是不会转的,于是src的网址通过NAT服务,进行了一个网络地址的映射(192.168.1.3 - - - > 61.3.5.6公网IP),于是可以进行传输了,到最后一个路由器时,再进行一次映射(61.3.5.6 - - - > 195.33.44.3),这样目的地址就收到数据包了。接着,目的地址会回给源地址一个数据包,进行同样的地址映射。

但是这个时候就会出现一个问题。如果是B(192.168.1.4)向D传送数据,那么进行NAT服务时会转换为什么呢?转成61.3.5.6,这样就会出现地址映射混乱的,不可取,因此需要"新鲜的血液"------映射成61.3.5.7。如果这样做的话,那么岂不是局域网中有多少机器,就要转成多少个公网IP吗?可是公网IP没有那么多。

因此现在多采用PAT技术,家用路由器多带有这个服务。

PAT技术到底是怎样做的呢?

P指的是port(端口)

src:192.168.1.3:6655(QQ) 61.3.5.6:81

192.168.1.3:7788(上网) 61.3.5.6:82

dest:195.33.44.3

192.168.1.4:6655 - - - > 61.3.5.6:85

由此也可以看出一个事情:我们向目的地址发送数据包,目的地址看到的是NAT映射后的网络地址,不能识别最初的IP,那这样我们访问什么服务,别人不就看不到我们的IP,但是我们知道对方的IP吗?理论上是这样的,但是别人想查的话,也是能够查到的。

3.3 因特网的接入方式

3.3.1 电话线入户
  • 平时所说的ADSL电话拨号上网,非对称数字用户线路,提供上、下行不对称的传输带宽
  • 需要提供猫(Modem),调制解调器,进行数字信号模拟信号的转换
3.3.2 光纤入户

解调方式变了而已,本质是一样的

四、计算机网络的链路层

4.1 数据链路层概述

4.1.1 定义

链路(link)是指一个节点到相邻节点的一段物理线路 (有线或无线),而中间没有任何其他的交换节点

集线器本身物理上是直接相连的,因此可以说是一条线路;路由器的线路和集线器的线路完全不同。

数据链路(Data Link)是基于链路 的。当在一条链路上传送数据 时,除需要链路本身,还需要一些必要的通信协议来控制这些数据的传输,把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

4.1.2 链路协议

不同类型的数据链路,所用的通信协议可能是不同的

  • 广播信道:CSMA/CD协议(比如同轴电缆、集线器等组成的网络)

  • 点对点信道:PPP协议(比如两个路由器之间的信道)

    如上图,只有IP,没有MAC地址,因此路由器之间不会有广播

计算机中的网络适配器(俗称网卡)和其他相应的软件驱动程序就实现了这些协议。一般的网路适配器都包含了物理层和数据链路层这两层的功能。

网卡也是个芯片,CPU会将数据丢到网卡对应的缓存区,激活网卡,网卡利用内部的协议,将寄存器中的数据转发过去。

4.2 数据链路层的三个问题

4.2.1 封装成帧

帧(Fram)的数据部分,就是网路层传递下来的数据包(IP数据包,Packet)

数据在链路层上的传输无非就是一长串的0和1

数据:IP头 + 传输层头 + 应用层头 + 应用层的数据

往物理层传输:物理层仅规定了电气规范

而数据链路层则是规范了一系列的协议将一长串的0和1进行划分,到底哪里是IP头,哪里是传输层头等以及开始和结束的头。

帧的长度也是有限制的,如果帧长度过长,一旦出错,会带来一定的损失,每个协议定义了一个重要概念------MTU

最大传输单元MTU(Maximum Transfer Unit)

  • 每一种数据链路层协议 都规定了所能传送的帧数据长度上限
  • 以太网的MTU为1500字节(1500指的是帧的数据部分长度,不是整个帧的长度)

如果长度仍然过大,就会拆包。当然太小也不行啦~

帧太小,那么传输速度过快,会导致监听不到。以太网规定的最小的帧是46

类型是非常重要的一个成分,规定了数据包丢给怎样的服务(HTTP、QICQ等)

FCS的4个字节,实际是用于校验的部分

4.2.2 透明传输

如何保证链路层上层数据和最终收到的数据一模一样呢?

透明传输是指数据链路层对上层交付下来的协议数据单元PDU没有任何限制,就好像链路层不存在一样

  • 面向字节是的物理链路使用字节传输的方法实现透明传输

ASCII码分为两类:可视化符号和非可视化符号(控制符号,如:\n\r等),ESC-也有一个值,也是个数字,EOT和SOH和ESC一样,都是看不见,但是确实是一个明确的数字。

普通数据和控制符号(EOT和SOH)表示一样的数据怎么办呢?如何判断普通数据和控制符号?

做法就是字节填充。如图。

ESC就像是充当一个"\"的作用,从而把后面的数据当作普通数据,而不再是控制符号了。如果ESC也重复了呢?

做法就是像C语言那个样子"\"和"\ \"一样,"\ \"表示真正的反斜线,而"\"是转义字符

  • 面向比特的物理链路使用比特填充的方法实现透明传输

为了防止冲突,每5个1后面都补0,即使后面有0

4.2.3 差错检测
  • 奇偶校验

    奇校验:数据 + 校验位 1的个数必须是奇数(现在几乎不用奇校验)

    1010111001一共6个1,需要补1位1:10101110011

    如果是原本为奇数个1,就补一位0

  • CRC循环冗余校验

    下次我们来详细探讨~

五、小结

主要重心在于网络层,传输层等,这里的链路层部分作为了解就好

相关推荐
极地星光2 小时前
Asio应用(高级):构建高性能、安全、跨平台的网络系统
网络
小嘟嘟26792 小时前
虚拟机网络问题故障定位
linux·服务器·网络
板鸭〈小号〉2 小时前
HTTP中的cookie
网络·网络协议·http
zfj3213 小时前
深入理解 Linux Namespace:隔离技术的基石
linux·运维·网络
2501_921649493 小时前
外汇与贵金属行情 API 集成指南:WebSocket 与 REST 调用实践
网络·后端·python·websocket·网络协议·金融
while(1){yan}3 小时前
网络编程UDP
java·开发语言·网络·网络协议·青少年编程·udp·电脑常识
CS创新实验室3 小时前
计算机考研408【计算机网络】核心知识点总结
网络·计算机网络·考研·408
网络研究院3 小时前
监管要求不统一暴露了移动安全方面的漏洞
网络·安全·漏洞·风险·监管
真正的醒悟3 小时前
图解网络39
网络·智能路由器·php