MAC주소와 IP주소와의 관계가 알고 싶습니다.

athxue의 이미지

몇분전에 같은내용의 질문을 올렸었는데 어디갔는지 안보이네요??

TCP/IP프로토콜로 네트워크를 할때 어떤 IP주소를 가진 컴퓨터를 찾기위해
브로드캐스트를 한다고 배웠습니다. 그렇게 되어서 상대편의 MAC주소를 알
아내게 되면 그때부터는 IP주소는 필요없고 계속 MAC주소만 가지고 통신을
하게되는 건가요? IP주소와 MAC주소와의 관계에 대해 궁금합니다

맥주의 이미지

통신을 위해 거쳐야 하는 맥주소를 몰라서 묻기위해(브로드캐스트) 행하지만, 항상 씁니다.

물리통신에서는 맥을 사용하고, 논리통신에서는 ip를 사용합니다.

보통 자신의 arp테이블(캐시)에 해당 ip로 가기위해 거쳐야 하는 첫번째 물리장치(게이트웨이)의 mac이 없다면 이 맥 주소를 알아내기위해 부가적인 통신(arp query)를 수행하고, 그렇지 않다면( 원격지 ip로 갈때 첫번째 거치는 물리장치,즉, 게이트웨이의 맥 주소를 알고 있다면) 해당 맥 주소를 사용해서 보냅니다.

물론, mac과, ip는 항상(매 패킷마다) 사용되어야만 합니다.
** ethernet + ip + tcp ==> 패킷의 구성
패킷의 구성에서 한 부분이라도 빠져서는 곤란하겠지요?

kuaaan의 이미지

MAC은 로컬 네트워크의 통신(Gateway를 넘어가지 않는 경우)에 필요하구요, IP는 Gateway 건너편에 있는 상대방과 통신하는데 필요합니다.(예 : 인터넷)

인터넷을 하더라도 중간에 있는 라우터들끼리는 로컬네트워크 통신이기 때문에, 내가 보낸 패킷의 Ethernet 헤더는 라우터에 의해서 다음 Hop 라우터의 Mac주소로 치환되죠.

----------------------------------------------
한번뿐인 인생....
미친듯이 살아보자!
----------------------------------------------

----------------------------------------------
한번뿐인 인생....
미친듯이 살아보자!
----------------------------------------------

rollin96의 이미지

컴퓨터 L와 R가 통신을 한다고 했을 때...
그 브로드케스팅이라는 것이...
L이 브로드케스팅으로 R의 맥주소를 얻은 뒤에 그 맥주소로 R과 통신하는 것이 아니라
L은 보낼 패킷을 브로드케스팅 한 후에 신경을 끄면, 같은 네트워크의 모든 컴퓨터들은 그 패킷을 받아서 자기 것인지 확인과정을 거쳐, 자기 것이면 패킷을 받아보고 아니면 버리는 작업을 하게 됩니다.
단, 이 브로드케스팅이라는 것도 같은 네트워크 안에 있을 때만 수행을 하고(같은 네트워크 인지에 대한 판단은 L에 설정된 network mask 정보를 보고 판단) 만약 같은 네트워크에 있지 않으면 라우터나 게이트웨이에게 보내게 되는데... arp -a명령어를 때려보시면 ip와 mac에 대한 라우팅 정보가 보이실 겁니다...그렇게 맥 주소가 있을 경우에는 브로드케스팅을 안하고 직접 보네게 됩니다.
모든 컴퓨터에게 보네고 신경 끈다는 부분이 좀 이상할 수도 있는데....
http://www.hackersnews.org/hn/read.cgi?board=hn_hack&y_number=1045&nnew=2
이 툴을 써보시면...ip주소가 내것이 아닌 것도 다 내 컴을 거쳐가는 것을 눈으로 확인하실 수 있고...
http://icat2.snu.ac.kr:8080/IP_origin/paper/Show.php?kind_id=04&part_id=2&id=3853&page=19&order=abc
이 글에 있는 "패킷 스니핑"부분을 이해 하시면 그 "브로드케스팅"이라는게 얼마나 무식한 짓인지 아실 듯 ^^;

윤봉환의 이미지

웹 서버에 접속하는 과정 가운데 일부를 추적하면서
MAC 주소가 어떻게 쓰이는지 알아봅시다.
이 글에서는 다음과 같은 상황을 가정합니다 :

Local_Machine
|
|
ROUTER
|
|
Internet -------- kldp.org Web Server
|
|
DNS server

1. 먼저 웹 브라우저에 URI를 써 넣지요:
예를 들어 http://kldp.org

2. DNS 캐시에 kldp.org 레코드가 없다면,
시스템은 DNS 서버에 kldp.org의 IP를 물어보아야 합니다.
DNS 서버가 외부 네트워크에 있으므로 패킷은 먼저 라우터로 가야합니다.

3. 라우터의 MAC 주소를 알아내기 위해 ARP 캐시 테이블을 검색합니다.

4. ARP 테이블에 라우터 IP와 MAC 주소쌍이 없으면,
목적지 주소에 브로드캐스 주소를 달아서 ARP 요청 프레임을 이더넷에 뿌립니다.

5. ARP 요청 프레임을 받은 머신들은 자신의 IP와 일치하는지 검사하여
같다면 MAC 주소를 담아 응답을 합니다.

6. 응답을 받은 로컬 머신은 웹 페이지를 요청하는 DNS 룩업 쿼리가 들어 있는
UDP (혹은 TCP 세그먼트) 데이터그램 앞에 IP 헤더를 붙입니다.
IP 헤더에는 목적지와 출발지 IP 주소가 포함됩니다.

7. IP 데이터그램 앞에 다시 이더넷 헤더를 붙입니다.
이더넷 헤더 안에는 목적지와 출발지 MAC 주소가 들어 있습니다.
이더넷에서는 목적지 IP 주소에는 전혀 관심이 없습니다.
뭐, 알아도 소용 없기도 하지만.

8. 로컬 머신을 떠난 이더넷 프레임은 라우터의 이더넷 인터페이스에 수신됩니다.
라우터는 이더넷 헤더를 벗겨내고 IP 데이터그램에서 목적지 주소를 읽습니다.
라우터 자신의 라우팅 테이블을 살펴보고 ISP로 보내기로 결심합니다.

9. 라우터는 ISP와 약속된 통신 방식으로 (X.25, 프레임 릴레이, ATM, 등)
패킷을 전달합니다.

-----
알겠지요? IP는 사라지지 않습니다. 단지 이더넷 프레임 안으로 캡슐화 될 뿐입니다.
편지가 전달되는 방식과 아주 유사합니다.
편지에 주소를 써서 우체국(라우팅 프로세스)에 주면
우체국에서는 목적지 주소에 따라 분류하여
같은 주소로 가는 편지는 같은 자루에 넣습니다(캡술화)
일단 자루에 담긴 편지는 보다 큰 우체국에 도착할 때 까지
자루에 붙어 있는 주소만 필요할 뿐입니다.(이더넷 프레임)

우체국 얘기는 하지 말 것을 그랬나요?

아무튼 IP는 사라지지 않습니다...

放下着-----
내려놓으려는 마음도 내려놓기

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.