TCP/IP协议基本框架
物理层
无线网、无线路由器、无线网卡等不同的物理介质决定了电信号的传输带宽 、速率、传输距离以及抗干扰性。
双绞线就是普通的平时能够看到的这种网线,又分百兆网线、千兆网线(可以传上千兆的数据)。
光纤有1个G的即千兆光纤,还有万兆光纤,带宽越大、越贵、速度越快。
物理介质会受到环境的影响,传递信号衰减的厉害,比如手机无线上网信号有强弱,就是受到了物理介质的影响。
链路层
网络通信就是把有特定意义的数据通过物理介质传送给对方。
单纯发一堆二进制010101没有什么意义,因为发给对方,对方也不知道什么意思,必须要让信息变得有意义,所以要对二进制进行打包处理。
就像数据编码的时候,字节按gbk编码还是utf-8进行编码,相当于把一堆二进制按照编码表把字节映射成中文或英文。
在这里要发送信息也是一样的,单纯的一堆二进制没有意义,所以必须要把它要变得有意义,这就是链路层对二进制做的处理:标识每组电信号特征,比如这一组发送出去的二进制代表什么? 发送给谁? 标识了之后,然后分组按顺序把它发送出去。
以太网、网桥就是指的交换机。
标识电信号和分组的规则是什么?
在OSI七层模型标准设计出来的时候,TCP/IP已经被市场认可且已经比较成熟,截止目前为止,市场上大多是用的TCP/IP模型。
数据链路层中的这些协议(标准)叫以太网协议,规定了数据在小型局域网里(比如办公网络),从这台电脑传到另外一台电脑,怎么传的,流程是怎样的。
这一组电信号就是二进制就是一个数据包,一个数据包又称为一桢数据(比如电影录制了多少桢、录视屏可以配置多少桢),配置的桢数可以理解为一秒钟拍摄多少张照片,最少16桢,低于16桢人肉眼就可以看出来图片之间的切换、感觉有点卡了,高于16桢,看不出来是图片之间的切换。
数据至少46个字节,最多1500个字节。1024个字节等于1KB,一个数据包最多1500个字节,相当于1.5K,这是一个数据包的大小。
如果要发送的数据特别大,需要分成好多个包或多个桢。
尾部固定4个字节用来校验序列,用于确认数据是完整的,确认数据在传输的过程当中是否会损坏。
首部的4个字节也是固定的,包含了目标MAC地址、源MAC地址和类型。
MAC地址是你的电脑在网络中的地址,比如给谁发送消息,要在数据包中写好接收人的MAC地址是什么,我自己的MAC地址是什么,类比发快递的时候写收件人和寄件人。
包首是固定14个字节,包括MAC目的地址 、源地址以及数据类型。
16进制的MAC地址占6个字节,相当于现实生活中的身份证号,用来标识全世界每台电脑的唯一地址。
一个16进制是4位,2个16进制相当于一个字节,比如 a4:83:e7:be:3d:d9
一共6个字节,前3个字节是厂商编号:MAC地址是配置在网卡上面的,每台电脑能上网就有网卡,网卡上面的地址就是MAC地址,所以生产网卡的厂商,要到全球统一的美国的协会那里去注册一个厂商编号,每个厂商生成的网卡MAC地址都从自己的厂商编号开始。
后面3个字节就是网卡流水号,整个加起来可以确保全球是唯一的。
链路层做的事就是把MAC源地址和MAC目标地址放在以太网的包首部,有了以太网首部就可以把这条消息真正发送出去了。
消息怎么真正的发给对方?
最简单的办法就是两人之间扯根网线,还有其他人总不能拉出5根网线吧!那你的电脑也需要5个网口,
这时就需要一个中间传话的,叫交换机,
5台电脑都连着交换机,负责做数据的转发,你只需要发送一条消息,这5台电脑都可以收到,你可以跟其中任何一台电脑通信。
现实中真正的交换机,
你发一个消息,五个电脑都收到了,每个电脑会解析数据包,因为这个包里有MAC目标地址和源地址,看是谁发来的,要找谁,其中4台电脑都发现不是找它的,就会丢弃这个消息。
在一个局域网(一个封闭的小网络,比如办公网络), 不是互联网(互联网是全球都连起来),
通信靠广播(发一个包被交换机转发给所有电脑,就是广播 ),所有连接到交换机的设备,都可以收到消息,
然后每个设备都会解包这个消息,检查包头里面的目标MAC地址,如果不是找自己的就丢弃。
是自己就接受消息并处理消息,然后根据自己的想法去决定怎么响应,这样就简单的实现了一个网络的通信。
这样有没有弊端?
一广播别人都可以收到,别人就会很烦,即使不是自己的包,也需要解包看看,就会浪费它的计算资源。
一万台电脑,你吼一嗓子(广播),一万个人都收到,会造成流量浪费,造成网络拥堵,真正有用的信息可能都被你占道了。
交换机一般有24个口(也有48、60个口的),一个口连接一个电脑。
网络内的电脑通过交换机相连,每个网络之间也通过交换机相连,一般建议级联不超过3个。
在一个小网络里广播大家就受不了了,级联这么多,就会造成广播风暴。
怎么解决?
交换机除了做数据转发,还可以对数据流量进行控制。
给每个人广播的时候,先把每个人的mac地址记录下来,交换机有个mac地址表,存着本网络所有电脑的mac地址,通信就变成了单播,单播就是一对一的,消息直接通过交换机发给目标地址,交换机解包之后得到目标MAC地址,直接发给目标设备。可以连上交换机,看到这个地址表,
每个地址对应着交换机的哪个网口。
mac地址表中的地址会定时更新,比如电脑关机了或下线了,会定时清空。
这样就解决了广播的问题,只需要电脑新接进来的时候广播一次,其他的时候不广播。
新电脑进来广播一次,又会出现带宽浪费的情况,并且很容易被黑客所攻击,比如黑掉了你的电脑或黑掉了这个交换机,不断的认为这个电脑是一个新电脑,就不断的广播,很容易把整个网络搞瘫痪了。
那就把大网络分成小网络,小网络之间进行隔离。
村里大喇叭广播,谁谁谁来电话了,对别人是骚扰;很多个村,这个村和那个村隔离,别的村听不到,所以就不会受影响。你想找另外一个村的人,就找另外一个村的村长,让村长在他的村子里广播找人,但我这个村不受影响。
交换机在OSI系统模型中工作在第二层,在TCP/IP模型里面工作在第一层。
网络层的路由器
路由器工作在OSI七层模型中的第三层网络层。
交换机会广播到另外一个网络,但路由器不会,路由器起到了一个网络隔离的效果。
路由器是一个硬件设备,长的和交换机差不多,对不同网络进行一个隔离,防止广播风暴蔓延到其他的网络,但网络与网络之间要通信,路由器也需要实现不同网络之间的数据转发。
交换机有一个mac地址表记录了所有的机器,那路由器是不是也得记录两边网络的所有机器?
那它就会有一个更大的mac地址表,如果路由器要实现不同网络的数据转发的功能就必须知道所有人的mac地址,全球有100多亿个mac地址,显然光用mac地址是解决不了问题的。
身份证上不能通过身份证号确定这个人的地址,所以还需要住址来定位。同样不能只通过MAC地址(类比身份证号)来定位电脑,还需要通过IP地址(类比住址)。
这个10进制的IP地址就相当于身份证上的住址,
路由器只需要存到11这一层级(类比村长这个层级),
IP地址是实际的物理地址,别人可以在在网络中通过这个IP地址找到这个设备。
题外话
初入计算机行业的人或者大学计算机相关专业毕业生,很多因缺少实战经验,就业处处碰壁。下面我们来看两组数据:新职业在线学习平台发展报告
- 2023届全国高校毕业生预计达到1158万人,就业形势严峻;
- 《新职业在线学习平台发展报告》 ,显示国内Python人才缺口高达40万,而人工智能人才目前缺口超过500万。
Python的优点:
易于学习:简单、易学、对新手极度友好。
免费开源:Python的所有内容都是免费开源的,不需要花一分钱就可以免费使用Python,并且可以自由地发布这个软件的拷贝、阅读其源代码、对其做改动、把其一部分用于新的自由软件中;
可扩展:Python除了使用Python本身编写外,还可以混合使用像C语言、Java语言等编写;
对于0基础小白入门:
如果你是零基础小白,想快速入门Python是可以考虑的。
- 一方面是学习时间相对较短,学习内容更全面更集中。
- 二方面是可以找到适合自己的学习方案
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!
👉Python学习路线汇总👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉实战案例👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉100道Python练习题👈
检查学习结果。
👉面试刷题👈
👉python副业兼职与全职路线👈
上述这份完整版的Python全套学习资料已经上传CSDN官方,朋友们如果需要可以微信扫描下方CSDN官方认证二维码 即可领取↓↓↓