레이블이 NET-LAN인 게시물을 표시합니다. 모든 게시물 표시
레이블이 NET-LAN인 게시물을 표시합니다. 모든 게시물 표시

6/10/2018

IEEE 802.3 L2 관련사항

1. IEEE 802.x 관련 내용 

아래 Wiki 정보를 보면 IEEE802.x에 진행중인 그룹들을 쉽게 알수 있다. IEEE 802.1/3/11를 제외하면 더 이상 신기술이 없을 것 같다.
이외에 IEEE 802.x 그룹이 있지만, 나에게는 큰 관심거리가 아니라서 아래와 같이 정리한다.

현재관심은 IEEE 802.3/ 2 / 1 이며, IEEE 802.11 이 어떻게 IEEE 802.3과 호환이 되는지 그부분이 관심사 이다

NameDescriptionNote
IEEE 802.1Higher Layer LAN Protocols (Bridging)active
IEEE 802.2LLCdisbanded
IEEE 802.3Ethernetactive
IEEE 802.4Token busdisbanded
IEEE 802.5Token ring MAC layerdisbanded
IEEE 802.6MANs (DQDB)disbanded
IEEE 802.7Broadband LAN using Coaxial Cabledisbanded
IEEE 802.8Fiber Optic TAGdisbanded
IEEE 802.9Integrated Services LAN (ISLAN or isoEthernet)disbanded
IEEE 802.10Interoperable LAN Securitydisbanded
IEEE 802.11Wireless LAN (WLAN) & Mesh (Wi-Fi certification)active

그외의 자료는 아래의 Wiki 참고
  https://en.wikipedia.org/wiki/IEEE_802


1.1 IEEE 802.x 관련정보 

IEEE 802.3 관련세부정보
  https://en.wikipedia.org/wiki/IEEE_802.3

IEEE 802.3 (CSMA/CD)
  https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_detection

IEEE 802.11 (CSMA/CA)
  https://en.wikipedia.org/wiki/Carrier-sense_multiple_access_with_collision_avoidance


2. Ethernet Frame (Layer 2)

Ethernet은 OSI의 Layer 2에 해당하며, 기존에 가지고 있던 Ethernet 지식으로 Packet을 분석을 해보면 가끔 이해 안될 때 가 있어 이 부분을 좀 더 알아보려 한다.

정확히 궁금한 부분은 MAC 주소와 다양한 EtherType 부분이며, WLAN과 호환성일 것이다.

802.3 Ethernet packet and frame structure
LayerPreambleStart of frame delimiterMAC destinationMAC source802.1Q tag (optional)Ethertype (Ethernet II) or length (IEEE 802.3)PayloadFrame check sequence(32‑bit CRC)Interpacket gap
octets1 octet6 octets6 octets(4 octets)2 octets46‑1500 octets4 octets12 octets
Layer 2 Ethernet frame← 64–1522 octets →
Layer 1 Ethernet packet & IPG← 72–1530 octets →← 12 octets →
The optional 802.1Q tag consumes additional space in the frame. Field sizes for this option are indicated parenthetically in the table above. IEEE 802.1ad (Q-in-Q) allows for multiple tags in each frame. This option is not illustrated here.


  • VLAN(Virtual LAN, 802.1Q)
802.1Q은 옵션이기때문에, EtherType과 같은 위치에 존재하므로, 사용해야 한다면 EtherType: 0x8100 설정하고, Layer2 에 802.1Q의 TAG가 삽입되며서 EtherType은 TPID로변경이되어 Layer2가 확장된다.

802.1Q (Virtual LAN)는 아래 wiki보면 쉽게 이해간다.
  1. EtherType: 0x8100
  2. EtherType: 0x88A8
  https://en.wikipedia.org/wiki/IEEE_802.1Q



  • IEEE 802.2/3 EtherType or Length의 선택 
기존의 Ethernet은 EtherType을 Length로 사용하여, 46(0x002E) ~ 1500(0x05DC)를 했지만, 이 영역을 피하여,
Ethernet v2는 1536(0x0600)이상 설정하여 EtherType로 설정한다.


Ethernet frame differentiation
Frame typeEthertype or lengthPayload start two bytes
Ethernet II≥ 1536Any
Novell raw IEEE 802.3≤ 15000xFFFF
IEEE 802.2 LLC≤ 1500Other
IEEE 802.2 SNAP≤ 15000xAAAA


MTU 관련내용
  https://en.wikipedia.org/wiki/Maximum_transmission_unit


  • Ethernet Type 2 Frame 
