TCP/IP协议基本框架

网络技术基础详解(网络基础一)(1)

物理层

无线网、无线路由器、无线网卡等不同的物理介质决定了电信号的传输带宽 、速率、传输距离以及抗干扰性。

双绞线就是普通的平时能够看到的这种网线,又分百兆网线、千兆网线(可以传上千兆的数据)。

光纤有1个G的即千兆光纤,还有万兆光纤,带宽越大、越贵、速度越快。

物理介质会受到环境的影响,传递信号衰减的厉害,比如手机无线上网信号有强弱,就是受到了物理介质的影响。

链路层

网络通信就是把有特定意义的数据通过物理介质传送给对方。

单纯发一堆二进制010101没有什么意义,因为发给对方,对方也不知道什么意思,必须要让信息变得有意义,所以要对二进制进行打包处理。

就像数据编码的时候,字节按gbk编码还是utf-8进行编码,相当于把一堆二进制按照编码表把字节映射成中文或英文。

在这里要发送信息也是一样的,单纯的一堆二进制没有意义,所以必须要把它要变得有意义,这就是链路层对二进制做的处理:标识每组电信号特征,比如这一组发送出去的二进制代表什么? 发送给谁? 标识了之后,然后分组按顺序把它发送出去。

以太网、网桥就是指的交换机。

标识电信号和分组的规则是什么?

网络技术基础详解(网络基础一)(2)

在OSI七层模型标准设计出来的时候,TCP/IP已经被市场认可且已经比较成熟,截止目前为止,市场上大多是用的TCP/IP模型。

数据链路层中的这些协议(标准)叫以太网协议,规定了数据在小型局域网里(比如办公网络),从这台电脑传到另外一台电脑,怎么传的,流程是怎样的。

这一组电信号就是二进制就是一个数据包,一个数据包又称为一桢数据(比如电影录制了多少桢、录视屏可以配置多少桢),配置的桢数可以理解为一秒钟拍摄多少张照片,最少16桢,低于16桢人肉眼就可以看出来图片之间的切换、感觉有点卡了,高于16桢,看不出来是图片之间的切换。

以太网数据包

网络技术基础详解(网络基础一)(3)

数据至少46个字节,最多1500个字节。1024个字节等于1KB,一个数据包最多1500个字节,相当于1.5K,这是一个数据包的大小。

如果要发送的数据特别大,需要分成好多个包或多个桢。

尾部固定4个字节用来校验序列,用于确认数据是完整的,确认数据在传输的过程当中是否会损坏。

首部的4个字节也是固定的,包含了目标MAC地址、源MAC地址和类型。

MAC地址是你的电脑在网络中的地址,比如给谁发送消息,要在数据包中写好接收人的MAC地址是什么,我自己的MAC地址是什么,类比发快递的时候写收件人和寄件人。

包首是固定14个字节,包括MAC目的地址 、源地址以及数据类型。

网络技术基础详解(网络基础一)(4)

16进制的MAC地址占6个字节,相当于现实生活中的身份证号,用来标识全世界每台电脑的唯一地址。

一个16进制是4位,2个16进制相当于一个字节,比如 a4:83:e7:be:3d:d9 一共6个字节,前3个字节是厂商编号:MAC地址是配置在网卡上面的,每台电脑能上网就有网卡,网卡上面的地址就是MAC地址,所以生产网卡的厂商,要到全球统一的美国的协会那里去注册一个厂商编号,每个厂商生成的网卡MAC地址都从自己的厂商编号开始。

后面3个字节就是网卡流水号,整个加起来可以确保全球是唯一的。

网络技术基础详解(网络基础一)(5)

链路层做的事就是把MAC源地址和MAC目标地址放在以太网的包首部,有了以太网首部就可以把这条消息真正发送出去了。

消息怎么真正的发给对方?

网络技术基础详解(网络基础一)(6)

最简单的办法就是两人之间扯根网线,还有其他人总不能拉出5根网线吧!那你的电脑也需要5个网口,

网络技术基础详解(网络基础一)(7)

这时就需要一个中间传话的,叫交换机,

网络技术基础详解(网络基础一)(8)

