网络基础教程


博客链接:https://www.blog.23day.site/articles/64


一、操作系统

1.概述

操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

2.常见系统

Windows、macOS、Linux、iOS、Android、华为鸿蒙系统

二、通信基础

1.网络协议

  1. internet本质就是一系列的网络协议,这些协议是为了消除各种机器之前的语言差异(就像是中国规定标准语言是普通话一样)。
  2. 网络协议的功能:定义计算机如何接入internet,以及其计算机通信标准

2.mac地址

每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)

ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址

3.ARP协议

ARP(Address Resolution Protocal),即地址解析协议。用于将IP地址解析为以太网的MAC地址的协议。

作为一台设备,怎么知道另一台设备的mac地址,这就是APR协议干的事

在这里插入图片描述

  1. A查本地ARP表发现B的IP和MAC映射关系不存在

  2. A通过ARP广播的形式向局域网发出消息,询问某IP对应的MAC地址是多少。比如A此时知道B的IP,但并不知道B的MAC地址是多少,就会尝试在局域网内发起ARP广播,询问局域网下所有机器,哪个机器的IP与B的IP一致。

  3. B收到这个ARP消息,发现A要问的IP与自己的IP一致,就会把自己的MAC地址作为应答返回给A。

  4. 此时A就知道了B的MAC地址,顺便把消息记录到本地ARP表里,下次直接用表里的关系就行。

4.ip地址

iIP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异

ipv4和ipv6:简单来说,就是ipv4已经不够用了,出现了ipv6这种东西,IPv6具有比IPv4大得多的地址空间。这是因为IPv6使用了128位的地址,而IPv4只用32位。

ip地址分为网络号和主机号两部分

5.子网掩码

子网掩码,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0。比如,IP地址192.166.0.105,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111.11111111.11111111.00000000,写成十进制就是255.255.255.0。

有了子网掩码,我们就可以判断两台设备是否是处于同一子网络了
在这里插入图片描述

6.osi协议和tcp/ip协议

在这里插入图片描述

  1. 网络协议按照功能不同分为osi七层或tcp/ip五层协议
  2. 其中osi是概念协议,我们平常使用的最多的还是tcp/ip协议
  3. 越网上越靠近用户,我们越容易感知到。越往下越靠近硬件

先来看一下该协议是怎么传输信息的吧
在这里插入图片描述

三、数据封装

先来看一下各层的报头的构成,下面逐一讲解
在这里插入图片描述

1.应用层

应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式

应用层功能:规定应用程序的数据格式。

2.传输层

网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,那么传输层就是帮助我们找到开启的应用程序,也就是端口号

传输层就是建立端口到端口的通信(0-65535,其中0-1023为系统占用端口)

tcp协议(常用):
可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

以太网头ip 头tcp报头数据
其中tcp报头是这样的(了解一下源端口号和目的端口号)
在这里插入图片描述
udp协议:
不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。
以太网头ip 头udp头数据

3.网络层

首先来看一下ip报头,大概了解一下源ip地址和目的ip地址就可以了,我们在下面数据解封的时候会讲
在这里插入图片描述

4.数据链路层

依旧是来看一下mac报头是啥样的,了解源mac地址和目的mac地址,知道该层添加了该报头即可,后面细讲
在这里插入图片描述
单纯的01串是没有意义的,必须规定电信号多少位一组,每组什么意思。早期,每个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet

ethernet规定

  • 一组电信号构成一个数据包,叫做‘帧’
  • 每一数据帧分成:报头head和数据data两部分
headdata
  1. head包含:(固定18个字节)
    - 发送者/源地址,6个字节
    - 接收者/目标地址,6个字节
    - 数据类型,6个字节
  2. data包含:(最短46字节,最长1500字节)
  3. 数据包的具体内容
    head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

5.物理层

到了物理层,数据会被转为01比特流,然后通过网线传输

四、数据拆封

1.物理层

物理层就是基于电器特性发送01串传输信息。

假如我们有两台电脑,我们可以通过接网线的方式,使他们能够实现信息交互。

如果电脑再多一点,我们可以使用集线器来连接(如果接网线的话浪费巨大)。
在这里插入图片描述
这个时候,计算机之间的通信基本靠吼。

也就是说,如果A想给B发消息,首先A会把消息通过网线输入集线器端口上,集线器再把信息输入到中继电路,然后中继电路会把收到的消息广播到集线器所有的端口上。

