:::: MENU ::::
Browsing posts in: Development

브로드캐스트 주소

브로드캐스트 하나의 로컬 네트워크 전체에 있는 클라이언트 모두에게 데이터를 보내는 방식이며 ARP, DHCP, RIP등의 프로토콜에 사용이 됩니다.

그럼 어떻 하면 이게 가능할까요? 
이것을 알려면 브로드캐스트 주소(Broadcast Address)를 이해해야 합니다.

브로드캐스트 주소는 어드레스주소중 가장 큰 수이다. 
간단히 말하면 이것만 기억하면 됩니다. 
즉 네트워크 를래스가 A이고 IP가 192.0.0.0 일 경우 브로드캐스트 주소는 192.255.255.255입니다.
네트워크 를래스가 B이고 IP가 192.168.0.0 일 경우 브로드캐스트 주소는 192.168.255.255입니다.
네트워크 를래스가 C이고 IP가 192.168.16.0 일 경우 브로드캐스트 주소는 192.168.16.255입니다.

위와 같은 경우는 서브네팅이 많이 보는 경우이므로 간단히 알수 있는데 그럼 만약에 서브넷 마스크가 255.255.255.224 일 경우 어떻게 브로드캐스트 주소를 구할 수 있나요?

브로드캐스트 주소 구하는 법
IP address: 192.168.16.1
Subnet mask: 255.255.255.224

1) Subnet mask를 invert한다.
   255.255.255.224 => 11111111.11111111.11111111.11100000
   이것을 invert하면 00000000.00000000.00000000.00011111
2) Invert한 subnet과 IP address를 Logical OR를 한다.
  192.168.16.1    => 11000000.10101000.00010000.00000001
  Invert한 서브넷 =>  00000000.00000000.00000000.00011111
  결과는            =>  11000000.10101000.00010000.00011111 => 192.168.16.31



IBIS 모델


IBIS는 “I/O Buffer Information Specification“의 약자입니다.

IBIS는 말 그대로 반도체 칩의 입출력 핀에 대한 정보를 담고 있어서 반도체 칩의 사용자들이 PCB를 설계할 때 신호 충실도(Signal Integrity) 및 EMI/EMC 관련 시물레이션 및 디자인에 필수적인 요소입니다. 즉 회로 설계를 위한 칩의 기본적인 I/O 정보를 담고 있습니다. 물론 보드가 복잡하고 High Speed의 보드일 경우에 그리고 이것을 해석하고 시뮬레이션 할 수 있는 툴이 있을 때 가능한 얘기입니다.
1990년 초, 인텔사에서 PCI 버스에 대한 엄격한 요구사항을 내 놓기 시작하여 그 특이한 형식이 대두되고 그 이후 반도체 제조회사, EDA 및 컴퓨터 제조관련회사 등 약 35개의 회원사를 구성하여 공개적인 표준규격을 정한 것이 바로 이것이 IBIS Model입니다.
이 IBIS 모델의 특징은 다음과 같습니다.
  • 반도체 칩의 I/O 버퍼 특성을 I/V관계로 나타낸다.
  • 회로에 대한 정보를 숨길 수 있어, 제작사에서 IBIS Model를 공개/보급이 가능함
  • Spice Model과는 달리 상용 EDA 도구와 호환성을 가짐
IBIS모델은 반도체 칩의 I/O를 기준으로 칩을 모델링한 것이기 때문에 칩 내부의 정보는 회로설계자들이 알 수 없으므로 칩 제조사의 노하우나 기술들은 비밀이 보장되는 장점이 있습니다. 그리고 시뮬레이션 시간도 SPICE모델에 비해 몇배 빠릅니다. 
보다 많은 정보는 IBIS 오픈 포럼에 ==> http://www.eda.org/ibis/


Auto-MDIX의 동작 원리

Auto-MDIX  Automatic Medium Dependent Interface Crossove를 의미하며 HP에 의해 개발된 Network 기술입니다. HP사의 Auto-MDIX기술 소개 페이지

이더넷 케이블의 형태는 TX/RX 를 기준으로 볼 때TX/RX가 서로 바뀌어져 있는 Crossover Cable(TX-RX, RX-TX) Straight Cable (TX-TX, RX-RX)로 나뉘어집니다. 

각각의 네트워크 디바이스들의 통신은 TX(노드 A)-RX(노드 B) / RX(노드 A)-TX(노드 B)의 연결을 통해서 가능하기 때문에 Straight Cable 로 연결을 하면 통신이 불가능합니다. 

하지만 연결된 노드에서 TX RX를 전기적으로 서로 바꿔줄수 있는 기능이 있다면 Straight Cable을 사용해도 상호간의 통신이 가능하며 이를 Auto-MDIX라고 합니다. 요즘 나오는 대부분의 네트워크 카드나 노트북에에서는 이 기능을 지원하죠.