5台电脑都连着交换机,负责做数据的转发,你只需要发送一条消息,这5台电脑都可以收到,你可以跟其中任何一台电脑通信。

现实中真正的交换机,

网络技术基础详解(网络基础一)(9)

网络技术基础详解(网络基础一)(10)

你发一个消息,五个电脑都收到了,每个电脑会解析数据包,因为这个包里有MAC目标地址和源地址,看是谁发来的,要找谁,其中4台电脑都发现不是找它的,就会丢弃这个消息。

在一个局域网(一个封闭的小网络,比如办公网络), 不是互联网(互联网是全球都连起来),

通信靠广播(发一个包被交换机转发给所有电脑,就是广播 ),所有连接到交换机的设备,都可以收到消息,

然后每个设备都会解包这个消息,检查包头里面的目标MAC地址,如果不是找自己的就丢弃。

是自己就接受消息并处理消息,然后根据自己的想法去决定怎么响应,这样就简单的实现了一个网络的通信。

这样有没有弊端?

一广播别人都可以收到,别人就会很烦,即使不是自己的包,也需要解包看看,就会浪费它的计算资源。

一万台电脑,你吼一嗓子(广播),一万个人都收到,会造成流量浪费,造成网络拥堵,真正有用的信息可能都被你占道了。

交换机一般有24个口(也有48、60个口的),一个口连接一个电脑。

网络技术基础详解(网络基础一)(11)

网络内的电脑通过交换机相连,每个网络之间也通过交换机相连,一般建议级联不超过3个。

在一个小网络里广播大家就受不了了,级联这么多,就会造成广播风暴。

怎么解决?

交换机除了做数据转发,还可以对数据流量进行控制。

给每个人广播的时候,先把每个人的mac地址记录下来,交换机有个mac地址表,存着本网络所有电脑的mac地址,通信就变成了单播,单播就是一对一的,消息直接通过交换机发给目标地址,交换机解包之后得到目标MAC地址,直接发给目标设备。可以连上交换机,看到这个地址表,

网络技术基础详解(网络基础一)(12)

每个地址对应着交换机的哪个网口。

mac地址表中的地址会定时更新,比如电脑关机了或下线了,会定时清空。

这样就解决了广播的问题,只需要电脑新接进来的时候广播一次,其他的时候不广播。

新电脑进来广播一次,又会出现带宽浪费的情况,并且很容易被黑客所攻击,比如黑掉了你的电脑或黑掉了这个交换机,不断的认为这个电脑是一个新电脑,就不断的广播,很容易把整个网络搞瘫痪了。

那就把大网络分成小网络,小网络之间进行隔离。

村里大喇叭广播,谁谁谁来电话了,对别人是骚扰;很多个村,这个村和那个村隔离,别的村听不到,所以就不会受影响。你想找另外一个村的人,就找另外一个村的村长,让村长在他的村子里广播找人,但我这个村不受影响。

交换机在OSI系统模型中工作在第二层,在TCP/IP模型里面工作在第一层。

网络层的路由器

路由器工作在OSI七层模型中的第三层网络层。

交换机会广播到另外一个网络,但路由器不会,路由器起到了一个网络隔离的效果。

路由器是一个硬件设备,长的和交换机差不多,对不同网络进行一个隔离,防止广播风暴蔓延到其他的网络,但网络与网络之间要通信,路由器也需要实现不同网络之间的数据转发。

交换机有一个mac地址表记录了所有的机器,那路由器是不是也得记录两边网络的所有机器?

那它就会有一个更大的mac地址表,如果路由器要实现不同网络的数据转发的功能就必须知道所有人的mac地址,全球有100多亿个mac地址,显然光用mac地址是解决不了问题的。

身份证上不能通过身份证号确定这个人的地址,所以还需要住址来定位。同样不能只通过MAC地址(类比身份证号)来定位电脑,还需要通过IP地址(类比住址)。

网络技术基础详解(网络基础一)(13)

这个10进制的IP地址就相当于身份证上的住址,

网络技术基础详解(网络基础一)(14)

路由器只需要存到11这一层级(类比村长这个层级),

网络技术基础详解(网络基础一)(15)

IP地址是实际的物理地址,别人可以在在网络中通过这个IP地址找到这个设备。

,