TCP/IP协议架构介绍(一):网络接口层

TCP/IP协议架构是通信协议的统称,常被称为TCP/IP协议族,包括两个核心协议:TCP(传输控制协议)IP(网际协议),TCP/IP协议的开发始于20世纪60年代后期,早于OSI参考模型,由于TCP/IP模型更加简洁易用,目前大多采用TCP/IP模型。一共包括4层:应用层、传输层、网络层和网络接口层。

OSI模型与TCP/IP模型:

物理层

负责0、1 比特流(0/1序列)与电压的高低之间的转换

数据的单位称为比特(bit)

属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45、fddi令牌环网等
OSI采纳了各种现成的协议,其中有RS-232、RS-449、X.21、V.35、ISDN、以及FDDI、IEEE802.3、IEEE802.4、和IEEE802.5的物理层协议

数据链路层

负责物理层面上的互联的、节点间的通信传输(例如一个以太网项链的2个节点之间的通信);

该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。在这一层,数据的单位称为帧(frame)

  • 封装成帧: 把网络层数据报加头和尾,封装成帧,帧头中包括源MAC地址和目的MAC地址。

  • 透明传输:零比特填充、转义字符。

  • 可靠传输:在出错率很低的链路上很少用,但是无线链路WLAN会保证可靠传输。

  • 差错检测(CRC):接收者检测错误,如果发现差错,丢弃该帧。

主要协议

①点对点协议PPP(Point to Point Protocol)
②以太网(Ethernet)
③高级数据链路控制协议HDLC(High-Level Data Link Control)
④ 帧中继(Frame Relay)
⑤异步传输模式ATM(Asynchronous Transfer Mode)

MAC地址

MAC(Medium/Media Access Control)地址,媒体访问控制,或称为物理地址、硬件地址,48位

MAC地址

  • 组织唯一标识符(OUI)由IEEE(电气和电子工程师协会)分配给厂商
  • I/G(Individual/Group)位,如果I/G=0,则是某台设备的MAC地址,即单播地址;如果I/G=1,则是多播地址(组播+广播=多播)。
  • G/L(Global/Local,也称为U/L位,其中U表示Universal)位,如果G/L=0,则是全局管理地址,由IEEE分配;如果G/L=1,则是本地管理地址,是网络管理员为了加强自己对网络管理而指定的地址。

MAC帧

IP地址负责表示计算机的网络层地址,网络层设备(如路由器)根据IP地址来进行操作;
MAC地址负责表示计算机的数据链路层地址
IP和MAC地址这种映射关系由ARP(Address Resolution Protocol,地址解析协议)协议完成。

PPPoE 协议

基于以太网的点对点通讯协议PPPOE(Point to Point Protocol over Ethernet)

  • 单纯的以太网没有验证功能,也没有建立和断开连接的处理,因此无法按时计费。
  • 如果采用PPPoE管理以太网连接,就可以利用PPP的验证等功能使各家ISP可以有效地管理终端用户的使用。
  • 分成发现阶段(Discorvery)和PPP会话阶段(Session)

报文的以太网类型:

  • 当值为0x8863时表示Discovery阶段或Terminate阶段。
  • 当值为0x8864时表示Session阶段。

PPPoE拨号过程

PPPoE Discovery发现阶段

  1. 用户主机用广播的方式发出PADI (PPPOE Active Discovery Initiatio) 包,准备去获得所有可连接的接入设备(获得其MAC地址);
  2. PPPoE服务器收到PADI包后,返回PADO (PPPOE Active Discovery Offer) 作为回应;
  3. 用户主机从收到的多个PADO包中,根据其名称类型名或者服务名,选择一个合适的接入设备,然后发送PADR (PPPOE Active Discovery Request) 包,另外如果一个用户主机在发出PADI后在规定时间内没有收到PADO,则会重发PADI,并且加倍等待时间
  4. PPPoE服务器收到PADR包后,返回PADS (PPPOE Active Discovery Session-confirmation) 包,其中包含了一个唯一session ID,双方进入PPP会话阶段。
