34
1 AMAN2002 를 를를를 TCP/IP 를를를를 를를 를 를를를를 를를를를를 www.nms4you.com 이이이 (Ethernet) 2003. 3. Chapter 4:

이더넷 ( Ethernet)

  • Upload
    gavivi

  • View
    103

  • Download
    2

Embed Size (px)

DESCRIPTION

Chapter 4:. 이더넷 ( Ethernet). 2003. 3. Ethernet Header. Preamble. S F D. Destination Address. Source Address. Type. DATA. FCS. 7 byte. 1 byte. 6 byte. 6 byte. 2 byte. 46-1500 byte. 4 byte. 이더넷 v2 프레임. 기능 한 스테이션에서 다른 스테이션으로 안전하고 효과적으로 패킷을 전송하는 컨테이너( container). 이더넷 프레임의 구조. - PowerPoint PPT Presentation

Citation preview

Page 1: 이더넷 ( Ethernet)

1

AMAN2002 를 이용한

TCP/IP 프로토콜 분석 및 네트워크 프로그래밍

www.nms4you.com

이더넷 (Ethernet)

2003. 3.

Chapter 4:

Page 2: 이더넷 ( Ethernet)

2제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

이더넷 v2 프레임 기능

한 스테이션에서 다른 스테이션으로 안전하고 효과적으로 패킷을 전송하는 컨테이너 (container).

이더넷 프레임의 구조

7byte 1byte 6byte 6byte 2byte 46-1500byte 4byte

PreambleSFD

DestinationAddress

SourceAddress

Type DATA FCS

Ethernet Header

SFD: Start-of-frame delimiter, FCS: Frame Check Sequence.

Type 은 AMAN2002 온라인 도움말의 EtherType 을 참고 .

Page 3: 이더넷 ( Ethernet)

3제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

이더넷 v2 프레임의 구조 Preamble

동기화 기능 SFD(Start of frame delimiter)

프레임의 시작을 표시 근원지 MAC 주소

데이터를 내보내는 기계의 MAC 주소 목적지 MAC 주소

데이터를 수신할 기계의 MAC 주소 Type

상위 계층 프로토콜 종류를 표시 데이터 필드

상위 프로토콜 데이터 패킷 FCS (Frame Check Sequence)

프레임에 문제가 있는지 판별에 사용

1 0 1 0 1 0 0 0 1 1 0

네트워크인터페이스 계층

(데이터링크 계층 )L3 데이터H2 T2

L3 데이터

물리 계층

네트워크 계층

Type

Page 4: 이더넷 ( Ethernet)

4제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

MAC 주소의 구조 제조 회사 ID

IEEE 에서 관리하는 NIC 제조회사의 고유번호 . AMAN2002 도움말의 OUI Code 참조 .

NIC(Network Interface Card) ID 3bytes 의 고유한 카드 번호 .

Sony Corporation NIC 의 MAC 주소 예

제조회사 ID(3 byte)

NIC ID(Network Card Interface ID)

(3 byte)

08-00-46 - 18-BD-C8< 참고 > PC 의 MAC 주소를 확인하는 방법 Windows98: DOS 창에서 winipcfg /all 명령 , NT 계열 : DOS 창에서 ipconfig /all 명령 .

Page 5: 이더넷 ( Ethernet)

5제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

IEEE 802.3 프레임 구조 Type 필드를 Length 로 대체 데이터 필드에 LLC(Logical Link Control) 추가

PreambleSFD

DestinationAddress

SourceAddress LengthLength Data FCS

7byte 1byte 6byte 6byte 2byte 43-1497byte 4byte

DSAP

802.2 LLC header

SSAP Ctrl

1 1 1

Ethernet Header Data Field

DSAP: Destination Service Access Point, SSAP: Source Service Access Point.

Page 6: 이더넷 ( Ethernet)

6제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

IEEE 802.3 with SNAP 프레임 구조

SNAP(Sub-Network Access Protocol) 을 추가하여 지원 가능 프로토콜 수를 확장

PreambleSFD

DestinationAddress

SourceAddress

Length Data FCS

7byte 1byte 6byte 6byte 2byte 38-1492byte 4byte

DSAP

802.2 LLC header

SSAP Ctrl

1 1 1 3 2

Ethernet Header Data Field

Code

SNAP packet

Type

Page 7: 이더넷 ( Ethernet)

7제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

Novell 802.3

Novell 네트워크에서 사용 Novell IPX 데이터만을 지원 함

PreambleSFD

DestinationAddress

SourceAddress

Only IPX Data FCS

