Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. ·...

47
W5500으로 임베디드 이더넷 구현하기 (심화) 2015년 4월 9일 위즈네트 아카데미 Wiznetacademy.com 강사 김수환 : https://embeddist.wordpress.com/ 김은경 : https://socatelier.wordpress.com/

Transcript of Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. ·...

Page 1: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

W5500으로

임베디드이더넷구현하기 (심화)

2015년 4월 9일

위즈네트 아카데미

Wiznetacademy.com

강사 김수환 : https://embeddist.wordpress.com/김은경 : https://socatelier.wordpress.com/

Page 2: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

목차

• 개발환경 구축

• Ping 테스트

• TCP Server 테스트

• DHCP Client

• DNS Client

• Simple HTTP Client

2

Page 3: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

개발환경 구축 및 테스트

• 필요사항• LPCXpresso 설치방법

• Flash Magic 설치방법

Ethernet to usb adaptor 필참(Ethernet Port 없는 PC일경우만)

• 배경지식• Socket program 기초

• Network 기초

3

Page 4: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

참고사이트

• W5500DataSheet : wizwiki-W5500Document

• W5500-EVB : wizwiki-W5500EVB• Library and Examples : GitHub-W5500EVB

• Forum : http://wizwiki.net/forum/

4

Page 5: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

W5500

SW TCP/IP vs Hardware TCP/IP

Software Stack

Hardware Stack

Application

Page 6: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Protocol Layer

6

Link Layer

Internet Layer

Transport Layer

Applicat ion Layer

Frame Data

IP

Header

Data

Frame

Header

Frame

Footer

IP Data

UDP

Header

UDP

Data

TCP

Header

TCP

Dataor

https:/ / socatelier.wordpress.com/

Page 7: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Hardware TCP/IP

• SPI

• Socket 8 Channel

• 32Kbyte buffer• RX buffer – 16Kbyte

• TX buffer – 16Kbyte

• Support Protocol(internal)• TCP, UDP, ICMP, IGMP,

• IPv4,ARP,PPPoE

Page 8: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

How to use?

Read / Write

Common Register

Status Register

Network Config Register

Socket Register x 8

TX & RX Buffer

Buffer Config. Register

Buffer Status RegisterSocket Command Register

Socket Status Register

Socket Config. Register

RX

TX

Sn_CR

Sn_SR, Sn_IR

Sn_MR, Sn_DIPR, Sn_DPORT

SIR, PHYCFGR

SIPR, SHAR, GAR, SUBR

Sn_RXBUF_SIZE,Sn_TXBUF_SIZE

Sn_TX_RD,Sn_TX_WR

Page 9: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Socket?

• Socket 0 - TCP Server(5000)

• Socket 1 - TCP Server(5001)

• Socket 6 - UDP(3001)

• Socket 7 - TCP Client(4005)

• Socket 2/3/4/5 – Not Used

9

Socket 0

UDP

TCP Server

TCP Client

https:/ / socatelier.wordpress.com/

Socket 1

Socket 2

Socket 3

Socket 4

Socket 5

Socket 6

Socket 7

TCP Server(5000)

TCP Server(5001)

Not Used

Not Used

Not Used

Not Used

UDP(3001)

TCP Client(4005)

Page 10: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Ping Test를 통한 W5500 Config. 익히기

10

Ping request

Ping reply

Page 11: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Ping Reply Test

Common Register의 설정을 통해 Ping Reply Test를 실습한다.

실습 : EX0_w5500evb_ping

Terminal windows

Ping Success

Ping Fail

Page 12: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Ping이 안된다면!

• W5500의 IP 주소가 192.168.1.2 라면..• PC의 네트워크 주소가 192.168.1.xxx로 되어있는지

• PC와 W5500EVB간 LAN cable 연결 되어있는지

12

Page 13: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

TCP/UDP Loopback Test

• 참고자료• W5500 임베디드이더넷 구현하기(입문)

• COM Port확인방법