code 报文
0x09 PADI PPPoE Active Discovery Initiation PPPoE发现初始报文
0x07 PADO PPPoE Active Discovery Offer PPPoE发现提供报文
0x19 PADR PPPoE Active Discovery Request PPPoE发现请求报文
0x65 PADS PPPoE Active Discovery Sessionconfirmation PPPoE发现会话确认报文
0xa7 PADT PPPoE Active Discovery Terminate PPPoE发现终止报文

Discovery阶段:以太网帧的ETHER_TYPE域都设置为 0x8863

PPPoE Session 会话阶段

1 LCP协商阶段(Link Control Protocol)
链路协商

  • LCP用于建立、拆除和监控PPP数据链路
  • 还用于链路层参数的协商,如MRU、验证方式

协商双方互相发送一个LCP Config-Request报文,确认收到的Config-Request报文中的协商选项,根据这些选项的支持与接受情况,做出适当的回应。若两端都回应了Config-ACK,则标志LCP链路建立成功,否则会继续发送Request报文,直到对端回应了ACK报文为止。

2 认证阶段

会话双方通过LCP协商好的认证方法进行认证,如果认证通过了,才可以进行下面的网络层的协商。认证过程在链路协商结束后就进行。

  • PAP(Password Authentication Protocol,口令认证协议)

    PAP为两次握手协议,它通过用户名及口令来对用户进行验证。

  • CHAP(Challenge Handshake Authentication Protocol,质询握手认证协议)

    CHAP为三次握手协议。只在网络上传输用户名,并不传输用户口令,因此它的安全性要比PAP高。

    Md5算法

3 NCP协商阶段

网络层协商:IPCP、BCP、IPv6CP等

  • 协商PPP报文的网络层参数,如IP地址,DNS Server IP等。
  • PPPoE用户主要通过IPCP来获取访问网络的IP地址或IP地址段,网关,DNS等。
  • 用户和接入设备对IP服务阶段的一些要求进行多次协商,以决定双方都能够接收的约定。如:IP业务阶段使用的IP压缩协议等。
  • 双方的协议是通过报文中包含的Option项进行协商的,每一个Option都是一个需要协商的问题。最后双方都需要对方答复Configure_Ack的同意报文。

  • IPCP的协商过程是基于PPP状态机进行协商的。

  • 经过双方协商,通过配置请求、配置确认、配置否认等包文交换配置信息,最终由initial (或closed)状态变为Opened状态
  • IPCP状态变为Opened的条件必须是发送方和接收方都发送和接收过确认报文
  • IPCP协商过程中,协商报文可包含多个选项,即参数。
  • 各个选项的拒绝或否认都不能影响IPCP的UP,IPCP可以无选项协商,无选项协商也同样能够UP。选项有IP Address、网关、掩码等,其中IP Address是最重要的一个选项,有些厂家的实现必须这个选项得到确认,大多数厂家的实现允许这个选项为空。

PPPoE Terminate阶段

  • PPP通信双方可以使用PPP协议自身来结束PPPoE会话
  • 当无法使用PPP协议结束会话时可以使用PADT(PPPoE Active Discovery Terminate)报文。
  • 进入PPPoE Session阶段后,PPPoE Client和PPPoE Server都可以通过发送PADT报文的方式来结束PPPoE连接
  • PADT数据包可以在会话建立以后的任意时刻单播发送。在发送或接收到PADT后,就不允许再使用该会话发送PPP流量了。
--THE END--

本文标题:TCP/IP协议架构介绍(一):网络接口层

文章作者:hiyo

文章链接:https://hiyongz.github.io/posts/tcp-ip-protocol-architecture-model_link-layer/

许可协议:本博客文章除特别声明外,均采用CC BY-NC-ND 4.0 许可协议。转载请保留原文链接及作者。

关注微信公众号,及时接收最新技术文章!