7byte 1byte 6byte 6byte 2byte 46-1500byte 4byte

Ethernet Header Data Field

LengthLength

Page 8: 이더넷 ( Ethernet)

8제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

이더넷 프레임 분석 Packet Observer 를 이용한 이더넷 분석

Page 9: 이더넷 ( Ethernet)

9제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

이더넷 프레임 분석

목적지 주소 근원지 주소 Type

회사 ID Card ID 회사 ID Card ID

00 00 0C 07 AC 00 00 E0 18 1B 52 BE 08 00

00 00 0C 07 AC 00 00 E0 18 1B 52 BE 08 00

송신측 MAC 주소 NIC 제조회사 : 00E018 ASUSTEK COMPUTER INC. Card ID: 1B52BE

수신측 MAC 주소 NIC 제조회사 : 00000C CISCO SYSTEMS, INC. Card ID: 07AC00

상위 계층 프로토콜 종류 0x0800 Internet IP (IPv4)

Page 10: 이더넷 ( Ethernet)

10

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

NIC 제조회사 코드표 AMAN2002 Online Help 의 “ OUI 코드” 참조

Page 11: 이더넷 ( Ethernet)

11

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

상위 계층 프로토콜 번호 AMAN2002 Online Help 의 “ EtherType” 참조

Page 12: 이더넷 ( Ethernet)

12

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

01 00 5E 00 00 02 00 07 4F A1 6B FC 08 00

송신측 MAC 주소 NIC 제조회사 : Card ID:

수신측 MAC 주소 NIC 제조회사 : Card ID:

상위 계층 프로토콜 종류

연습 문제 1

목적지 주소 근원지 주소 Type

회사 ID Card ID 회사 ID Card ID

Page 13: 이더넷 ( Ethernet)

13

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

00 01 02 E8 DF 8D 00 08 E2 44 76 3C 08 00

송신측 MAC 주소 NIC 제조회사 : Card ID:

수신측 MAC 주소 NIC 제조회사 : Card ID:

상위 계층 프로토콜 종류

연습 문제 2

목적지 주소 근원지 주소 Type

회사 ID Card ID 회사 ID Card ID

Page 14: 이더넷 ( Ethernet)

14

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

Guru 를 이용한 이더넷 프레임 분석 연습

Page 15: 이더넷 ( Ethernet)

15

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

이더넷 프레임 켑쳐 프로그램 작성

Page 16: 이더넷 ( Ethernet)

16

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

Microsoft Visual C++ 실행

시작 프로그램 Microsoft Visual Studio 6.0 Microsoft Visual C++ 6.0

Page 17: 이더넷 ( Ethernet)

17

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

새 프로젝트 생성 AppWizard 시작 : Visual C++ 의 File New 메뉴

선택

Page 18: 이더넷 ( Ethernet)

18

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

AppWizard – Step 1

Page 19: 이더넷 ( Ethernet)

19

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

AppWizard – Step 2

Page 20: 이더넷 ( Ethernet)

20

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

AppWizard – Step 3

Page 21: 이더넷 ( Ethernet)

21

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

AppWizard – Step 4

Page 22: 이더넷 ( Ethernet)

22

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

라이브러리 경로 설정 (1) Include 경로 : Visual C++ 의 Directories Show directories for 메뉴 선택

Page 23: 이더넷 ( Ethernet)

23

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

라이브러리 경로 설정 (2) Include 경로 : Visual C++ 의 Directories Show directories for 메뉴 선택

Page 24: 이더넷 ( Ethernet)

24

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

EtherViewer 메인 대화상자 디자인

대화상자 디자인

List Control

Check Box Edit Box Edit Box Button

1

2 3 4 5 6 7

8

9

10

Page 25: 이더넷 ( Ethernet)

25

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

Control 속성

# 종류 ID 속성 변수

1 List Control

IDC_LIST_PacketInfo View: Report CListCtrl m_LIST_PacketInfo

2 Check Box IDC_CHECK_Filter_IP

3 Static Text IDC_STATIC

4 Edit Box IDC_EDIT_CountInput int m_EDIT_iCountInput

5 Static Text IDC_STATIC

6 Edit Box IDC_EDIT_CountOutput Read-Only int m_EDIT_iCountOutput

7 Button IDC_BUTTON_SelectAdaptor

8 Button IDOK Default Button

9 Button IDC_BUTTON_ProductInfo

10 Button IDC_BUTTON_Help

Page 26: 이더넷 ( Ethernet)

26

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

이벤트 처리# 종류 ID 메시지 함수명