EtherType : 0x0800  IPv4로 사용하면 Payload 역시 1500+14+4 = 1518이지만, 스니핑을 하게되면 CRC는 L2에서 제거되어 Max 1514로 표시




상세한 내용은 아래 WIKI 정보참고
  https://en.wikipedia.org/wiki/Ethernet_frame


2.1 MAC Address 

Layer2의 MAC Address는 기본구성은 6Bytes 이며 8x6=48bit이로 구성이 되었다.
이를 MAC-48 이라 불렀지만, 구식이되어 이를 EUI-48이라고 호칭하고 있다.
그리고 이에 나아가 2bytes를 추가한 EUI-64 사용을 장려한다고 한다.

  • MAC-48/EUI-48을 EUI-64 확장방법 
아래의 Wiki 사이트에 예제뿐만아니라 설명이 잘되어있다.


  • MAC-48 or EUI-48의 기본구조 파악 
이론상으로 2^48 즉 281,474,976,710,656 가진 경우의 수를 사용할 수 있지만, 다음과 같은 구조로 분리가 되어 제약이 있다.

우선 3Bytes 두개로 분리되어 다음과 같은 목적으로 사용이 된다.
  1. OUI(Organisationally Unique Identifier) : 기업/기관이 사용으로 번호를 구입
  2. NIC(Network Interface Controller): 구입한 기업/기관이 각각 사용할 있는 번호들 

앞의 3byte인 OUI를 보면 앞의 1 Byte의 7bit 정보로 UNICAST/MULTICAST이 알수있다.
  1. UNICAST(0)    : 일반적인 통신 
  2. MULTICAST(1) : Multicast 할때 사용 
  3. BROADCAST:  Destination MAC을 전부 (FF:FF:FF:FF:FF:FF)로 설정 
앞의 3byte인 OUI를 보면 앞의 1 Byte의 6bit 정보로 글로벌/개인용 분리
  1. Globally Unique Address (0)
  2. Locally administered Address(1) 






OUI
  https://en.wikipedia.org/wiki/Organizationally_unique_identifier

MAC
  https://en.wikipedia.org/wiki/MAC_address
  https://en.wikipedia.org/wiki/Medium_access_control


2.2 EtherType

다양한 EtherType을 정리하는 것이지만, 일반적으로 많이 사용되는 EtherType부터 알아보자.
  • 일반 LAN 관련사항 
  1. 0x0800   : IPv4
  2. 0x86DD  : IPv6
  3. 0x0806   : ARP

  • WLAN 관련사항 
  1. 0x888E  :  EAP over LAN (IEEE 802.1X)
  2. 0x88C7  :  Pre-Authentication

EtherType values for some notable protocols[8]
EtherTypeProtocol
0x0800Internet Protocol version 4 (IPv4)
0x0806Address Resolution Protocol (ARP)
0x0842Wake-on-LAN
0x22F3IETF TRILL Protocol
0x22EAStream Reservation Protocol
0x6003DECnet Phase IV
0x8035Reverse Address Resolution Protocol
0x809BAppleTalk (Ethertalk)
0x80F3AppleTalk Address Resolution Protocol (AARP)
0x8100VLAN-tagged frame (IEEE 802.1Q) and Shortest Path Bridging IEEE 802.1aq with NNI compatibility
0x8137IPX
0x8204QNX Qnet
0x86DDInternet Protocol Version 6 (IPv6)
0x8808Ethernet flow control
0x8809Ethernet Slow Protocols
0x8819CobraNet
0x8847MPLS unicast
0x8848MPLS multicast
0x8863PPPoE Discovery Stage
0x8864PPPoE Session Stage
0x886DIntel Advanced Networking Services 
0x8870Jumbo Frames (Obsoleted draft-ietf-isis-ext-eth-01)
0x887BHomePlug 1.0 MME
0x888EEAP over LAN (IEEE 802.1X)
0x8892PROFINET Protocol
0x889AHyperSCSI (SCSI over Ethernet)
0x88A2ATA over Ethernet
0x88A4EtherCAT Protocol
0x88A8Provider Bridging (IEEE 802.1ad) & Shortest Path Bridging IEEE 802.1aq
0x88ABEthernet Powerlink
0x88B8GOOSE (Generic Object Oriented Substation event)
0x88B9GSE (Generic Substation Events) Management Services
0x88BASV (Sampled Value Transmission)
0x88CCLink Layer Discovery Protocol (LLDP)
0x88CDSERCOS III
0x88DCWSMP, WAVE Short Message Protocol
0x88E1HomePlug AV MME
0x88E3Media Redundancy Protocol (IEC62439-2)
0x88E5MAC security (IEEE 802.1AE)
0x88E7Provider Backbone Bridges (PBB) (IEEE 802.1ah)
0x88F7Precision Time Protocol (PTP) over Ethernet (IEEE 1588)
0x88F8NC-SI
0x88FBParallel Redundancy Protocol (PRP)
0x8902IEEE 802.1ag Connectivity Fault Management (CFM) Protocol / ITU-T Recommendation Y.1731 (OAM)
0x8906Fibre Channel over Ethernet (FCoE)
0x8914FCoE Initialization Protocol
0x8915RDMA over Converged Ethernet (RoCE)
0x891DTTEthernet Protocol Control Frame (TTE)
0x892FHigh-availability Seamless Redundancy (HSR)
0x9000Ethernet Configuration Testing Protocol
0x9100VLAN-tagged (IEEE 802.1Q) frame with double tagging

