Case Study:Networking Concept
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
OSI_TCP/IP Fundamental_第1张图片
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
OSI_TCP/IP Fundamental_第2张图片
OSI_TCP/IP Fundamental_第3张图片
IEEE 802.2(LLC):
IEEE 802.2 用来实现数据链路层面向上层的功能。
有两种类型的IEEE 802.2帧:
Service Access Point(SAP) Subnetwork Access Protocol(SNAP)
这些IEEE 802.2帧被封装与IEEE 802.3帧中。
OSI_TCP/IP Fundamental_第4张图片
802.2 SAP frame:
一般我们使用的都是的802.2 SAP frame
OSI_TCP/IP Fundamental_第5张图片
802.2 SNAP frame:
OSI_TCP/IP Fundamental_第6张图片
源来的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)。OSI_TCP/IP Fundamental_第7张图片
一旦三次握手完成,数据就可以通过刚建立的连接传输数据了。
因为连接是在数据传输前建立的,所以这种连接被种为Connection-oriented(面向连接)。
 
 
Unreliable Connections:
与面向连接的服务不同,不可靠的连接只需要直接发送数据就可以了,它不需要任何的三次握手与ACK确认。
 
Case Study:Flow Control – Windowing
在使用Windowing流控时,Window size用来定义源发送方最多可以发送多少数据包,然后就必须等待ACK确认。
Windowing 主要有两个功能:
1> Flow Control
2> Reliable Translation
 
大部分的Windowing的实现都是在传输前先协商,再以后的传输时动态的改变。
Window size 的大小决定着网络的效率与吞吐量。
  OSI_TCP/IP Fundamental_第8张图片
如上图
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就有一个高的传输效率。
OSI_TCP/IP Fundamental_第9张图片
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,进而可以大大提高效率。OSI_TCP/IP Fundamental_第10张图片
Case Study:Protocol Data Unit(PDU)
OSI_TCP/IP Fundamental_第11张图片