Case Study:Networking Concept<?xml:namespace prefix = o />

Network Types:

Local Area Networks(LANs)

Wide Area Networks(WANs)

Metropolitan Area Networks(MANs)

Storage Area Networks(SANs)

Content Networks(CNs)

 

Devices:

Layer3   Network     Routers

Layer2   Data Link   Switches,bridges,NICs

Layer1   Physical    Hubs

 

 

Case Study:Data Link Layer

作用:

1> 定义MAC或硬件地址

2> 定义连接的物理或硬件拓扑

3>  定义网络层对数据链路层的帧封装

4>  提供CONSCLNS服务(一般情况下,数据链路层不提供CONS服务。)

数据链路层的主要作用:规划连接到相同的media type的两个网络设备的互联方式。


Data Link Layer Addressing:

1> 数据链路层使用MAC或硬件地址进行通信。在一个LAN中通信,连接到同一个访问介质的每一个设备都要有一个唯一的MAC地址。

2> MAC 地址为48位的二进制,一般表示为十六进制形式,为12位。

3> MAC 地址为了方便管理,使用了与IP地址类似的dotted 形式,即dotted hexadecimal format。如:FFFF.FFFF.FFFF

5> 每种不同的数据链路层协议使用不同的数据链路地址,如Frame Relay使用Data Link Connection Identifiers(DLCIs)

6> MAC 地址的前6位(十六进制)用来唯一的标识一个NIC的厂商(vendor),被称为Organizationally Unique Identifier(OUI)。例如:ciscoOUI号为:0000.0C

7>  MAC 地址的后6(十六进制)用来唯一的标识在同一个OUI下的NIC。这个值理论上应该是全球唯一的,但是实际上vendor可以会给不同的NIC相同的MAC。因为:从目的上说,MAC地址用来区别连接到同一个访问介质上的设备(或者说是一个broadcast domain),全球的网卡不可以应该于同一网段,所以实际上它可以不是全球唯一的。Vendor可以对不同的国家区域使用想同的MAC

 

Data Link Address Types:

Unicast

Boradcast

Multicast

 

Case Study:Ethernet

Ethernet 是一个LAN访问介质上的一个数据链路层协议,它在共享的网络上使用CSMA/CD技术来防止数据冲突。

IEEE’Version of Ethernet:

实际有两种类型的EthernetIEEEDIX

Ethernet 最早于1980s早期由Digital,IntelXerox(DIX)三家公司开发。现在被称为Ethernet Ⅱ。

第二个版本的Ethernet是同IEEE开发的,同时将其标准化为IEEE 802.2IEEE 802.3IEEEEthernet分为两个子层,LLCMAC

LLC:

LLC 实现Ethernet的软件方面的功能。MAC实现的是Ethernet的硬件方面的功能。

LLC 通过使用Service Access Point(SAP) identifiers来实现复用。

当一个网络层协议被封装到一个802.2 frame时,网络层数据所用的协议就被放置于SAP字段。当目的设备收到这个frame时,它会检测这个SAP字段来决定将数据交给哪个网络层协议来处理。即,如果你的网络层同时使用IPXTCP/IP协议,LLC层的SAP可以用来区分不同的上层协议。

同时,LLC也可以提供类似TCP的排序及流控等可靠服务。

IEE 802.3(MAC):

IEEE 802.3 负责定义两个NIC之间传递的frame

IEEE 802.2(LLC):

IEEE 802.2 用来实现数据链路层面向上层的功能。

有两种类型的IEEE 802.2帧:

Service Access Point(SAP)Subnetwork Access Protocol(SNAP)

这些IEEE 802.2帧被封装与IEEE 802.3帧中。

802.2 SAP frame:

一般我们使用的都是的802.2 SAP frame
802.2 SNAP frame:
源来的802.2 SAP frame存在的问题是:尽管它的SAP字段为8bits,但只有前6bits用来标识上层协议,即最多能标识64种上层协议。因为IEEE 802.2 frame是一种标准,所以它必须要能支持所有的上层协议。早在1980s以前就已经有多于64种上层协议了,所以它在当今远远不够用。

802.2 SNAP frame 不用改变SAP字段的长度就可以克服这个限制。

为了指示这个frame为一个802.2 SNAP frame,SAP字段被设置为十六进制0xAA,control字段被设置为十六进制0x03,OUI字段被设置为十六进制0x0

Type 字段用来标识哪个上层协议产生的这个数据负载(payload)。为了克服802.2 SAP frame中的1byteSAP字段只支持64个上层协议的不足,802.2 SNAP frame使用2bytestype字段,从而理论上可以支持65536个上层协议。

只有少数的上层协议使用802.2 SNAP frame,Apple Talk就是一个使用802.2 SNAP frame的网络层协议。

因为有多种数据链路层协议可用于LAN,所以IEEE 802.2标准支持使用其它的LAN协议做为它的MAC子层。其中Token Ring被定义为IEEE 802.5FDDI被定义为ANSI标准。

当一个设备的NIC收到一个802.3帧时:

1> NIC 首先检测FCS字段,已决定它是否有效。

2> 检测目的MAC地址是否是指向它的,如果是再向上层发送,否则直接丢弃。

