资讯专栏INFORMATION COLUMN

web开发中的计算机网络知识——网络层

lifesimple / 1320人阅读

摘要:信标帧因为总共就只有个信道,但你置身于多个重叠的场景时,某些可能在用同一个信道,怎么知道选择哪一个呢标准要求周期性地发送信标帧,其中包含了该的和地址这就是你的手机区分每个的依据

IPv4编址,物理链路,接口,路由器,ip地址

ip数据报通过链路传送;

链路与机器的边界叫接口(interface);

每台主机有一个接口对应它的链路;

每个路由器有多个接口,对应多个链路;

因为每个IP要求每个接口都有唯一的IP地址,所有IP地址是对应接口的;一个路由器可以有多个ip;

ip地址在路由和主机之间的分配

ipv4中大概有40亿个可能的ip地址;

它们是不可以自由分配的

观察图中的主机和路由器的ip地址;可以发现左侧三台主机和路由器ip地址前缀都是 223.1.1.xxx ;左侧的24比特(三位10尽职= 8位二进制)是相同的;它们是不经过路由器链接起来的,这种叫以太LAN(局域网),链接它们的可以是 一台以太网集线器 或者 交换机;

ip编址会为它们组成的子网分配一个 223.1.1.0/24 地址;其中 /24 记法又叫 子网掩码;它表示,这个子网中的ip地址 前24比特 是由 223.1.1 组成;

子网掩码 同时也限制了 任何其他机器要链接到该子网,都要求地址形式 是 223.1.1.xxx;

怎么区分子网?

分开主机和路由器的每个接口,从而产生了几个分离的网络岛;接口端链接了这些独立的网络的端点,这些独立的网络中的每个都叫做一个子网;
简单来说,就是 每个与 a路由器链接的 网络群(包括主机和路由器) 都可以叫做这个a路由的子网;
例子:
下图有几个 子网?

图中 每个路由器 链接了有两个主机组成的子网;其次每个路由 又链接了其他两个路由器组成的子网;所以每个路由器都有两个子网;所以一共 有6个子网;

ip 分类编址 和 CIDR编址

一个ip地址 可以分开两个部分;例如 子网掩码223.1.1.0/24 下的主机 223.1.1.1;前面 223.1.1 是网络前缀,后面的.1 是网内地址; 通过这种方式,局域网内的路由器可以只辨识 后面的x位就找到了 机器;子网外的路由器 只辨识 前面24比特的网络地址就可以;大大加快了路由器转发表的长度

很久之前,大家采用的是 分类编址;它规定分配一个ip地址块 要指定 8/16/24 中一种比特作为网络部分编址;分布成为A,B,C类网络;但是因为机器数量不断增多,这种分配方法出现问题;一个C类子网 最多有 2的8次 - 2 = 254 个ip(其中两个做特殊用途,广播地址255.255.255.255,源地址0.0.0.0);对于一个大公司来说,太少了;但是一个 B类子网 可以分配到65534个ip又太多了;

于是开始出现了 CIDR 编址方式;就是 223.1.1.0/24 记法; 后面的24 表示从第几比特开始 属于网络部分;
这样就可以更加自由的分配ip了;
例子:你的公司是如何从ISP(互联网服务提供商)获取到需要的ip数量的;

从例子中可以看到,isp分配到的是20比特 网络前缀的ip块;那20比特以后的编址都属于该isp;它可以把后面的20-32比特 编址按照需求分配给下面的多个组织;

那ISP的ip块是谁给的?

每个组织怎么分配得到的ip块?

每个组织的网络管理员可以手动为每个路由器或者主机分配IP;

但是更加通用的做法是 通过DHCP(动态主机配置协议)自动获取ip地址

管理员还可以配置DHCP 以使某主机 每次链接获得固定ip地址;

通过DHCP协议,子网中的每台主机都可以知道一些网络信息如:子网掩码,默认网关(第一跳路由地址),它本地的DNS服务器地址;更新 ip的租用期限;

DHCP服务器

为了便于管理大型点的网络,会假设 DHCP服务器用于很方便的动态分配ip;这样做可以解决一个大问题;如校园网可能有1000个学生有电脑;但是可能同时在线机器不会超过500台;所以通过DHCP服务器动态分配 新加入机器的ip 和 及时回收 离线机器ip ,isp就可以只需要拿到一个500ip的ip块就可以对付100台电脑了;

DHCP服务器4个工作步骤

新机器加入网络时,DHCP服务器使用广播目的地址 255.255.255.255,源地址:0.0.0.0 发送DHCP发现报文
给每一个子网中的机器;新加入的机器接受到 DHCP发现报文,通过67端口发回给 DHCP服务器;(这时新机器还不知道DHCP地址);

DHCP服务器 收到发现报文以后,会广播出 提供报文;其中包含事务ID,推荐给客户机的ip地址,网络掩码,以及ip租用期限;

新到的机器 会选择响应的 DHCP服务器中的一个,并用 请求报文 回应;(这时已经知道 DHCP服务器地址);

DHCP服务器 通过DHCP ACK报文响应 请求的 新机器,新机器就可以通过得到的DHCP ACK报文的信息上网了;

NAT 网络地址转换

现实的问题: 如果某个家庭被分配了1个ip如:192.186.16.17;但是随着机器的增多(手机,联网打印机等等),1个ip地址肯定不够用;这个时候怎么保证多个设备上网呢? NAT 的作用就是实现一个ip多个设备共享;

NAT的作用机制:

家庭中使用专用地址(只在这个局域网中有意义的地址)如:10.0.0.0/24;因为每个家庭都这样做,所以这个地址只对本家庭中的设备有意义;