다양한 EtherType 관련자료
  http://en.wikipedia.org/wiki/EtherType
  http://standards-oui.ieee.org/ethertype/eth.txt
  https://nmap.org/book/nping-man-ethernet-options.html
  https://www.iana.org/assignments/ieee-802-numbers/ieee-802-numbers.xhtml

2.3 Multicast 사용시 MAC Address 범위와 EtherType

MAC주소의 OUI에서 Multicast Bit정보를 알았으니, 그 기반으로 사용되어지는 Multicast MAC주소 범위를 알려준다. 

WLAN(802.11) 도 EtherType: 0x0800 (IPv4) ,EtherType: 0x86DD (IPv6) 동일하게 사용한다고한다.

Some well known Ethernet multicast addresses
Ethernet multicast addressType FieldUsage
01-00-0C-CC-CC-CCCDP (Cisco Discovery Protocol), VTP (VLAN Trunking Protocol), UDLD (Unidirectional Link Detection)
01-00-0C-CC-CC-CDCisco Shared Spanning Tree Protocol Address
01-80-C2-00-00-00Spanning Tree Protocol (for bridges) IEEE 802.1D
01-80-C2-00-00-00, or
01-80-C2-00-00-03, or 01-80-C2-00-00-0E
0x88CCLink Layer Discovery Protocol
01-80-C2-00-00-080x0802Spanning Tree Protocol (for provider bridges) IEEE 802.1ad
01-80-C2-00-00-010x8808Ethernet flow control (Pause frame) IEEE 802.3x
01-80-C2-00-00-020x8809Ethernet OAM Protocol IEEE 802.3ah (A.K.A. "slow protocols")
01-80-C2-00-00-30 - 01-80-C2-00-00-3F0x8902Ethernet CFM Protocol IEEE 802.1ag
01-00-5E-00-00-00 - 01-00-5E-7F-FF-FF0x0800IPv4 Multicast (RFC 1112), insert the low 23 Bits of the multicast IPv4 Address into the Ethernet Address (RFC 7042 2.1.1.)
33-33-xx-xx-xx-xx0x86DDIPv6 Multicast (RFC 2464), insert the low 32 Bits of the multicast IPv6 Address into the Ethernet Address (RFC 7042 2.3.1.)
01-0C-CD-01-00-00 -
01-0C-CD-01-01-FF
0x88B8IEC 61850-8-1 GOOSE Type 1/1A
01-0C-CD-02-00-00 -
01-0C-CD-02-01-FF
0x88B9GSSE (IEC 61850 8-1)
01-0C-CD-04-00-00 -
01-0C-CD-04-01-FF
0x88BAMulticast sampled values (IEC 61850 8-1)
01-1B-19-00-00-00, or
01-80-C2-00-00-0E
0x88F7Precision Time Protocol (PTP) version 2 over Ethernet (layer-2)

이더넷 멀티캐스트
  https://en.wikipedia.org/wiki/Multicast_address


멀티캐스트
  http://karhem.tistory.com/36

2/04/2015

Media Independent Interface (L2 와 L1 Interface)

1. MII Interface

일반적으로 SoC를 보면 EMAC/MAC 과 PHY Chip 분리되어 동작이 되는 것을 알 수가 있으며, 그 구조를 보면, Ethernet 의 L2와 L1의 구성이라고 생각하면 되겠다. 

