数据链路层:负责相邻设备之间的数据传输
以太网
以太网协议:描述相邻设备
以太帧格式
MAC地址:网卡设备的物理硬件地址,用于标识相邻的主机,通常在出厂时就会设定,无符号6字节的整数
MAC地址和IP地址的不同:
- MAC地址描述的是路途上的每一个区间的起点和终点
- IP地址描述的是路途总体的起点和终点
48位对端MAC地址 + 48位源端MAC地址:标识哪两个相邻设备在进行数据传输
16位上层协议类型:记录网络层使用的协议类型,用于数据分用时上层解析协议的选择
32位校验和帧尾:CRC校验和
认识MTU
MTU:最大传输单元,链路层限制的最大的数据帧大小限制
MTU对编程的影响:
TCP协议:三次握手会协商MSS(最大数据段大小),往后通信的时候都会从缓冲区中取出不大于MSS大小的数据进行传输,然而MSS就是根据MTU计算得到的,MSS = MTU-40,因此,我们说TCP在传输层会自动进行数据分段,因此TCP传输在网络层不会进行数据分片
UDP协议:不会协商MSS,只要数据小于64k-28就可以进行传输,但是大于MTU的话会在网络层进行数据分片,但是分片越多传输越危险,因为一个分片出问题则原始报文重组失败所有分片都会被丢弃,因此要尽可能减少数据分片的几率
其他协议
ARP协议——地址解析协议
作用:根据IP地址获取指定相邻设备的MAC地址
ARP数据报格式
硬件类型指链路层网络类型,1为以太网
协议类型指要转换的地址类型,0x0800为IP地址
op字段为1表示ARP请求,op字段为2表示ARP应答
广播ARP请求
源端MAC地址、IP地址、对端MAC地址(留空)、IP地址
与自己相邻的设备都能收到对应的ARP请求,相邻设备收到请求后,检测对端IP与自己是否相符合,如果符合则组织ARP响应,如果不符合,则丢弃请求
ARP局域网欺骗攻击
ARP是一个广播请求,局域网中可能就会有恶意主机伪装IP地址进行ARP响应
解决方案:防火墙中的MAC地址白名单
DNS协议——域名解析协议
域名:服务器的别名,由便于记忆的字符串组成
使用TCP协议进行传输可以进行从域名到IP地址的解析,默认端口53
域名服务器的划分
根域名服务器,一级域名服务器,二级域名服务器
域名的划分
一级域名:
地域域名:.cn, .jp...
性质划分:.edu, .gov, .com...
二级域名:
.baidu.com, .qq.com...
三级域名:
.zhidao.baidu.com...
域名解析流程
- 查看缓存
- 查看本机hosts文件
- 请求本地域名解析服务器
- 根域名服务器
- 一级域名服务器
- 二级域名服务器...