以太网帧格式:
源地址和目的地址是指网卡的硬件地址(也叫MAC地址),长度是48位,是在网卡出厂时固
化的;
帧协议类型字段有三种值,分别对应载荷的形式,有IP、ARP、RARP;
帧末尾是CRC校验码。
那么网络层的地址与数据链路层的地址有什么区别呢?其实是网络层考虑的是整体的转发过程,数据链路层考虑的是局部的(相邻)的转发。如从起始地到北京有许多路线,网络层就是对其进行规划,选择那条路线去北京,中间就要经过许多地方,最后才到北京,与之相对的,源IP就是该起始地,目的IP为北京。而数据链路层则考虑的是中间的出行工具,你可以先做飞机到一个地方,再作客车到另一个地方,最后做高铁到北京,这就是数据链路层要考虑的,与之相对的,源MAC就是其起始地,目的MAC就是要到达的下一个中转站,这样持续下去,目的MAC最终就是北京。同样的,一个主机既有MAC地址,也有IP地址,同时这两个地址不可能相同,MAC地址为6个字节,IP地址为4个字节。MAC地址一般使用16进制表示。
一个以太网数据帧的数据最大长度为1500,大概也就1kb多一点,它受限于硬件,换成其他的硬件,也就需要搭配其他的数据链路层协议,这里的最大值可能会不一样,而这个最大值称为MTU,由于稍微大一点的传输层/应用层数据报都大于1kb,因此IP数据报的分包和组包就是为了MTU而弄出来的,一般IP数据报分包不是因为自身长度达到64kb,而是因为MTU。
认识
MTU
MTU
相当于发快递时对包裹尺寸的限制。这个限制是不同的数据链路对应的物理层,产生的限制。
以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要
在后面补填充位; 最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU; 如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片;不同的数据链路层标准的MTU是不同的;
DNS
域名解析系统,要访问服务器,就得知道服务器的IP地址,这极其不方便,
且不能表达地址组织信息,
于
是人们发明了
域名
,并通过
域名系统
来映射域名和
IP地址。
网络通信发送数据时,如果使用目的主机的域名,需要先通过
域名解析
查找到对应的
IP
地址:
域名解析的过程,可以简单的理解为:发送端主机作为域名系统树形结构的一个子节点,通过域名
信息,从下到上查找对应
IP
地址的过程。如果到根节点(根域名服务器)还找不到,即找不到该主
机。域名解析使用DNS
协议
来传输数据。
DNS
协议是应用层协议,基于传输层
UDP
或
TCP
协议来实现。