链路层
如上图所示,链路层主要有三个目的:
-
为IP模块发送和接收数据报
-
为ARP模块发送ARP请求和接收ARP应答
-
为RARP发送RARP请求和接收RARP应答(RARP现在已经淘汰不用了)
链路层的三个基本问题:
- 封装成帧 :将网络层传下来的数据分组添加首部和尾部,用于标记帧的开始和结束。每一种链路层协议都规定了所能传送 帧的数据部分 长度上限----最大传输单元 MTU。
以太网(Ethernet)协议:1500字节
Point-to-Point:4470字节
PPPoE(ADSL)协议:1492字节
X.25协议(Dial Up/Modem):576字节
FDDI协议:4352字节
-
透明传输 :帧使用首部和尾部进行定界,如果帧的数据部分含有和首部尾部相同的内容,那么帧开始结束的地方就会错误地被判定。(在数据部分出现首部尾部相同的内容前面加上转义字符(“ESC”,16进制编码是 1B,二进制是 00011011)。如果数据部分出现转义字符,那就在转义字符前面再加上一个转义字符。接受端进行处理后可以还原出原始数据。这个过程透明传输的内容是转义字符,用户察觉不到转义字符的存在)
-
差错检测 :目前链路层广泛使用了循环冗余校验(CRC)来检查比特差错。
MAC地址
在局域网中,硬件地址又叫做物理地址或MAC地址(因为这种地址在MAC帧中使用)
MAC地址长48比特(6个字节),在使用网卡(NIC)时,MAC地址一般会烧入到ROM(只读存储器(Read-Only Memory))中。
PPP协议
定义
PPP(Point-to-Point Protocol)是指点对点,即1对1连接计算机的协议。
LCP 与 NCP
PPP主要功能中包括两个协议:一个是不依赖上层的LCP协议(Link Control Protocol),一个是依赖上层的NCP协议(Network Control Protocol)。如果上层为IP,此时NCP也叫作IPCP(IP Control Protocol)。
LCP主要负责建立和断开连接,设置最大接收单元(MRU)、设置验证协议(PAP或CHAP)以及设置是否进行通信质量的监控。而IPCP负责IP地址设置以及是否进行TCP/IP首部压缩等。
PPP帧格式
0x0021:IP数据报
0xc021:链路控制数据 (LCP)
0x8021:网络控制数据 (NCP)