简单来说,就是A发出的消息会无脑复制N份,发送给所有设备,所有设备收到消息后会把消息拆开看,通过比对数据报头里的mac地址,判断是否是发给自己的,如果是就查看,如果不是就丢掉

2.数据链路层

我们上面说到,集线器是通过广播的形式分发数据包,如果设备少一点的话还是可以的,但是如果设备过多,一台设备发消息,全世界的人都能收到,岂不是大灾难。

于是交换机(switch)登场了,他的基本构造和集线器几乎是相同的。

此时,A还是想给B发消息,A就会把数据发送给交换机

交换机通过目的地址的mac地址和自己内部维护的mac地址表比对,发现目标地址连接在了2号端口,于是数据就从2号端口成功输出,到达B
在这里插入图片描述
可是如果交换机发现自己的mac地址表里没有目的地址记录,则会通过集线器广播的方式,对所有的设备发送信息,B收到信息后发现mac地址是自己的,则会返回消息,此时交换机便知道了B在哪个端口,并维护mac地址表。

这里再扯一个细节问题,就是电信号,是会受噪声干扰,导致信号形变出错的。
但就算是错了,也还是会原封不动的广播出去,也就是接收方收到的是错误信息。那么接收方收到消息后需要校验

这就是报文末尾FCS的作用了

FCS里存放的是发送方通过循环冗余校验CRC计算得到的值,接收方用收到的数据算一次CRC,与FCS里的值进行对比。如果一致,那证明数据没问题。如果出错,则直接丢弃,数据包重新传输。

3.网络层

上面我们说到,交换机会记录一张mac地址表,但是全世界这么多设备,记住每一台设备mac地址或广播到每一台设备都是有点不现实的。
在这里插入图片描述

于是路由器出现了,他的作用是连接世界各地的局域网

此时,A还是想发消息给B。

首先A发出的消息会通过交换机到达路由器(后面我们会深究过程),路由器会通过路由表(类似于交换机维护的mac地址表)找到目的地所在的端口,然后就像交换机一样把他转发出去
在这里插入图片描述
路由器内会发生这样的事:

  • 判断目的ip和源ip是否是同一个局域网
  • 如果通过路由表没找到目的ip,就会发给默认网关,也就是问问其他路由器知不知道

五、交换机概述

1.交换机分类

按照协议层的不同,可以分为四层交换机
物理层是一层,数据链路层是二层,以此类推(本文中说的交换机仅指代以太网交换机)
在这里插入图片描述

2.内部构造

  1. 集线器
    在这里插入图片描述
    这里介绍一下PHY:
    首先每个网口,都可能接着网线,而每根网线的传输的格式都是有可能不同的。而PHY的作用,就是把这些格式转化为一个通用的格式。举个例子,PHY就好比一个翻译器,有的人说英文,有的人说中文。PHY会把它统一转为普通话,给内部电路处理。内部电路处理完之后,再经过PHY模块,转为英语,或中文从对应网口里输出。

  2. 交换机在这里插入图片描述
    这里需要提到的是MAC模块。消息以电信号的形式从网口进入,到了PHY会被转成通用格式的电信号。而MAC模块的作用是把这个电信号转为数字信号,这样就能提取出MAC包头,并通过MAC数据帧末尾的FCS校验这个包,如果没问题,则把数据放到内存缓冲区里,否则直接丢弃。

  3. 路由器
    在这里插入图片描述
    硬件部分跟交换机很像,但是在处理mac地址方面有区别(具体区别下面再讲)。数据从A网口进入,此时数据还是网线上格式的电信号,会被PHY模块转为通用信号格式,再被MAC模块转为数字信号,通过FCS进行错误校验,同时校验MAC地址是否是自己,通过校验则进入内存缓冲区,否则丢弃。
    再进入软件部分,由路由选择处理器,通过一定规则(软件逻辑),查询路由表判断转发目标和对应转发口,再经由硬件部分的交换结构转发出去。

3.区别

这里主要讲解路由器和交换机的区别

路由器和交换机不同点在于,路由器的每个网口下,都有一个MAC地址和IP地址,所以它能成为数据链路层的的发送方和接收方。

而交换机,是不具备mac地址的,而mac报头是需要填上目的mac地址的。因此交换机从来都不是数据的目的地,它只简单转发数据帧到目的地。