임베디스 네트워크시스템에서 이 기능을 사용하기 위해서는 Auto-MDIX를 지원하는 PHY를 사용하고 대칭적(symmetrical)인 구조를 가지는 트랜스포머를 사용해야 합니다. 즉 다음과 같은 구조를 같는 트랜스포머 또는 맥잭을 사용해야 합니다. 

트랜스포머가 내장된 UDE사의 RDA-125BAG1A 맥잭

 

그럼 링크 파트너끼리 어떻게 이것을 설정할까요? 2가지 경우의 수가 있을 수 있습니다. 한쪽만 Auto-MDIX를 지원하는 경우와 둘다 Auto-MDIX를 지원하는 경우. 

전자는 쉽습니다.  Auto-MDIX를 지원하는 쪽에서 MDI확인을 한후 MDIX확인을 하면 됩니다. 하지만 후자의 경우 양쪽에서 Auto-MDIX을 체크를 하고 최악의 경우 이 체크하는 주기까지 같으면 영원히 링크를 형성하지 못하는 경우도 있습니다.

따라서 IOT 테스트가 중요합니다. 관련글 읽기 Take Advantage Of Fast Ethernet PHY Testing

그리고 HP에서는 이런 문제를 피하기위해 스위칭 주기를 랜덤하게 하는 알고리즘을 내놓았습니다. Automatic Crossover Algorithm


오실레이터, 크리스탈 가이드

임베디스시스템에서 사용을 하는 모든 MCU에는 클럭 입력이 있습니다. 
이 클럭은 사람으로 치면 심장과도 같은 존재입니다. 이게 없으면 MCU가 동작을 할 수 없겠죠. 일반적으로 클럭 입력으로 오실레이터나 크리스탈을 사용을 합니다. 
이 둘의 차이는 크리스탈은 MCU의 발진 회로에 의해 동작을 하고, 오실레이터는 자체 전원입력을 받아서 독립적으로 동작을 하며, 일반적으로 크리스탈의 단가가 낮기 때문에 가능하면 크리스탈을 사용을 합니다. 대부분의 개발자들이 MCU의 datasheet에서 가이드하는 내용대로 디자인을 하는데, ST micro에서 좋은 가이드 문서가 있어서 한번 확인해 봤습니다.


  • Rf :  피드백 저항, MCU에 따라서 이게 안에 없어서, 밖에다 연결을 해야 하는 경우도 있습니다. 주파수에 따라서 저항값이 달라집니다.

  • Rext: 이건 OSC_OUT쪽에 연결하여 전류를 제한합니다.

  • Cs : 기생저항으로 PCB 패턴등으로 약 10pF정도로 생각하면 됩니다.

  • CL1, CL2: 크리스탈 제조사에서 결정하는 값입니다.


Gain margin은 몰랐던 개념인데 한번 꼼꼼히 읽어볼 만합니다. 


Virtual Cable Tester

Ethernet 네트워크에서는 필수적으로 Ethernet PHY 칩을 사용해야한다. PHY칩에 적용되는 기술중 하나인 VCT(Virtual Cable Tester)는 Marvell에서 개발한 기술로 간단히 얘기하면 UTP 케이블의 단선 및 단락등을 검출하는 기술이다. 

즉 구체적으로 다음과 같은 문제점의 검출이 가능하다.

  • Open:  Lack of continuity between the pins at each end of the twisted-pair cable.
  • Short:  Two or more conductors short-circuited together.
  • Crossed pair:  Twisted-pair cable incorrectly connected at one end. For example, pair 3 is connected to pins 4 and 5 on one end, and pins 7 and 8 on the other end.
  • Reversed pair:  Two conductors in a twisted-pair cable connected with reverse polarity. For example, one conductor in pair 3 is connected to pin 1 on one side and to pin 2 on the other, while the second conductor is connected between pin 2 and pin 1.
  • Improper termination:  Cable terminations not equal to 100 ohms. Because the characteristic impedance of Category 5 (Cat 5) cable is 100 ohms, the cable terminations at each end must also be 100 ohms to prevent waveform reflections and potential data errors.

예를 들면 UTP케이블이 100m 짜리인데 중간에 어느 부근에서 단선, 단락이 되었는지, 선이 제대로 연결이 되었는지 등을 알 수있다.
이 기술로 원리는 특정 파형의 시그널을 보내고 이것이 반사되어 오는 시간 및 패턴을 보고 문제의 원인을 알아낸다.



Marvell의 홈페이지에서는 관련한 내용이 잘 찾아지지 않는데, 아래 링크의 내용은 Dell의 제품에 적용된 내용을 기술한 내용이다.  관련 내용 참고 



이더넷 케이블 종류 – UTP, FTP, STP

UTP, FTP, STP케이블이 의미하는 바는 다음과 같다.

UTP (Unshielded Twisted Pair)
쉴드가 없고 2선씩 쌍으로 꼬아져 있는 케이블
2선씩 쌍으로 꼬아져 있는 이유는 이더넷 신호가 differential signal이기 때문에, 두 선간의 전자기 유도를 줄이기 위하여 서로 꼬여져있다. 제품 전선과 피복만으로 구성되어 있고, 일반적인 랜케이블에 해당됨.

