图解TCP/IP:数据链路

以太网

在众多数据链路中最为著名、使用最为广泛的莫过于以太网(Ethernet)。它的规范简单,易于NIC及驱动程序实现。以太网最初由美国的Xerox公司与前DEC公司设计的一种通信方式,被叫做为DIX以太网(DIX由DEC、Intel和Xerox等公司名称的首字母组成)。而IEEE802.3所规范的以太网被称为802.3以太网。

以太网连接形式

在以太网普及之初,一般采用多台终端使用同一根同轴电缆的共享介质型连接方式。而现在,随着互连设备的处理能力以及传输速度的提高,一般都采用终端与交换机之间独占电缆的方式实现以太网通信。

以太网的分类

10BASE中的"10"、100BASE中的"100"、1000BASE中的"1000"以及10GBASE中的"10G"分别指10Mbps、100Mbps、1Gbps以及10Gbps的传输速度,而追加于后面的"5"、“2”、“T”、"F"等字符表示的是传输介质。

在传输速度相同而传输所用电缆不同的情况下,可以连接那些允许更换传输介质的中继器或集线器。而在传输速度不同的情况下,则必须采用那些允许变更速度的设备如网桥、交换集线器或路由器。

以太网中以时钟频率决定传输速度。
1K = 1000
1M = 1000K
1G = 1000M
以太网帧格式

以太网帧前端有一个叫做前导码(Preamble)的部分,它由0、1数字交替组合而成,表示一个以太网帧的开始,也是对端网卡能够确保与其同步的标志。前导码末尾是一个叫做SFD(Start Frame Delimiter)的域,它的值是“11”。在这个域之后就是以太网帧的本体,前导码与SFD合起来占8个字节。

以太网中将最后2比特称为SDF,而IEEE802.3中将最后8比特称为SDF。

以太网帧本体的前端是以太网的首部,它总共占14个字节,分别是6个字节的目标MAC地址、6个字节的源MAC地址以及2个字节的上层协议类型。紧随帧头后面的是数据,一个数据帧所能容纳的最大数据范围是46~1500个字节。帧尾是一个叫做FCS(Frame Check Sequence, 帧检验序列)的4个字节,保存着整个帧除以生成多项式的余数,可以检查帧是否有所损坏。

类型通常跟数据一起传送,它包含用以标识协议类型的编号,即表明以太网的再上一层网络协议的类型。常用的协议类型有IP 0800ARP 0806RARP 8035以及IPv6 86DD

# 以太网帧体格式
目标MAC地址 | 源MAC地址 | 类型 | 数据 | FCS

# IEEE802.3以太网帧体格式
目标MAC地址 | 源MAC地址 | 帧长度 | LLC | SNAP | 数据 | FCS

# 带有VLAN标记的交换机之间流动的以太网帧格式
目标MAC地址 | 源MAC地址 | VLAN中被追加的字段 | 类型 | 数据 | FCS

IEEE802.3 Ethernet与一般的以太网在帧的首部上稍有区别。一般以太网帧中表示类型的字段在IEEE802.3以太网中却表示帧的长度,此外数据部分的前端还有LLC和SNAP等字段。而标识上一层协议类型的字段就出现在这个SNAP中。

再进一步细分数据链路层,还可以分为:

  • 介质访问控制层(Media Access Control, MAC):根据以太网或FDDI等不同数据链路所特有的首部信息进行控制

  • 逻辑链路控制层(Logical Link Control, LLC):根据以太网或FDDI等不同数据链路所共有的帧头信息进行控制

IEEE802.3 Ethernet的帧格式中附加的LLC和SNAP就是由逻辑链路控制的首部信息。

PPP

PPP定义

PPP(Point-to-Point Protocol)是指点对点,即1对1连接计算机的协议。PPP相当于位于OSI参考模型第2层的数据链路层。以太网和FDDI不仅与OSI参考模型的数据链路层有关,还与第1层的物理层有关,而PPP属于纯粹的数据链路层,与物理层没有任何关系。换句话说,仅有PPP无法实现通信,还需要有物理层的支持。

PPP可以使用电话线或ISDN、专线、ATM线路。PPPoE是在以太网的数据中加入PPP帧进行传输的一种方式。

LCP与NCP

在开始进行数据传输前,要先建立一个PPP级的连接。当这个连接建立以后就可以进行身份认证、压缩与加密。

在PPP的主要功能中包括两个协议:

  • 不依赖上层的LCP(Link Control Protocol)协议:主要负责建立和断开连接、设置最大接收单元(Maximum Receive Unit, MRU)、设置验证协议(PAP或CHAP)以及设置是否进行通信质量的监控。

  • 依赖上层的NCP(Network Control Protocol)协议:负责IP地址设置以及是否进行TCP/IP首部压缩等设备。

