따라하면서 배우는 IT 네트워크 (3)

유동헌·2022년 1월 16일
0

YouTube 채널 따라하면서 배우는 it의 네트워크 관련 강의를 들으며 정리한 글입니다.

도서 모두의 네트워크를 읽으며 정리한 내용이 일부 포함될 수 있습니다.

그 밖의 Reference들은 글 마지막에 따로 표기해 두었습니다.

2계층에서 하는 일

2계층은 하나의 네트워크 대역, 즉 같은 네트워크 상에 존재하는 여러 장비들 중에서 장비 A가 장비 B에게 보내는 데이터를 전달하는 계층입니다.

추가적으로 알아 두어야 할 개념으로 오류제어, 흐름제어가 있습니다.

2계층의 네트워크 크기

2계층은 하나의 네트워크 대역 = LAN에서만 통신할 때 사용됩니다.

다른 네트워크와 통신할 때는 항상 3계층이 도와주어야 합니다. 3계층의 주소와 3계층의 프로토콜을 이용하여야만 다른 네트워크와 통신이 가능합니다.

MAC 주소

물리적인 주소라고 부릅니다.

MAC 주소를 사용한 통신

  • OSI 모델이나 TCP/IP 모델을 생각해보면 각 계층에서 헤더를 붙이는, OSI 모델에서는 데이터 링크 계층에서 헤더를 붙이고 TCP/IP 모델에서는 네트워크 계층에 해당, 이더넷 헤더와 트레일러를 붙임

이더넷 헤더 구조

  • 목적지 MAC 주소(6바이트) + 출발지 MAC 주소(6바이트) + 유형(2바이트)
  • 유형이란?
    • 이더넷으로 전송되는 상위 계층 프로토콜의 종류

만약에 00-99-88-77-66-55

앞에 6개는 OUI IEEE에서 부여하는 일종의 제조사별 식별 ID로 구성합니다.

뒤에 6개는 고유번호 이 두개가 합해져서 MAC주소를 구성합니다.

2계층의 프로토콜

Ethernet이라는 프로토콜이 존재합니다.

Ethernet 안에는 쉽게 생각하면 보내는 쪽, 받는 쪽에 대한 MAC주소가 들어가 있습니다. 14바이트. 6(Destination Address) + 6(Source Address) + 2(Ethernet Type)

Ethernet Type : 데이터에 들어있는 프로토콜의 정보를 담고 있는 정보입니다. 상위 프로토콜에 뭐가 들어가는지 알려주는 정보입니다.

실습 MAC 주소 확인

❯ ifconfig | egrep "(^\\w|ether)"                                            ─╯
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
anpi0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether 52:71:78:4e:bb:54
anpi1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether 52:71:78:4e:bb:55
ap1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether 72:ed:3c:3a:15:39
en3: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether 52:71:78:4e:bb:34
en4: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether 52:71:78:4e:bb:35
en1: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	ether 36:ab:56:ee:3a:00
en2: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	ether 36:ab:56:ee:3a:04
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether 50:ed:3c:3a:15:39
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
	ether ae:dd:ae:29:76:e2
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether 36:ab:56:ee:3a:00
llw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	ether ae:dd:ae:29:76:e2
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
utun2: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1000
utun3: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
utun4: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
utun5: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
utun6: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
utun7: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380
utun8: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1380

이더넷 프로토콜 캡쳐

wireshark로 통신하는 것이 가능합니다.

이더넷 프로토콜, 14바이트 상위 프로토콜까지 알 수 있습니다.

16진수란?

16진수 0~9, A B C D E F로 모든 수를 표현한 숫자

Reference

https://codechacha.com/ko/linux-mac-address/

profile
지뢰찾기 개발자

0개의 댓글