처음 MII (Media Independent Interface)를 접한 것은 MPC850T을 사용할 때 FAST Ethernet을 사용하면서 이것을 처음 접했는데, 그 때는 왜 사용하는 지 궁금했다.
하지만, 매번 SoC를 접하면서 각 종류별로 매번 MII를 접하다보니, 이것에 대해 정리를 하고자 아래와 같이 간단히 서술만 하기로 한다. 
사실 MII 개념은 어렵지 않기 때문에, 한번 이해하면 다음에도 다른 MII 도 쉽게 이해한다. 
그리고, Linux에서도 설정도 쉽게 하므로 자세한 설명은 모두 생략한다. 

MII를 사용하는 이유는 뻔하다 SoC와 Phy Chip간의 중간 Interface로 사용하는 것으로 USB를 비롯하여 각 다른 고속 Serial Interface에서도 많이 볼 수있는 현상이다.
즉, Phy 칩의 표준 Interface라고 생각하면 될 꺼 같다. 


1.1 MII(Media Independent Interface)의 종류들 

MII(Media Independent Interface)만 알면 나머지도 쉽게 이해가 가면 어렵지가 않지만, 요즘은 거의 GMII기반으로 사용하기에 간단히 설명 
위키에 설명이 너무 잘되어 있어 관련 세부설명은 생략한다.
  1. EMAC: 실제 MAC Data 전송  
    1. MAT To PHY  (일반적인 구성이며, 아래 그림과 동일)
    2. MAC To MAC (TX, RX를 Cross로 연결 구성)
  2. MDIO: Phy 칩 Control  
    1. Master/Slave 개념으로 동작  
    2. AP의 MDIO가 Master가 되어 , PHY의 제어와 기능확인 

https://www.ti.com/lit/ug/sprugx8b/sprugx8b.pdf (6.2.3)


TI의 EMAC 과 일반 PHY가 아닌 Switch (RTL8370M) 외부와 연결시,아래의 그림 MAC To MAC으로 연결한다.
처음 이부분 때문에 조금 혼동이 되었으며, 아래와 같은 구성으로 연결이 된다.


1.3 MII와 GMII 다른점 

MII : 2.5 MHz or 25 MHz
GMII : 2.5 MHz or 25MHz or 125MHz

MII 일 경우, TX, RX Clock을 모두 PHY에서 제공하는 Sync 방식
GMII 일 경우,  TX Clock Host가, RX은 PHY가 제공한다. Async 방식 (Giga bit 일 경우)


Ref.
  http://www.ti.com/lit/ug/sprugx8b/sprugx8b.pdf  (EMAC)


1.4  ERROR Report 

MII 이든, GMII 이든, 에러가 발생을 하며 이를 보고를 한다. 보통이를 EMAC Driver에서 제공하며,
Linux Device Driver에서는 이를 다시 /proc/net/dev로 연결을 해놓는다.


RX_ER, CRS, COL

관련 정보

# cat  /proc/net/dev



2 How To Connect it with Host 

각 Host 의 MAC->  MAC or PHY 연결하는 방법으로 간단하게 그림으로 설명 


2.1 MAC to PHY(GMII/MII)

가장 일반적인 구성으로 MAC 과 PHY 칩을 직접 연결하여, RJ45 나가는 구성  
다만 각 GMII/MII/RGMII/SGMII/XGMII 조금 씩 차이는 있지만, 그 구성은 거의 다 비슷하다. 

Host에서 PHY로 연결을 했기때문에, PHY의 정보를 읽어 올 수 있다. 그리고, PHY에서
발생하는 ERR 및 및 CRS, COL을 연결한다.


  • 상위 EMAC은 연결 구성도 (MDIO는 생략)


Host에서 MDIO Interface를 사용하여 PHY를 제어를 하며, CLK을 모두, PHY에서 얻어오는
Sync 방식이다.

  • 상위 EMAC은 연결 구성도 (MDIO는 생략)



2.2 MAC to MAC  (GMII)

일반적인 구성은 아니며, Host의 MAC to MAC 직접 연결(1:1 Mapping) 했기 때문에, 
정확히 PHY가 없기 때문에, PHY 정보를 얻어 올수 없으며, 아래와 같이 HW 구성도 달라진다.
즉, TX, RX를 Cross 로 연결해주는 것이다. 

가장 쉬운 예로 
  1. AP의 MAC 과 SWITCH 의 MAC 연결 
  2. AP의 MAC 과 AP 의 MAC 연결 