실습 : EX1_w5500evb_demos_loopback_and_switch_blinky

13

Page 14: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

DHCP Client

• 목표

• DHCP Client를 알자

• DHCP Discover/Offer/Response/Ack 알자

14

Page 15: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

DHCP(Dynamic Host Configuration Protocol)란?

• DHCP서버로 셋팅된 컴퓨터는클라이언트들에게 할당할 IP Address Pool을 유지하고 있으면서 DHCP를 이용해서 IP Address발급을 요청하는 클라이언트에게 IP Address를 할당해 주게 된다.

http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol

15

DHCP Server(WizFi630)

DHCP Client(W5500) https:/ / socatelier.wordpress.com/

Page 16: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

https://www.youtube.com/watch?v=V69UAnkoYHM

16

W5500

W5500 MAC=m1

1 DHCP Discover

2 DHCP Offer

3 DHCP Request

4 DHCP Ack

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m1},

IP Header {SIP = 0.0.0.0, DIP=255.255.255.255},

DHCP Payload {Client MAC=m1}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m2},

IP Header {SIP = 1.1.1.254, DIP=255.255.255.255},

DHCP Payload {Your IP=1.1.1.10, Client MAC=m1,Subnet Mask(1)=255.255.255.0, Router(3)=1.1.1.1,

DNS(6) = 10.1.1.1&10.1.1.2,IP Lease Time(51)=3,600s, DHCP Server Ident if ier(54)=1.1.1.254}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m1}, IP Header {SIP = 0.0.0.0, DIP=255.255.255.255},

DHCP Payload {Client MAC=m1, Requested IP Address(50)=1.1.1.10, DHCP Server Ident if ier(54)=1.1.1.254}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m2},

IP Header {SIP = 1.1.1.254, DIP=255.255.255.255},

DHCP Payload {Your IP=1.1.1.10,Client MAC=m1, Subnet Mask(1)=255.255.225.0,Router(3)=1.1.1.1,

DNS(6)=10.1.1.1&10.1.1.2, IP Lease Time(51)=3,600s, DHCP Server Ident if ier(54)=1.1.1.254}

IP address=1.1.1.10 allocat ion completed

Internet AccessSIP=1.1.1.10

DHCP Server IP=1.1.1.254

DHCP Server MAC=m2

"안녕하세요? 혹시 거기 DHCP 서버님 계시면 제게 대답 좀 주세요"

"네 저 여기 있습니다. 제 IP주소는 1.1.1.254입니다.

제가 DHCP client(PC)에 IP 주소 1.1.1.10을 할당(임대)해 드릴수 있어요.

"답변 주셔서 감사해요. 그럼 1.1.1.254 주소를 가진 DHCP서버님! 저에게 IP주소를 할당(임대)해 주세요.

"네, 제가 DHCP Client(PC)를 위해 IP주소 1.1.1.10을 포함한 필요하신 네트워크 정보를 임대해 드릴께요.

임대시간은 1시간입니다."

WizFi630

DHCP Client

https:/ / socatelier.wordpress.com/

Page 17: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

DHCP Header

OP code HW Type HW Length HOPS

Transact ion ID(xid)

Seconds Broadcast Flag(1b)

Client IP Address(ciaddr)

Your IP Address(yiaddr)

Server IP Address(siaddr)

Gateway IP Address(giaddr)

Client Hardware Address (16B)(chaddr)

Server Name(64B)(sname)

Filename(128B)

DHCP Message Type(Option 53)=1(DHCP Discover)

Client Ident ifier(Option 51)=PC MAC Address(m1)

Parameter Request List (Option 55)=Option 1,3,6,…..

0B 2B 4B

http://www.networksorcery.com/enp/protocol/dhcp.htm

17

Page 18: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

DHCP 동작원리(1)

1) DHCP Discover(단말 -> DHCP 서버)

• 이더넷 망에 브로드캐스팅 (Destination MAC = FF:FF:FF:FF:FF:FF)하며, 동일 서브넷상에있는 모든 DHCP 서버들은 이 메시지를 수신한다.

