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

Post on 25-Dec-2015

229 views 0 download

Transcript of 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

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)

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

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

IP header

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

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

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

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

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

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

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}

Lab Work

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

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