假设一个场景:
无路由器的情况下,如何用一条网线让两台电脑组建成一个局域网(LAN)一起玩红警?
首先,这条网线跟普通连路由器的网线是不一样的,两头分别插在电脑的网卡上。水晶头的1、3是接收端,2、6是发送端,所以网线其中一端的1、3和2、6互换,这样就能在物理(第一)层互相接收、发送信息。而根据上面章节讲过的,CURD把两台电脑的IP分别设置为192.168.1.10/24、192.168.1.20/24.这样就能保证它们在同一局域网内并能互相收发信息。这样就能开始游戏了
再假设一个场景:
无路由器,有3~10电脑需要组建一个局域网玩红警,这时候怎么办呢?
这时有多台电脑的话,可以用上HUB集线器,只要接上然后设置IP就OK了。
但这里有几个问题:怎么确定端到端的通信呢
广播一般在是网络的最外(第一)层:物理层.如果连了五台电脑。那么其中一台发一个包给另一台时,会以广播的方式转发给其他四台电脑.这些电脑会识别目的MAC地址是否与本机MAC地址匹配.这么一来的话,发送包的效率会非常低下.做很多无用功。这是因为Hub无大脑,完全傻瓜式.它直接在物理层把包转发给每一台电脑
这个时候交换机就闪亮登场了.相较于路由器是在网络传输层.交换机它是在数据链路层设备。他会把广播包的源MAC地址以及IP地址缓存起来,当下次有目的MAC地址是之前的源MAC地址的话就能直接命中而不用广播的方式转发给每台电脑,这样大大提高了效率,由于IP的不持久性,所以交换机的缓存也有一定的时效
一、物理层
也是第一层.广播包一般游走在这一层
二、数据链路层
第二层.MAC的全名Medium Access Control,媒体访问控制。
其实就是如何控制包往媒体上发的先后顺序、这个包是否给我的、发送时出错怎么办,都是这一层媒体访问所要解决的问题
媒体访问控制.也叫多路访问,分几种方式:比如
1.马路上的多条车道,你走你的我走我的。叫做信道划分
2.单双号限行.今天你走明天到我。叫做轮流协议
3.不管三七二十一,先出门再说,发现堵车就回球,错过高峰再出发。叫随机接入协议。著名的以太网就是这个协议
MAC地址:解决媒体接入控制的问题后,那包发给谁,谁接收。这里要用到一个物理地址,叫做链路层地址,但是第二层主要解决的是媒体访问控制,所以通常被称为MAC地址。
有了目的MAC地址,数据包在链路层上进行广播,网卡就能识别这个包是发给它的。如果MAC用的是以太网的话,那么包的头分别是源MAC地址、目的MAC地址。发送类型一般都是IP包,或者是响应/请求包
如果是IP数据包,目标IP是自己,采用TCP协议,目标端口80.而监听80端口的程序是nginx.这时请求就交给nginx去处理了。
一开始是不知道目标电脑的MAC地址的,在已知目标IP的协议下,通过局域网“吼”一声,就能得到目标IP的地址,这就是常讲的ARP协议
对于以太网最后面的CRC,是用来循环冗余检测的,它通过各种算法可以知道包在发送的过程是否发生错误