2) DHCP Offer(DHCP 서버 -> 단말)

• 브로드캐스팅 (Destination MAC = FF:FF:FF:FF:FF:FF)하며, 네트워크 정보들(단말 IP주소, subnet mask…..)이 포함되어있다. DHCP Discover메시지를 송신한 단말을 포함한 동일서브넷 상의 모든 단말들이 수신한다.

18

Page 19: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

DHCP 동작원리(2)

3) DHCP Request(단말 -> DHCP 서버)

• 단말 IP 주소를 포함한 네트워크 정보를 요청(브로드캐스트)

4) DHCP Ack(DHCP 서버 -> 단말)

• DHCP Request메세지를 수신한 DHCP서버는 메시지 내에 Server Identifier(54)에 기록된IP주소를 자신의 주소인지 확인 후에, 메시지를 이더넷망에 브로드캐스팅하며, DHCP offer와 같은 메시지를 보낸다.

• 대표적인 네트워크정보• IP주소

• Subnet Mask

• Default Gateway IP 주소

• DNS 서버 IP 주소

• Lease Time(DHCP 서버가 할당(임대)해 준 IP주소를 단말이 사용할 수 있는 기간)

19

Page 20: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

20

1 DHCP Discover

2 DHCP Offer

3 DHCP Request

4 DHCP Ack

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m1},

IP Header {SIP = 0.0.0.0, DIP=255.255.255.255},

DHCP Payload {Client MAC=m1}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m2},

IP Header {SIP = 1.1.1.254, DIP=255.255.255.255},

DHCP Payload {Your IP=1.1.1.10, Client MAC=m1,

Subnet Mask(1)=255.255.255.0, Router(3)=1.1.1.1,

DNS(6) = 10.1.1.1&10.1.1.2,IP Lease Time(51)=3,600s,

DHCP Server Ident if ier(54)=1.1.1.254}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m1},

IP Header {SIP = 0.0.0.0, DIP=255.255.255.255},

DHCP Payload {Client MAC=m1, Requested IP

Address(50)=1.1.1.10, DHCP Server Ident if ier(54)=1.1.1.254}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m2},

IP Header {SIP = 1.1.1.254, DIP=255.255.255.255},

DHCP Payload {Your IP=1.1.1.10,Client MAC=m1,

Subnet Mask(1)=255.255.225.0,Router(3)=1.1.1.1,

DNS(6)=10.1.1.1&10.1.1.2, IP Lease Time(51)=3,600s,

DHCP Server Ident if ier(54)=1.1.1.254}

DHCP Server IP=1.1.1.254 DHCP Server MAC=m2PC MAC=m1

PC

Dest. MAC addr = FF:FF:FF:FF:FF:FF(Broadcast)

Sour. MAC addr = PC MAC addr(m1)

EtherType=0x0800(IP)

Ver=4 Total LengthIHL=5 TOS

Identif ication Flags Fragment Offset

Source IP Address = 0.0.0.0

Destination IP Address = 255.255.255.255

Source Port = 68(boot pc) Destination Port = 67(bootps)

UDP Length UDP Checksum

OP code=1(req) HW Type=Ether HW Length=6 HOPS

Transact ion ID(xid)

Seconds Broadcast Flag(1b)

Client IP Address(ciaddr)=0.0.0.0

Your IP Address(yiaddr)=0.0.0.0

Server IP Address(siaddr)=0.0.0.0

Gateway IP Address(giaddr)=0.0.0.0

Client Hardware Address (16B)(chaddr)=PC MAC Address(m1)

Server Name(64B)(sname)

Filename(128B)

DHCP Message Type(Option 53)=1(DHCP Discover)

Client Ident ifier(Option 51)=PC MAC Address(m1)

Parameter Request List(Option 55)=Option 1,3,6,…..

TTL Protocol=17(UDP) Header Checksum

