Mac address를 사용하는 이유가 뭘까요??

cinemamoon의 이미지

제가 알기로는 IP addr을 사용하는 이유가 크게 두가지가 있는 걸로 알고 있는데요.
IP address를 사용하는 이유는 효율적인 라우팅을 위해서 예를 들어 199.x.x.x 면 190~200 대는 비슷한 방향으로 보내고
180~190은 또 다른 비슷한 방향으로 보냄으로써 효율적인 라우팅을 할 수 있다고 배웠는데요.
또 한가지는 ip addr을 사용함으로써 lan card를 바꾸어도(하드웨어를 바꾸어도) 바껴진 주소를 전세계의 다른 host에게 다시 알릴 필요가
없기 때문이라고 알고 있습니다...

Mac addr은 host의 고유 ID로 lan card 번호(하드웨어적인)라고 들었는데... 같은 network안에서도 IP주소는 unique하니까 mac addr을 사용하지 않아도 목적지 주소에 도착할 수 있는게 아닐까요?

Mac addr을 특정 network 안에서 목적지 호스트 주소를 정할 때 왜 ARP를 이용해서 logical addr을 굳이 mac addr로 바꾸는 걸까요?

MAC addr은 단지 logical addr(IP 주소)와 matching을 위해서 필요한 고유한 이름인가요... 만약 고유한 이름이라면 왜 ARP를 사용해야 하는 것인지..ARP를 사용하지 않고 그냥 네트워크 내에서도 IP주소로 호스트 주소를 찾으면 안되는 것인지 알고 싶습니다...

감사합니다.

익명 사용자의 이미지

OSI 7계층 참고

익명 사용자의 이미지

ethernet 책보시오.

익명 사용자의 이미지

tcp/ip구조상 ,

beadgrip의 이미지

뭘까요...

neocoin의 이미지

토론 꺼리가 아니라서 이런 반응이 오는듯 하네요.

chadr의 이미지

그 유명한 네트워크 계층에 관한 것을 공부해보시면 손쉽게 알수 있긴 합니다...

하지만 몇줄로 요약해드리겠습니다.
우리가 사는 세상에는 많은 네트워크 장비들이 있습니다.

또한 많은 데이터 전송 방법들이 있습니다.

네트워크 계층에서는 이러한 많은 종류의 네트워크 장비들간에 데이터 통신을 원활하게 하기 위한
명세가 정의되어있습니다.

일단 하드웨어 레벨에서 내려가봅시다.
네트워크 장비는 하드웨어이며 또한 매우 소형입니다.
이유는 가격적인 목적도 있지만 과거 호환성 목적도 있습니다.

또한 네트워크 장비가 해야하는 것은 "데이터"를 잘 보내고 받으면 됩니다.

하지만 우리가 사는 세상에서 데이터 통신을 하기 위해서는 "전기"라는 매개체를 사용합니다.
전기적인 on-off를 이용해서 1과 0을 표현하고 이들이 모여서 의미있는 데이터가 되는 것입니다.

그런데 큰 문제는 이러한 전기적인 특성이 그렇게 견고하지 않는 점입니다.

0과 1을 보내기 위해서는 전기라는 높낮이가 있는 아날로그를 이용해서 딱딱 떨어지는 디지털 신호로 변환을 하게 됩니다.
그런데 전기는 태생이 아날로그인지라 보내는 쪽에서 1에 해당하는 전압을 걸어줘도 받는 쪽에서는 1에 해당하는 전압을 못받을수 있습니다.

이는 물리적인 면에서 자연적인 현상이라서 어쩔수 없습니다. 한곳에서 한곳으로 전기가 흐르기 위해서는 반드시 이를 이어주는 매개체가 필요합니다.
일반적으로 "전선"이라는 것을 사용합니다. 그리고 이것은 금속입니다. 그런데 세상에 존재하는 모든 금속은 전기를 못 흐르게 하는 "저항"이라는 것이 존재합니다.
저항은 모든 금속이 가지고 있는 특성이며 저항은 모든 금속이 조금씩 다른 세기를 가지고 있습니다.

아무튼.. 이러한 저항이라는 것 때문에 보내는 곳에서 정확한 전압을 걸어도 저항 때문에 감쇠가 일어나서 받는 쪽에서 제대로 못받는 경우가 생깁니다.
이렇게 되면 에러가 되는 것이지요.

물론 데이터 통신을 위해서는 최소한 인식을 위한 거리가 명시 되어있습니다. 예를 들어 이 데이터 통신 방법은 유선으로 10미터 이내에서만 작동한다 이런식입니다.

하지만 이러한 10미터도 실험실 내부에서 최적의 환경에서나 가능한 것입니다. 그런데 우리가 사는 세상은 그렇게 호락호락 하지 않습니다.
데이터 통신을 방해하는 요소는 굉장히 많습니다. 저항 뿐만 아니라 자기장이라는 요소도 있습니다.