7 Button IDC_BUTTON_SelectAdaptor

BN_CLICK OnBUTTONSelectAdaptor()

8 Button IDOK BN_CLICK OnCHECKFilterIP()

9 Button IDC_BUTTON_ProductInfo BN_CLICK OnBUTTONProductInfo()

10 Button IDC_BUTTON_Help BN_CLICK OnBUTTONHelp()

Page 27: 이더넷 ( Ethernet)

27

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

어뎁터 오픈 대화상자 표시void CEtherViewerDlg::OnBUTTONSelectAdaptor() {

//Ncap lib.(Dialog based class lib.) 객체 생성 .CSelectAdaptorDlg *pDlg = new CSelectAdaptorDlg;if(pDlg->DoModal() != IDOK){

delete pDlg;return;

}

…}

Page 28: 이더넷 ( Ethernet)

28

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

어뎁터 열기// 선택된 네트워크 어뎁터를 사용할 수 있도록 초기화 .if(pDlg->OpenAdaptor(m_iFilter_IP)) {

::AfxMessageBox("Adaptor open 실패 ");

pDlg->CloseAdaptor();delete pDlg;

return;}

Page 29: 이더넷 ( Ethernet)

29

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

패킷 캡쳐#define MaxBufferLen 2048UpdateData(TRUE);

unsigned char arrTemp[MaxBufferLen];for(int i=0; i<m_EDIT_iCountInput; i++){

memset(arrTemp, 0, MaxBufferLen);

// 패킷을 하나 획득함 . 음수가 return 되면 에러가 발생한 것 .if(pDlg->Ncap(arrTemp, MaxBufferLen) < 0)

continue;

// 패킷 분석…

}

Page 30: 이더넷 ( Ethernet)

30

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

패킷 분석CString strDestMac = _T("");strDestMac.Format(_T("%02X %02X %02X - %02X %02X %02X"),

arrTemp[0], arrTemp[1], arrTemp[2],arrTemp[3], arrTemp[4], arrTemp[5]);

m_LIST_PacketInfo.SetItem(i, 2, LVIF_TEXT, strDestMac, 0, 0, 0, 0);

CString strSrcMac = _T("");strSrcMac.Format(_T("%02X %02X %02X - %02X %02X %02X"),

arrTemp[6], arrTemp[7], arrTemp[8],arrTemp[9], arrTemp[10], arrTemp[11]);

m_LIST_PacketInfo.SetItem(i, 1, LVIF_TEXT, strSrcMac, 0, 0, 0, 0);

CString strType = _T("");unsigned int iTypeORlength = pDlg->Twobytes_to_number(arrTemp[12], arrTemp[13]);strType.Format(_T("%02X %02X(Hex), %d(Decimal)"),

arrTemp[12], arrTemp[13], iTypeORlength);m_LIST_PacketInfo.SetItem(i, 3, LVIF_TEXT, strType, 0, 0, 0, 0);

Page 31: 이더넷 ( Ethernet)

31

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

어뎁터 닫기

// 사용한 자원 해제 .pDlg->CloseAdaptor();

//Ncap lib. 삭제 .delete pDlg;

Page 32: 이더넷 ( Ethernet)

32

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

EtherViewer 실행 모습

Page 33: 이더넷 ( Ethernet)

33

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

EtherViewer 를 이용한 이더넷 프레임 분석

송신측 MAC 주소 NIC 제조사 : 0008E2 Cisco Systems, Card ID: 44763C

수신측 MAC 주소 NIC 제조사 : 000102 3COM CORPORATION, Card ID: E8DF8D

상위 계층 프로토콜 종류 0x0806 Internet IP

Page 34: 이더넷 ( Ethernet)

34

제 4 장 이더넷 (Ethernet)

AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www.nms4you.com

참고 문헌 서승호 외 , AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크

프로그래밍 , 정익사 , 2002. RFC 826, David C. Plummer, An Ethernet Address Resolution

Protocol or Converting Network Protocol Addresses to 48 bit Ethernet Address for Transmission on Ethernet Hardware, November 1982.

RFC 1060, J. Reynolds J., ASSIGNED NUMBERS, March 1990. RFC 1010, J. Reynolds J., ASSIGNED NUMBERS, May 1987. RFC 1042, J. Reynolds J., A Standard for the Transmission of IP

Datagrams over IEEE 802 Network, February 1988. Behrouz Forouzan, “Introduction to Data Communication and

Networking”, Mcgrwohill, 1999. Fred Halsall, “Data Communications, Computer Networks and

Open Systems”, Addison-wesley, 1995.