数据到了路由器后,路由器可以组装下一站的目的MAC地址是另一个路由,通过这一点,让数据在路由和路由之间传输。

六、DHCP

想实现网络通信,每台主机需具备四要素

  • 本机的IP地址
  • 子网掩码
  • 网关的IP地址
  • DNS的IP地址

获取这四要素有两种方式

  1. 静态获取:手动配置
  2. 动态获取:DHCP

DHCP:
首先构造一个数据包

以太网头ip头udp头dhcp数据包
  1. 最前面的”以太网标头”,设置发出方(本机)的MAC地址和接收方(DHCP服务器)的MAC地址。前者就是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF。
  2. 后面的”IP标头”,设置发出方的IP地址和接收方的IP地址。这时,对于这两者,本机都不知道。于是,发出方的IP地址就设为0.0.0.0,接收方的IP地址设为255.255.255.255。
  3. 最后的”UDP标头”,设置发出方的端口和接收方的端口。这一部分是DHCP协议规定好的,发出方是68端口,接收方是67端口。

数据包构造好了之后通过以太网以广播的形式发送,同一个子网络的每台设备都收到了这个包。每台设备都会查看这个包,并检查mac地址是否是自己的,但是又去mac地址填的是FF-FF-FF-FF-FF-FF,所以还需要查看ip地址。当看到发出方IP地址是0.0.0.0,接收方是255.255.255.255,DHCP服务器知道“这个包是发给我的”,而其他设备就可以丢弃这个包。

接下来,DHCP服务器读出这个包的数据内容,分配好IP地址,发送回去一个“DHCP响应”数据包。这个响应包的结构也是类似的,以太网标头的MAC地址是双方的网卡地址,IP标头的IP地址是DHCP服务器的IP地址(发出方)和255.255.255.255(接收方),UDP标头的端口是67(发出方)和68(接收方),分配给请求端的IP地址和本网络的具体参数则包含在Data部分。

新加入的计算机收到这个响应包,于是就知道了自己的IP地址、子网掩码、网关地址、DNS服务器等等参数

七、DNS

1.概念

问:ip地址难不难记?
答:难记
问:如果用一串有意义的字母代替ip地址,愿不愿意?
答:愿意

将ip地址和url之间进行转换,就是DNS干的事

2、缓存

DNS缓存指DNS返回了正确的IP之后,系统就会将这个结果临时储存起来。并且它会为缓存设定一个失效时间 (例如N小时),在这N小时之内,当你再次访问这个网站时,系统就会直接从你电脑本地的DNS缓存中把结果交还给你,而不必再去询问DNS服务器,变相“加速”了网址的解析。

八、NAT

1. 定义

NAT(Network Address Translator,网络地址转换)是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。NAT实际上是为解决IPv4地址短缺而开发的技术。

2.工作机制

如下图所示,以 10.0.0.10 的主机与 163.221.120.9 的主机进行通信为例。利用 NAT,途中的 NAT 路由器将发送源地址从 10.0.0.10 转换为全局的 IP 地址(202.244.174.37)再发送数据。反之,当响应数据从 163.221.120.9 发送过来时,目标地址(202.244.174.37)先被转换成私有 IP 地址 10.0.0.10 以后再被转发。
在这里插入图片描述

  • 网络被分为私网和公网两个部分(私网ip就像你家门牌号(在百度上搜不出来具体信息),公网ip就像某个国家(在百度上能搜出来)),NAT网关设置在私网到公网的路由出口位置,双向流量必须都要经过NAT网关
  • 网络访问只能先由私网侧发起,公网无法主动访问私网主机
  • NAT 路由器在两个访问方向上完成两次地址的转换或翻译,出方向做源信息替换,入方向做目的信息替换;
  • NAT 路由器的存在对通信双方是保持透明的;

3.类型

  1. 静态NAT
    内部本地地址一对一转换成内部全局地址,相当内部本地的每一台PC都绑定了一个全局地址。一般用于在内网中对外提供服务的服务器
  2. 动态NAT
    在内部本地地址转换的时候,在地址池中选择一个空闲的地址,来进行转换。数据传输或者访问完成时就会放回地址池中,以供内部本地的其他主机使用。
  3. 端口复用NAPT
    就是利用端口映射,来提高ip地址的利用效率
    在这里插入图片描述
    在这里插入图片描述

总结

提示:这里对文章进行总结:

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值