FTP(Foiled Twisted Pair)
쉴드 처리는 되어있지 않고, 알루미늄 은박이 4가닥의 선을 감싸고 있는 케이블.
즉 UTP 케이블에 바깥쪽에 은박(foil)으로 감싸있는 케이블, Screended UTP (S/UTP) 라고도 함
UTP에 비해 절연 기능이 탁월하므로 공장 배선용으로 많이 사용.

STP (Shielded Twisted Pair)
2선씩 쌍으로 꼬아져 있는 케이블마다 쉴드가 있는 케이블, 여기에 바깥쪽에 은박이 하나더 있으면 S/STP라고 함.
여기서 쉴드라 하는 것은 연선으로 된 케이블 겉에 외부 피복, 또는 차폐재가 추가되는데, 차폐재는 접지의 역할을 한다. 
따라서 외부의 노이즈를 차단하거나 전기적 신호의 간섭에 탁월한 성능이 있다.

따라서 외부 간섭에 가장 좋은 케이블 순서는 STP, FTP, UTP이다. 대부분의 경우 UTP를 사용하면 되며, 쉴드케이블의 경우 사용및 설치가 좀 복잡하다. 그리고 주의 할 점은 만약 제대로 쉴드가 그라운드 되지 않을 경우 아무런 장점이 없고 오히려 문제가 될수도 있다.

좀더 자세한 내용은 위키피디아에서.. http://en.wikipedia.org/wiki/Twisted_pair


Unix time converter

“년,월,일,시,분,초” 가 주어졌을때 이를 Unix 시간으로 바꿔줄 경우가 있는데, 실제로 이런 요구는 프로그래밍시 자주 발생한다. 자신이 작성한 코드가 맞는지 확인을 하려면 다음과 같은 사이트가 유용하다.
인터넷상에서 Unix time을 변환해 주는 사이트 http://unixtime-converter.com/

Unix  time에 관한 정보는 Wiki 페이지를 참조.. http://en.wikipedia.org/wiki/Unix_time


유용한 툴 – IO Ninja

이 툴은 Tibbo (www.tibbo.com)에서 제공을 하는 Serial, TCP, UDP 전송기능 및 Wireshark의 packet capture 기능이 통합되어 있는 툴입니다. Packet capture를 위해서는 Wireshark 처럼 WInpcap을 사용을 합니다.
원래는 개인용으로 30불에 판매를 하는 툴인데, Evaluation 버젼은 http://tibbo.com/downloads/ninja.html 에서 다운로드 가능합니다. 사용기간이 지나도 “Continue evaluation”버튼을 누르면 계속 사용이 가능합니다.

저 같은 경우는 TCP 테스트의 경우에는 Socket tester를 사용을 하고, UDP를 테스트를 할때 이툴을 사용합니다. 물론 packet을 capture 할때는 Wireshark를 사용합니다. 사용법은 매우 간단한데, 프로그램을 실행시킨후 New Session에서 원하는 통신방식을 클릭하고, IP와 port를 설정을 하면 됩니다.
즉 TCP client의 경우는 Connection Socket을 선택을 하고,TCP server의 경우 Listener Socket을 선택, UDP의 경우 UDP Socket을 선택을 하면 됩니다.

예를 들어 UDP Socket을 선택을 한 경우 Local에는 자신이 바인딩할 port를 입력을 하고, Remote에는 통신을 할 peer의 IP 및 Port number를 입력을 하고, 번개모양의 아이콘을 클릭하면 됩니다.
데이터는 아래창에 입력을 한후 send를 하면 됩니다.


아래 파일을 받아서 설치…cfile3.uf.1334E54B4DDA1EF419D59A.zip


유용한 툴 – TCPView

이 툴은 예전에 sysinternals 라는 회사에서 만든 겁니다. Windows 기반의 유용한 유틸리티들을 만들던 이 회사는  2006년 7월에 마이크로소프트사가 인수를 했네요. www.sysinternals.com으로 접속하면 마이크로소프트사의 웹페이지가 열리고 관련된 내용이 나옵니다. http://technet.microsoft.com/ko-kr/sysinternals/default%28en-us%29.aspx

이툴은 현재 연결된 TCP 접속과 UDP 채널들을 process 별로 보여줍니다. 아래 그림에서 보듯이 각각의 process가 어떤 port로 어디에 연결이 되어 있는지 알수 있습니다. 내가 알지 못하는 프로그램이 특정 port를 열고 있다던가 하는 것을 찾는데도 유용합니다.


Sysinternals의 프로그램들은 http://live.sysinternals.com/ FTP에서 다운 받을 수 있으며, 이 프로그램은 http://live.sysinternals.com/Tcpview.exe 에서 다운로드 가능합니다.