0B 2B 4B

Eth

ern

et

IPU

DP

DH

CP

Me

ssa

ge

Paylo

ad

ht tps:/ / socatelier.wordpress.com/

Page 21: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

21

1 DHCP Discover

2 DHCP Offer

3 DHCP Request

4 DHCP Ack

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m1},

IP Header {SIP = 0.0.0.0, DIP=255.255.255.255},

DHCP Payload {Client MAC=m1}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m2},

IP Header {SIP = 1.1.1.254, DIP=255.255.255.255},

DHCP Payload {Your IP=1.1.1.10, Client MAC=m1,

Subnet Mask(1)=255.255.255.0, Router(3)=1.1.1.1,

DNS(6) = 10.1.1.1&10.1.1.2,IP Lease Time(51)=3,600s,

DHCP Server Ident if ier(54)=1.1.1.254}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m1},

IP Header {SIP = 0.0.0.0, DIP=255.255.255.255},

DHCP Payload {Client MAC=m1, Requested IP

Address(50)=1.1.1.10, DHCP Server Ident if ier(54)=1.1.1.254}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m2},

IP Header {SIP = 1.1.1.254, DIP=255.255.255.255},

DHCP Payload {Your IP=1.1.1.10,Client MAC=m1,

Subnet Mask(1)=255.255.225.0,Router(3)=1.1.1.1,

DNS(6)=10.1.1.1&10.1.1.2, IP Lease Time(51)=3,600s,

DHCP Server Ident if ier(54)=1.1.1.254}

DHCP Server IP=1.1.1.254 DHCP Server MAC=m2PC MAC=m1

PC

Dest. MAC addr = FF:FF:FF:FF:FF:FF(Broadcast)

Sour. MAC addr =DHCP Server MAC addr(m2)

EtherType=0x0800(IP)

Ver=4 Total LengthIHL=5 TOS

Identif ication Flags Fragment Offset

Source IP Address = DHCP Server IP Address(1.1.1.254)

Destination IP Address = 255.255.255.255

Source Port = 67(bootps) Destination Port = 68(bootpc)

UDP Length UDP Checksum

OP code=1(req) HW Type=Ether HW Length=6 HOPS

Transact ion ID(xid)

Seconds Broadcast Flag(1b)

Client IP Address(ciaddr)=0.0.0.0

Your IP Address(yiaddr)=1.1.1.10

Server IP Address(siaddr)=0.0.0.0

Gateway IP Address(giaddr)=0.0.0.0

Client Hardware Address (16B)(chaddr)=PC MAC Address(m1)

Server Name(64B)(sname)

Filename(128B)

DHCP Message Type(Option 53)=2(DHCP Offer)

Subnet Mask(Option 1) = 255.255.255.0(/ 24)

Router IP(Option3)=1.1.1.1

TTL Protocol=17(UDP) Header Checksum

0B 2B 4B

Eth

ern

et

IPU

DP

DH

CP

Me

ssa

ge

Paylo

ad

Domain Name Server IP(Option 6) = 10.1.1.1, 10.1.1.2

IP Address Lease Time(Option 51) = 3,600 seconds(1 hour)

DHCP Server Identi fier(Option 54)=1.1.1.254 ht tps:/ / socatelier.wordpress.com/

Page 22: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

22

1 DHCP Discover

2 DHCP Offer

3 DHCP Request

4 DHCP Ack

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m1},

IP Header {SIP = 0.0.0.0, DIP=255.255.255.255},

DHCP Payload {Client MAC=m1}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m2},

IP Header {SIP = 1.1.1.254, DIP=255.255.255.255},

DHCP Payload {Your IP=1.1.1.10, Client MAC=m1,

Subnet Mask(1)=255.255.255.0, Router(3)=1.1.1.1,

DNS(6) = 10.1.1.1&10.1.1.2,IP Lease Time(51)=3,600s,

DHCP Server Ident if ier(54)=1.1.1.254}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m1},

