View Full Version : quá trình nhận địa chỉ MAC giưa các máy tinh như thế nao?
phihung55al
26-03-2004, 09:39 AM
Khi một máy tính A muốn liên lạc với máy tính X nào đó, thì dĩ nhiên là máy tính A cần phải có địa Chỉ MAC của máy tinh X. Vậy, thì máy tính A nhận địa chỉ MAC từ máy tính X như thế nào? và quy trình gởi địa chỉ MAC của máy tính X cho máy tính A như thế nào?
ti_thoi
26-03-2004, 10:16 AM
Bạn nên xem cơ chế của ARP (address resolution protocol) để hiểu rõ về vấn đề này.
Mình xin tóm tắt là :
muốn liên lạc với máy X,phải biết IP address của nó (hoặc hostname/domainname).Máy A dò trong ARP cache xem địa chỉ MAC đích có chưa,nếu chưa sẽ dùng ARP gửi thông điệp (broadcast) đến tòan mạng .Có 2 trường hợp:
a/ Host X cùng segment với nó : host A gửi thông điệp với địa chỉ IP đích(đã biết) và MAC đích là FF-FF-FF-FF-FF-FF để hỏi xem MAC của địa chỉ này là gì.Các host trên segment đều nhận gói này ,host nào có địa chỉ IP trùng với yêu cầu sẽ gửi lại thông tin cho host A là "IP này có MAC là : ......".Host A nhập thông tin vào ARP cache (RAM).Khi muốn liên lạc với X thì lại tra trong ARP cache để biết địa chỉ MAC cần đến.
b./ Host X không cùng segment với host A : lúc đó phải nhờ đến router để forward yêu cầu này đến các segment khác.Cơ chế này hơi rắc rối hơn vì phải nhờ địa chỉ router làm trung gian.
Bạn nên đọc tài liệu của cisco (semester 1) để hiểu rõ thêm nhé!
(Xem địa chỉ này: http://www.mde.k12.ms.us/cisco)
Hajime
26-03-2004, 10:21 AM
chào bạn phihung5al,
đầu tiên ta phải coi A và X có nằm cùng trong 1 subnet hay không?
trong gói TCP/IP có ARP protocol , nó tự động cập nhật các MAC tương ứng với các IP và xây dựng một bảng ARP table trong máy tính trong cùng mạng subnet.
Khi này , nếu A và X ở trong cùng LAN, thì khi A muốn gửi packet cho X, no' sẽ match IP của X với MAC tương ứng trong bang ARP của no'.
Nếu A biết IP của X , nhưng không match được MAC tương ứng trong bang ARP của no' , thì khi này nó sẽ gứi một packet , gọi là ARP request, với địa chỉ MAC broadcast FFFFFFFFFF . Khi này tất cả máy tính treên cùng một mạng sẽ nhận được gói này và chuyển lên lớp Network; nhưng chỉ có máy có IP match với IP destination address trong ARP request mới xử lý gói tin và gửi trả lại gói tin có chứa dia chỉ MAC tương ứng mà máy A muộn tìm . Gói tin này là ARP reply.
Sau khi A nhận được ARP reply , nó sẽ mở gói và update bảng ARP table của nó: IP và MAC của máy X.
Còn nếu , A và X nằm trên hai network khac nhau , thì lúc này router sẽ sử dụng Proxy ARP.
titanevn
26-03-2004, 10:28 AM
Xin lỗi ti_thoi một chút, vì theo mình nghĩ máy A kiểm tra thấy máy X khác Subnet thì nó sẽ không tìm MAC của máy X mà nó tìm MAC của Router gần nhất tương ứng với đường đí đến máy X,
trong Frame đó:
IP vẫn là A --> X
MAC là A --> Router
Router làm việc ở tầng Net nên có nhận biết được frame đó không gửi cho nó mà gửi cho X --> Route to next hop
đó là ý kiến của mình.
thân mến
ti_thoi
26-03-2004, 01:29 PM
to tuanevnit : bạn ơi không phải là A tìm MAC của router gần nhất ,mà là router trả lời lại gói ARP request của A với MAC đích của X là MAC của interface trên router có kết nối trực tiếp với segment của A.
Mình xin trích dẫn tài liệu về vấn đề này để các bạn tham khảo cho rõ (curiculum - CCNA S1):
With TCP/IP networking, a data packet must contain both a destination MAC address and a destination IP address. If the packet is missing either one, the data will not pass from Layer 3 to the upper layers. In this way, MAC addresses and IP addresses act as checks and balances for each other. After devices determine the IP addresses of the destination devices, they can add the destination MAC addresses to the data packets.
Some devices will keep tables that contain MAC addresses and IP addresses of other devices that are connected to the same LAN. These are called Address Resolution Protocol (ARP) tables. ARP tables are stored in RAM memory, where the cached information is maintained automatically on each of the devices. It is very unusual for a user to have to make an ARP table entry manually. Each device on a network maintains its own ARP table. When a network device wants to send data across the network, it uses information provided by the ARP table.
When a source determines the IP address for a destination, it then consults the ARP table in order to locate the MAC address for the destination. If the source locates an entry in its table, destination IP address to destination MAC address, it will associate the IP address to the MAC address and then uses it to encapsulate the data. The data packet is then sent out over the networking media to be picked up by the destination device.
There are two ways that devices can gather MAC addresses that they need to add to the encapsulated data. One way is to monitor the traffic that occurs on the local network segment. All stations on an Ethernet network will analyze all traffic to determine if the data is for them. Part of this process is to record the source IP and MAC address of the datagram to an ARP table. So as data is transmitted on the network, the address pairs populate the ARP table. Another way to get an address pair for data transmission is to broadcast an ARP request.
The computer that requires an IP and MAC address pair broadcasts an ARP request. All the other devices on the local area network analyze this request. If one of the local devices matches the IP address of the request, it sends back an ARP reply that contains its IP-MAC pair. If the IP address is for the local area network and the computer does not exist or is turned off, there is no response to the ARP request. In this situation, the source device reports an error. If the request is for a different IP network, there is another process that can be used.
Routers do not forward broadcast packets. If the feature is turned on, a router performs a proxy ARP. Proxy ARP is a variation of the ARP protocol. In this variation, a router sends an ARP response with the MAC address of the interface on which the request was received, to the requesting host. The router responds with the MAC addresses for those requests in which the IP address is not in the range of addresses of the local subnet.
Another method to send data to the address of a device that is on another network segment is to set up a default gateway. The default gateway is a host option where the IP address of the router interface is stored in the network configuration of the host. The source host compares the destination IP address and its own IP address to determine if the two IP addresses are located on the same segment. If the receiving host is not on the same segment, the source host sends the data using the actual IP address of the destination and the MAC address of the router. The MAC address for the router was learned from the ARP table by using the IP address of that router.
If the default gateway on the host or the proxy ARP feature on the router is not configured, no traffic can leave the local area network. One or the other is required to have a connection outside of the local area network.
Helix
26-03-2004, 08:07 PM
:x Hi,
ti_thoi coi chừng bài viết của bạn bị để ý đó (toàn tiếng Anh hông à). Bạn không diển giải bằng tiếng Việt cho dễ hiểu.!
Hajime
26-03-2004, 10:50 PM
Routers do not forward broadcast packets. If the feature is turned on, a router performs a proxy ARP. Proxy ARP is a variation of the ARP protocol. In this variation, a router sends an ARP response with the MAC address of the interface on which the request was received, to the requesting host. The router responds with the MAC addresses for those requests in which the IP address is not in the range of addresses of the local subnet.
Nếu A và X nắ trên hai segment khác nhau, khi này nó sẽ sử dụng Proxy ARP. Trong trường hợp này, router sẽ gửi địa chỉ MAC của interface mà nhận gói ARP request trên Router cho máy gửi ( máy A ).
Another method to send data to the address of a device that is on another network segment is to set up a default gateway. The default gateway is a host option where the IP address of the router interface is stored in the network configuration of the host. The source host compares the destination IP address and its own IP address to determine if the two IP addresses are located on the same segment. If the receiving host is not on the same segment, the source host sends the data using the actual IP address of the destination and the MAC address of the router. The MAC address for the router was learned from the ARP table by using the IP address of that router.
If the default gateway on the host or the proxy ARP feature on the router is not configured, no traffic can leave the local area network. One or the other is required to have a connection outside of the local area network.
Một cách khác để liên lạc với một máy tính khác không cùng nằm trên 1 segment là " default gateway". Default Gateway là một phần của một host ( máy tính... ). Nó là một địa chỉ IP của một interface trên router , và được cấu hình cho host. Địa chỉ IP của host và của Default Gateway phải cùng segment mạng. Khì này , máy gửi ( A ) sẻ kiểm tra xem nó và máy nhận ( B) có cùng nằm trên một subnet hay không. Nếu không, nó sẽ đóng gói packet gửi với IP destination address là của máy nhận và MAC address destinaiton là của Router nối với subnet của nó . Còn cách làm sao no' biết được MAC của Router thì các bạn khác đã trình bày ở trên rùi.
Nếu Proxy ARP hay default gateway không được cấu hình, thì không có "traffic " nào có thê rời khỏi một subnet ( một mạng cục bộ ). Phải có một trong hai cái được cấu hình ( hay cho phép ) để có thể giao tiếp với các segment mạng khac được.
Hajime
26-03-2004, 10:57 PM
không ngờ bài mình post lên cũng na na' giống ti_thoi . Thiệt là xấu hổ quá..! Tại trong lúc soạn bài gửi, thì ti_thoi đã trả lời rùi nên mình không biết. :-D
Bài dịch của mình , mấy bạn xem có đúng không ?
Khi các packet được chuyển từ máy gửi tới máy nhận , thì IP source address và IP destinaiton address là hai địa chỉ không bị thay đổi, còn địa chỉ MAC address là địa chỉ co' thể bị thay đổi ( phụ thuộc vào hai máy liên lạc có nằm cùng trong 1 segment hay không ).
phihung55al
27-03-2004, 02:56 PM
vậy thì minh cũng đã hiểu, nhưng nếu máy X mà muốn đưa lại địa chỉ MAC cho máy A thì phải thực hiện như thế nào ? có phức tạp lắm không ?
À , các bạc có gặp IP này chưa ? 123.123.123.123 IP này có nghĩa là gì vậy, thực ra IP này mình chưa gặp bao giờ.
ti_thoi
29-03-2004, 09:38 AM
Bạn phihung5al nên xem bài viết ở phần trên.Khi X muốn đưa lại MAC address của nó cho A thì nó gửi gói ARP reply ,trong đó có địa chỉ IP source và MAC address source là của X,còn destination address (IP và MAC) của A thì đã biết nhờ vào gói ARP request lúc đầu A gửi cho X.
Chúc bạn vui khỏe.
Mến.
nguyenthanhtung32
10-04-2004, 11:26 PM
Xin được tham gia chút, các bạn cho hỏi phạm vi hoạt động của ARP là trên toàn mạng hay chỉ trên một subnet?. ví dụ trong trường hợp của internet thì nếu biết ip thì làm sao lần ra dấu vết của mac address mà gởi cho nó trúng đich?
Cám ơn .
govap
11-04-2004, 08:41 AM
nguyenthanhtuang32
ARP broadcast chỉ hoạt động trong một subnet. Trong trường hợp Internet, một client sẽ dùng MAC address của gateway trong subnet đó mà đi ra ngoài. Với gateway, nó sẽ biết cách chuyển đến MAC kế tiếp cho phù hợp dựa trên quá trình phân giải IP <--> MAC address.
Theo mình không nên nhìn vấn đề một cách riêng lẽ mà nên kết hợp với quá trình encapsulation/de encapsulation của OSI.
nguyenthanhtung32
12-04-2004, 12:47 AM
Mong bạn Govap chỉ thêm về cách gắn các địa chỉ Mac address khi chúng qua các gateway(gồm địa chỉ des và source) .
thanks
Hajime
12-04-2004, 10:35 AM
chào bạn nguyenthanhtung32,
có lẽ bạn nên coi lại quá trình truyền packet từ trong 1 mạng Lan này qua mạng lan khác và cách đóng gói packet thì sẽ biết cách gán Mac address khi gói tin đi qua 1 gateway. Luôn nhớ : IP source và des thì không bao giờ thay đổi, chỉ có MAC source và des là thay đổi thôi .
Nếu nói vấn đề này kỹ thì cũng tốn thời gian lắm. Bạn nên xem thử trong e-Academy semester1 đó.
Hajime
12-04-2004, 10:40 AM
à quên, nếu xem xong , có gì không rõ có thể post lên cho anh em giúp đỡ. Mình nghĩ tìm hiểu trước thì sẽ hay hơn và có dịp hiểu rõ vấn đề hơn .
Thân !
nhaque321
12-04-2004, 10:54 AM
Ok, tui đồng ý với Hajime: "IP source và dest không bao giờ thay đổi, chỉ có MAC source và dest là thay đổi thôi".
Về vấn đề dùng proxy ARP hay dùng default-gateway, theo tui, là vấn đề khá lý thú:
Proxy ARP: Theo cách thức hoạt động của proxy ARP, ta có thể thấy rằng client khi muốn biết MAC của một host nào đó, nó chỉ đơn giản là broadcast ARP-Request lên mạng. Router sẽ có trách nhiệm đáp trả lại bằng ARP-Reply nếu nó nhận thấy IP-destination là thuộnc mạng khác. Như vậy, cấu hình IP cho client cực kỳ đơn giản, nhưng gánh nặng lại đè lên router. Thử tưởng tượng cứ sau 1p', ARP-entry bị hủy bỏ, thế là các client thi nhau broadcast lên mạng thì router "tiêu" như chơi. Ngoài ra, proxy ARP còn gặp một bất lợi nếu trong segment có tới hơn 1 router. Chọn router nào, nếu như các router đều có route đến mạng đích?
Default-Gateway: Nếu client biết rằng IP-dest không thuộc mạng của nó, nó dùng MAC của default-gateway để gửi gói tin, router default-gateway nhận lấy gói tin sẽ biết phải xử lý tiếp theo như thế nào (dựa trên IP source/destination). Cách này giảm tải cho router, giải quyết được trường hợp có nhiều router nối vào cùng segment, và đỡ gây nhầm lẫn.
Bàn về cách gán địa chỉ MAC khi đi qua các subnet khác nhau:
xin lưu ý các IP cùa source và destination là không thay đổi chỉ có mac là thay đổi thôi. các bạn xem một ví dụ sau để đễ hiểu hơn nhé
máy A-------Router1--------router2--------router3------máy B
đầu tiên máy A đóng gói gói tin như sau
IP nguồn là IP của máy A. IP đích là IP của máy B
xuống đến tầng datalink máy A sẽ xem máy B có trong cùng subnet với mình không, trong truờng hợp này là không.
lúc này máy A sẽ dùng :
MAC nguồn là của máy A. MAC đích là mác của interface trên router1 nối với subnet A.
Router1 sẽ xem IP đích có nằm trong subnet của mình hay không trong truờng hợp này là không, lúc này router sẽ dóng gói địa chỉ MAC nguồn là mác cùa interface mà router này nối với router2, mác đích sẻ là mác trên interface của router2, router2 cũng xử lý giống router 1 và chuyển đến router3.
router3 sẽ xem IP này có nằm trong subnet của mình không, nếu có thì nó sẽ xem xét địa chỉ mac tương ứng với IP này (router3 biết được vì nó tra trong bảng ARP của nó có chứa máy B vì B cùng subnet) ư1ng với IP này router3 xác định đưọc MAC là máy B lúc này máy B nhưng nó vẩn gửi Brodcast đến tất cả các máy trong subnet có máy B nhưng chỉ máy B nhận gói tin vì nó có MAC trùng với MAC đích trong gói tin.
nguyenthanhtung32
12-04-2004, 09:22 PM
Rất hay, cam on hajime, sẵn hỏi hajime luôn, bạn có biết gì về egrp (enternal gateway routing protocol) chỉ giúp mình với Thanks
nguyenthanhtung32
17-04-2004, 10:26 PM
chúng ta có thể có một số tiêu chuẩn để nhận diện một mạng lan không? mong các bạn giúp đỡ. Trong ví dụ trên chúng ta chưa đề cập đến switch xin bạn lấy một ví dụ có switch.
Hajime
18-04-2004, 08:55 PM
Tiêu chuẩn để nhận diện mạng Lan a` ? Có lẽ trong phần định nghĩa mạng LAN ( Local Area Network ) cũng có thể cho chúng ta nhận diện nó rồi > Hay co' lẽ bạn muốn cách phân biệt thế nào là một small, medium or large LAN ?
EGRP or EIGRP ?
iceberg
24-04-2004, 01:17 PM
Which term describes an ARP response by a router on behalf of a requesting host?
1.ARP
2.RARP
3.Proxy ARP
4.Proxy RARP
chọn câu 3 đúng ko vậy các bạn? mình chọn câu 3 đó? bạn nào thấy không đúng thì chỉ mình với nha ! cảm ơn nhiều
elvisduong
08-05-2004, 10:37 AM
A sẽ gửi 1 gói tin gọi là ARP request (ARP = Address Resolution Protocol) bằng cơ chế broadcast để tất cả các máy đều có thể nhận được gói tin này
1) A và B nằm trên cùng 1 Segment ( 1 broadcast domain):
Khi đó gói tin ARP request sẽ có MAC nguồn là MAC của A, MAC đích là FF-FF-FF-FF-FF-FF
Nếu Host B available trên Segment thì nó sẽ biết là gói tin này gửi cho nó nhờ vào địa chỉ IP mà Host A ghi trong gói tin ARP request và nó sẽ trả lời bằng 1 gói tin ARP reply. Gói tin ARP reply sẽ có MAC nguồn là MAC của Host B, MAC đích là MAC của Host A, khi Host A nhận được gói tin này tự nhiên sẽ biết được MAC của B.
2) A và B nằm trên 2 segment khác nhau được ngăn cách bởi Router (2 broadcast domain)
a) Nếu Host A có cấu hình sử dụng Defaul gateway trong TCP/IP protocol thì gói tin ARP request sẽ không phải dạng Broadcast mà được gửi thẳng đến cho Router ( TCP/IP stack quy định như vậy). Tất nhiên để gửi được gói tin này đến cho Router thì nó cũng phải request MAC của defaul gateway trên Router trước, sau đó khi có MAC của DF gateway thì Host A sẽ tạo 1 gói tin ARP request MAC của Host B với IP đích là IP Host B, MAC đích là MAC của DF gateway. Khi Router nhận được gói tin này thì nó sẽ Forward qua interface trên segment thích hợp, tại đây phần Datalink header sẽ được lấy ra (Pull out) và phần Datalink header mới sẽ được gắn vào với mục đích để truyền trên Segment của Host B. Khi Host B nhận được gói tin ARP request thì cũng sẽ trả lời lại bằng gói tin ARP reply được gửi đến DF gateway trên Segment của nó. Khi Router nhận được gói tin này cũng làm việc tương tự như khi gửi đi từ Host A (pull out Datalink header, gắn datalink header mới v.v....)
b) Nếu Host A không có cấu hình DF gateway (tất nhiên sẽ broadcast gói tin ARP request) nhưng nếu Router trên Segment của host A có chức năng ARP Proxy thì căn cứ trên IP mà gói tin ARP request yêu cầu ROUTER sẽ so sánh với Routing Table của nó và nhận gói tin này nếu Match trong Routing table, sau đó sẽ forward qua Segment thích hợp. Quá trình tiếp theo tương tự như trường hợp A.
Như vậy : nếu 1 trong 2 DF gateway của 2 segment cấu hình sai thì sẽ dẫn đến việc Host A không thể liên lạc được với Host B và ngược lại. Ngoài ra nếu thời gian tồn tại của ARP cache trong memory quá lâu công với việc có thay đổi MAC của DF gateway sẽ dẫn đến việc tạm thời không thể thực hiện ARP request.
ducthien66
20-05-2004, 05:23 PM
tui nghĩ chọn câu 2 thì đúng hơn
daredevilk
20-05-2004, 08:40 PM
Theo tui thì Proxy ARP là đúng rồi.
Còn thằng RARP là để hỏi IP khi biết MAC.
Hajime
20-05-2004, 08:59 PM
To ducthien66: Tại sao chọn câu 2 (RARP ) thì đúng hơn ?
Tui chọn Proxy ARP ( đúng rùi ) ! Và tại sao ta phải chọn Proxy ARP ? :)
elvisduong
26-05-2004, 02:21 AM
Ok, tui đồng ý với Hajime: "IP source và dest không bao giờ thay đổi, chỉ có MAC source và dest là thay đổi thôi".
Về vấn đề dùng proxy ARP hay dùng default-gateway, theo tui, là vấn đề khá lý thú:
Proxy ARP: nhưng gánh nặng lại đè lên router. Thử tưởng tượng cứ sau 1p', ARP-entry bị hủy bỏ, thế là các client thi nhau broadcast lên mạng thì router "tiêu" như chơi. Ngoài ra, proxy ARP còn gặp một bất lợi nếu trong segment có tới hơn 1 router. Chọn router nào, nếu như các router đều có route đến mạng đích?
nếu 1 host cần liên lạc với 1 host thuộc 1 mạng khác thì cho dù có hay không có default gateway thì router vẫn phải forward gói tin ARP request đó thôi. Dùng DFgateway đâu có giảm được số lượng gói tin ARP request mà router phải forward đi đâu?
Nếu có hơn 1 router có route hướng đến subnet mà host cần biết AMC của 1 host trong Subnet đó thì tất cả router đều forward gói tin ARP request đi, tuy nhiên do các route có metric khác nhau vì vậy các gói ARP reply vê đến host với thời điểm khác nhau. Host sẽ thực hiện FIFO thôi, tức là First in First out. Gói tin ARP reply nào đến trước thì nó chấp nhận kết quả đó. các gói đến sau sẽ bị bỏ qua.
hoangminh
28-05-2004, 10:50 AM
Mình mới học CCNA, hiểu Collision Domain rồi nhưng Segment thì còn mơ hồ. Phân biệt giữa Segment và ..
Huynh nào rảnh giải đáp giúp chút nhé. Thanks,
admin
22-06-2004, 10:06 PM
Admin xin phép được tổng kết các thảo luận đã được trình bày trong chủ đề này:
Máy A muốn liên lạc với máy X,phải biết IP address của nó (hoặc hostname/domainname).Máy A dò trong ARP cache xem địa chỉ MAC đích có chưa,nếu chưa sẽ dùng ARP gửi thông điệp (broadcast) đến tòan mạng .Có 2 trường hợp:
a/ Host X cùng segment với nó : host A gửi thông điệp với địa chỉ IP đích(đã biết) và MAC đích là FF-FF-FF-FF-FF-FF để hỏi xem MAC của địa chỉ này là gì.Các host trên segment đều nhận và xử lý gói này ,host nào có địa chỉ IP trùng với yêu cầu sẽ gửi lại thông tin cho host A là "IP này có MAC là : ......".Host A nhập thông tin vào ARP cache (RAM).Khi muốn liên lạc với X thì lại tra trong ARP cache để biết địa chỉ MAC cần đến.
trong gói TCP/IP có ARP protocol , nó tự động cập nhật các MAC tương ứng với các IP và xây dựng một bảng ARP table trong máy tính trong cùng mạng subnet.
Khi này , nếu A và X ở trong cùng LAN, thì khi A muốn gửi packet cho X, no' sẽ match IP của X với MAC tương ứng trong bang ARP của no'.
Nếu A biết IP của X , nhưng không match được MAC tương ứng trong bang ARP của no' , thì khi này nó sẽ gứi một packet , gọi là ARP request, với địa chỉ MAC broadcast FFFFFFFFFF . Khi này tất cả máy tính treên cùng một mạng sẽ nhận được gói này và chuyển lên lớp Network; nhưng chỉ có máy có IP match với IP destination address trong ARP request mới gửi trả lại gói tin có chứa dia chỉ MAC tương ứng mà máy A muộn tìm . Gói tin này là ARP reply.
Khi đó gói tin ARP request sẽ có MAC nguồn là MAC của A, MAC đích là FF-FF-FF-FF-FF-FF.
Nếu Host X available trên Segment thì nó sẽ biết là gói tin này gửi cho nó nhờ vào địa chỉ IP mà Host A ghi trong gói tin ARP request và nó sẽ trả lời bằng 1 gói tin ARP reply. Gói tin ARP reply sẽ có MAC nguồn là MAC của Host B, MAC đích là MAC của Host A, khi Host A nhận được gói tin này tự nhiên sẽ biết được MAC của X.
Sau khi A nhận được ARP reply , nó sẽ mở gói và update bảng ARP table của nó: IP và MAC của máy X.
b./ Host X không cùng segment với host A : lúc đó phải nhờ đến router để forward yêu cầu này đến các segment khác. Trong trường hợp này, router sẽ gửi địa chỉ MAC của interface mà nhận gói ARP request trên Router cho máy gửi ( máy A ).
Một cách khác để liên lạc với một máy tính khác không cùng nằm trên 1 segment là " default gateway". Default Gateway là một phần của một host ( máy tính... ). Nó là một địa chỉ IP của một interface trên router , và được cấu hình cho host. Địa chỉ IP của host và của Default Gateway phải cùng segment mạng. Khì này , máy gửi ( A ) sẻ kiểm tra xem nó và máy nhận ( B) có cùng nằm trên một subnet hay không. Nếu không, nó sẽ đóng gói packet gửi với IP destination address là của máy nhận và MAC address destinaiton là của Router nối với subnet của nó . Còn cách làm sao no' biết được MAC của Router thì các bạn khác đã trình bày ở trên rùi.
Nếu Proxy ARP hay default gateway không được cấu hình, thì không có "traffic " nào có thê rời khỏi một subnet ( một mạng cục bộ ). Phải có một trong hai cái được cấu hình ( hay cho phép ) để có thể giao tiếp với các segment mạng khac được.
"IP source và dest không bao giờ thay đổi, chỉ có MAC source và dest là thay đổi thôi".
Proxy ARP: Theo cách thức hoạt động của proxy ARP, ta có thể thấy rằng client khi muốn biết MAC của một host nào đó, nó chỉ đơn giản là broadcast ARP-Request lên mạng. Router sẽ có trách nhiệm đáp trả lại bằng ARP-Reply nếu nó nhận thấy IP-destination là thuộnc mạng khác. Như vậy, cấu hình IP cho client cực kỳ đơn giản, nhưng gánh nặng lại đè lên router. Thử tưởng tượng cứ sau 1p', ARP-entry bị hủy bỏ, thế là các client thi nhau broadcast lên mạng thì router "tiêu" như chơi. Ngoài ra, proxy ARP còn gặp một bất lợi nếu trong segment có tới hơn 1 router. Chọn router nào, nếu như các router đều có route đến mạng đích?
Default-Gateway: Nếu client biết rằng IP-dest không thuộc mạng của nó, nó dùng MAC của default-gateway để gửi gói tin, router default-gateway nhận lấy gói tin sẽ biết phải xử lý tiếp theo như thế nào (dựa trên IP source/destination). Cách này giảm tải cho router, giải quyết được trường hợp có nhiều router nối vào cùng segment, và đỡ gây nhầm lẫn.
Nếu Host A có cấu hình sử dụng Defaul gateway trong TCP/IP protocol thì gói tin ARP request sẽ không phải dạng Broadcast mà được gửi thẳng đến cho Router ( TCP/IP stack quy định như vậy). Tất nhiên để gửi được gói tin này đến cho Router thì nó cũng phải request MAC của defaul gateway trên Router trước, sau đó khi có MAC của DF gateway thì Host A sẽ tạo 1 gói tin ARP request MAC của Host B với IP đích là IP Host B, MAC đích là MAC của DF gateway. Khi Router nhận được gói tin này thì nó sẽ Forward qua interface trên segment thích hợp, tại đây phần Datalink header sẽ được lấy ra (Pull out) và phần Datalink header mới sẽ được gắn vào với mục đích để truyền trên Segment của Host B. Khi Host B nhận được gói tin ARP request thì cũng sẽ trả lời lại bằng gói tin ARP reply được gửi đến DF gateway trên Segment của nó. Khi Router nhận được gói tin này cũng làm việc tương tự như khi gửi đi từ Host A (pull out Datalink header, gắn datalink header mới v.v....)
Nếu Host A không có cấu hình DF gateway (tất nhiên sẽ broadcast gói tin ARP request) nhưng nếu Router trên Segment của host A có chức năng ARP Proxy thì căn cứ trên IP mà gói tin ARP request yêu cầu ROUTER sẽ so sánh với Routing Table của nó và nhận gói tin này nếu Match trong Routing table, sau đó sẽ forward qua Segment thích hợp. Quá trình tiếp theo tương tự như trường hợp A.
Như vậy : nếu 1 trong 2 DF gateway của 2 segment cấu hình sai thì sẽ dẫn đến việc Host A không thể liên lạc được với Host B và ngược lại. Ngoài ra nếu thời gian tồn tại của ARP cache trong memory quá lâu công với việc có thay đổi MAC của DF gateway sẽ dẫn đến việc tạm thời không thể thực hiện ARP request.
Ví dụ minh họa cho các lý thuyết nêu trên:
xin lưu ý các IP cùa source và destination là không thay đổi chỉ có mac là thay đổi thôi. các bạn xem một ví dụ sau để đễ hiểu hơn nhé
máy A-------Router1--------router2--------router3------máy B
đầu tiên máy A đóng gói gói tin như sau
IP nguồn là IP của máy A. IP đích là IP của máy B xuống đến tầng datalink máy A sẽ xem máy B có trong cùng subnet với mình không, trong truờng hợp này là không.
lúc này máy A sẽ dùng :
MAC nguồn là của máy A. MAC đích là mác của interface trên router1 nối với subnet A.
Router1 sẽ xem IP đích có nằm trong subnet của mình hay không trong truờng hợp này là không, lúc này router sẽ dóng gói địa chỉ MAC nguồn là mác cùa interface mà router này nối với router2, mác đích sẻ là mác trên interface của router2, router2 cũng xử lý giống router 1 và chuyển đến router3.
Router3 sẽ xem IP này có nằm trong subnet của mình không, nếu có thì nó sẽ xem xét địa chỉ mac tương ứng với IP này (router3 biết được vì nó tra trong bảng ARP của nó có chứa máy B vì B cùng subnet) ư1ng với IP này router3 xác định đưọc MAC là máy B lúc này máy B nhưng nó vẩn gửi Brodcast đến tất cả các máy trong subnet có máy B nhưng chỉ máy B nhận gói tin vì nó có MAC trùng với MAC đích trong gói tin.
A sẽ gửi 1 gói tin gọi là ARP request (ARP = Address Resolution Protocol) bằng cơ chế broadcast để tất cả các máy đều có thể nhận được gói tin này
Cám ơn tất cả các bạn về các thảo luận rất hay.
diencu
06-08-2004, 04:14 PM
theo toi that ra khong can phan tich ky nen doc trong chuc nang cua IP cua intro la ro het
rosekiller
08-08-2004, 04:51 PM
theo tôi chúng ta chỉ nên hiểu sơ sơ thôi, không nên quá đi sâu vào quá nhiều vấn đề, vì các vấn đề đó sẽ có trong các phần học sau của mức học cao hơn như ccnp... học thi CCNA phải biết lược bỏ những cái ko cần thiết!
nguyendinhhien10
17-09-2004, 06:10 PM
Hajime Ơi ! bạn có nhầm không đấy! IP mới có thể thay đổi, còn MAC thì không!
robedan
17-09-2004, 06:57 PM
trong quá trình truyền dữ liệu giữa hai host, địa chỉ IP nguồn và đích không bao giờ thay đổi. Chỉ có MAC address của frame là thay đổi khi đi qua từng chặng khác nhau.
VnPro2005
29-12-2004, 07:40 PM
Mình có một thắc mắc thế này :
Giả sử 2 Host (A và B ) thuộc 2 Subnet khác nhau và được nối trực tiếp với nhau. Giả sử Host A có được Mac của B, B có MAC của A.
Câu hỏi của em là A có thể truyền thông với B được không ?
kimlong
29-12-2004, 08:54 PM
nếu đã biết được địa chỉ MAC của nhau thì chắc chắn sẽ truyền được dữ liệu giữa A và B.
hãy xem xét các điều kiện tiên quyết để một giao tiếp là thành công:
- có địa chỉ nguồn
- có địa chỉ đích
- có phương tiện truyền (media)
phuclv
07-04-2006, 11:17 AM
Ý tui cũng giống ti_thoi do
hvas01
25-07-2006, 01:52 AM
nếu đã biết được địa chỉ MAC của nhau thì chắc chắn sẽ truyền được dữ liệu giữa A và B.
hãy xem xét các điều kiện tiên quyết để một giao tiếp là thành công:
- có địa chỉ nguồn
- có địa chỉ đích
- có phương tiện truyền (media)
Ý này đúng rồi, với địa chỉ MAC đã có thì các máy phải làm 1 việc tiếp là tìm thêm IP của nhau (sử dụng giao thức RARP). Với (IP+MAC+Media) thì điều kiện cần để truyền là xong. Ngoài ra còn thêm nhiều điều kiện khác nữa hoạt động ở các layer khác trong OSI model.
Mình có một thắc mắc thế này :
Giả sử 2 Host (A và B ) thuộc 2 Subnet khác nhau và được nối trực tiếp với nhau. Giả sử Host A có được Mac của B, B có MAC của A.
Câu hỏi của em là A có thể truyền thông với B được không ?
Ko hiểu ý bạn lắm, theo mình thì MAC hoạt động ở mức datalink (chỉ là 1 phần của quá trình truyền thông), ngoài ra bạn phải hội đủ các điều kiện ở các mức khác nữa (IP cho Network, mã hóa, kiểm lỗi ...) khi đó mình mới xét đến truyền thông.
smile10
30-07-2006, 05:58 PM
Mình vừa đọc được tài liều này trên mạng, xin post nguyên văn lên để các bạn cùng tham khảo.
Máy A muốn liên lạc với máy X,phải biết IP address của nó (hoặc hostname/domainname).Máy A dò trong ARP cache để tìm địa chỉ MAC đích có chưa,nếu chưa sẽ dùng ARP gửi thông điệp (broadcast) đến tòan mạng .
Có 2 trường hợp:
1/ Host X cùng segment với nó :
Host A gửi thông điệp với địa chỉ IP đích (đã biết) và MAC đích là FF-FF-FF-FF-FF-FF để hỏi xem MAC của địa chỉ này là gì.Các host trên segment đều nhận và xử lý gói này ,host nào có địa chỉ IP trùng với yêu cầu sẽ gửi lại thông tin cho host A là "IP này có MAC là : ......".Host A nhập thông tin vào ARP cache (RAM).Khi muốn liên lạc với X thì lại tra trong ARP cache để biết địa chỉ MAC cần đến.
ARP là gì?
Trong protocol TCP/IP có ARP protocol. ARP tự động cập nhật các MAC tương ứng với các IP và xây dựng một bảng ARP table trong máy tính trong cùng mạng subnet.
Khi này , nếu A và X ở trong cùng LAN, thì khi A muốn gửi packet cho X, no' sẽ match IP của X với MAC tương ứng trong bang ARP của no'.
Nếu A biết IP của X , nhưng không match được MAC tương ứng trong bang ARP của no' , thì khi này nó sẽ gứi một packet , gọi là ARP request, với địa chỉ MAC broadcast FFFFFFFFFF . Khi này tất cả máy tính trên cùng một mạng sẽ nhận được gói này và chuyển lên lớp Network; nhưng chỉ có máy có IP match với IP destination address trong ARP request mới gửi trả lại gói tin có chứa dia chỉ MAC tương ứng mà máy A muộn tìm . Gói tin này là ARP reply.
Khi đó gói tin ARP request sẽ có MAC nguồn là MAC của A, MAC đích là FF-FF-FF-FF-FF-FF.
Nếu Host X available trên Segment thì nó sẽ biết là gói tin này gửi cho nó nhờ vào địa chỉ IP mà Host A ghi trong gói tin ARP request và nó sẽ trả lời bằng 1 gói tin ARP reply. Gói tin ARP reply sẽ có MAC nguồn là MAC của Host X, MAC đích là MAC của Host A, khi Host A nhận được gói tin này tự nhiên sẽ biết được MAC của X.
Sau khi A nhận được ARP reply , nó sẽ mở gói và update bảng ARP table của nó: IP và MAC của máy X.
2/ Host X không cùng segment với host A :
lúc đó phải nhờ đến router để forward yêu cầu này đến các segment khác. Trong trường hợp này, router sẽ gửi địa chỉ MAC của interface mà nhận gói ARP request trên Router cho máy gửi ( máy A ).
Một cách khác để liên lạc với một máy tính khác không cùng nằm trên 1 segment là "default gateway". Default Gateway là một phần của một host (máy tính). Nó là một địa chỉ IP của một interface trên router, và được cấu hình cho host. Địa chỉ IP của host và của Default Gateway phải cùng segment mạng. Khì này, máy gửi (A) sẽ kiểm tra xem nó và máy nhận (B) có cùng nằm trên một subnet hay không. Nếu không, nó sẽ đóng gói packet gửi với IP destination address là của máy nhận và MAC address destinaiton là của Router nối với subnet của nó.
Nếu Proxy ARP hay default gateway không được cấu hình, thì không có "traffic" nào có thê rời khỏi một subnet (một mạng cục bộ). Phải có một trong hai cái được cấu hình ( hay cho phép) để có thể giao tiếp với các segment mạng khac được.
"IP source và dest không bao giờ thay đổi, chỉ có MAC source và dest là thay đổi thôi".
Proxy ARP: Theo cách thức hoạt động của proxy ARP, ta có thể thấy rằng client khi muốn biết MAC của một host nào đó, nó chỉ đơn giản là broadcast ARP-Request lên mạng. Router sẽ có trách nhiệm đáp trả lại bằng ARP-Reply nếu nó nhận thấy IP-destination là thuộnc mạng khác. Như vậy, cấu hình IP cho client cực kỳ đơn giản, nhưng gánh nặng lại đè lên router. Thử tưởng tượng cứ sau 1p', ARP-entry bị hủy bỏ, thế là các client thi nhau broadcast lên mạng thì router "tiêu" như chơi. Ngoài ra, proxy ARP còn gặp một bất lợi nếu trong segment có tới hơn 1 router. Chọn router nào, nếu như các router đều có route đến mạng đích?
Default-Gateway: Nếu client biết rằng IP-dest không thuộc mạng của nó, nó dùng MAC của default-gateway để gửi gói tin, router default-gateway nhận lấy gói tin sẽ biết phải xử lý tiếp theo như thế nào (dựa trên IP source/destination). Cách này giảm tải cho router, giải quyết được trường hợp có nhiều router nối vào cùng segment, và đỡ gây nhầm lẫn.
Nếu Host A có cấu hình sử dụng Defaul gateway trong TCP/IP protocol thì gói tin ARP request sẽ không phải dạng Broadcast mà được gửi thẳng đến cho Router ( TCP/IP stack quy định như vậy). Tất nhiên để gửi được gói tin này đến cho Router thì nó cũng phải request MAC của defaul gateway trên Router trước, sau đó khi có MAC của default gateway thì Host A sẽ tạo 1 gói tin ARP request MAC của Host X với IP đích là IP Host X, MAC đích là MAC của default gateway.
Khi Router gateway nhận được gói tin này thì nó sẽ Forward qua interface trên segment thích hợp, tại đây phần Datalink header sẽ được lấy ra (Pull out) và phần Datalink header mới sẽ được gắn vào với mục đích để truyền trên Segment của Host B. Khi Host B nhận được gói tin ARP request thì cũng sẽ trả lời lại bằng gói tin ARP reply được gửi đến DF gateway trên Segment của nó. Khi Router nhận được gói tin này cũng làm việc tương tự như khi gửi đi từ Host A (pull out Datalink header, gắn datalink header mới v.v....)
Nếu Host A không có cấu hình default gateway (tất nhiên sẽ broadcast gói tin ARP request) nhưng nếu Router trên Segment của host A có chức năng ARP Proxy thì căn cứ trên IP mà gói tin ARP request yêu cầu ROUTER sẽ so sánh với Routing Table của nó và nhận gói tin này nếu Match trong Routing table, sau đó sẽ forward qua Segment thích hợp. Quá trình tiếp theo tương tự như trường hợp A.
Như vậy : nếu 1 trong 2 default gateway của 2 segment cấu hình sai thì sẽ dẫn đến việc Host A không thể liên lạc được với Host X và ngược lại. Ngoài ra nếu thời gian tồn tại của ARP cache trong memory quá lâu công với việc có thay đổi MAC của DF gateway sẽ dẫn đến việc tạm thời không thể thực hiện ARP request.
Ví dụ minh họa cho các lý thuyết nêu trên:
xin lưu ý các IP cùa source và destination là không thay đổi chỉ có mac là thay đổi thôi. các bạn xem một ví dụ sau để đễ hiểu hơn nhé
máy A-------Router1--------router2--------router3------máy B
đầu tiên máy A đóng gói gói tin như sau
IP nguồn là IP của máy A. IP đích là IP của máy B xuống đến tầng datalink máy A sẽ xem máy B có trong cùng subnet với mình không, trong truờng hợp này là không.
lúc này máy A sẽ dùng :
MAC nguồn là của máy A. MAC đích là mác của interface trên router1 nối với subnet A.
Router1 sẽ xem IP đích có nằm trong subnet của mình hay không trong truờng hợp này là không, lúc này router sẽ dóng gói địa chỉ MAC nguồn là mác cùa interface mà router này nối với router2, mác đích sẻ là mác trên interface của router2, router2 cũng xử lý giống router 1 và chuyển đến router3.
Router3 sẽ xem IP này có nằm trong subnet của mình không, nếu có thì nó sẽ xem xét địa chỉ mac tương ứng với IP này (router3 biết được vì nó tra trong bảng ARP của nó có chứa máy B vì B cùng subnet) ư1ng với IP này router3 xác định đưọc MAC là máy B lúc này máy B nhưng nó vẩn gửi Brodcast đến tất cả các máy trong subnet có máy B nhưng chỉ máy B nhận gói tin vì nó có MAC trùng với MAC đích trong gói tin.
A sẽ gửi 1 gói tin gọi là ARP request (ARP = Address Resolution Protocol) bằng cơ chế broadcast để tất cả các máy đều có thể nhận được gói tin này
huyphuc1981_nb
19-09-2007, 10:45 AM
Mình thấy rằng các bạn nhầm lẫn nhiều.
MAC không được gửi bằng IP mà IP được gửi bằng MAC.
Điều đó giống như bạn gửi một cái đồng hồ từ Hà Nội sang Mỹ cho em bạn, bạn gửi qua một công ty vận chuyển thuê, công ty này ghi rằng người gửi là bạn người nhận là em bạn: đó là IP. Công ty chuyển thuê gói gói hành đó vào trong bọc, đều địa chỉ gửi là trụ sở Hà Nội, nhận là trụ sở Mỹ: đó là MAC. Đại lý Mỹ nhận được gói hàng vì các kênh vận chuyển trong công ty căn cứu vào MAC. Khi nhận được, đại lý Mỹ liền bóc bỏ vỏ có MAC, đọc được địa chỉ em bạn và thực hiện đoạn vận chuyển tiếp theo.
MAC có thể được chuyển mà không cần IP, ví dụ, những hệ thống dùng NetBios, IPX/SPX... hay thứ protocol củ chuối của thiết bị kiểm tra đường dây. Lúc đó, không xuất hiện những gì liên quan đến TCP/IP. Nên không thể cho rằng MAC được vận chuyển bằng những gì liên quan đến TCP/IP. MAC làm việc ở mức thấp hơn IP, và nó sẽ phải cõng IP chứ không ngược lại. Tôi đã phân tích những thứ đó trong này:
http://vnpro.org/forum/showthread.php?t=2547&page=5
Trên đây, các bạn đã nói rằng ARP (các bạn không nói đến nhưng tất nhiên có RARP) sẽ dùng dể tra bảng MAC-IP. Thật ra, hai cái đó chỉ dùng trong những trường hợp đặc biệt: két nối nhanh, khởi động từ xa, ưu hóa mạng và swich ưu hóa mạng...
Vậy không phải ARP thì cái gì giải mã MAC-IP.
Thật ra, chính trong bó thông tin đã có IP. MAC là đặc điểm cố hữu của Ethernet. Tôi tóm tắt lại những gì tôi đã phan tích:
+Ở Ethernet, khi một đầu mạng phát tin thì tất cả các đầu mạng đều nhận.
+Các đầu mạng nhận được tin liền đọc gói tin đó, mỗi gói tin có MAC gửi, MAC nhận dữ liệu. Căn cứ vào đó các đầu mạng nhận ra gói tin có gửi cho mình không. Đây là một chức năng đặc biệt, tạm gọi là "MAC nhận".
+Trong gói tin có kiểm tra sai, đầu mạng phân tích và biết gói tin có đúng không.
Mỗi gói tin đó gọi là một frame, Physical Layer và DataLink Layer thao tác trên các gói tin này. Mỗi gói tin dài từ 64 - 1518 byte. Nếu mạng sử dụng IP, các gói tin tốt được chuyển lên Internet Layer. Ở đây, có thể nhiều frame được nối vào nhau, tạo thành gói tin mới là datagram. Trong datagram có địa chỉ "IP gửi" và "IP nhận".
Như vậy, so sánh MAC-IP trên các gói tin người ta lập được bảng MAC-IP chứ không phải ARP, bảng này sẽ được thiết bị mạng lưu lại. ARP và RARP chỉ làm việc khi đã có bảng MAC-IP, có thể nhập bảng này không qua cơ chế giải mã MAC-IP như trên (ví dụ nhập tay).
Ở dây, ta thấy có nhiệm vụ chồng chéo: MAC và IP đều xác định người nhận và người gửi. Giả sử máy đổi card mạng thì MAC chặn địa chỉ lại và không bao giờ bó tin lớp 2 đến đích. CHính vì vậy, máy tính bỏ qua động tác "MAC nhận" mà sử dụng "IP nhận" để phân tích thông tin có phải của mình không. Người ta chỉ phân tích "IP gửi" và "MAC gửi" để lập bảng MAC-IP. Bảng này không chỉ dùng cho ARP và RARP mà còn dùng cho nhiều thứ nữa.
Vì bỏ qua động tác "MAC nhận" nên quyết định đường đi đến của thông tin do IP, vậy nên nhiều người nghĩ rằng IP tải MAC, nhưng thực tế ngược lại.
Các thiết bị khác PC vẫn dùng MAC nhận để phân tích nhiều thứ, ví dụ như các swich ưu hóa mạng. Các thiết bị tự động thì rất thích dùng "MAC nhận" để liên lạc với software trên PC.
Vậy có lúc nào IP tải MAC không. Có trong trường hợp nối VPN với một thiết bị đặc biệt. Đây là các router bảo toàn MAC. Người ta cũng dùng các chức năng sinh MAC tương tự để làm rối mạng, như hack chẳng hạn.
Mình vừa nói rằng "MAC nhận" dược các máy móc dùng nhiều PC ít dùng. Đó là vì hệ thống phần mềm của PC rất mạnh, còn hệ phần mềm của máy móc thì đắt. Vì vậy, một số thiết bị mạng như router vẫn dùng. Nhưng càng ngày ROM RAM càng rẻ, các máy móc đặc biệt là các router ngon bỏ dần lệ thuộc vào "MAC nhận".
huyphuc1981_nb
19-09-2007, 12:35 PM
Có một vấn đề khá ngộ quanh chuyện bỏ qua "MAC nhận". Đó là việc kết nối hai Ethernet. Đỉnh cao của việc kết nối này là VPN bảo toàn MAC.
Việc kết nối hai Ethernet qua router.
Một kết nối router đơn giản nhất được mô tả thế này:
Ethernet EA gồm các máy A1, A2 ..An và một router RA
Ethernet EB gồm các máy B1, B2 ..Bn và một router RB
RA RB nối với nhau qua một đường truyền ngoài là mạng R.
Một bó tin hiệu xuất phát từ An đi đến Bn được là nhờ router. Người lập trình cho thiết bị này đã nhập vào cả 2 router bản dang sách các IP trong cả hai mạng EA và EM. Một bó thông tin xuất phát từ An gửi đi sẽ mang theo "MAC gửi" của An, theo nguyên tắc "bỏ MAC nhận" sẽ đến RA. RA phân tích tất cả các datagram mà nó nhận được, nếu thấy "IP nhận" nằm ở EB, nó sẽ đóng gói dữ liệu cho hợp mạng R và chuyển đến RB. Ở đây RP truyền gói dữ liệu vào Ethernet EB, gói dữ liệu đến tất cả các máy trong EB với thông tin "MAC gửi" là của RB. Vẫn theo nguyên tắc bỏ "MAC nhận", một máy nào đó trong EB nhận ra IP nhận của mình và làm việc tiếp.
Như vậy, nếu không có "bỏ qua MAC nhận" thì về nguyên tắc, hệ router trên không làm việc. Có những hệ thống truyền cả MAC sang bên kia, mới kết nối được được trên MAC nhận.
Một số rắc rối nhỏ với việc "bỏ qua MAC nhận" xuất hiện trên gateway và một vài thứ tương tự. Thật ra, nếu nhập IP gateway thủ công vào từng máy thì ít lỗi, nhưng làm tự động phổ biến hơn và gây khó khăn. Khó khăn lớn nhất là máy mới vào mạng không biết gateway ở đâu. Chính vì vậy mà người ta đặt các địa chỉ mặc định tự động thông dụng, ví như máy mới vào mạng không biết phần NET addr thế nào thì phần mềm sẽ tìm về netaddr mặc định để truyền boardcast, qua đó xây dựng được bản MAC-IP cho ARP và RARP. Tuy nhiên quan trọng nhất của các boardcast này là đọc được danh sách máy trên mạng. Hay không thấy gateway đâu thì tìm về mặc dịnh...
Điều rắc rối xảy ra khi Net ADDR của Ethernet không nằm trong khoảng mặc định mà bắt các máy móc làm tự động.
Về nguyên tắc, mỗi máy có thể nắm được danh sách các MAC và bảng MAC-IP bằng phân tích các thông điệp đang lưu chuyển trên Ethernet. Nhưng vì "MAC nhận" không được các thành viên của Ethernet quan tâm nên nguyên tắc này không thực hiện được. Máy mới nhập mạng không biết được danh sách MAC-IP trên mạng, không tìm được địa chỉ các dịch vụ, ví dụ gateway.
Ở Win chẳng hạn, có thể gõ IP trực tiếp vào command line nhưng điều đó là củ chuối.
Để chống củ chuối này, người ta đưa ra những cơ chế tự động như DHCP, Bootp...sử dụng "MAC nhận" Tuy chưa biết Net Addr trong IP nhưng người ta cũng định nghĩa được các bó thông tin sẽ được toàn Ethernet nhận. Ví dụ DHCP server sẽ nhận bó thông tin toàn 1 trong IP, đây là yêu cầu DHCP, tất nhiên bó này đem theo "MAC gửi", nhờ đó DHCP server gửi cho thành viên mới địa chỉ của nó.
Có một cái khó chịu trong thực tế. Một số cơ cấu tự động gần giống DHCP gửi thông tin MAC-IP cho client mới bằng kiểu khác. Những cái này cần debug rắc rối, vì trên ethernet mỗi PC chạy một thứ. Cái khó chịu nữa là những router nhỏ kiêm chức năng DHCP lại hay bậy bạ kiểu này.
huyphuc1981_nb
20-09-2007, 09:49 AM
Mình có một thắc mắc thế này :
Giả sử 2 Host (A và B ) thuộc 2 Subnet khác nhau và được nối trực tiếp với nhau. Giả sử Host A có được Mac của B, B có MAC của A.
Câu hỏi của em là A có thể truyền thông với B được không ?
Lâu lâu khong thấy ai nối tiếp. Thế tớ độc thoại à.
Câu hỏi trên tớ trả lời là, nếu cả hai host đều cài TCP/IP thì chắc chắn là được. Bất chấp chúng có cùng subnet, cùng phần mềm hay không. Đã nối trực tiếp với nhau là dữ liệu lưu chuyển.
Ở đây, cần phân biệt khái niệm truyền được dữ liệu và dữ liệu được chấp nhận. Với cấu hình trên, dữ liệu đã được chấp nhận ở đầu vào lớp session, việc còn lại là user name với pass, sau đó dữ liệu sẽ đến được app.
Nhưng nhiều trược hợp, dữ liệu truyền được nhưng không được chấp nhận, trong cấu hình của bạn, có thể dữ liệu không được chấp nhận ở session nhưng luôn truyền được.
Người ta nói dữ liệu truyền được đến một lớp tức là dữ liệu có ở đầu vào, còn được chấp nhận là đã đi qua.
Nối trực tiếp là cùng một ethernet, như vậy, chắc chắn chúng nhận được dữ liệu của nhau ở đầu vào data link. Đối với yêu cầu dữ liệu đến được session thì phải được chấp nhận qua IP trên Internet layer. Như vậy, yêu cầu duy nhất là hai máy AB phải có IP của nhau. Hai máy biết được IP khi thâm nhập mạng bằng các boardcast như đã nói trên. Điều này được làm tự động với hệ thống Windows. nên việc chúng chấp nhận dữ liệu của nhau ở Internet layer là dĩ nhiên.
Việc chúng trùng subnet chỉ thuận tiện với một số dịch vụ, ví như browser nhanh hơn (cụ thể như search computer name). Còn mức truyền được dữ liệu thì không cần.
trainingit
24-09-2007, 08:35 AM
Máy nguồn tìm địa chỉ của máy đích bằng cách sử dụng giao thức phân giải địa chỉ ARP (Address Resolution Protocol), trong quá trình đến đích gói ip đã có sẵn địa chỉ IP nguồn, IP đích và địa chỉ MAC của máy gửi (địa chỉ MAC giúp 2 máy trao đổi dữ liệu nhận diện ra nhau), khi gửi dữ liệu đến máy đích, ARP gửi một thông điệp đến máy đích hỏi địa chỉ MAC của máy đích dựa trên IP của máy đích (vd địa chỉ MAC của máy đích có IP 192.168.1.200 là gì vậy), ARP sẽ nhận được địa chỉ MAC và gửi thông điệp chứa địa chỉ MAC của máy đích gửi về cho máy nguồn.
Trong quá trình gói dữ liệu đi đến đích có thể có đi qua nhiều router khác nhau, mỗi lần qua một router gói dữ liệu lại phải loại bỏ địa chỉ MAC của router đó và sử dụng địa chỉ MAC của router kế tiếp cho đến khi nó đến được địa chỉ đích (luôn chỉ có địa chỉ MAC nguồn và MAC của địa chỉ đích được sử dụng trong suốt quá trình gói dữ liệu di chuyển). Khi đến được địa chỉ đích, gói dữ liệu sẽ loại bỏ các thông tin về header, trailer, ip, tcp và chỉ dữ lại phần data chuyển lên lớp ứng dụng để ứng dụng của người dùng có thể sử dụng được.
:105::X
huyphuc1981_nb
24-09-2007, 07:49 PM
Về lý thuyết là như thế.
Nhưng thực tế chỉ trước đây là như thế thôi. Ngày nay, ARP và RARP chỉ dùng trong những trường hợp đặc biệt, ví như khi máy mới đăng nhập mạng hay switch.
Cần nhắc lại là, ARP và RARP chỉ làm việc trong ethernet thôi. Tức chỉ làm việc giữa các máy tính và switch thôi. Đã quan router không còn gì nữa.
Cơ chế làm việc của NIC ethernet thì tớ đã nói rồi. Mỗi NIC khi phát một bó tin nó gửi dến tất cả các NIC có trong ethernet, NIC nào cũng phải nhận và giải mã, rồi xác định bó tin đó có cho mình không.
Nếu xác dịnh nhận bằng MAC, máy tính tốn ít sử lý, chỉ cần chip trên NIC là đủ, lúc đó các card sẽ loại bỏ các bó tin không dành cho mình.
Tuy vậy, các NIC ngày nay không theo sách vở, chúng cho nghỉ chức năng trên và đẩy bó tin lên trên, do năng lực máy tính quá lớn, thêm chút sử lý không hề chi, điều này cũng như ngày nay người ta dùng năng lực của CPU chính để làm Sound (chuẩn AC97). Hiện nay, xác định nhận bằng cả hai thứ đang phát triển, thời giao thời nên gặp khá nhiều rắc rối.
Không những chương trình tử tế, rất nhiều chương trình gián điệp chỉ cần ngồi nghe không trên mạng nó cũng cơ sơ đồ MAC-IP, làm giả MAC và IP.
Nếu bạn nào dùng chương trình nghe lỏm trên Bootp thấy rõ. Nó không thông qua RAP nhưng xvaanx chạy được RARP.
BAOKIEN
05-05-2009, 12:26 PM
các bạn giải thích thêm về segment
luancb
05-05-2009, 01:01 PM
các bạn giải thích thêm về segment
Có chủ đề nói về segment , mời bạn xem :
http://vnpro.org/forum/showthread.php?t=4686
http://en.wikipedia.org/wiki/TCP_segment
http://en.wikipedia.org/wiki/Network_segment
mousesoldier
15-07-2009, 05:25 PM
Mình có một thắc mắc thế này :
Giả sử 2 Host (A và B ) thuộc 2 Subnet khác nhau
--> khác dãy IP;
-->vi du: 10.0.0.1 và 192.168.1.1
-->nối thông qua một con router (layer 3)
[QUOTE= Giả sử Host A có được Mac của B, B có MAC của A.
Câu hỏi của em là A có thể truyền thông với B được không ?
--> có phải truyền thông tin qua các giao thức từ lớp 2 trở xuống.
Trả lời:
-- Nếu cùng một segment, truyền tin thông qua MAC -->OK
-- Nếu khác segment, phải qua một router --> truyền tin mà ko dùng IP là không thể nào
-- Trong trường hợp này, không thể truyền tin từ A --> B. A, B không thể biết được MAC của nhau
Thân!
phongba
21-08-2009, 11:02 PM
Xin được tham gia chút, các bạn cho hỏi phạm vi hoạt động của ARP là trên toàn mạng hay chỉ trên một subnet?. ví dụ trong trường hợp của internet thì nếu biết ip thì làm sao lần ra dấu vết của mac address mà gởi cho nó trúng đich?
Cám ơn .
Theo tôi nếu trên cùng một subnet thì các máy sẽ liên lạc để lấy địa chỉ Mac của nhau theo kỹ thuật ARP như mọi người đã nói ở trên. Nếu trong trường hợp của internet : Giả sử một máy A muốn liên lạc với máy B trong khi A chỉ biết địa chỉ IP của máy B mà ko biết địa chỉ Mac của máy B, Máy A sẽ gửi 1 thông điệp ARP đến Router gần nó nhất, rồi Router đó lại gửi thông điệp ARP đó đến các router gần nó, cú như thế đến khi nào đến đích thì thôi -> vì thế máy A chỉ biết được địa chỉ Mac của Router gần nó nhất thôi và nó cũng ko biết được địa chỉ Mac của máy B:)
dzungbkk51
10-08-2010, 11:38 AM
Một gói tin gửi theo dạng ARP thì không thể qua router, vì router được cấu hình chặn các gói tin brroadcast, unicast, multicast. vì vậy muốn chuyền dữ liệu giữa 2 máy A và B cùng một subnet và range IP nhưng lại ko cùng segment hay nói cách khác là chúng được nối với nhau qua router, vấn đề này liên quan đến khái niệm proxy arp.Nói cách khác khi đó router sẽ đóng vai trò chung chuyển, A và B hoàn toàn không biết MAC của nhau, A và B sẽ gửi lên router ip của máy đích và MAC là địa chỉ MAC của router.Router ở đây sẽ tiếp nhận thông tin của cả A và B và xử lý thông tin và gửi các thông tin cần thiết cho cả A và B.
Powered by vBulletin® Version 4.1.9 Copyright © 2012 vBulletin Solutions, Inc. All rights reserved.