为了让这个专用地址的设备可以跟外面的设备交换分组,NAT路由器对外就会表现得像一个独立的机器,它对外的ip就是这个家庭的唯一ip:192.186.16.17; NAT路由器从 ISP 的DHCP路由器获取唯一的ip以后,再在自己的网络中创建一个 NAT-DHCP 服务;这个服务可以为家庭中每个设备提供虚拟的专用ip;

对外已经可以接受分组,那么怎么分发这些分组给家庭内的对应设备呢? 这时,NAT会在内部创建一张NAT转换表,表中包含了端口号 和ip地址;

例如: 家庭中设备10.0.0.1 通过端口号 123 请求 外面的服务器; NAT 首先会保存这个请求到 转换表中;然后再包装 一层,把源ip改为对外的ip 192.186.16.17,后面加上自己可分配的6万个端口号中未被占用的一个,例如:8088,那么这个请求对外部服务器来说就是 192.186.16.17:8088的请求报文;

接受到回应分组以后,NAT可以通过 8088 端口在 转换表中找到设备ip和端口号 10.0.0.1:123;把分组发给这个家庭设备;

无线网络

标准 有很多个,大赢家是 802.11无线LAN,它就是WIFI(Wireless Fidelity);

802.11 有基本服务集BSS组成; BSS = 一个或多个无线站点 + 一个接入点(中央基站 AP);

AP发出无线信号连接手机,然后AP连接的路由器(或者交换机),路由器与外网交换分组;家庭中的AP与路由器通常封装在同一个盒子中,也就是我们通常看到的“路由器”;

每个站点都有自己mac地址,每个AP也有自己的mac地址;mac地址理论上是唯一的,由 IEEE所 管理;

SSID :AP的服务集标识符(wifi名字),管理员定义wifi时应该给的;

信道 :管理员定义wifi时还应该给定wifi一个信道号;802.11运行在 2.4~2.485GHz 频段内;在这85MHz频段被分为了11个部分重叠的信道;当2个信道中间有4个以上信道隔开时才算不重叠;所以1,6,11三个信道就是不重叠信道; 这意味着管理员可以,把1,6,11三个信道分开,分别安装三个AP,如果这三个AP都链接到同一个路由器中,就组成了最大传输速率 33Mbps 的无线LAN。

信标帧: 因为总共就只有11个信道,但你置身于多个wifi重叠的场景时,某些wifi可能在用同一个信道,怎么知道选择哪一个wifi呢;802.11标准要求AP周期性地发送 信标帧,其中包含了该AP的 SSID 和MAC地址;这就是你的手机区分每个wifi的依据;

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92078.html

相关文章

  • JavaScript 是如何工作的:深入网络 + 如何优化性能和安全

    摘要:是如何工作的深入网络层如何优化性能和安全这是专门探索及其所构建的组件的系列文章的第篇。为了使网络层高效,它需要扮演的角色不仅仅是一个简单的套接字管理器。套接字组织在按源分组的池中,每个池执行自己的连接限制和安全约束。 JavaScript 是如何工作的:深入网络层 + 如何优化性能和安全 这是专门探索 JavaScript 及其所构建的组件的系列文章的第 12 篇。 如果你错过了前面的...

    BWrong 评论0 收藏0
  • JavaScript 是如何工作的:深入网络 + 如何优化性能和安全

    摘要:是如何工作的深入网络层如何优化性能和安全这是专门探索及其所构建的组件的系列文章的第篇。为了使网络层高效,它需要扮演的角色不仅仅是一个简单的套接字管理器。套接字组织在按源分组的池中,每个池执行自己的连接限制和安全约束。 JavaScript 是如何工作的:深入网络层 + 如何优化性能和安全 这是专门探索 JavaScript 及其所构建的组件的系列文章的第 12 篇。 如果你错过了前面的...

    susheng 评论0 收藏0
  • HTTP读书笔记——了解Web网络基础

    摘要:正式作为标准被公布是在年的月,版本被命名为。网络基础通常使用的网络包括互联网是在协议族的基础上运作的。协议族计算机与网络设备要相互通信,双方就必须基于相同的方法,我们把这些规则称之为协议。 使用HTTP协议访问Web 在浏览器地址栏内输入URL之后,信息会被发送往某处,然后从某处获得回复,内容就会显示在Web页面上。像这种通过发送请求获取服务器资源的Web浏览器,都可称为客户端。(c...

    mo0n1andin 评论0 收藏0
  • HTTP读书笔记——了解Web网络基础

    摘要:正式作为标准被公布是在年的月,版本被命名为。网络基础通常使用的网络包括互联网是在协议族的基础上运作的。协议族计算机与网络设备要相互通信,双方就必须基于相同的方法,我们把这些规则称之为协议。 使用HTTP协议访问Web 在浏览器地址栏内输入URL之后,信息会被发送往某处,然后从某处获得回复,内容就会显示在Web页面上。像这种通过发送请求获取服务器资源的Web浏览器,都可称为客户端。(c...

    yck 评论0 收藏0
  • JavaScript工作原理(十一):网络内部和如何优化其性能和安全性

    摘要:套接字按池组织,按原点分组,每个池强制实施自己的连接限制和安全约束。待处理的请求排队,优先,然后绑定到池中的单个套接字。 就像我们之前文章中提到的渲染引擎一样,我们认为好的和优秀的JavaScript开发人员之间的区别在于,后者不仅了解语言的基本要素,还要了解其内部原理和周围环境。 历史 四十九年前,创建了一个名为ARPAnet的东西。这是一个早期的分组交换网络,也是实现TCP / I...

    Noodles 评论0 收藏0

发表评论

0条评论

lifesimple

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<