IP Header {SIP = 0.0.0.0, DIP=255.255.255.255},

DHCP Payload {Client MAC=m1, Requested IP

Address(50)=1.1.1.10, DHCP Server Ident if ier(54)=1.1.1.254}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m2},

IP Header {SIP = 1.1.1.254, DIP=255.255.255.255},

DHCP Payload {Your IP=1.1.1.10,Client MAC=m1,

Subnet Mask(1)=255.255.225.0,Router(3)=1.1.1.1,

DNS(6)=10.1.1.1&10.1.1.2, IP Lease Time(51)=3,600s,

DHCP Server Ident if ier(54)=1.1.1.254}

DHCP Server IP=1.1.1.254 DHCP Server MAC=m2PC MAC=m1

PC

Dest. MAC addr = FF:FF:FF:FF:FF:FF(Broadcast)

Sour. MAC addr = PC MAC addr(m1)

EtherType=0x0800(IP)

Ver=4 Total LengthIHL=5 TOS

Identif ication Flags Fragment Offset

Source IP Address = 0.0.0.0

Destination IP Address = 255.255.255.255

Source Port = 68(boot pc) Destination Port = 67(bootps)

UDP Length UDP Checksum

OP code=1(req) HW Type=Ether HW Length=6 HOPS

Transact ion ID(xid)

Seconds Broadcast Flag(1b)

Client IP Address(ciaddr)=0.0.0.0

Your IP Address(yiaddr)=0.0.0.0

Server IP Address(siaddr)=0.0.0.0

Gateway IP Address(giaddr)=0.0.0.0

Client Hardware Address (16B)(chaddr)=PC MAC Address(m1)

Server Name(64B)(sname)

Filename(128B)

DHCP Message Type(Option 53)=3(DHCP Request)

Client Ident ifier(Option 51)=PC MAC Address(m1)

Requested IP Address(Option 50) = 1.1.1.10

TTL Protocol=17(UDP) Header Checksum

0B 2B 4B

Eth

ern

et

IPU

DP

DH

CP

Me

ssa

ge

Paylo

ad

DHCP Server Identi fier(Option 54) = 1.1.1.254

Parameter Request List(Option 55)=Option 1,3,6,….. ht tps:/ / socatelier.wordpress.com/

Page 23: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

23

1 DHCP Discover

2 DHCP Offer

3 DHCP Request

4 DHCP Ack

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m1},

IP Header {SIP = 0.0.0.0, DIP=255.255.255.255},

DHCP Payload {Client MAC=m1}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m2},

IP Header {SIP = 1.1.1.254, DIP=255.255.255.255},

DHCP Payload {Your IP=1.1.1.10, Client MAC=m1,

Subnet Mask(1)=255.255.255.0, Router(3)=1.1.1.1,

DNS(6) = 10.1.1.1&10.1.1.2,IP Lease Time(51)=3,600s,

DHCP Server Ident if ier(54)=1.1.1.254}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m1},

IP Header {SIP = 0.0.0.0, DIP=255.255.255.255},

DHCP Payload {Client MAC=m1, Requested IP

Address(50)=1.1.1.10, DHCP Server Ident if ier(54)=1.1.1.254}

Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m2},

IP Header {SIP = 1.1.1.254, DIP=255.255.255.255},

DHCP Payload {Your IP=1.1.1.10,Client MAC=m1,

Subnet Mask(1)=255.255.225.0,Router(3)=1.1.1.1,

DNS(6)=10.1.1.1&10.1.1.2, IP Lease Time(51)=3,600s,

DHCP Server Ident if ier(54)=1.1.1.254}

DHCP Server IP=1.1.1.254 DHCP Server MAC=m2PC MAC=m1

PC

Dest. MAC addr = FF:FF:FF:FF:FF:FF(Broadcast)

Sour. MAC addr = DHCP Server MAC addr(m2)

EtherType=0x0800(IP)

Ver=4 Total LengthIHL=5 TOS

