PDA

View Full Version : Nghịch lý ICMP!



sinhvienngheo
31-08-2003, 12:20 AM
Hi,

Em có một câu hỏi:

ICMP không phải là một protocol ở lớp transport, nhưng tại sao ICMP lại chạy trên nền IP?

Ngoài ra, có sự khác nhau nào giữa ICMP của Microseft và ICMP của Cisco? Cái nào sẽ hiện thực theo RFC 792?

Xin giúp đỡ,

TGA_Certificationteam
02-09-2003, 07:46 PM
Hi SVN, bạn có thể xem analyze của một gói tin ICMP echo request.

Frame 3 (74 bytes on wire, 74 bytes captured)
Arrival Time: Sep 2, 2003 18:43:21.147356000
Time delta from previous packet: 0.000193000 seconds
Time relative to first packet: 0.611485000 seconds
Frame Number: 3
Packet Length: 74 bytes
Capture Length: 74 bytes
Ethernet II, Src: 00:60:08:33:e0:2d, Dst: 00:80:48:1e:ec:30
Destination: 00:80:48:1e:ec:30 (Compex_1e:ec:30)
Source: 00:60:08:33:e0:2d (192.168.0.3)
Type: IP (0x0800)
Internet Protocol, Src Addr: 192.168.0.3 (192.168.0.3), Dst Addr: 192.168.0.155 (192.168.0.155)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
0000 00.. = Differentiated Services Codepoint: Default (0x00)
.... ..0. = ECN-Capable Transport (ECT): 0
.... ...0 = ECN-CE: 0
Total Length: 60
Identification: 0xaa2f (43567)
Flags: 0x00
.0.. = Don't fragment: Not set
..0. = More fragments: Not set
Fragment offset: 0
Time to live: 128
Protocol: ICMP (0x01)
Header checksum: 0x0ea3 (correct)
Source: 192.168.0.3 (192.168.0.3)
Destination: 192.168.0.155 (192.168.0.155)
Internet Control Message Protocol
Type: 0 (Echo (ping) reply)
Code: 0
Checksum: 0x2d5c (correct)
Identifier: 0x0200
Sequence number: 26:00
Data (32 bytes)

0000 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 abcdefghijklmnop
0010 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 qrstuvwabcdefghi


hope this help

Ý của bạn của Cisco và của MicroSoft có nghỉa là sao ?

neoII
03-09-2003, 09:37 AM
:!: Thật ngạc nhiên với một câu hỏi của một member CCNP được bầu chọn xuất sắc (!?) :roll:

dangquangminh
19-09-2003, 11:34 AM
hi,

Có thể SVN muốn đề cập đến lệnh traceroute trong M$ và tracert trong Unix.

lệng trace của M$ dùng icmp và tracert của CiscoIOS/Unix dùng UDP.

Có phải vậy không?

tuaninbox
19-09-2003, 04:23 PM
Mình nhớ có lần mình dùng policy routing match packet length thì khi test bằng Cisco router và MS windows cho ra kết quả khác nhau.

haidt
05-12-2003, 09:15 AM
:?:
Hi all!

Có ai giải thích giùm mình khi dùng lệnh Trace thì các Echo request sẽ được gởi đi lần lượt với TTL tăng dần (+1). Vậy trong trường hợp topo mạng có nhiều đường đi thì có khi nào Echo request thứ n đi đường này còn Echo request thứ n+1 sẽ đi đường khác hay không?

Cám ơn nhiều!

minhtit
05-12-2003, 10:45 AM
Có. Đường đi và về không nhất thiết phải giống nhau.

haidt
05-12-2003, 01:34 PM
Hi anh minhtit,
Anh hiểu sai ý của em rồi, khi Trace Host B từ Host A (cách nhau 10 Hop) thì Host A sẽ gửi đi lần lượt 10 Echo request với TTL tương ứng là 1, 2, 3, ..., 10. Giả sử trong topo mạng có nhiều đường đi khác nhau (ví dụ: giữa Hop 3 và Hop 6 có hai đường đi khác nhau: 1-2-3-4-5-6; 1-2-3-4'-5'-6), thì có khi nào gói tin Echo request thứ 4 đi theo đường 1-2-3-4 và gói tin Echo request thứ 5 lại đi theo đường 1-2-3-4'-5' hay không? Như vậy thì kết quả hiển thị thu được sẽ ra sao???

Anh có thể giải thích được không?

Cám ơn nhiều!

minhtit
05-12-2003, 01:57 PM
Hi haidt,
Sorry, đúng là đọc chưa kỹ thật (nhìn chữ echo thì hấp tấp cho ngay là echo-reply!!!).

Câu trả lời là hoàn toàn có thể.
Nguyên nhân là (trong lúc trace) trên các router (hop) mà ICMP đi qua:
- có traffic/load balance
- routing table thay đổi (do manual config hay do các dynamin RP)

Trong trường hợp đi theo nhiều đường vì các lý do nêu trên thì việc hiển thị cũng không có vấn đề gì. Cứ mỗi lần nhận được reply thì nó hiển thị router đã reply, đâu cần biết là đi theo đường nào.

haidt
05-12-2003, 02:10 PM
Hi anh minhit,

Vẫn còn một thắc chưa rõ:
Nếu như đi trên 2 đường khác nhau và kết quả hiển thị đường đi như sau:
1-2-3-4-5'-6. Ở đây anh có thấy 1 điểm vô lý là giữa Hop 4 và 5' không có liên tục và ta không thể hình dung được đường đi của gói tin (từ Hop 4 ta không thể "nhảy cóc" sang Hop 5')

Cám ơn nhiều!

minhtit
05-12-2003, 03:01 PM
Hi haidt,

Vậy nên hiểu thế nào đối với danh sách các Router (hop) được in ra trên màn hình. Theo mình đó là: (1) "trên con đường từ A tới B, tôi có thể phải đi qua A1-A2-B1-Bn...-", chứ không phải là (2) "trên con đường từ A tới B, tôi phải lần lượt đi qua A1-A2-B1-Bn...". Khác nhau đấy.

Mỗi gói ICMP được gửi đi với TTL tăng thêm 1 (sau khi nhận được ICMP Time Exceeded) không có liên quan gì với đường đi của gói ICMP vừa gửi trước đó. Đối tượng của trace là "hop count" chứ không phải là "route".

Trong trường hợp nếu các gói đi theo cùng một đường (chủ yếu là trường hợp này), thì có thể hiểu như cách (2).

Một chú ý nữa là không phải router (hop) nào cũng reply khi TTL=0 ==> không thể biết là ICMP đã qua router nào. Nhưng bạn vẫn biết được có bao nhiêu "hop" phải qua.