建立电话线连接 -> 调制解调器连接 -> 建立PPP连接或验证 -> 在PPP上传输IP包

通过PPP连接时,通常需要进行用户名密码的验证,并且对通信两端进行双方向的验证。其验证协议有两种:

  • PAP(Password Authentication Protocol):PPP连接建立时通过两次握手进行用户名和密码验证。其中密码以明文方式传输。因此一般用于安全要求并不很高的环境,否则会有窃听或盗用连接的危险。

  • CHAP(Challenge Handshake Authentication Protocol):使用一次性密码OTP(One Time Protocol),可以有效防止窃听。此外在建立连接后还可以进行定期的密码更换,用来检验对端是否中途被替换。

PPP的帧格式

PPP的数据帧格式中标志码用来区分每个帧。由于PPP本身是基于HDLC制定出来的一种协议,所以PPP标准帧格式与此完全相同。HDLC(High Level Data Link Control Procedure, 高级数据链路控制)是在每个帧的前后加上一个8位字节“01111110”用来区分帧,这一个8位字节叫做标识码,在两个标识码中间不允许出现连续6个以上的“1”。因此在发送帧的时候,当出现连续5个“1”时后面必须插入一个0,而当接收端在接收帧时,如果收到连续的5个“1”且后面跟着的是0,就必须删除。由于最多只会出现5个连续的“1”,就可以比较容易地通过标识码区分帧的起始与终止。

# PPP数据帧格式
标志1字节 | 地址1字节 | 控制1字节 | 类型2字节 | 数据0~1500字节 | FCS4字节 | 标志1字节

为什么说PPP方式会给计算机带来大量负荷的原因:那些插入或删除“0”的操作或FCS计算都交由电脑的CPU去处理。

PPPoE

有些互联网接入服务商在以太网上利用PPPoE(PPP over Ethernet)提供PPP功能。采用PPPoE管理以太网连接可以利用PPP的验证等功能使各家ISP的可以有效地管理终端用户的使用。

# PPPoE数据帧格式
以太网14字节 | PPPoE首部6字节 | PPP协议2字节 | 数据38~1492字节 | FCS

其他数据链路

ATM

ATM(Asynchronous Transfer Mode)是以一个叫做信元(5字节首部加48字节)的单位进行传输的数据链路,由于其线路占用时间短和能够高效传输大容量数据等特点主要用于广域网络的连接。ITU(International Telecommunications Union, 国际电信联盟)和ATM论坛负责对ATM进行标准化。

ATM的特点

ATM是面向连接的一种数据链路,因此在进行通信传输之前一定要设置通信线路。而ATM中没有类似以太网和FDDI那种发送权限的限制,它允许在和认识和发送任何数据,因此当大量计算机同时发送大量数据时容易引发网络拥堵甚至使网络进入收敛状态(收敛状态指当网络非常拥堵时,路由器或交换机无法完成包的处理,从而丢弃这些包的一种状态。)。为了防止这一现象的出现,ATM中也增加了限制带宽的细分功能。

# 同步与异步
同步中ABCD各自都有自己的传输时隙。即使没有需要发送的数据,也会占用时隙,或者说不得不发送空的数据。

异步中在包首部位明确指明了目标地址,因此只在有必要发送时发送数据。
ATM与上层协议

在以太网中一个帧最大可传输1500个字节,FDDI可以最大传输4352字节。而ATM的一个信元却只能发送固定的48字节数据,这48个字节的数据部分中若包含IP首部和TCP首部,则基本无法存放上层的数据。为此一般不会单独使用ATM,而是使用上层的AAL(ATM Adapter Layer)。在上层为IP的情况下,则叫做AAL5。

# 数据包的ATM信元封装
IP:IP首部 | TCP首部 | TCP首部
LLC:

AAL5:LLC/SNAP首部 | IP首部 | TCP首部 | TCP数据 | AAL5尾
ATM信元:

在ATM网中即使只有一个信元丢失,也要重新发送最多192个信元,这是ATM到目前为止的最大弊端。

# ATM中IP包的发送
对于间接连接ATM的主机,由路由器进行IP包的信元化处理。
经路由器超出ATM网之外时,由路由器恢复成IP包。

对于直连ATM的主机,发送时直接进行ATM信元化处理。
对于直连ATM的主机,接收时直接恢复为IP包。
FDDI

FDDI(Fiber Distributed Data Interface, 分布式光线数据接口)中每个站通过光纤连接形成环状,采用令牌(追加令牌)环的访问方式。而令牌环访问方式在网络拥堵的情况下极容易导致网络收敛,为了防止环在某处断开时导致整个通信的中断采用双环的结构。双环中站叫做DAS(Dual Attachment Station, 双连站),单环中的站叫做SAS(Simple Attachment Station, 单连站)。

(最近更新:2019年09月18日)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值