Identif ication Flags Fragment Offset

Source IP Address = DHCP Server IP Address(1.1.1.254)

Destination IP Address = 255.255.255.255

Source Port = 67(bootps) Destination Port = 68(bootpc)

UDP Length UDP Checksum

OP code=1(req) HW Type=Ether HW Length=6 HOPS

Transact ion ID(xid)

Seconds Broadcast Flag(1b)

Client IP Address(ciaddr)=0.0.0.0

Your IP Address(yiaddr)=1.1.1.10

Server IP Address(siaddr)=0.0.0.0

Gateway IP Address(giaddr)=0.0.0.0

Client Hardware Address (16B)(chaddr)=PC MAC Address(m1)

Server Name(64B)(sname)

Filename(128B)

TTL Protocol=17(UDP) Header Checksum

0B 2B 4B

Eth

ern

et

IPU

DP

DH

CP

Me

ssa

ge

Paylo

ad DHCP Message Type(Option 53)=4(DHCP Ack)

Subnet Mask(Option 1) = 255.255.255.0(/ 24)

Router IP(Option3)=1.1.1.1

Domain Name Server IP(Option 6) = 10.1.1.1, 10.1.1.2

IP Address Lease Time(Option 51) = 3,600 seconds(1 hour)

DHCP Server Identi fier(Option 54)=1.1.1.254

ht tps:/ / socatelier.wordpress.com/

Page 24: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Flow chat for DHCP ClientDHCP

Socket() with UDP

Do DHCP

Sendto():DHCP Discover

Recvfrom():DHCP_Offer

sendto():DHCP_Request

1

2

3

4

5

6

IP address / Subnet Mask / Gateway address 설정

DHCP는 UDP기반의 Protocol

DHCP Server 부터 IP주소를 할당받음

broadcasting(IP:255.255.255.255)를 DHCP Server들에게 전송

broadcasting(IP:255.255.255.225 + 네트워크 정보)를 DHCP Client들에게 전송

DHCP Server에게 네트워크 정보요청

recvfrom():DHCP_Ack

7 DHCP Client에게 네트워크정보를 전송(DHCP Server부터 IP 할당받음)24

Page 25: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Codes 상태 추가DHCP

Socket() with UDP

Do DHCP

Sendto():DHCP Discover

Recvfrom():DHCP_Offer

sendto():DHCP_Request

1

2

3

4

5

6

DHCP_init(SOCK_DHCP, gDATABUF); / dhcp_do();

socket(SOCK_HTTPc, Sn_MR_UDP, port, 0x00);

dhcp_do();

sendto(DHCP_SOCKET, (uint8_t *)pDHCPMSG, RIP_MSG_SIZE, ip, DHCP_SERVER_PORT);

recvfrom(DHCP_SOCKET, (uint8_t *)pDHCPMSG, len, svr_addr, &svr_port);

DHCP Server에게 네트워크 정보요청

recvfrom():DHCP_Ack

7sendto(DHCP_SOCKET, (uint8_t *)pDHCPMSG, RIP_MSG_SIZE, ip, DHCP_SERVER_PORT);

SOCK_INIT

S6_SR

SOCK_UDP

S6_IR

SEND_OK

RECV

SEND_OK

RECV25

Page 26: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

실습

• DHCP Server와 연결하기• EX2_w5500evb_internet_dhcp_client

• DHCP Server로 3번 Request

실습 : EX2_w5500evb_internet_dhcp_client

26

Page 27: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

DHCP 결과(Terminal Window)

DHCP 할당전

DHCP 할당후

27

1. Board와 PC를 USB cable을통해 연결한다.

2. Board의 ISP버튼을 누른 채Reset 버튼을 누른다.

3. Flash magic을 이용해 Hex파일을 다운로드 한다.

4. Reset버튼을 누른다.

Page 28: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

DNS Client

• 목표

• DNS를 알자

• DNS Client를 알자

• DNS Query / DNS Respond 알자

28