번개가 치면 큰소리와 함께 불이 번쩍하지요. 이때 발생하는 전기적 방전은 엄청난 자기장을 발생시킵니다.
만약에 데이터통신을 위한 회선이 번개가 치는 근처를 지나고 있다면 평소에 10미터까지 갈수 있는 신호가 1미터도 못가는 수도 있습니다.

이러한 일이 비일비재하고 회선 옆에서 포크레인이 땅을 파도 이러한 노이즈가 생깁니다. 이러한 노이즈가 회선이 전기적인 영향을 주고
데이터 통신을 방해합니다. 데이터를 보내고 받는 경우에는 두개의 선을 씁니다. 보내는 회선 받는 회선..
심지어 이러한 통신을 위해서 같이 있는 회선끼리도 전기적인 자기장을 형성하고 서로간에 노이즈를 발생시킵니다. 우리가 익히 쓰고 있는
랜선은 이러한 문제를 해결하기 위해서 선을 두개로 꼬아놨습니다. 또한 우리가 케이블티비에 사용하는 동축선도 이러한 문제를 해결하기 위해서
케이블 겉은 망사로 된 금속 그물을 두어 노이즈를 제거합니다.

하지만 이러한 노력에도 불구하고 외부 요인의 노이즈는 정말 해결하기 힘듭니다.
그렇기 때문에 가장 손쉬운 방법인 "다시 보내기"방법을 자주 씁니다.

에러가 났다고 판명된 데이터는 버리고 다시 보내는 것이지요. 주변에 번개가 치고 있다면 아주 우연하게 번개가 안칠때 데이터를 보내면 정상적으로
전달 될겁니다.

우리가 사용하는 IP기반으 TCP는 다시보내기 기능을 이용해서 데이터를 복구합니다.
하지만 우리가 사용하는 네트워크 장비의 하드웨어는 다시보내기 기능은 없습니다.
있더라도 약한 수준의 다시 보내기 기능 또는 오류 복구 기능이 있습니다.

TCP같은 강력한 오류 복구 기능을 네트워크 하드웨어에 넣을려면 값이 매우 비싸질겁니다.
이러한 시도를 안한건 아닙니다. 하지만 세계에는 많은 네트워크 장비가 있고 과거에 도입된
장비가 있고 못사는 나라는 값산 장비를 쓸수 밖에 없으며 값싼 장비는 기능이 너무 단순합니다.

우리가 사용하는 데이터 통신은 이러한 열악한 하드웨어한테도 데이터를 보내야하며 받을수 있어야합니다.

그래서 네트워크 계층이라는 것을 나누어서 각 계층에서 해야하는 것을 정의해 뒀습니다.

그렇기 때문에 하드웨어끼리는 하드웨어 계층에서 정의한 기능만 써야합니다.
또한 각 계층에는 다양한 프로토콜이 존재하며 프로토콜간 통신을 위해서는 서로 변환이 필요합니다.
이러한 것중 하나가 ARP입니다. 네트워크 계층에서 같은 계층에 있는 것들은 그들끼리만 통신이 가능합니다.
또한 계층 구조상 보낼때는 아래로 내려가야하며 받을때는 위로 올라가야합니다.

따라서 이러한 구조적 문제와 과거 호환성 그리고 가격등의 문제로 인해 계층간 통신과 다기종간 통신을 위해서
ARP같은 프로토콜을 이용하여 변환을 해야만 합니다.

짧게 쓸려고 했는데 길어져버렸네요.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

jw8704의 이미지

처음 network 를 설계하고 또 설계후 제작을 할때 ,mac address 라는 개념을 만들어서 사용하기로 약속을 하고 만들었기 때문이라고 생각됩니다.
뭐 어차피 computer network 도 사람들이 설계하고 만든것이기 때문에 자연의 법칙처럼 이렇게 이렇게 되기 때문에 이렇다 하는 무언의 진리 같은것은 존재하지않는다고 생각합니다. CPU 에 register 가 달려있고 cpu 와 memory 사이에 cache 가 있고 , OS 구조에 스케쥴러와 파일시스템 등이 있는데 왜 cpu 에 register 가 달려있죠? 왜 cpu와 memory 사이에 cache 가 사용되죠 ? 왜 OS에는 스케쥴러 가있나요? 하는 질문도 지금 님이 하신 질문과 같은것이라 생각됩니다.

어차피 사람이 만든것이기 때문에, 꼭 Mac address 라는 것을 사용해야지만 지금처럼 컴퓨터 네트워크가 작동되는것은 아닐거에요.. 아마 새롭게 설계해서 또 만든다면 전혀 다른 방법으로도 되겠죠..

그런데 지금 만들어져서 사용되고 있는 구조는 Mac address 를 사용하도록 되어있기 때문에 그렇구요 그 Mac address 라는것도 어떤사람이 그냥 이름을 지은것이겠죠.. 이런이런 역할하는것을 Mac address 라 부르자..하고요.

그럼 Mac address 가 어디에 사용되고 현재 왜 필요한지.. 는 Computer Network 책의 arp 부분을 보면 될것같습니다.

익명 사용자의 이미지

L3 계층에는 IP만 있는게 아니라는걸 알아두셨으면 좋겠네요..