라우터(A)가 패킷을 받았을때.

sisbn의 이미지

그 패킷이 가려는 목적지 호스트의 주소가 있는 네트워크의

게이트 웨이(B)를 바로 알았다고 했을때, 라우터(A)가 라우터(B)로

보내게 되는데 그때 ip패킷의 어디에 그 정보를 집어 넣게 되나요?

즉, 라우터(B)가 이것을 받아라라는 정보를 ip 헤더의 어디에 집

어 넣어주는거죠.?????ㅡ.ㅡ;; 하나의 네트웍안에 여러개의

게이트웨이가 모두 하나의 선을 공유할때요.

제가 뭐를 잘못알고 있나요? 알려주세염..ㅠㅠ

emptysky의 이미지

http://myhome.naver.com/complex6/network_3.htm
arp와 ip routing에 대해 전반적으로 이해하셔야 합니다.
구글링하니 위의 주소가 나오던데요
참고하시면 도움이 되실것 같네요 :)

『 아픔은.. 아픔을 달래줄 약이 무엇인지 알면서도 쓰지 못할 때 비로소 그 아픔의 깊이를 알수가 있음이다. 』
『 for return...』

gang의 이미지

우선 이 답글에서는, 라우터와 게이트웨이, 두 단어를 함께 사용하면, 개념에 혼동이 있을 수 있으니 라우터라는 단어만 사용합니다.

대개의 경우, IP 패킷에는 IP 주소 이외에는 목적지를 나타내는 정보가 없습니다. 라우터는 IP 주소만을 가지고 패킷을 보내게 됩니다. 라우터는 라우팅 테이블이라는 데이터베이스를 가지고 있습니다. 라우터는 아니지만, 일반 리눅스 시스템에서도 route라는 명령을 치면 라우팅 테이블 비슷한 걸 볼 수 있습니다. 실제 두개 이상의 네트웍카드를 장착해서 라우터로 만들 수도 있구요.

라우팅 테이블을 보면, IP 주소 111.222.*는 어떤 네트웍 포트(인터페이스)로 보내라는 식으로 되어 있죠. 네트웍 edge에서 사용되는 access router의 경우 라우팅 테이블이 간단하기 때문에 관리자가 직접 설정하면 되고, backbone이나 core에 사용되는 라우터의 경우 여러가지 라우팅 프로토콜을 사용하여 라우팅 테이블이 동적으로 자동 관리됩니다.

라우터는 자신의 라우팅 테이블을 참고하여, 패킷들을 해당 포트로 보냅니다. 이때 IP 패킷을 그 포트를 통하여 그대로 가는 것이 아니라, 2계층(MAC) 프레임으로 변환되는데, 2계층 프레임의 헤더에 상대편 라우터의 2계층 주소가 포함되어 있습니다. 그리고 IP 패킷은 2계층 프레임의 payload가 됩니다.

라우터 끼리는 어떻게 통신하느냐는 IP 레이어(3계층) 문제가 아니라, MAC 레이어(2계층)에서 해결하는 문제라, 네트웍의 레이어 개념을 아시는게 도움이 될 겁니다.

sisbn의 이미지

답변들 너무나두 감사합니다. 도움이 많이 되었어요.^^

근데 간단한거 하나만 좀 더 여쭤봐두 될까요...?

제가 제 호스트로부터 특정 서버에 텔넷으로 접속이 되길래,

어떤 라우터들을 따라서 제 패킷이 가는지, tracert 프로그램을

이용해서 그 길을 알아보려하는데, 왜 초반 몇개 게이트웨이의

주소는 뜨는데 그 담엔, request timed out만 뜨죠.ㅡ.ㅡ;

제 호스트로부터 원격 호스트까지 어떠어떠한 호스트들을 거쳐서

가는지 알수 있는 방법은 없을까요?

알려주시면 감사하겠습니다..

익명 사용자의 이미지

traceroute 는 ping 명령어의 어떤 응용된 부분입니다.
각 HOP마다 핑을 보내서 TTL expired 되는 응답 메세지를 받아서
중간 경유지를 유추하는 방법을 쓰는데,,

모든 라우터가 ping에 대한 응답을 하는것은 아닙니다.
그래서 응답을 받지 못하기 때문에 timeout이 걸립니다.

익명 사용자의 이미지

좋은 답변이 다수 나왔습니다. 저도 하나.....
tcptraceroute라는게 있는데, 검색해보면 많이 나옵니다.

근래에는 파이어월들에서 UDP나 ICMP 패킷을 필터링하는 경우가 라우팅 경로에 다수 있을 수 있습니다. 이 경우 tcp 패킷을 사용하여 이러한 필터링에
대비한 traceroute를 구현할 수 있습니다.
기본 구현원리는 NMAP(PORT SCAN 도구)과 유사한 메카니즘입니다.
대충 찍어보면(믿거나 말거나..)
"SYN패킷을 보내고 SYN/ACK나 RST패킷을 기대하는 TCP 3way hadshake에 기초한 기본 메카니즘이지요. 또한, 그냥 PSH 패킷을 보내고,..., Stealth 스캐닝 기법을 응용해 볼 수도 있겠지요."
* 자세한것은 소스나 기타 문서를 보시길...

sisbn의 이미지

답변들 감사합니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.