以太网的基本知识网络
以太网是一种为多台计算机可以彼此自由和廉价地相互通讯而设计的通讯技术。这种网络的本质其实就是一根网线。spa
收发器的功能只是将不一样网线之间的信号链接起来而已。设计
当一台计算机发送信号时,信号就会经过网线流过整个网络,最终到达全部的设备。这就好像全部人待在一个大房间里,任何一我的说话,全部人都可以听到,一样地,这种网络中任何一台设备发送的信号全部设备都能接收到。所以须要在信号的开头加上接收者的信息,也就是地址。这样一来就可以判断信号的接收者了,与接收者地址匹配的设备就接收这个包,其余的设备则丢弃这个包,这样咱们的包就送到指定的目的地了。视频
经过 MAC 头部中的接收方 MAC 地址,就可以知道包是发给谁的;而经过发送方 MAC 地址,就可以知道包是谁发出的;此外,经过以太类型就能够判断包里面装了什么类型的内容。blog
有了交换式集线器,如今信号只会流到根据 MAC 地址指定的设备,而不会到达其余设备了。路由
路由器等网络设备的网卡是集成在设备内部的,其电路的设计也有所不一样,尽管结构有差别,但功能和行为是没有区别的。it
网卡的 ROM 中保存着全世界惟一的 MAC 地址,这是在生产网卡时写入的。监控
网卡中保存的 MAC 地址会由网卡驱动程序读取并分配给 MAC模块。音频
制定以太网标准的组织 IEEE 出于历史缘由使用了“帧”而不是“包”,所以在以太网术语中都是说“帧”,其实咱们基本不必讨论二者的区别,能够认为包和帧是一回事,只是说法不一样罢了。软件
图中显示了协议栈和网卡对包的处理过程。MAC 头部很容易被误解为是由网卡来处理的,实际上它是由 TCP/IP 软件来负责的。
用电信号来表示数字信息时,采用将数据信号和时钟信号叠加在一块儿的方法。因为时钟信号是按固定频率进行变化的,只要根据时钟信号的变化周期,就能够从数据信号中读取相应的电压和电流值,并将其还原为 0 或 1 的比特了。这里的重点在于如何判断时钟信号的变化周期。时钟信号是以 10 Mbit/s或者 100 Mbit/s 这种固定频率进行变化的,所以,不能一开始就发送包的数据,而是要在前面加上一段用来测量时钟信号的特殊信号,这就是报头的做用。
末尾的 FCS(帧校验序列)用来检查包传输过程当中因噪声致使的波形紊乱、数据错误,它是一串 32 比特的序列,是经过一个公式对包中从头至尾的全部内容进行计算而得出来的。它和磁盘等设备中使用的 CRC A 错误校验码是同一种东西,当原始数据中某一个比特发生变化时,计算出来的结果就会发生变化。在包传输过程当中,若是受到噪声的干扰而致使其中的数据发生了变化,那么接收方计算出的 FCS 和发送方计算出的 FCS 就会不一样,这样咱们就能够判断出数据有没有错误。
发送信号的操做分为两种,一种是使用集线器的半双工模式,另外一种是使用交换机的全双工模式。
网卡的 MAC 模块生成通用信号,而后由 PHY(MAU)模块转换成可在网线中传输的格式,并经过网线发送出去。
半双工模式中,为了不信号碰撞,首先要判断网线中是否存在其余设备发送的信号。若是有,则须要等待该信号传输完毕,由于若是在有信号时再发送一组信号,两组信号就会发生碰撞。
PHY(MAU)的职责并非仅仅是将 MAC 模块传递过来的信号经过网线发送出去,它还须要监控接收线路中有没有信号进来。在开始发送信号以前,须要先确认没有其余信号进来,这时才能开始发送。
UDP协议:
若是数据很短,用一个包就能装得下。若是只有一个包,就不用考虑哪一个包未送达了,由于所有重发也只不过是重发一个包而已,这种情下咱们就不须要 TCP 这样复杂的机制了。并且,若是不使用 TCP,也不须要发送那些用来创建和断开链接的控制包了。此外,咱们发送了数据,对方通常都会给出回复,只要将回复的数据看成接收确认就好了,也不须要专门的接收确认包了。这种状况就适合使用 UDP。像 DNS 查询等交换控制信息的操做基本上均可以在一个包的大小范围内解决,这种场景中就能够用 UDP 来代替TCP。
还有另外一个场景会使用 UDP,就是发送音频和视频数据的时候。音频和视频数据必须在规定的时间内送达,一旦送达晚了,就会错过播放时机,致使声音和图像卡顿。若是像 TCP 同样经过接收确认响应来检查错误并重发,重发的过程须要消耗必定的时间,所以重发的数据极可能已经错过了播放的时机。一旦错过播放时机,重发数据也是没有用的,由于声音和图像已经卡顿了,这是没法挽回的。固然,咱们能够用高速线路让重发的数据可以在规定的时间内送达,但这样一来可能要增长几倍的带宽才行。