11
Lab-4 ICMP Ping Programming Speaker : Yi-Fong Lin Date:2007.11.28

Lab-4 ICMP Ping Programming Speaker : Yi-Fong Lin Date:2007.11.28

Embed Size (px)

Citation preview

Page 1: Lab-4 ICMP Ping Programming Speaker : Yi-Fong Lin Date:2007.11.28

Lab-4 ICMP Ping Programming

Speaker : Yi-Fong Lin

Date:2007.11.28

Page 2: Lab-4 ICMP Ping Programming Speaker : Yi-Fong Lin Date:2007.11.28

IP & ICMP

IP – Internet ProtocolICMP - Internet Control Message ProtocolIP & ICMP insert into Ethernet packet

DA MAC SA MACTYPE

0x0800IP header ICMP header ICMP data

Ethernet 封包

IP 封包

ICMP 封包 (IP data)

Page 3: Lab-4 ICMP Ping Programming Speaker : Yi-Fong Lin Date:2007.11.28

IP header

VERSSERVICE TYPE

TOTAL LENGTH

IDENTIFICATION FRAGMENT OFFSET

0 8 16 24 31

SOURCE IP

DESTINATION IP

IP OPTION(IF ANY)

HLEN

FLAGS

TIME TO LIVE PROTOCOL HEADER CHECKSUM

PADDING不使用

5 個 4Bytes

Page 4: Lab-4 ICMP Ping Programming Speaker : Yi-Fong Lin Date:2007.11.28

IP header

VERS : IP 協定的版本號碼 ,IPv4:0x4 HLEN : IP 表頭長度 ,4 bytes 為單位 , no option : 0x05• SERVICE TYPE :

• PRECEDENCE : 優先權 • D : No Delay• H : High Throughput• R : High Reliability• TOTAL LENGTH : IP header 跟 data 的總長度 ,byte 為單位。• IDENTIFICATION : IP 封包的編號。

保留 D T R PRECEDENCE

7 6 5 4 3 0

Page 5: Lab-4 ICMP Ping Programming Speaker : Yi-Fong Lin Date:2007.11.28

IP header

FLAGS 、 FRAGMENTOFFSETTIME TO LIVE(TTL) :定義一封包在網路

系統中存活的時間。PROTOCOL : UDP : 0x11 TCP : 0x06 ICMP : 0x01HEADER CHECKSUMSOURCE IP 、 DESTINATION IP

Page 6: Lab-4 ICMP Ping Programming Speaker : Yi-Fong Lin Date:2007.11.28

ICMP types

TYPE ICMP Message Type 0 Echo Reply 3 Destination Unreachable 4 Source quench 5 Redirect 8 Echo Request (Ping) 11 Time Exceeded for a Datagram 12 Parameter Problem on a Datagram 13 Timestamp Request 14 Timestamp Reply 15 Information Request 16 Information Reply 17 Address Mask Request 18 Address Mask Reply

Page 7: Lab-4 ICMP Ping Programming Speaker : Yi-Fong Lin Date:2007.11.28

CheckSum

IP OPTION(IF ANY) PADDING

0x04 0x05 0x00 0x00

0x0100 0x0050

0x80 0x010x00

Destination IP

checksum

Source IP 0x8C.0x7D.0x21.0x02

0x8C.0x7D.0x21.0x01

0 314 8 16

Page 8: Lab-4 ICMP Ping Programming Speaker : Yi-Fong Lin Date:2007.11.28

CheckSum 計算法

每 16bit 做相加Ex: 0x4 5 0 0

0x0 0 0 00x0 1 0 00x0 0 5 00x8 0 0 10x0 0 0 00x8 C7 D0x2 1 0 10x8 C7 D0x2 1 0 2+

2 1 4 E +

2

2 1 5 0 => 取 1的補數=>1101 1110 1010 1111(DEAF)

DE AF

CheckSum

Page 9: Lab-4 ICMP Ping Programming Speaker : Yi-Fong Lin Date:2007.11.28

Internet

Ping

140.125.33.10

140.125.32.18

140.125.33.12

ARP Who is ARP Who is 140.125.33.12140.125.33.12

I am 140.125.33.12I am 140.125.33.12My MAC is My MAC is 03:04:05:06:07:0803:04:05:06:07:08

Ping 140.125.33.12 Ping 140.125.33.12 MAC=03:04:05:06:07:08MAC=03:04:05:06:07:08ICMP RequestICMP Request

ICMP ReplyICMP Reply

Page 10: Lab-4 ICMP Ping Programming Speaker : Yi-Fong Lin Date:2007.11.28

ICMP

Format

TYPE(8or0) CODE(0) CHECKSUM

IDENTIFIER SEQUENCE NUMBER

OPTION DATA…

0 8 16 24 31

checksum : ICMP header 跟 data 的 checksumIdentifier 、 sequence 是 request sender 用來檢查 reply 封包是回應哪一個 request 封包。option data 長度是可變動的, reply 回的 option 必需跟 request 一樣。command: ping { 目地 IP}

Page 11: Lab-4 ICMP Ping Programming Speaker : Yi-Fong Lin Date:2007.11.28

Lab Work

透過 Uart interface 可用下指令的方式 ping 至其他連接到網路的裝置,並且顯示分析 ICMP echo request/reply 封包。

可回覆 ICMP echo request 封包,即接受網路上其他裝置的 ping 要求。