网络层(IP协议) && 数据链路层(以太网)

网络协议图 

 先介绍网络层(IP协议)

 一.基本概念

• 主机:配有IP地址,但是不进⾏路由控制的设备;

• 路由器:即配有IP地址,⼜能进⾏路由控制;

• 节点:主机和路由器的统称;

二.协议报文格式

IP协议的复杂程度不亚于TCP,这里就不介绍那么详细,日常开发最多用到传输层就够了,网络层一般不会涉及到

三.IP协议/网络层做的两个工作 

1.地址管理:使用IP地址,这样的概念,来表示网络上某个设备的位置

报头属性的介绍 

 思考:如果基于UDP实现传输超过64kb的数据要怎么设计? 

在应用层协议中就可以表示符,指定片偏移,指定标志位

接下来重点讨论32IP地址 (版本IPV4也是现今世界用的最多的)

32位ip地址是否够用?

32位IP地址能表示的数量最多也就42万亿9千多万(2的32次方),现今能上网的设备早就突破这个数字来,全球的手机电脑,各种只能家具什么的,都需要一个IP地址

不够用了怎么办?

1.动态分配IP地址(治标不治本)

2.NAT网络地址转换(主力方案)

3.IPV6(中级方案) 16个字节来表示ip地址 共有2^32 * 2^32 * 2^32 * 2^32 = 天文数字

接下来介绍NAT(网络地址转换)机制 

 NAT背景下网络通信时如何进行的

1)如果同一个局域网内部的两台设备想通信,是否可以通信?

肯定是没问题的,因为同一个局域网的两台电脑的IP地址肯定是不一样的,可以正常通信

2)两个公网设备进行通信是否可行?

也是没问题的,公网ip都是不重复的,可以正常通信

3)如果两个局域网的两台电脑要通信呢,这两台设备很可能IP地址一样,这时候咋整呢?
当前的规则,是禁止这种情况的!!!!!
如果必要的时间,迫切需要两台设备通信呢?比如两个人在地球的两端发微信通信,这就需要有一个带有外网IP的设备进行中转!

4)局域网内部的设备访问带有外网IP的设备, 是否可行?

可行的,这个过程就涉及到NAT工作机制了

上述是经过IP和端口号经过NAT机制转换的全过程

但是还有一个问题,万一又有一个舍友2的端口号和我俩的重复该怎么办?

这是小概率事件,真出现了也没关系,比如下图舍友2的端口号和我的端口号一样,经过NAT不就跟我的IP冲突了吗

不会的

上述就是NAT机制工作的全过程

5)公网设备尝试访问局域网设备是否可行?

不行!!! 公网中只能看到路由器的公网IP,无法直接定位到局域网内的具体设备,相当于给局域网加了一层"隐身保护"。 

但是有特殊情况,比如:内网穿透

为什么主流是NAT机制而不是使用IPV6版本?


其实IPv6和NAT诞生的时间差不多,为啥NAT能成功呢,而IPv6举步维艰呢?
是因为IPv6和IPv4不兼容,要想升级IPv6,就要更换路由器设备==>花钱
(升级IPv6不会提高网速,更不会提高流畅性)
相比之下,NAT方案只需要路由器开发商开发出新版本的软件(路由器固件),升级软件,即可直接支持(成本非常低)

中国IPV6的普及程度非常高,但是只是普及还没使用,想要使用随时可以大规模更换,主要原因分配IPV4的IP地址的分配权在美国手里,在中美关系下行的局势下,美国一旦不给中国分配IP地址,分分钟让中国全国都不能通信,虽然IPV6美国有话语权,但是中国也有

IP地址的组成

IP地址分为两个部分:网络号+主机号
网络号:标识网段(局域网),保证相互连接的两个网段具有不同的标识
主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号

如果手动把路由器网络号设置成与相邻局域网的网络号,那么这两个路由器都无法通信

子网掩码

特殊IP地址 

强制要求

 习惯用法

小结 

 2.路由选择

上面介绍的知识,主要是IP 协议如何管理地址的.(地址管理)
IP 协议的另一个重要的功能,路由选择.(数据报在 IP 协议下是如何进行传输的)
互联网,整体来说,非常庞大,复杂.任何一个路由器,都无法认识到网络的全貌!!


在高德地图上,如果你搜一个目的地,就能够规划处几条路线.地图软件路径规划,是站在全局的角度,地图服务商这边能够知道整个的城市道路情况, 交通情况做出一个"最优解"但是路由器,无法做到理解全貌,只能认识部分网络环境 (路由器能够知道和它相邻的一些设备的情况)
在这个前提下,进行路由转发,就只能"摸着石头过河”,走一步算一步,这里给出的路径,也不一定是最优解,只能说是"较优解”


路由器转发数据的过程,类似于"问路"

比如↓

 四.数据链路层

在这里只简单的介绍以太网协议

以太网协议不只是数据链路层的协议还包含更下一层的物理层

但凡你的电脑是通过网线上网的走的协议就是以太网协议, 网线==以太网线

通过WiFi上网走的是801.11协议

以太网数据帧

 这里就有一个问题:IP地址和mac地址有啥区别,有了IP地址为啥还有mac地址?

其实理论上来说,网络通信中,有一组地址,就够用了
最初构建 网络层协议的大佬 和 构建数据链路层协议的大佬,不是一伙人~~
发明之前没讨论,所以都发明出来了,但是发明出来之后谁也不服谁,就都留下了
IP 就专门给网络层使用,mac 专门给数据链路层使用~~
程序员日常开发的时候,基本都是和 IP 打交道,不会涉及到 mac

IP 是在网络层使用,关注于整个网络路径的转发传输过程
Mac 是在数据链路层使用,关注与转发的细节,两个相邻设备之间的转发~~

举个例子

 因此我们在通讯的时候,只需要自动填写对方的IP地址,操作系统会查询arp表,自动获取对方的MAC地址,从网卡发出

以太网数据帧其他属性 

 第二种数据类型发送接收ARP

第三种就不介绍了

 

三.DNS域名解析系统

平时我们上网要访问服务器,需要知道服务器的IP地址,而IP地址是渔船数字,虽然这个数字使用点分十进制已经清晰不少了,但是仍然不方便人们传播记忆,于是就使用单词来代替IP地址
使用baidu,taobao等单词来代替IP地址
这样的单词就称为域名,实践中为了保证域名的唯一性,域名往往是分级
www.baidu.com com是一级,baidu是二级,www是三级
域名是给人看的,但是机器不认识,于是就有一套系统,把域名自动翻译成IP地址,这个系统就是DNS

全世界上网的设备这么多,如果每次发起网络请求,都需要先访问 DNS 服务器的话, DNS 服务器就要承担海量的并发量,挂了吗??
如何解决上述方案? 

美国对于IPV4和DNS绝对掌控,中国如何突破(大力发展IPV6) 

具体看这个

电子监听、全国断网,棱镜门背后,中国如何从末路狂奔到世界之巅_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1i14y157YV/?spm_id_from=333.1391.0.0

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值