3> MAC 子层移去802.3帧数据,将802.2 frame数据转交给LLC子层。

4> LLC 子层检测目的SAP字段的值,以决定将数据负载交与哪一个上层协议。典型的SAP:IP协议(0x06,十六进制),IPX协议(0x0E,十六进制)。即,如果LLC检测到目的SAP值为0x06,则将数据负载传递给上面的IP协议。

 

IEEE 802.2 VS. IEEE 802.3:

IEEE 802.3 frame 用于传输IEEE 802.2 frame到其它设备。

IEEE 802.2 frame 用来定义说明哪个网络层的协议提供的这个数据。

所以说IEEE 802.2类似于一个multiplexing(利用)的功能:它区分不同的网络层协议,如IPXTCP/IPAPPLE TALK等。

 

 

 

Ethernet ’s Version of Ethernet:

Ethernet Ⅱ是原始的Ethernet frame类型。

Ethernet Ⅱ与IEEE Ethernet的相同点:它们都使用CSMA/CD技术来避免半双工链路上的数据冲突。

Ethernet Ⅱ与IEEE Ethernet的不同点:

1> Ethernet Ⅱ不含有子层的概念,IEEE 802.2/3使用两个子层:LLCMAC

2> Ethernet Ⅱ使用type字段来标识上层协议,对应于802.3length字段。IEEE 802.2type字段用来标识上层协议。

 

Ethernet Ⅱ与IEEE 802.3 frame十分类似,NICs通过检测Ethernet Ⅱ的type字段与IEEE 802.3 framelength字段的内容来区分不同的frame类型:

如果这个相应的字段值大于1500,则此frameEthernet frame

如果这个相应的字段值小于或等于1500,则此frameIEEE 802.3 frame

 

两种类型的Ethernet frame可以共存于一个相同的网络,但它们的NICs必须支持同时这两种协议,否则网络不能互通。如:支持802.3 frameNICs不能接收Ethernet frame。相反也一样。

 

Case Study:Transport Layer

传输层可以提供设备之间的可靠的或非可靠的数据传输。

Reliable Connections:

可靠的数据传输是靠ACK确认来实现的。当源发送一个数据包时,它必须等待目的设备回复一个ACK包,它才继续传递以后的数据包。从而确保数据的可靠传输。

要想建立可靠的连接,必须在传输数据前进行同步握手,即典型的TCP协议的三次握手(three-way handshake)。
一旦三次握手完成,数据就可以通过刚建立的连接传输数据了。

因为连接是在数据传输前建立的,所以这种连接被种为Connection-oriented(面向连接)。

 

 

Unreliable Connections:

与面向连接的服务不同,不可靠的连接只需要直接发送数据就可以了,它不需要任何的三次握手与ACK确认。

 

Case Study:Flow Control – Windowing

在使用Windowing流控时,Window size用来定义源发送方最多可以发送多少数据包,然后就必须等待ACK确认。

Windowing 主要有两个功能:

1> Flow Control

2> Reliable Translation

 

大部分的Windowing的实现都是在传输前先协商,再以后的传输时动态的改变。

Window size 的大小决定着网络的效率与吞吐量。

 

如上图

1>window size3时,源PC-A只可以发送3segment(传输层PDU),按顺序segment1,segment2,segment3发送),就必须等待目的PC-B发送ACK确认包。

2> 目的PC-B以值为4回复一个ACK,即请求segment4数据。

3>PC-A在收到PC-BACK后,就可以再依次发送segment4,segment5,segmen6。从而继续等待确认。

4> 所以说,一个大的window size就有一个高的传输效率。

1> 如果此时在源PC-A收到一个ACK4后,发送segmen4,segmen5,segmen6给目的设备PC-B。有其它的原因segment4丢失了。segment5,segment6正确到达。

2> 目的设备PC-B会发送一个ACK4给源,指示请求segment4

3> 此时根据使用的不同的传输层协议,可能会有两种结果:
1)源设备PC-A了解到只有segment4丢失了,只重新发送segment4给目的设备。
2)源设备PC-A不能了解目的设备收到了几个,则它会重传所有的segment4以后的数据包。

4> 大部分协议使用第二种方式重传。因为如果有两个segment数据丢失,则第一种方式不能实现segment的重传。

大部分的协议可以在实现windowing时,可以根据网络的状况动态的调整window size,进而可以使网络的效率与吞吐量最大化。

当源设备与目的设备的window size不同时,windowing实现可能会非常的复杂:

如果源PC-A使用window size3,目的设备PC-B使用window size 10。这样源会在发送3segment的数据后等待目的方确认。而目的方会等待源发送过10segment后才进行ACK确认,以至于双方都在等待。

所以:window size最好在源/目的两方相同。

 

TCP Sliding Windowing Mechanism:

传输层的TCP协议是一个使用Windowing技术的代表。

所谓的sliding windowing,即window size可以动态的调节,以适应不同的网络状况。这也正好符合Windowing技术的本质。

一个连接的window size越大,它所需要的ACK就越少,进而这个连接的使用效率就越高。

TCP Windowing 使用前边讲到的第一种重传方式,但不同的是,它ACK能指示多个未收到的segment,进而可以大大提高效率。
Case Study:Protocol Data Unit(PDU)