《TCP/IP详解卷2:实现》笔记--接口层:以太网和环回

本文为《TCP/IP详解卷2:实现》笔记,主要探讨了接口层的两个重要部分:以太网接口,包括leintr、leread、ether_input、ether_output和lestart等函数的详细解析;以及ioctl系统调用,介绍了ifioctl和ifconf函数,以及通用接口ioctl命令的应用。此外,还涵盖了环回接口的相关内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.以太网接口

Net/3以太网设备驱动程序都遵循同样的设计。对于大多数Unix设备驱动程序来说,都是这样,因为写一个新接口卡的驱动
程序总是在一个已有的驱动程序的基础上修改而来的。下面我们简要地概述一下以太网的标准和一个以太网驱动程序的设
计。下图是一个IP分组的以太网封装。

我们所讨论的最初的以太网组帧的标准在1982年由Digital设备公司,intel公司以及施乐公司发布,并作为今天在TCP/IP网络
中最常使用的格式,另一个可选的格式是IEEE规定的802.2和802.3标准。
下图列举了以太网接口的数据结构和函数。

上图中,椭圆标识一个函数,方框标识数据结构,圆角方框标识一组函数。

1.1.leintr函数

我们从以太网帧的接收开始。现在,假设硬件已初始化并且系统已完成配置,当接口产生一个硬件中断时,leintr被调用。在
正常操作中,一个以太网接口接收发送到它的单播地址和以太网广播地址的帧。当一个完整的帧可用时,接口就产生一个
中断,并且内核调用leintr。
leintr检测硬件,并且如果有一个帧到达,就调用leread把这个帧从接口转移到一个mbuf中(用m_devget),如果硬件报告
一个帧已传输完成或发现一个差错,则leintr跟新相应的接口统计。复位这个硬件,并调用lestart来传输另一个帧。
所有以太网设备驱动程序将他们接受到的帧传给ether_input做进一步处理。设备驱动程序构造的mbuf不包括以太网首部,
以太网首部作为一个独立的参数传
第二章 接口配置命令 2.1 以太网口配置命令 以太网口配置命令包括: description mtu send-frame-type 2.1.1 description 设置以太网口描述。 description ethernet-description no description 【参数说明】 ethernet-description为路由器以太网接口的描述字符串。 【缺省情况】 缺省描述为Quidway RSeries Router, ethernet interface 【命令模式】 以太网接口配置模式 【使用指南】 description设置以太网口描述,no description恢复以太网口缺省描述。 【举例】 设置以太网接口描述为QuidwayR2501 ethernet interface。 Quidway(config-if-Ethernet0)#description QuidwayR2501 ethernet interface 【相关命令】 show interface 2.1.2 duplex 设置以太网口工作方式是半双工或全双工模式。 [ no ] duplex 【缺省情况】 缺省情况下为半双工模式 【命令模式】 以太网接口配置模式 【使用指南】 duplex 设置以太网口工作于全双工模式,no duplex 恢复以太网口缺省工作模式。当路由器以太网口与共享式Hub相连时,应工作于半双工方式,当路由器以太网口与交换式Lan Switch相连,而且Lan Switch设置了全双工方式时,应工作于全双工方式。 【举例】 设置以太网接口描述为全双工模式。 Quidway(config-if-Ethernet0)#duplex 【相关命令】 show interface 2.1.3 loopback 允许或禁止以太网口对内自对外波。 [ no ] loopback 【缺省情况】 禁止以太网口对内自对外波。 【命令模式】 以太网口接口配置模式 【使用指南】 只有在进行某些特殊功能测试时,才将以太网口设为对内自对外波。 【举例】 允许以太网口对内自对外波。 Quidway(config-if-Ethernet0)#loopback 2.1.4 mtu 设置以太网口最大传输单元。 mtu ethernet-mtu no mtu 【参数说明】 ethernet-mtu为以太网口最大传输单元,范围0~1500。 【缺省情况】 以太网口缺省的最大传输单元为: 采用Ethernet_II帧格式为1500 采用Ethernet_SNAP帧格式为1492 【命令模式】 以太网接口配置模式 【使用指南】 以太网接口的最大传输单元只影响IP在以太网接口的组包拆包,采用Ethernet_II帧格式时最大传输单元可达到1500,采用Ethernet_SNAP帧格式时最大传输单元可达到1492。 用no mtu命令恢复缺省的最大传输单元。 【举例】 设置以太网口的最大传输单元为1492。 Quidway(config-if-Ethernet0)#mtu 1492 【相关命令】 send-frame-type,show interface 2.1.5 send-frame-type 设置以太网口IP报文发送帧格式。 send-frame-type { Ethernet_II | Ethernet_SNAP } no send-frame-type 【缺省情况】 以太网口缺省的IP报文发送帧格式为Ethernet_II。 【命令模式】 以太网接口配置模式 【使用指南】 Quidway(R) 系列路由器的以太网口支持四种帧格式: Ethernet_II(ARPA) Ethernet_SNAP 802.2 802.3 其中Ethernet_IIEthernet_SNAP用于支持IP协议,802.2802.3 用于支持IPX协议。以太网口对接收到的帧能够自动识别其格式,因此可以同时接收多种格式的帧,但在同一时间只能发送一种帧格式。 no send-frame-type 命令恢复缺省的IP报文发送帧格式。 【举例】 设置以太网口发送帧格式为Ethernet_SNAP。 Quidway(config-if-Ethernet0)#send-frame-type Ethernet_SNAP 【相关命令】 mtu,show interface 2.2 串口配置命令 串口配置命令包括: async mode baudrate clock-select det
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值