Page 29: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

DNS(Domain Name System)란?

• 호스트의 도메인이름을 호스트의 네트워크 주소로 바꾸거나 그반대의 변환을 수행.• 특화된 서버를 사용해 www.google.com과 같은 네임들을 숫자 주소

(59.18.44.167)로 해석(전환)해 데이터 및 정보를 해당 목적지로 보냄

29

www.google.comDomain

Page 30: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

30

UserBrower

(PC)

Root DNS

com DNS

google.com DNS

1 www.google.com

8 222.122.195.6

2 DNS Query for www.google.com

3 DNS Response w/ IP address of

'Com DNS'

4 DNS Query for www.google.com

6 DNS Query for www.google.com

5 DNS Response w/ IP address of

'google.com DNS'

7 DNS Response w/ IP address of

www.google.com(59.18.44.167)

Local DNS

www.google.com

59.18.44.167

ht tps:/ / socatelier.wordpress.com/

Page 31: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

DNS Header

• QR : query(0), response(1)

• Opcode : standard query(0), inverse query(1), server status(2)

• AA : authoritative answer(1)

• TC : truncated(1):if UDP then size exceeded 512 bytes

• RD : recursion desired(1)

• RA : recursion available(1)

• rcode : no error(0), name error(3)

Q

R

A

A

Total Authori ty Resource Records Total Addi tional Resource Records

0B 2B 4B

Identification Opcode(4) Rcode(4)

Total Questions Total Answers

T

C

R

D

R

A(Zero)

31

Page 32: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

DNS 동작원리

1) DNS Query(단말 -> DNS 서버)

• 도메인(ex. www.google.com)을 DNS 서버로 데이터를 보낸다.

2) DNS Response(DNS 서버 -> 단말)

• 해당 DNS Server를 찾았을 때는 IP address가 포함된 데이터를 보낸다.

• 다른 DNS Server일 경우 자기가 관리하는 하위레벨의 네임서버들 가운데google.com도메인을 관리하는 네임서버의 정보(Name Server이름/IP주소)

를 담아보낸다.

32

Page 33: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Flow chat for DNS ClientDHCP or

FIX address

Socket() with UDP

DNS run

Sendto():DNS Query

