链路层

把书读薄(TCP/IP详解 卷一 第二章)网络

链路层是作什么的?

  1. 为IP模块发送和接收IP数据报
  2. 为ARP模块发送ARP请求和接收ARP应答
  3. 为RARP发送RARP请求和接收RARP应答

什么是以太网?

局域网采用的通讯协议标准,封装格式详见 RFC 894。异步

以太网链路层协议:SLIP(Serial Line IP 串行线路IP)、PPP(点对点协议)

什么是IEEE 802?

IEEE制定的局域网和城域网通讯协议标准,封装格式详见 RFC 1042。函数

SLIP协议是怎么封装IP信息的?

image

帧格式的规则为:spa

  • 在IP数据报的开头和结尾增长一个0xC0(称做END),若是报文中有0xc0,连续传两个字符0xdb(它被称做SLIP的ESC字符)和0xdc来取代
  • 若是报文中有ESC字符,那么连续传两个0xdb和0xdd来取代

缺点是:blog

  • 发送的端必须知道对方的IP,它没有办法把本身的IP传给另外一端
  • 若是当前线路已经用了SLIP,因为SLIP没有类型标志,这条线路就不能同时使用其它协议
  • 没有校验和致使数据发生噪声传播错误信息没法感知
若是只传1个字节数据它须要额外包装20个IP首部20个TCP首部,为了节省,提出CSLIP(压缩),能将这40个字节压缩到3到5个,详见 RFC 1144

ppp协议是怎么封装IP信息的?

点对点是指1条链路上就一个通讯端和接收端,好比两个路由器经过串口相连

图片描述

帧格式规则为:接口

  • 开始和结束都用0x7E,在同步链路中,经过零比特填充的硬件技术完成转义,异步链路是连续输出0x7d(转义字符)0x5e作转义(遇到了0x7d就连续输出0x7d0x5d)
转义字符:防止某些通讯双方的串行接口驱动程序或者调制解调器吧控制字符解释成特殊字符,另外用链路控制协议指定是否要对某些值(小于0x20)进行转义。通常状况下,字符值小于0x20都会转义

同步链路:以帧为单位传输(每帧大小不固定)图片

异步链路:以字符为单位传输(传输大小是固定的,好比8字节),传输的首尾分别增长起始符合结束符路由

零比特填充技术:边界符0x7E二进制表示为 01111110,每当接受到5个1时就插入1个0,接收的时候遇到5个1再把后面的0删掉rem

  • 地址符固定不变为0xFF,控制字段无实际意义
  • 协议类型占据2个字节,做为当前数据报锁承载的信息类型
  • CRC(帧检查序列)是一个循环冗余检验码

相对SLIP的优势:同步

  • 单串行线路支持多种协议
  • 每一帧都有循环冗余检验
循环冗余检验:把原始的数据当作一个二进制,接收方和发送方选定一个除数,假定除数有4位,在原始数据二进制后添加3个0当作被除数,将除的结果余数(位数必须等于除数的位数减1,少了高位补0)替换掉原来增长的3个0,做为信息发送出去,接收方使用相同的除数去除(摸2除法,不借位不进位),若是发现余数为0,认为信息传递没有问题
  • 使用IP网络控制协议能够对IP地址进行动态协商
动态协商IP:一端(端A)手动配置IP地址,并容许给另外一端(端B)配置IP地址,另外一端(端B)接收动态分配的地址
  • 链路控制协议能够对多个数据链路选项进行设置
设置:身份验证、压缩等等

环回接口是如何处理IP数据报的?

图片描述

与环回驱动交互影响的主要是流程1-7
  1. 网络层输出IP数据
  2. 输出函数发现目的地是环回地址则交给环回驱动程序处理
  3. 环回程序又将IP数据报为IP输入函数进入网络层
  4. 广播和多播的数据报必须复制一份给环回接口
  5. 广播和多播的数据同时上传以太网
  6. 任何给主机IP的数据均送到环回接口
  7. 经过以太网发送到目的主机

环回驱动使得同一台机器上的服务端和客户端能经过TCP/IP进行通讯。

什么是MTU?

最大传输单元。链路层[以太网(1500字节)和802.3(1492字节)]对数据帧的长度存在限制。

路径MTU:两台主机中的路由不一样,而每一个网络链路层的MTU可能不一样,这样的通讯主机之间的最小MTU为路径路由
相关文章
相关标签/搜索