정확히 말해, PHY 정보를 얻어오는 MDIO Interface를 사용할 수가 없다.
그래서, SWITCH 인 RTL8370M은 SMI Interface를 별도로 제공한다.

RX_ER, CRS, COL은  GR로 연결을 된다.

  • 상위 EMAC은 연결 구성도 (MDIO는 생략)




3. Timing 

GMII Interface Timing 도를 구하지 못해, 아래와 같이, RGMII Timing도를 구함.


http://www.cnblogs.com/shengansong/archive/2012/01/04/2311894.html



GTX_CLK의 Rising Edge에 가 Setup Time이며, 뒤는 Hold Time이다.
그래서, Data는 Setup Time 약간 뒤에 있는 것이 좋다.

http://www.cnblogs.com/shengansong/archive/2012/01/04/2311894.html


GMII Interface 관련자료
  http://hearlink.tripod.com/CandCDB/GMII_REPORT.pdf

12/04/2014

VLAN 관련내용

1. VLAN이란

VLAN( Virtual LAN )이란?
네트웍 노드들의 물리적인 위치와는 상관없이 다수의 노드들을 브로드케스트 도메인으로 세그먼트하는 방법으로 그룹을 구성하는 것을 의미한다.

(브로드케스트 도메인을 VLAN 도메인으로 그룹핑하여, 원하는 VLAN에게만 브로드케스트 가능)
이로서 네트웍상의 자원과 사용자들을 여러 작업그룹으로 분리하여, 세그먼트간의 트래픽을 현저하게 줄일수 있다.
VLAN은 네트웍 자원사용을 오직 인증된 사용자만이 이용할수 있도록 함으로써 네트웍 보안사항을 향상시킨다.

결국. VLAN은 네트웍 자원 엑세스를 제한함으로써 보안을 향상시키고, 브로트캐스트 도메인의 크기를 줄여서 브로드캐스트 트래픽량을 줄이는 효과가 발생하고
결과적으로는 전체 네트웍 성능을 보다 향상시키게되는 것이다.


1.1 VLAN 구성

VLAN을 구성하는 방법은 여러가지가 있다. 스위치의 포트를 기준, 디바이스들의 MAC주소 기준 또는 사용자가 정의한 IP주소 그외 프로토콜, 응용프로그램별로 VLAN을 구성할 수 있다


ref.
http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=108&docId=65196845&qb=dmxhbg==&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=S4qrGsoRR1GssaUrkv0sssssssV-125897&sid=VIqr4AoUU14AAFXrRN0



1.2  VLAN의 기본개념 및 Trunk, VTP.

http://4network.tistory.com/entry/vlan
http://itstudent.tistory.com/11
http://onecellboy.tistory.com/278


1.3  STP 필요성

Switch가 두개가 연결이 될 경우, Broadcast가 발생할 경우, Looping이 이 발생하고, 이를 Broadcast Storm이라고 부릅니다.

이 Looping문제를 해결하기위해서 Connection 구조를  Loop가 되지 않도록 Tree 구조로
변경을 합니다. ( Tree 는 확장트리 )

http://ko.wikipedia.org/wiki/%EC%8B%A0%EC%9E%A5_%ED%8A%B8%EB%A6%AC_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C 
http://4network.tistory.com/entry/Spanning-Tree-Protocol%EC%9D%80-%EC%99%9C-%ED%95%84%EC%9A%94%ED%95%9C%EA%B0%80
http://4network.tistory.com/entry/STP%EB%8A%94-%EA%B8%B0%EC%A4%80%EC%A0%90%EC%9D%B4-%EC%9E%88%EC%96%B4%EC%95%BC-%ED%95%9C%EB%8B%A4



기본용어설명 VLAN

https://www.urz.uni-heidelberg.de/Netzdienste/docext/3com/superstack/3_0/3500/3i3afmTOC.html



VID와 trunk 개념 Image

trunk는 switch간에 연결을 위해서 필요.

http://imagesearch.naver.com/search.naver?sm=ext&viewloc=0&where=idetail&rev=31&query=vlan&ie=utf8&aq=0&spq=0&nx_search_query=vlan&nx_and_query=&nx_sub_query=&nx_search_hlquery=&nx_search_fasquery=&datetype=0&startdate=0&enddate=0&start=1&img_id=blog32465698%7C75%7C40108727490_8



- EFID, Enhanced FID,  Priority
- VINX VSEL



RTL8370M and DM8167

pnx8493
https://code.google.com/p/rt-n56u/source/browse/uboot/rt-n56u/drivers/rtl8367.c