Recvfrom(();DNS Request

1

2

3

4

5

IP address / Subnet Mask / Gateway address/ DND Server 설정

DNS는 UDP기반의 Protocol

DNS Server IP setting

DNS Server들에게 전송

DNS Server부터 네트워크 정보를 수신

33

Page 34: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Codes 상태 추가

DHCP or FIX address

Socket() with UDP

DNS run

Sendto():DNS Query

Recvfrom(();DNS Request

1

2

3

4

5

IP address / Subnet Mask / Gateway address/ DND Server 설정

socket(DNS_SOCKET, Sn_MR_UDP, 0, 0);

dns_do(SOCK_DNS, buf);

sendto(DNS_SOCKET, pDNSMSG, len, dns_ip, IPPORT_DOMAIN);

recvfrom(DNS_SOCKET, pDNSMSG, len, ip, &port);

S6_SR

SOCK_UDP

S7_SR

SOCK_INIT

34

SOCK_UDP

SOCK_INIT

Page 35: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

DNS 실습

• DNS 동작

실습 : EX3_w5500evb_internet_dns_client(without DHCP)

EX4_w5500evb_internet_dhcp_dns_client

35

Page 36: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

DHCP/DNS 결과

1. Board와 PC를 USB cable을 통해 연결한다.

2. Board의 ISP버튼을 누른채 Reset 버튼을 누른다.

3. Flash magic을 이용해 Hex파일을 다운로드한다.

4. Reset버튼을 누른다.

36

EX4_w5500evb_internet_dhcp_dns_client

Page 37: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Simple HTTP Client

• 목표• HTTP Client를 알자

• Domain / URI / Query String 알자

• 지금까지실습한 DHCP/DNS가 실제어떻게적용되는지알자

• Simple HTTP Client는구현에대해살펴보자

37

Page 38: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Web browser는 HTTP Client다 !?

• Hyper Text Transfer Protocol : NAVER 지식백과

HTTP serverwww.google.com 1. www.google.com 접속

HTTP ClientWeb browser

2. Request 보냄

3. HTML page Load and Display

4. image와 같은 추가적 정보 Request

5. Image page load and Display

* 4,5는 추가적 정보들이며 Web page의 Contents를 전부 받을 때까지 반복으로 수행38

Page 39: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

http://www.google.com/search?q=wiznetDomain URI query string

- Domain : The physical server where website is hosted- URI : The ID which maps to files on server- Query String Part of a GET request to in values to customize the output

39

Page 40: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

HTTP Request and Response

1. Browser RequestGET /search?q=wiznet HTTP/1.1

2. Web Server Finds File/var/www/…/search

3. Server Response/var/www/…/search

4. Browser Displays page

Read File &Processing Query

0. TCP connection- Domain:[port number] (www.google.com:80)

40

Page 41: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

HTTP Request/Response header

41

Source: http://chimera.labs.oreilly.com/books/1230000000545/ch12.html#HTTP2_STREAMS_MESSAGES_FRAMES

Page 42: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Simple HTTP Client

HTTP serverwww.accuweather.com

HTTP ClientW5500-EVB

http://www.accuweather.com/en/kr/sourth-korea-weather

공유기

Tera Term: Web page display 42

Page 43: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Flow chat for Simple HTTP ClientDHCP or

FIX address

Socket() with TCP

Do DNS

connect():Domain_IP:80

send():

recv()

1

2

3

4

5

6

IP address / Subnet Mask / Gateway address / DNS server address 설정

HTTP는 TCP기반의 Protocol

Domain을 IP address로 변경

Domain_IP를 이용하여 port number가 80으로 TCP connect시도

TCP send를 이용하여 GET Request 전송 (web page요청)

TCP recv를 이용하여 web page 수신

43

Page 44: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

Codes

DHCP

Socket() with TCP

Do DNS

connect():Domain_IP:80

send():

recv()

1

2

3

4

5

6

DHCP_init(SOCK_DHCP, gDATABUF); / dhcp_do();

socket(SOCK_HTTPc, Sn_MR_TCP, port, 0x00);

dns_do(SOCK_DNS, buf);

connect(SOCK_HTTPc, Domain_IP, PORT_HTTPS);

send(SOCK_HTTPc, http_cmd, http_cmd_sz-1);

recv(SOCK_HTTPc, buf, size);

44

S0_SR

SOCK_ESTABLISH

SOCK_INIT

S6_SR

SOCK_INIT/UDP

S7_SR

SOCK_INIT/UDP

HTTPc DHCPc DNS

Page 45: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

실습준비 – Teraterm 설정(1)

45

Download: http://en.sourceforge.jp/projects/ttssh2/releases/

1. Board와 PC를 USB cable을 통해 연결한다.

2. Teraterm 실행: Serial체크, Board와 연결된 COM Port선택

Page 46: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

실습 – Teraterm 설정(2)

46

3. Serial port 설정을 위해: menu bar>setup>Serial port…클릭

4. Bard rate를 Board설정과 같이 115200으로 선택한뒤 OK클릭

Page 47: Wiznetacademywiznetacademy.com/wp/wp-content/uploads/2015/03/WIZnet... · 2015. 3. 31. · DHCP(Dynamic Host Configuration Protocol)란? •DHCP서버로셋팅된컴퓨터는 클라이언트들에게할당할IP

실습 – Simple HTTP Client

47

1. Board와 PC를 USB cable을 통해 연결한다.2. Board의 ISP버튼을 누른채 Power On시킨다.3. Flash magic을 이용해 Hex파일을 다운로드한다. 4. Reset키를 누른다. 5. Teraterm을 실행 및 설정한다.

DHCP

DNS

HTTP