1. DNS

 

- DNS란 Domain Name System의 약자로서 ip에 대한 name이나 name에 대한 ip를 알려주는 기능을 한다. DNS는 ARP와 다르게 ip에 대한 name이 mapping되어 있는 곳이 cache가 아닌 hosts file이다. 이 hosts file은 임의로 사용자가 수정하여 정보를 입력할 수가 있다.

 

 

⦁동작 과정

① hosts file에 mapping이 되어 있을 경우

 

- hosts file에 목적지의ip와 name이 mapping되어 있는 경우 단말이 목적지에 [ping 목적지name]의 명령어를 통해 ping을 보내게 되면 단말은 처음 자신이 name에 해당하는 ip가 있는지 없는지 확인하기 위해 hosts file을 열어 본다. hosts file에 name에 대한 ip주소가 있을 경우 그 ip에 ping을 보내기 위해 목적지의 Ethernet address를 알아낸다. ARP가 동작하게 되어 Ethernet address의 정보를 알아낸 후 단말은 목적지에 ping을 보낼 수 있게 된다.

- 이 경우 DNS server는 동작하지 않는다.

 

 

② hosts file에 mapping이 되어 있지 않을 경우

- hosts file에 ip와 name이 mapping되어 있지 않는 경우 단말에서 처음 자신의 DNS에 대한 Ethernet address를 알기 위해 ARP가 동작하고 Ethernet address를 알게 되면 단말은 자신이 알고 있는 name에 대한 ip를 알기 위해 DNS server에 DNS Query message를 보내게 된다. 그럼 DNS server는 자신이 가지고 있는 Database에 저장되어 있는 단말이 알고 싶어 하는 정보를 보내게 되는데 이때 발생하는 message가 DNS Reply message이다. 이런 과정을 통해 단말은 자신이 알고 싶어 하는 name에 대한 ip주소를 DNS server를 통해 알 수 있다.

 

 

- 단말과 DNS server의 동작 과정은 단말은 처음 hosts file을 확인 하게 되고 없으면 DNS server로 Query message를 보내게 되고 DNS server는 자신의 database를 확인하여 정보를 reply message를 통해 단말에게 알려준다. 이때 단말의 hosts file에 ip와 name이 mapping되어 있으면 단말은 DNS server에게 Query message를 보내지 않게 된다. DNS server의 port는 well known port로 53이다. 단말은 임의의 port번호를 사용한다.

 

 

- DNS는 name또는 ip를 뒤에서부터 찾아서 검색 하게 된다.(ex 200.0.1.4이란 ip는 4.1.0.200 in-addr arpa 순서대로 찾아가게 되고, lee.e-watch.ac.kr은 kr.ac.e-watch.lee 순서대로 찾아가게 된다.) gTLD는 name이 가지는 성격에 따라 TLD를 분류한 것이고 nTLD or ccTLD는 나라별로 TLD를 분류한 것이다. FQDN(Fully Qualified Domain Name)은 마지막에 . 이 찍혀있는 것을 말한다.(ex 4.1.0.200의 ip의 FQDN은 4.1.0.200. 이다.)

- ip주소에 대한 name을 찾는 PTR방법도 있는데 이때는 위에서 설명했다 시피 ip뒤에서부터 검색해서 in-addr → arpa 순으로 검색을 하는데 in-addr과 arpa는 ip에 대한 DNS server이다. ip에대한 name을 찾을 때는 항상 붙는다.

 

 ⦁ DNS message의 구조

 

- identification : message의 식별을 하기 위한 영역으로 random number가 들어간다.

• flag

- flages의 Q/R : Request인지 Response인지 구별해준다. Request일 경우 0 Response일 경우 1 이다.

- flages의 앞의 OPCode : Query의 종류를 나타낸다. inverse query일 경우 1이고 server status request일 경우 2, 마지막으로 표준 query일 경우 0이 저장되어 있다.

- flages의 AA : AA는 authoritative answer의 약자로서 answer RR의 영역에 저장되어 있는 정보가 authoritative DNS server가 저장하였는지 다른 DNS가 저장하였는지 알려주는 기능을 한다. authoritative DNS server가 저장하였을 경우 1이 들어가게 되고 다른 DNS server가 저장 한 경우 0이 들어가게 된다.

- flages의 TC : Response message의 길이가 512byte를 초과했는지 알려주는 영역이다. 512byte 초과했을 경우 1 이 들어가게 되고 512byte 이하일 경우 0이 들어가게 된다.

- flages의 RD : 귀환 방식의 mapping방식을 나타내주는 영역이다. 단말이 자신이 알고 싶어 하는 정보를 자신의 DNS가 찾아서 단말에게 알려주기를 원하면 1이 들어가게 된다. 따라서 단말은 Request를 보낸 후 Response가 올 때까지 아무것도 안하고 기다린다.

- flages의 RA : 단말이 원하는 귀환방식(RD)을 호환해주는지 알려주는 영역이다. 1일 경우 호환해줄 수 있다는 것을 나타낸다.

- 0 0 0 : 예약 필드로 기본적으로 0 0 0이 들어가있다.

- flages의 뒤의 OPCode : R code이다. 이것은 return code를 나타낸다. 제대로 Response한 경우는 0이 들어가게 되고 만약 Reply message에 Error가 발생할 경우 값이 들어가게 된다.

- number of questions : questions의 개수를 나타낸다. 보통 한 패킷 당 한 개의 question을 가진다.

- number of answer RRs : query에 대한 response가 발생할 경우 1이 들어가게 된다.

- number of authority RRs : 단말이 알고 싶어 하는 name에 대한 ip정보 또는 ip에대한 name을 가지고 있는 해당 DNS server가 직접 response가 발생하며 값이 저장되고 몇 개의 RR이 발생했는지 알려준다.

- number of additional RRs : 다른 DNS server에서도 response가 올 경우 표시 되고 몇 개의 RR이 발생했는지 알려준다.

 

•  Questions

 

 - Query name string : host name이 저장되어 잇다. host name에 저장될 때 각 부분의 제일 앞에 각 부분의 길이를 앞에 적고 뒤에 어떤 값이 들어가는지 적는다. 마지막 부분이 끝나면 0이 들어가게 된다.(ex infocom.inje.ac.kr일 경우 7infocom4inje2ac2kr0)

- Query type : Query type을 나타낸다. 1(A type)은 name에 대한 ip주소를 원할 때 저장되고(0x00 01), 2(NS type)은 자신이 알고 싶어 하는 name의 해당 DNS server(authoritative DNS server)가 ip주소를 알려주기를 원할 때 저장되고, 0x00 00(PTR)일 경우 ip주소에 대한 name을 알고 싶을 때 저장된다.

* RTP type은 ip주소에 대한 name을 알아낼 때 사용하는 방식이다. 동작원리는 기본 DNS동작원리와 같다.

- Query class : internet을 의미하는 0x00 01의 값이 저장되어 있다.

•  Resource Record(RR)

 

- name string : Query name string과 같다. 이때 주의 할 점은 c0 xx이 들어가는데 이 c0은 magic number로 이름이 아니라 이름이 있는 위치가 뒤에 있다는 것을 나타낸다. xx는 name string의 위치를 나타내며 message의 처음부터 xx만큼 뒤부터 name string이 시작하는 것을 알려준다.

- Query type : 위의 Query type과 같다.

- Query class : 위의 Query class와 같다.

- TTL : Client cache에 RR의 정보가 저장되어 있을 수 있는 시간이다.

- Resource data length : Resource data의 길이를 나타낸다.

- Resource data : name에 대한 ip나 ip에 대한 name이 저장되게 된다.

'IT > 통신프로토콜 실습&연습문제' 카테고리의 다른 글

통신프로토콜 TCP(1)  (0) 2016.12.20
통신프로토콜 DNS(2)  (0) 2016.12.20
통신프로토콜 DHCP&연습문제(2)  (0) 2016.12.19
통신프로토콜 DHCP(1)  (0) 2016.12.18
통신프로토콜 UDP와 TFTP  (0) 2016.12.18

 

1. DHCP 동작에 대한 추가 실습

 

⦁ 2개의 DHCP server가 설치되어 있을 경우, 이들 중 어떤 server를 우선적으로 선택하는지를 확인하는 실습

 

 

- Wireshar에서 filter를 bootp를 한 뒤 server가 2개 일 때 DHCP packet들을 수집하면 ex) 192.168.52.64, 192.168.52.68이 서버인 것을 알 수 있다. 패킷을 보면 처음 client가 Discovert message를 broadcast망을 통해서 전송하면 이 패킷을 먼저 수신하는 server가 Offer message를 전송 하게 된다. 그럼 client는 이 Offer에 대한 Request message를 전송 하게 되고 그 후 Offer message를 전송한 server에서 ACK message를 client로 전송 하게 되면 client는 그 정보에 대한 ip가 할당 된다. 서버가 하나 일 경우 패킷 수집 되는 순서는 (Discover → Offer → Request → ACK)이지만 서버2개 일 때 패킷 수집 되는 순서는 위와 같다. 왜 이렇게 수집되는지 생각해보니 client는 먼저 온 offer에 대해서 request를 보낸다. 그 후 다른 서버에서 다른 offer가 발생 되면 처음 offer를 전송했던 서버가 내가 전송 했다는 것을 알려 주기 위해 offer를 한번 더 보내는 것 같다. 그 후 request에 대해 ACK를 전송하게 되고 다른 서버에서는 offer를 보냈는데 client에서 응답이 없으니 offer를 계속 보내거나 마냥 기다리는 것을 방지하기 위해 한번 더 ACK를 전송 하는 것 같다. 새로 ip를 할당 받기 때문에 위에 서버 1개 일 때와는 다른 ip주소를 할당 받은 것을 알 수 있다.

 

 

⦁ IP를 자동으로 받은 client는 IP를 renew하기 위해 다시 DHCP server와 통신을 하는데 이때 발생되는 패킷들은 처음 IP를 받기 위해 발생되는 패킷들과 무엇이 다른지 확인하는 실습

 

처음 ip를 할당 받기 위해 전송 했던 request와 ack packet들이다. IP영역을 보면 알 수 있듯 Destination 영역이 broadcast망인 것을 확인 할 수 있고, Source영역은 client는 0.0.0.0의 값이 server는 자신의 ip주소가 저장되어 있다.

 

 

할당 후 renew하기 위한 request와 ack packet은 할당 전에 할당 하기 위한 request와 ack packet들과는 다른 점이 있는데 바로 IP영역에서 Source영역과 Destination영역에 저장되어있는 값이 다르다. 할당 하고 난 후 발생한 패킷들이기 때문에 처음과 같이 broadcast망으로 전송하지 않고 client와 server에 할당되어있는 각각의 ip주소로 통신 하는 것을 알 수 있고 request영역의 client IP address값이 자신에게 할당되어 있는 ip주소가 저장되어 있는 것을 알 수 있다.

 

 

⦁ IP를 자동으로 받은 client의 network cable을 뺏다가 다시 장착했을 경우, client는 server와 통신을 하는지 한다면 어떠한 메시지들이 오고 가는지를 확인

 

- network cable을 빼고 난뒤 다시 장착했을 때 발생하는 packet은 처음에 ip할당받기 위한 discover과 offer이 발생하지 않는 이유는 client가 종료된 것이 아니기 때문에 client와 server에 각각에 대한 정보가 테이블에 저장되어 있다. 이 때문에 바로 request를 보내고 ack를 전송한다. client의 전원이 종료되면 client와 server는 각각에 대한 정보들을 테이블에서 삭제가 될 것이고 처음부터 ip를 할당 받아야 될 것 이다.

Request packet, ACK packet, NAK packet이 오고가는데  처음 request packet에 대한 정보를 보면 client는 자신의 ip를 모르기 때문에 ip를 할당 받기 위하여 request를 보낸다. 이때 discover을 보내지 않는 이유는 network cable을 빼기 전 dhcp server가 존재하는 것을 알고 있었기 때문에 하지 않는다. 이 때 request를 보낼 때 broadcast망을 통해서 보낸다.

- 그 후 ACK가 처음 할당 해준 server에서 오는데 이 때 전과 같은 ip에 대한 정보를 알려 준다.

- 그 후 NAK가 오는데 이것은 할당해준 server가 아닌 다른 server에서 오는 packet이다. 이 packet은 NAK는 네트워크 상에 오류가 있을경우나 특정 경우가 발생할 경우 발생하는데 이 때에는 자신은 ip를 할당을 못해준다는 것을 알려준다.

- 마지막으로 ACK가 한번 더 발생한다. 이 이유는 NAK가 발생하였기 때문이다. NAK도 broadcast망을 통해서 전송이 되는데 이 NAK을 받은 server가 내가 ip를 할당 해주었다는 것을 알려주기 위하여 발생하였다.

 

 

 

 

IP를 자동으로 받은 client가 재부팅을 했을 경우, client는 server와 통신을 하는지 한다면 어떠한 메시지들이 오고 가는지를 확인

 

 - client의 전원을 껏다 켰을 때 server측 컴퓨터에서 수집한 패킷들은 client가 재부팅이 되었기 client와 server는 각각에 대한 정보를 가지고 있지 않게 된다. 따라서 client는 처음부터 ip를 할당 받아야 하기 때문에 Discover → Offer → Request → ACK 순으로 패킷이 발생한다.

- 처음부터 ip를 할당 받기 때문에 모든 패킷들의 Destination은 255.255.255.255으로 broadcast망을 통해서 전송이 된다.

 

2. 연습문제 풀이

 

[1] 다음중 틀린것은?

a) BOOTP와 RARP는 고정적인 IP할당방법이다.

b) DHCP는 동적인 IP할당 방법뿐만 아니라 고정적인 IP할당방법도 수행한다.

c) BOOTP와 DHCP는 동일한 포트번호를 사용한다.

d) RARP는 IP주소뿐만 아니라 DNS와 게이트웨이 주소도 알려준다.

 

→ RARP는 RARP와는 반대로 맥주소만 알고 있는 단말의 ip를 찾는 프로토콜이다. 이 프로토콜은 ip address만 제공해주며 다른 정보들은 제공 해주지 않는다. DNS와 게이트웨이 주소도 제공해주는 프로토콜은 DHCP이다.

 

[2] DHCP의 옵션 영역의 시작을 알리는 영역은  _______이다.

 

a) Server Name   b) Boot file Name   c) Magic cookie   d) Transaction ID

 

[3] DHCP 클라이언트가 최초로 전송하는 메시지는                 이다.

 

a) DHCP Offer             b) DHCP Release

c) DHCP Request          d) DHCP Discover

 

→ client는 자신에게 ip를 할당해 주는 server를 찾아야 하기 때문에 최초로 DHCP Discover Message를 broadcast를 통해서 전송한다.

 

[4] DHCP 서버가 클라이언트에 제공하는 것이 아닌 것은?

 

a) 클라이언트 IP주소               b) 클라이언트 MAC주소

c) 서버 IP주소                        d) 서버 MAC 주소

 

→ client의 Ethernet MAC address는 client가 처음부터 알고 DHCP는 ip를 할당 받는 것이기 때문에 ip에 대한 정보를 모를 뿐 Ethernet MAC address에 대한 정보는 자신이 가지고 있다.

 

[5] DHCP메시지가 BOOTP 메시지에 포함되어 있음은             영역에서 알 수 있다.

 

a) boot file 영역       b) 플래그 F  

c) Magic cookie       d) Option type 53

 

→ DHCP message와 BOOTP message의 패킷형식은 동일하다. DHCP에 대한 관련 정보는 Option영역에 포함되어 있다. 따라서 이 Option영역이 있다는 것을 알면 이 패킷이 DHCP 패킷인지 BOOTP 패킷인지 구별 할 수 있는데 이 Option영역의 시작을 알려주는 영역이 Magic cookie영역이기 때문에 이 Magic cookie영역으로 알 수 있다.

 

[6] RARP, BOOTP등에 의한 IP할당과정에 비하여 DHCP의 장점은 무엇인가?

 

→ RARP와 BOOTP등에 의한 ip할당에 비하여 DHCP가 가지는 장점은 DNS, Gateway address, Subnet Mask까지 통신에 필요한 정보를 모두 할당 받을 수 있다. RARP와 BOOTP는 자신의 MAC address에 대한 ip주소만 할당 받을 수 있기 떄문에 DNS, Gateway address, Subnet Mask의 정보를 제공 받지 못한다.

 

[7] DHCP절차에서 사용된 IP주소의 종류를 열거하여라.

 

→ DHCP에서 사용되는 ip주소는 client가 자신의 ip를 몰라서 쓰는 0.0.0.0 과 Discover, Offer, Request, ACK 등을 전송하기 위한 255.255.255.255 그리고 server ip가 사용된다.

- Server ip : 말그대로 DHCP Server 자신의 ip주소를 가르킨다.

- 0.0.0.0 : 특수 ip주소로 현재 이 망에 잇는 호스트이지만 자신의 ip를 모를 때 사용한다.

- 255.255.255.255 : 위의 ip와 같이 특수 ip로서 라우터 내에 연결되어 있는 모든 네트워크 단말들에게 패킷을 전송할 때 사용한다.

'IT > 통신프로토콜 실습&연습문제' 카테고리의 다른 글

통신프로토콜 DNS(2)  (0) 2016.12.20
통신프로토콜 DNS(1)  (0) 2016.12.19
통신프로토콜 DHCP(1)  (0) 2016.12.18
통신프로토콜 UDP와 TFTP  (0) 2016.12.18
통신프로토콜(ICMP)(1)  (0) 2016.12.17

1. DHCP server가 없는 경우 client에서의 동작에 대한 확인

⦁ DHCP servcer가 없는 경우, clent에서는 어떠한 동작을 하는지를 확인하는 실습

⦁ DHCP 관련하여 어떤 메시지를 몇 번, 어떤 시간 간격으로 보내는지, 보내는 메시지 내의 field 중 broadcast flag 값은 0인지 1인지 등을 확인

- DHCP server가 없는 경우 client는 server에게 계속 해서 DHCP Discover Message를 보내게 된다. DHCP server가 구축되어 있을 경우 server는 client에게 DHCP Offer Message를 보내게 되겠지만 그렇지 않은 경우 server로부터 client에게 응답을 하지 않게 되므로 client는 server를 찾기 위해 Broadcast망을 통해서 DHCP server를 찾기 위해 DHCP Discover Message를 계속해서 송신 하게 된다.

 

-client는 일정한 주기를 가지지 않고 랜덤 시간간격으로 Discover Message를 발생 시키는 것을 알 수 있다. 또, broadcast flag영역은 모두 0의 값이 들어있다.(broadcast flag영역의 값으로 나중에 ip를 할당 받을 때 어떤 망으로 받을지 결정 지어 진다.)

 

 

2. Linux 상에 DHCP Server 설치 실습

⦁ Linux가 설치된 컴퓨터에 DHCP Server를 설치(Linux에서의 DHCP server 설치 및 설정 과정 리포트에 작성)

① yum 명령어를 통하여 DHCP를 설치한다.

- yum –y install dhcp

- yum –y install dhcp-devel

- dhcp가 있는지 확인한다.

 

② dhcpd.conf 만들기

명령어 - rpm -qa I grep dhcp

명령어 -

cp/usr/share/doc/dhcp4.1.1/dhcpd.conf.sample/etc/dhcpd.conf

-> y

 

- 설치된 dhcp의 버전을 확인(rpm –qa –I grep dhcp) 후 설치 된 dhcp의 폴더안에 있는 dhcpd.conf.sample파일을 복사 한다.

-(cd/usr/share/doc/dhcp4.1.1/dhcpd.conf.sample /etc/dhcpd.conf) : 앞의 디렉토리 안에있는 dhcpd.conf.sample 파일을 etc디렉토리 안의 dhcpd.conf파일로 복사한다는 뜻이다.

 

- 그 후 vi /etc/dhcpd.conf 명령어를 통해 dhcpd.conf파일을 열어 위와 같이 자신의 ip와 서브넷 마스크 기본게이트웨이 등으로 자신의 환경에 따라 설정한다.

 

⦁ Wireshark를 이용하여 DHCP관련 Packet 수집 및 분석

- Wireshark으로 capture한 DHCP packet들을 리포트로 작성하고 설명 추가

- DHCP 동작 과정(이론) 정리하고 수집한 패킷들을 통해 동작과정 비교

 

- DHCP를 통해 ip를 할당 받기 전 ifconfig를 통하여 ip주소를 확인 해본 결과 Ethernet(MAC) 주소에 대한 정보만 나타나고 IPv4에 대한 ip정보는 없는 것을 알 수 있다.

 

- DHCP를 통해 할당 받은 직후 wireshark를 통하여 패킷을 수집한 결과 Discover, Offer, Request, ACK Message 이렇게 총 4개의 패킷이 수집이 된 것을 확인 할 수 있다.

 

- DHCP의 기본 이론 적인 동작 과정은 ip주소를 할당 받지 않은 client가 server를 찾기 위하여 broadcast망을 통하여 discover message를 모든 단말에게 송신한다. 네트워크 내에 server가 존재 할 경우 server는 broadcast망을 통해 수신 한 message에 대한 답을 한다. 내가 ip를 할당 해 주겠다고 offer message를 똑같이 broadcast망을 통해서 보낸다.(broadcast로 보내면 누가 받을지 결정하기 어려운데 dhcp packet에는 transaction id 영역이 있다. 이 영역은 random number로 client가 discover packet을 만들 때 넣어서 송신한다. 이것으로 수신자와 송신자가 어디로 보낼지 누구 것인지 구별 할 수 있다.) 그럼 이 offer message를 받은 client는 server에게 offer message를 통하여 받은 정보를 사용해도 되는지 한번 더 물어보기 위해 request message를 보낸다. server는 request message를 받으면 사용해도 되면 ack message를 보내고 네트워크 상에 문제가 생겨 사용하면 안될 경우 nack message를 보낸다. 이때 request message와 ack, nack message 모두 방송망을 통해서 송신하고 port번호와 transaction id로 누구 것인지 판별한다.

- 수집된 packet들을 보면 ip(0.0.0.0)를 모르는 단말이 discover message를 broadcast망(255.255.255.255)을 통해서 discover message를 송신 하는 것을 알 수 있다. 이 message를 받은 server(192.168.52.68)은 broadcast망을 통하여 offer message를 전송하고 이 offer를 받은 ip할당 안된 단말은 broadcast망을 통해서 request message를 전송한다. 마지막으로 server는 broadcast망을 통해서 ACK message를 전송한다. ACK message를 전송 받은 단말(ip할당 받지 않은 단말은) ip를 가지게 된다.

 

-  ACK Packet 안의 정보를 살펴 보면 your client IP address 의 영역에 저장되어 있는 값이 사용하게 될 ip의 주소가 된다.

 

- ACK message를 수신한 client에서 ifconfig를 통하여 ip를 확인 한 결과 ip주소가 ACK message에 저장되어 있던 ip주소와 같은 것을 확인 할 수 있다.

 

 

3. 임대 주소 받기 전과 후를 비교 분석

 Discover Packet

- Message type : Boot request(1)로 client가 server로 전송하는 패킷인 것을 알 수 있으며 이 packet을 보면 source ip : 0. 0. 0. 0 Destination ip : 255. 255. 255. 255(braodcast)가 들어 가있으며 정보들이 아무 것도 저장되어 있지 않다. 아래 Hex 코드를 보면 Source Ethernet address : 자신의 Ethernet address가 들어가 있으며 Destination Ethernet address : FF FF FF FF FF FF 로 broadcast인 것을 알 수 있다. 또 source port : 0x=44(68)DHCP client, Destination port : 0x43(67)DHCP server를 나타내고 있다.

 

•  Offer packet

- Message type : Boot request(2)로 server가 client로 전송하는 패킷인 것을 알 수 있으며 client에게로 정보를 싫어서 전송한다. 아래 Hex 코드를 보면 Source Ethernet address : 자신의 Ethernet address가 들어가 있으며 Destination Ethernet address : FF FF FF FF FF FF 로 broadcast인 것을 알 수 있다. 또 source port : 0x=43(67)DHCP server, Destination port : 0x44(68)DHCP client를 나타내고 있다. 또, ip주소를 나타내는 영역을 보면 source ip영역 (server의 ip)이 c0 a8 34 44(192.168.52.68)인 것을 알 수 있고(위의 패킷수집 되는 부분에서도 알 수 있다.) Destination ip영역은 FF FF FF FF(255.255.255.255)로 방송망을 통해 전송 되는 것을 알 수 있다.

 

•   Request packet

- Message type : Boot request(1)로 client가 server로 전송하는 패킷인 것을 알 수 있으며 이 packet을 보면 source ip : 0. 0. 0. 0 Destination ip : 255. 255. 255. 255(braodcast)가 들어 가있다. 정보들이 아무 것도 저장되어 있지 않다. 아래 Hex 코드를 보면 Source Ethernet address : 자신의 Ethernet address가 들어가 있으며 Destination Ethernet address : FF FF FF FF FF FF 로 broadcast인 것을 알 수 있다. 또 source port : 0x=44(68)DHCP client, Destination port : 0x43(67)DHCP server를 나타내고 있다.(전체 적인 모양은 Discover와 같다.) 하지만 밑에 Option영역이 다른 것을 알 수 있다. Option영역에는 Discover에 포함되어 잇지 않은 50과 55가 들어 가있다. 50은 request ip address영역으로 할당되는 ip를 물어보는 것을 뜻한다.

 

 

•   ACK packet

 - Message type : Boot request(2)로 server가 client로 전송하는 패킷인 것을 알 수 있으며 client에게로 정보를 싫어서 전송한다. 아래 Hex 코드를 보면 Source Ethernet address : 자신의 Ethernet address가 들어가 있으며 Destination Ethernet address : FF FF FF FF FF FF 로 broadcast인 것을 알 수 있다. 또 source port : 0x=43(67)DHCP server, Destination port : 0x44(68)DHCP client를 나타내고 있다. 또, ip주소를 나타내는 영역을 보면 source ip영역 (server의 ip)이 c0 a8 34 44(192.168.52.68)인 것을 알 수 있고(위의 패킷수집 되는 부분에서도 알 수 있다.) Destination ip영역은 FF FF FF FF(255.255.255.255)로 방송망을 통해 전송 되는 것을 알 수 있다. 이 ACK packet도 Request packet과 마찬가지로 위에서 server가 client에게 전송했던 Offer packet과 같은 값이 저장되어 있다. 그리고 Option영역도 Offer packet과 같은 값이 저장되어 있다. 이 것으로 알 수 있는 것은 client에게 offer로 전송한 정보를 client가 사용해도 된다고 알려주는 packet인 것을 알 수 있다,

1. TFTFD를 설치하고 TFTP 서버를 가동하여 TFTP 사용 실습

 

① yum install tftp tftp-server 로 tftp-server를 설치함.

 

②/etc/xinetd.d/tftp 파일을 열어서 수정

- vi/etc/xinetd.d/tftp로 연 뒤  disable=no, server_args= -s -c/var/lib/tftpboot로 변경 vi명령어를 통하여 파일을 수정하고 wq명령어로 빠져나옴.

③ service xineted restart 명령어를 실행

 

④ 실제 파일을 전송 및 수신하면서 발생되는 UDP 패킷을 수집하는 실습을 수행

명령어: tftp 파일전송할 IP

-> get 파일이름 (파일받아오기) put 파일이름(파일 올리기)

 

2. FTP와 TFTP의 차이점

 

- FTP : FTP는 File Transfer Protocol의 약자이다. FTP의 하위 Transport Layer는 TCP(Transfer Control Protocol)로 구성되어 있다.

 

- TFTP : TFTP는 Trivial File Transfer Protocol의 약자이다. TFTP의 하위 Transport Layer는 UDP(User Datagram Protocol)로 구성되어 있다.

→ FTP와 TFTP는 각각이 가지는 하위 Transport Layer가 다르다. FTP가 가지는 하위 Transport Layer의 TCP(Transfer Control Protocol)는 연결지향형 방식으로 네트워크의 다른 서버와 통신할 때 데이터의 단 1bit라도 깨지거나 손실이 되면 안 된다. 예를 들면 Download와 같은 경우를 들 수 있다. 그리고 TFTP가 가지는 하위 Transport Layer의 UDP(User Datagram Protocol)은 비 연결지향형 방식으로 네트워크의 다른 서버와 통신할 때 데이터의 일부분이 손실되거나 바뀌어도 통신하는데 아무 지장이 없다. 예를 들면 음성통신, 영상통신을 들 수 있다.

※ FTP와 TFTP는 통신 할 때 사용하는 Transport Layer가 다르다.

 

 

3. TFTP 동작과정 설명

 

- TFTP는 패킷을 손·수신 할 때 TFTP Message를 보낸다. TFTP Message의 구조는 IP Header, UDP Header, OPcode로 기본 구성되어 있으며 OPcode에 따라 패킷에 더 많은 정보가 들어가게 된다. OPcode는 01 ~ 06까지 있다.

 

01 : Read Request를 의미하며 파일 Read시에 클라이언트가 서버로 보내는 TFTP Request Message를 의미한다.

 

02 : Write Request를 의미하며 파일 Write시에 클라이언트가 서버로 보내는 TFTP Request Message를 의미한다.

 

- 01, 02 Request Message에는 mode의 영역이 들어가게 된다. mode의 영역은 Netascii과 Octet이 있다. Netascii은 Read, Write할 때 데이터가 텍스트 파일 형식인 것 이고, Octet은 Read, Write할 때 데이터가 exe 파일 형식인 것이다.

 

03 : data를 의미하며 TFTP Message가 data를 포함하고 있다는 것을 의미한다.

 

- 03 의 TFTP Message는 Block Number와 Data영역이 들어가게 된다. Block Number는 데이터의 몇 번째 데이터인지 알려주는 번호이며, Data영역은 데이터를 의미한다.

 

04 : ACK를 의미한다. 파일 Read시에 Read Request를 받은 서버가 클라이언트로 데이터 패킷을 보낸 후 데이터 패킷을 수신한 클라이언트가 서버로 “데이터 패킷을 수신하였다.”라는 것을 알려주며 파일 Write시에 Write Request 받은 서버가 클라이언트로 “Request Message를 받았다.” 라는 것을 알려주거나 클라이언트가 서버로 데이터 패킷을 보낸 후 수신한 서버가 클라이언트로 “데이터 패킷을 수신하였다.”라는 것을 알려주는 기능을 한다.

 

- 04 의 TFTP Message는 Block Number가 있다. Read시에는 데이터를 수신한 클라이언트가 몇 번째 데이터를 받았는가를 알려주는 숫자이다. Write시에는 서버가 클라이언트에게 몇 번째 데이터가 업로드 되었는지 알려주는 번호이다.

 

05 : Error를 의미한다. 데이터를 전송할 때 전송한 데이터에서 오류가 발생했음을 의미하는 패킷이다.

 

- 05 의 TFTP Message는 Error Number와 Error Message가 들어가게 된다.

 

06 : Option ACK를 의미한다. 01, 02 TFTP Message의 Mode영역뒤에 데이터의 Size를 기입하여 보내게 되면 수신한 서버가 Size에 대하여 클라이언트에게 자신의 최대 데이터 송·수신 Size를 알려주는 Message를 뜻한다.

 

- 06 의 TFTP Message는 Option Data영역이 들어가게 되는데 이 Option Data영역은 자신의 최대 데이터 송·수신 Size를 기입하는 영역이다.

 

 

⦁ TFTP 파일 Read시 TFTP의 동작 과정

 

 

- 클라이언트가 서버로 TFTP Reqeust Message를 보낼 때 UDP Header의 Source port영역에는 임의의 값을 지정하고 Destination port영역에는 TFTP port번호인 69번을 넣고, OPcode에는 Read Request인 01을 넣어 전송한다. 이때 서버는 자신의 TFTP port를 사용하지 않고 임의의 port를 사용하여 source port영역에 넣어 데이터를 송신한다. 그 이유는 다른 클라이언트가 TFTP Request Message를 발생 시키면 TFTP 서버는 그것에 대하여 응답해줘야 하기 때문에 임의의 port번호를 사용한다. 그 후 서버는 클라이언트에게 데이터 번호와 데이터를 전송하고 클라이언트는 데이터를 수신하면 ACK Message를 보내며 Block Number는 데이터를 받는 순서대로 1, 2, 3 ... 증가가 될 것이다. 만약 서버가 데이터를 전송하였는데 클라이언트에게서 ACK Message를 받지 못한다면 서버는 ACK Message의 Block Number에 해당하는 데이터를 한번 더 송신하게 될 것이다. 그리고 마지막으로 데이터의 크기가 512Byte가 아닌 데이터를 서버가 클라이언트에게 보내면 ACK Message가 마지막으로 발생하게 되고 서버는 데이터를 더 이상 보내지 않게 될 것이다. 만약 마지막 Data의 크기가 512Byte이면 서버는 다시 한번 크기가 0Byte인 데이터를 클라이언트에게 전송하게 된다. 그럼 클라이언트는 마지막 데이터인 것을 알아차리게 된다.

 

⦁ TFTP 파일 Write시 TFTP의 동작 과정

- 클라이언트가 서버로 TFTP Reqeust Message를 보낼 때 UDP Header의 Source port영역에는 임의의 값을 지정하고 Destination port영역에는 TFTP port번호인 69번을 넣고, OPcode에는 Read Request인 02을 넣어 전송한다. 그 후 서버는 클라이언트로 ACK Message를 전송하게 되는데 이 때 서버는 자신의 TFTP port번호를 사용하지 않고 임의의 port번호를 사용하게 된다. 그 이유는 데이터를 Upload할 때 자신의 port번호가 아닌 임의의 port번호로 전송하라는 것을 알려주기 위해서 임의의 포트를 사용하기도 하며 다른 클라이언트가 TFTP Request Message를 발생 시키면 서버는 이 Meesage에 대해서 응답 해줘야 하기 때문에 임의의 port번호를 사용하기도 한다. ACK Message의 Block Number는 0의 값이 들어가게 된다. Data를 받은 것이 아닌 Request에 대한 응답 Message이기 때문이다. ACK Message를 받은 클라이언트는 서버로 데이터를 전송하게 되는데 Read와 마찬가지로 몇 번 데이터인지 데이터의 크기는 얼마인지를 알려준다. 그럼 서버는 몇 번 데이터를 받았는지 ACK Message를 알려주게 되고 클라이언트가 전송하는 데이터가 512Byte보다 작으면 마지막 데이터인 것을 서버가 알게된다. 만약 마지막 데이터가 512Byte이면 서버는 크기가 0Byte인 데이터를 한번 더 전송 하게 된다.

 

 4. UDP를 이용하는 다양한 응용 계층 프로토콜

- UDP : User Datagram Protocol의 약자로서 데이터를 송·수신 할 때 송신측과 수신측이 송·수신한다는 신호를 보내지 않고 송신측이 일방적으로 수신측으로 데이터를 전송하는 프로토콜이다. 이때 전송되는 데이터의 소수 일부가 깨지거나 손실되어도 수신측은 아무 제약이 없다.

 

- TFTP : Trivial File Transfer protocol의 약자이다. 이 프로토콜은 가벼운 형태의 파일을 전송할 때 사용하는 프로토콜이다.

 

- DHCP : Dynamic Host Configuration Protocol의 약자로서 동적으로 Host IP를 할당 하기 위하여 사용하는 프로토콜이다. DHCP는 물어 보지 않고 ip를 할당하기 때문에 하위 Transport Layer가 UDP라고 할 수 있다.

 

- DHCPv6 : DHCPV6는 DHCP와 같은 기능을 하지만 IPv6에서 사용되는 DHCP이다.

 

- DNS : Domain Name Service으 약자로서 www.naver.com과 같이 문자로 된 주소를 가지고 ip주소를 찾아내는 기능을 한다.

 

- NBNS : NetBIOS Name Server의 약자로서 네트워크에 연결된 다른 컴퓨터들 간의 이름이 중복되지 않도록 도와주는 기능을 한다.

 

- LLMNR : Link Local multicast Name Resolution의 약자로서 DNS와 비슷한 기능인데 DNS는 문자로 된 주소를 가지고 ip주소를 찾아내는 기능을 하는 반면 이 LLMNR은 host 이름을 가지고 ip주소를 찾아내는 기능을 한다. 이 기능은 같은 네트워크 내에서 내 컴퓨터 외의 다른 컴퓨터의 정보를 알아낼 때 사용한다.

 

- SSDP : Simple Service Discovery Protocol의 약자로서 자신의 방송망의 채널과 포트를 다른 단말들에게 알려주는 기능을 하며 알림을 받은 단말들은 유니 캐스트 망으로 응답을 한다.

 

5. 실시간으로 빠르게 전송하는 것이 중요한 대부분의 트래픽들은 UDP를 통하여 전송된다. 실시간 패킷 전송에 사용되는 프로토콜인 RTP와 RTCP란

 

- RTP : RTP는 Real Time Transport Protocol의 약자이다. 이 RTP는 실시간으로 데이터를 전송할 때 쓰이는 프로토콜로 음성이나 영상을 통신할 때 쓰인다.

 

- RTCP : Real Time Transport Control Protocol의 약자이다. 이 RTCP는 음성이나 영상등 실시간 데이터 전송이 중요하여 RTP를 사용하는 경우에 사용되는 프로토콜이다. RTCP는 데이터를 전송하는데 에는 관여를 안한다. RTP노드가 자신의 상태와 자신과 연결된 네트워크의 상태를 분석하여 다른 노드들에게 보고하기 위하여 쓰는 프로토콜이 RTCP이다.

1. cmd 창에서 ping 명령어를 입력하여 ICMP 패킷 수집 실습

 

  cmd창에서 ping명령어를 통하여 ICMP Request Message와 ICMP Reply Message를 발생 시켯다. ICMP는 Internet Control Message Protocol의 약자이다. ICMP Message는 패킷을 송신 할 때 송신 도중 패킷에 문제(라우터에서 버려지는 경우 혹은 목적지 단말에서 문제가 발생하는 경우)가 생기는 경우나 네트워크가 정상 작동 하는지 알아 볼 때 발생 하는 Message로 임의의 단말이 정상 작동 중인지 확인 하기 위하여 임의로 ping 명령어를 통하여 ICMP Request Message와 ICMP Reply Message를 발생 시킨 것이다.

 

 ⦁ ICMP Request/Reply 패킷 비교

- Request 패킷

 

 Source 측은 ping명령어를 실행한 컴퓨터의 ip주소이며 Destination은 ping을 받는 대상의 컴퓨터의 ip주소이다. 밑에 ICMP 정보를 보여주는 Internet Control Message Protocol영역을 살펴보면 Type과 Code가 있는데 이 2개의 정보가 ICMP Message에서 가장 핵심이 되는 정보이다. Type은 ICMP Message의 Error의 종류를 나타내며 Code는 Type에 따뜬 Error의 정보를 제공 하여 준다. 위의 ICMP Request Meesage의 Type은 8이며, Code는 0이다, 이 Type 8 Code 0 가 뜻하는 것은 Echo Request를 뜻하는 것으로 상대 단말이 죽었는지 살았는지 물어볼 때 발생하는 ICMP Message이다.

 

 

- Reply 패킷

ICMP Reply Message는 해당하는 ICMP Request Message에 응답하는 Message로써 Source 에는 ICMP Request측에서의 Destination의 ip가 들어가며 Destination은 ICMP Request측에서의 Source의 ip가 들어가는 것을 알 수 있다.

이 ICMP Reply Message는 Type과 Code는 0이다. 이 Type과 Code로 알 수 있듯이 ICMP Reply Message는 Type과 Code를 0의 값이 들어가며 이 것이 뜻하는 것은 Echo Request에 응답하는 Echo Reply라는 것을 알 수 있다.

 

 2. time exceeded ICMP 패킷 수집 실습

-명령어 ex) tracert kr.yahoo.com

 

- tracert명령어는 송신측과 목적지 사이의 라우터에 대한 정보와 목적지의 정보를 나열하여 주는 명령어이다. tracert명령어를 사용하여 나열되는것을 볼 수 있는데 만약 1 ~ 21까지 나열 되면  21번째를 보면 목적지인 kr.yahoo.com에 대한 정보가 있는 것을 알 수 있다. 이것으로 보아 송신측에서 kr.yahoo.com까지 가는데 총 20개의 라우터를 거치고 21번째에 kr.yahoo.com에 도착한 것을 알 수 있다.

- 처음 CMD창에서 알 수 있었던 정보들을 위의 패킷들을 보면 더욱 알기가 쉽다. 패킷들을 위에서부터 살펴보면 처음 ICMP Request Message의 TTL의 값은 1이 되어 있다. 그 후 Time Exceeded Message가 발생한 뒤의 ICMP Request Message의 TTL의 값은 2가 되어 있다. 쭉 살펴보면 Time Exceeded Message가 발생한 후의 ICMP Request Message의 TTL의 값은 이전의 ICMP Request Message의 TTL값에서 +1한 값이 들어가게 되는 것을 알 수 있고 목적지 도달한 21번째에는 ICMP Request Message가 발생한 후 Time Exceeded Message가 발생하지 않고 ICMP Reply Message가 발생 하는 것을 알 수 있다.- Tracert는 처음 송신측에서 ICMP Request Message를 보내는데 이때 이 ICMP Request Message 패킷의 TTL(라우터를 거칠 때 마다 –1을 한다.) 은 1로 넣어둔다. 이 ICMP Request Message가 라우터에 도착하게 되면 TTL값은 –1을 하게 되고 0이 되면 목적지가 아님에도 불구하고 패킷을 버리게 된다. 라우터에서 패킷을 버리게 되면 목적지는 패킷을 받지 못하기 때문에 ICMP Message를 보내게 되는데 이때 발생하는 ICMP Message를 Time Exceeded Message라고 부른다. 이 Time Exceeded Message는 위에서 말했다 시피 패킷의 TTL값이 0이 되어 패킷을 버려지는 경우에 발생하는 ICMP Message이다. 라우터에서 이 Time Exceeded Message가 발생하면 이 패킷의 Source의 정보는 라우터에 해당하는 ip주소가 들어가게 되고 Destination의 정보는 송신측의 ip가 들어가게 된다. 이 Time Exceeded Message를 송신측에서 수신을 하게 되면 다시 송신측은 ICMP Request Message를 발생하게 되는데 이 때 TTL의 값은 이전에 보냈던 패킷의 TTL값에서 +1을 하여 보내 게 된다. 그러면 라우터를 하나 거칠 때 마다 TTL의 값은 –1이 되고 결국 TTL의 값이 0이 되면 또 다시 Time Exceeded Meessage가 발생 하게 되고 송신측은 TTL의 값을 +1을 또 한다. 이렇게 반복적으로 ICMP Request Message의 TTL값을 늘리고 Time Exceeded Message를 발생시키면서 라우터를 거치게 되어 결국 목적지 단말에 도착하게 되면 목적지 단말은 Time Exceeded Message가 아닌 ICMP Reply Message를 송신측에 보내게 되고 송신측은 이 ICMP Reply Message를 수신 받게 되면 더 이상 ICMP Request Message를 보내지 않게 된다.

 

 

⦁ Tracert와 ping의 ICMP 패킷과의 차이

 

-ICMP

 

ping명령어는 해당 네트워크가 살아있는지 죽었는지 확인하기 위하여 임의적으로 ping을 보내어 ICMP Request Message를 발생시킨 후 목적지 단말에서 수신하게 되면 ICMP Reply Message를 송신측에 송신하여 수신하는 방법으로 단순히 목적지 단말이 살아있는지 죽었는지 확인하기 위하여 사용 하는 명령어이다. 이 명령어를 사용하여 수집되는 ICMP Request Message의 패킷의 Source측은 ping명령어를 실행 시키는 컴퓨터의 ip주소가 적혀 있으며 Destination측은 목적지 단말의 ip주소가 적혀 있다. 그리고 위에서 말했다 시피 ICMP Request Message의 Type과 Code는 각각 8과 0이다. 그리고 ICMP Reply Message의 Source측은 목적지 단말의 ip주소가 적혀있으며 Destination측은 송신측의 ip가 적혀 있다. 이렇게 하여야지 송신측은 목적지 단말이 ICMP Request Message를 잘 받은 것을 확인 하고 살아있는 것을 알 수 있기 때문이다.

 

-Tracert

 

Tracert명령어는 ping처럼 목적지단말에 ICMP Request Message를 보낸다. 하지만 이 Tracert명령어에서 보내는 ICMP Request Message는 ping명령어로 발생되는 ICMP Request Message와 다르게 TTL값을 정한 후 ICMP Request Message를 송신하게 된다. 이 TTL값은 처음 ICMP Request Message가 발생할 때 1로 설정하여 보내게 된다. 송신된 이 패킷은 라우터를 거치면서 TTL의 값을 –1한다. 만약 이 값이 0이 되면 이 ICMP Request Message는 버려지게 되고 라우터는 ICMP Request Message를 버린 것을 알려주기 위해 Time Exceeded Message를 발생 시킨다. 이 Time Exceeded Message는 Source측은 ICMP Request Message를 버린 라우터의 ip가 저장되며 Destination측에는 송신측의 ip가 적히게 된다. 이렇게 Time Exceeded Message를 통하여 송신측과 목적지 단말사이의 라우터의 정보를 알 수 있게 된다. 그리고 송신측은 Time Exceeded Message를 수신받은 송신측은 위에서 설명하였다 시피 ICMP Request Message를 발생시키는데 이때 TTL값을 +1하여 발생시킨다. 이렇게 발생한 패킷은 라우터를 거치게 되고 처음 ICMP Request Message를 버린 라우터를 거쳐 다음 라우터에 가면 TTL값이 0이 되므로 그 해당 라우터의 정보를 다시 알 수 있게 된다. 반복적으로 이런 작업을 하다가 결국 목적지 단말에 도달하면 더 이상 Time Exceeded Message를 발생시키지 않고 ICMP Reply Message를 발생시켜 송신측이 더 이상 ICMP Request Message를 발생시키지 않게 하고 ICMP Reply Message를 통하여 목적지 단말의 정보를 알 수 있게 된다.

 

=> 이렇게 Tracert는 ping과 다르게 Request, Reply Message외에 Time Exceeded Message가 발생하고 여기서 Request Message의 TTL의 값은 ping과는 다르게 송신측에서 값을 정하여 송신한다.

1. static entry 추가 후 동작 실습

⦁ arp 명령을 이용하여 arp cache에 static entry를 추가하고 해당 IP로 ping을 수행

- 명령어 예제 : C:>arp –s 192.168.0.1 00-16-EC-AD-B1-1F

 

rp –d명령어를 실행하여 기존에 있던 ARP 테이블안의 List들을 모두 삭제 한 후 직접 arp /s 192.168.0.1 00-16-ec-ad-b1-1f 명령어를 사용하여 직접 ip주소와 Ethernet address를 연결하여 ARP 테이블 안에 저장하였다.(arp /s 명령어는 사용자가 직접 ip주소와 Ethernet address를 입력하여 ARP테이블안에 저장시키는 기능을 하는 명령어이다.)

 

- 그 후  ping 명령어를 이용하여 192.168.0.1에 핑을 보내면, 보내는 패킷은 4개이고 손실되는 패킷은 4개이다. 이 때 보내지는 패킷은 Request Message패킷이고 손실 되는 패킷은 Reply Message 패킷이다.

 

 

⦁ ICMP 패킷을 수집한 다음 echo request패킷의 Ethernet header에 잇는 목적지 주소를 확인

 - ICMP(Internet Control Message Protocol)는 인터넷 환경에서 오류에 관한 처리를 지원하는 용도로 사용되며, IP 패킷의 데이터 부분에 캡슐화되어 송신 호스트에게 전달된다. TCP/IP 기반의 통신망에서 전송 과정에 문제가 발생하면 라우터에 의해 ICMP 메시지가 자동으로 발생하여 패킷 송신 호스트에게 전달된다.

- 192.168.52.1대역에서 ping명령어를 사용하여 192.168.0.1에 핑을 보낼 때 발생하는 패킷들을 Wireshark로 수집한 내역들이다. 여기서 수집된 패킷 4개 모두다 Request 패킷인 것을 알 수 있다. 그리고 no response found! 라는 문구를 볼 수 있는데 이 것은 192.168.0.1에 핑을 보냈는데 반응이 없다라고 하는문구로 Reply 패킷이 없다는 뜻이다.  이 패킷들의 Ethernet Header에 있는 목적지 주소는 MAC address로 구성되어 있는데 이 것은 192.168.0.1에 대한 MAC address가 아니다. 이 Ethernet Header안에 있는 Destination에 있는 정보는 192.168.52.1에 대한 MAC address이다. 그 이유는 192.168.0.1은 외부 망의 ip주소로 해당 컴퓨터에서 ARP Request Message를 보낼 때 해당컴퓨터에서 192.168.0.1로 ARP Request Message를 보내지 않고 아니라 기본게이트웨이 주소로 ARP Request Message를 보내기 때문에 Destination의 정보는 192.168.52.1의 MAC address가 담겨져 있다.

 

  ⦁ ping을 이용한 통신이 제대로 되는지 확인하고 안 되는 경우 그 이유를 리포트에 정리

 

- Wireshark에서 패킷을 수집하여 관찰 하였듯이 192.168.52.1대역에서 ping 명령어를 이용하여 192.168.0.1에 핑을 보낼 경우 Request만 발생하고 Reply는 발생하지 않는다. 그 이유는 192.168.0.1은 사설망 ip주소로 사설망 ip주소는 외부에서는 접속이 불가능하다. 사설망 ip주소의 시점으로 보았을 경우 해당 컴퓨터는 고정ip로 공인ip라고 할 수 있고 외부 망으로 구분된다. 사설 망과 공인ip주소인 외부망은 서로 라우팅 경로가 있지 않기 때문에 해당 컴퓨터에서 192.168.0.1로 ping을 보내도 Request만

있고 Reply는 없는 이유가 이 때문이다.

 

 

- arp –a명령어를 사용하여 arp 테이블을 확인하면 유형에 동적 유형과 정적 유형이 있다. 동적 유형은 다른 host와 통신을 하게 되면 ARP 테이블에 저장이 되는데, 만약 저장이 된 상태로 최대 10분 동안 사용하지 않으면 해당 List는 ARP 테이블에서 삭제된다. 또, 정적 유형은 arp –s명령어로 사용자가 직접 수동으로 ARP 테이블에 저장할 때의 유형으로 이 것은 사용자가 직접 삭제하거나 해당 컴퓨터를 재부팅 하지 않는 이상 이 List는 ARP 테이블에서 사라지지 않는다.

 

 2. ARP 정보가 ARP cache에 남아 있는 최대 시간 확인 실습

 ⦁ command 창에서 “arp –a”를 주기적으로 실행해서 ARP 정보가 ARP cache에 얼마의 시간 동안 남아 잇는지 확인⦁ 명령어를 이용하여 직접 입력한 정적 엔트리는 어떻게 되는지 확인

 

- arp –a명령어를 사용하여 arp 테이블을 확인하면 유형에 동적 유형과 정적 유형이 있다. 동적 유형은 다른 host와 통신을 하게 되면 ARP 테이블에 저장이 되는데, 만약 저장이 된 상태로 최대 10분 동안 사용하지 않으면 해당 List는 ARP 테이블에서 삭제된다. 또, 정적 유형은 arp –s명령어로 사용자가 직접 수동으로 ARP 테이블에 저장할 때의 유형으로 이 것은 사용자가 직접 삭제하거나 해당 컴퓨터를 재부팅 하지 않는 이상 이 List는 ARP 테이블에서 사라지지 않는다.

 

3. 다른 network에 있는 host의 IP주소에 대한 MAC 주소가 가능한지 실습

-명령어 예제 : ping www.yahoo.com

 

 - ping 명령어를 통하여 www.yahoo.com에 핑을 보내면 총 4번의 Request와 4번의 Reply가 발생한 것을 알 수 있다.

 

 

 arp –a 명령어를 이용하여 www.yahoo.com에 대한 IP주소와 MAC 주소를 확인하고 확인이 가능하지 않는 경우는 이유

 

 ping www.yahoo.com의 명령어를 실행시켜 발생하는 Request와 Reply로 얻어진 ARP테이블을 보면 www.yahoo.com의 ip주소와 MAC address가 저장되어 있지 않고 확인 할 수 없다. 그 이유는 해당 컴퓨터의 기준에서 www.yahoo.com은 외부 ip망으로 라우터를 거쳐야 한다. 이 때 라우터는 Request Message 패킷에 붙어있는 Ethernet Header의 정보를 보고 자기 것이 아니면 그냥 버리게 되는데 이것을 방지하기 위해 외부 ip망 과 통신을 하기 위해 송신측에서 www.yahoo.com에 대해서 Request Message를 발생 시키는 것이 아니라 송신측이 해당되어 있는 라우터포트 즉, 게이트웨이 주소로 broadcast 망을 통하여 Request Messgae를 송신시키기 때문이다. 또 Request Message를 수신한 라우터 포트는 해당 컴퓨터로 자신의 MAC address를 Reply Message에 실어 송신하며 Target은 해당컴퓨터가 되고 Sender은 라우터 포트가 될 것이다.

 

- ping www.yahoo.com명령어를 실행시켰을 때 발생하는 Request Message의  패킷을 보면 Ethernet header부분에 Destination 영역이 Broadcast로 방송망 주소인 것을 알 수 있다. 그리고 Target은 위에서 말했다 시피 192.168.52.1으로 라우터 포트에 할당되어 있는 ip주소로 기본게이트웨이 주소이다. Request Message는 ip에 대한 Ethernet address를 알아내기 위하여 보내는 Message이기 때문에 Target MAC address영역이 비어 있는 것을 확인 할 수 있다. 그리고 Sender항목에는 해당컴퓨터의 ip주소와 MAC address가 저장되어 있다.

 

4. 연습문제 풀이

[1] 주어진 IP주소에 대하여, 해당 MAC 주소를 찾는 프로토콜은_____이다.

a) RARP            b) DHCP

c) ARP             d) ICMP

 

- RARP :   ARP와 반대의 기능으로 Ethernet address를 가지고 해당 ip주소를 찾는 기능을 하는 프로토콜이다.

- DHCP :  Dynamic Host Configuration Protocol의 약자로서 서버에서 ip주소를 할당하면 그 정보 그대로 자동으로 단말에 설정되는 기능을 하는 프로토콜이다.

- ARP : ARP는 상대방의 ip주소만 알고 상대방의 Ethernet address를 모를 때 사용하는 방법으로 ARP Request를 broadcast망으로 보내어 해당 ip주소는 이를 받아 들이고 자신의 Ethernet address를 ARP Reply에 실어 송신하여 알게 하는 기능을 가진 프로토콜이다.

- ICMP : Internet Control Message Protocl의 약자로서 패킷을 송신하는 과정에서 오류가 발생하면 패킷을 송신한 송신측에 알려주는 기능을 하는 프로토콜이다.

 

 

[2] 주어진 MAC 주소에 대하여, 해당 IP 주소를 찾는 프로토콜은_____이다.

a) RARP            b) DHCP

c) ARP             d) ICMP

 

- RARP :   ARP와 반대의 기능으로 Ethernet address를 가지고 해당 ip주소를 찾는 기능을 하는 프로토콜이다.

- DHCP :  Dynamic Host Configuration Protocol의 약자로서 서버에서 ip주소를 할당하면 할당 한 정보가 자동으로 단말에 설정되는 기능을 하는 프로토콜이다.

- ARP : ARP는 상대방의 ip주소만 알고 상대방의 Ethernet address를 모를 때 사용하는 방법으로 ARP Request를 broadcast망으로 보내어 해당 ip주소는 이를 받아 들이고 자신의 Ethernet address를 ARP Reply에 실어 송신하여 알게 하는 기능을 가진 프로토콜이다.

- ICMP : Internet Control Message Protocl의 약자로서 패킷을 송신하는 과정에서 오류가 발생하면 패킷을 송신한 송신측에 알려주는 기능을 하는 프로토콜이다.

 

[3] ARP request 패킷의 Target Physical 주소에는_____이(가)  실려 있다.

a) 0.0.0.0                   b) 0x00-00-00-00-00-00

c) 요청한 단말의 MAC주소   d) 응답하는 단말의 MAC주소

 

→ Target Physical 주소란 물리적 주소로 Ethernet address를 나타내며 이는 곳 MAC address를 나타낸다. ARP Request에는 Target IP address에는 Ethernet address를 알기위해 필요한 ip주소가 들어가 있다.

 

[4] RARP와 기능적으로 유사한 프로토콜은     이다.

a) ARP              b) BOOTP

c) DHCP            d) b와c


→ ARP는 ip주소는 알고 Ethernet address는 모를 때 Ethernet address를 알아내는 기능을 하는 프로토콜이고, RARP는 Ethernet address는 알지만 ip 주소는 모를 때 ip 주소를 알아내는 기능을 하는 프로토콜이다. DHCP는 서버에서 ip주소를 할당하면 자동으로 단말에 입력되는 기능을 하는 프로토콜이다. 그리고 BOOTP는 자신의 Ethernet address를 가지고 ip주소를 받아오는 기능을 하는 프로토콜이다.

 

[5] ARP 캐시 테이블의 상태가 PENDING이면_____이다.

a) ARP가 완료되었음        b) ARP가 진행 중임

c) 해당 항목이 삭제되었음   d) 답 없음

 

→ ARP 캐시 테이블의 상태로는 FREE, PENDING, RESOLVED 가 있으며 FREE는 말그대로 비어 있는 것을 뜻하고, PENDING은 ARP Request Message를 송신한 후에 ARP Reply Message를 받지 못하였을 때의 상태로 진행 중인 것을 뜻한다. 그리고 RESOLVED는 ARP Request Message를 송신한 후에 ARP Reply Message를 수신 받았을 때의 상태이다.

 

6] Gratuitous ARP request의 Target IP 주소 항목에는_____이 들어 있다.

a) 0.0.0.0                  b) 0x00-00-00-00-00-00

c) 요청한단말의IP주소      d) 255.255.255.255

 

→ Gratuitous ARP는 ip주소와 중복된 ip가 있는지 확인 하는 프로토콜로서 Gratutious ARP Request의 Target IP는 자신의 IP를 입력하여야 한다. 그리고 broadcast망으로 내부 망에 송신이 될 경우 같은 IP를 가진 host는 Reply할 것이다. 그리고 같은 IP를 가진 host가 없으면 Gratuitous ARP Request 패킷을 버릴 것이다.

 

[7] 어떤 장치에 대한 ARP request를 자신이 수신하여, 자신의 MAC 주소를 대신 응답하는 장치가 있을 때, 이 장치는_____기능이 있다고 한다.

a) Gratuitous ARP      b) ARP

c) proxy ARP          d) RARP

  Proxy ARP는 내부 망 안에서 라우터를 임의로 중간에 설치하여 네트워크들을 반으로 나누었을 때 라우터 기준으로 왼쪽에 있는 망에서 라우터 오른쪽에 잇는 망으로 ARP Request하면 기본적인 ARP에서는 라우터는 자신에게 요청 온 ARP Request가 아니기 때문에 이 ARP Request를 버린다. 하지만 Proxy ARP는 왼쪽에 있는 망에서 오른쪽에 있는 망으로 ARP Request를 보내면 라우터에서 자신의 다른 라우터 포트에 있는 것을 인지하고 ARP Request패킷이 들어오는 라우터 포트의 Ethernet address값을 ARP Reply패킷에 실어서 보낸다.

 

1.ARP, RARP, InvARP, Gratuitous ARP

① ARP : ARP란 Address resolution protocol의 약자로서 ip는 알지만 Ethernet address를 모를 때 사용하는 방법으로 ip를 가지고 Ethernet address를 찾아내는 방법이다. ARP의 동장 원리는 내부 네트워크에서는 알아내고자 하는 ip의 MAC address를 ARP 패킷에 실어 broadcast망으로 모든 host에 대하여 송신한다. 수신 받은 host들이 이 패킷을 확인 하여 자신의 ip인지 아닌지 확인히 자신의 ip가 아니면 이 ARP 패킷은 버리게 되고 자신의 ip이면 ARP 패킷에 자신의 MAC address를 실어 송신자에게 송신한다. ip를 알아내고자 ARP 패킷을 만들어 broadcast망으로 송신하는 Message를 ARP Request Message라고 하며 해당 ip주소를 가진 host가 송신자에게 MAC address를 싫어 보내는 Message를 ARP Reply Message라고 한다.

 또, 라우터를 거치는 외부망에 존재하는 ip에 대한 MAC address를 알아내기 위해서 ARP Request Message를 보내면 라우터에서는 Ethernet Header를 열어 ip가 수신 받는 라우터 포트의 ip(라우터의 각 포트 에도 ip주소가 각각 할당되어 있다.)와 같은지 다른지 확인한다. 라우터 포트에 할당되어 있는 ip주소와 알아내고자 하는 MAC address를 가진 ip주소는 다르기 때문에 라우터에서는 버리게 되는데(라우터가 다시 Ethernet Header를 붙여 broadcast망으로 송신하게 되면 수 많은 ARP Request Message가 송신되게 되고 네트워크 망은 매우 복잡해 질 것 이다.) 이를 방지 하기 위해 송신측은 자신의 subnet mask와 목적지 ip주소를 subnetting하여 subnet 주소(네트워크 주소)를 구한후 자신의 네트워크 주소와 다르면 송신측은 자신의 기본게이트웨이 주소(라우터 포트에 할당되어 있는 ip 주소)로 ARP Request Message를 송신한다. 그럼 수신한 라우터는 Ethernet Header를 떼서 안에있는 ip(알아내고자 하는 ip)를 확인 후 해당 포트로 라우팅되어 그 해당 포트에서 Ethernet Header를 붙인 후 알아내고자 하는 ip를 가진 host에 도착하게 된다. 그 후 목적지에서는 자신의 MAC Address를 ARP Reply Message에 실어 송신측에 송신하게 된다. (* Ethernet Header는 라우터를 거칠 때 마다 떼어지고 붙여지고 반복한다.)송신측에서는 도착한 ARP Reply Message를 열어 MAC address를 확인 후 테이블안에 저장해놓는다. 다음에 MAC주소를 불필요한 ARP를 하지 않고 알아내기 위해 테이블안에 저장해놓으며(만약 없으면 다시 ARP를 한다.) 저장된 List들은 일정 시간 흐른 후에도 그 해당 ip주소와 Ethernet에서 패킷이 오지 않으면 테이블안에서 그 항목을 삭제 한다.

 ② RARP : Reverse ARP로 ARP의 반대의 기능을 하는 protocol이다. ARP는 ip주소는 알지만 Ethernet address를 모를 때 사용하는 protocol인 반면 RARP는 자신의 Ethernet address을 RARP Request Message에 실어 Server에 송신하게 되면 Server에서는 수신받은 RARP Request Message를 열어 안에있는 Ethernet address를 확인 후 그에 해당하는 ip주소를 RARP Reply Message에 실어 송신측에 송신한다. RARP의 단점이 있는데 RARP는 ip주소외의 정보(기본 게이트웨이주소와 DNS 주소 정보)는 알려주지 않고, 라우터를 지나다닐 수 없다.

 ③ InvARP : InvARP는 위의 RARP와 마찬가지로 Ethernet address는 알지만 ip주소는 모를 때 사용하는 방법이다. 하지만 차이점이 있다면 RARP는 자신의 Ethernet address를 가지고 자신의 ip주소를 알아내는 방법이지만 이 InvARP는 상대방의 Ethernet address를 가지고 상대방의 ip주소를 알아내는 방법이다.

 ④ Gratuitous ARP : Gratuitous ARP는 자신의 ip와 중복되는 ip를 찾을 때 사용하는 프로토콜로 내부 망에서 자기 자신의 ip 주소로 ARP Request Message를 broadcast망으로 송신하면 내부 망에 있는 host들이 이 ARP Request Message를 수신하게 된다. 이때 수신 받은 host들은 자신의 ip주소와 같은지 다른지 확인 후 다르면 수신 받은 ARP Request Message를 버린다. 만약 host들 중에 같은 ip를 사용하는 host가 있으면 그 host에서 ARP Reply Message를 송신측에 송신하게 되고 송신측은 수신 받은 ARP Reply Message로 자신의 ip와 중복된 ip를 가진 host가 있는 것을 알 수 있다.

 

2. ARP 명령어 실행 실습

 arp -a 명령어는 사용 중인 컴퓨터에 저장되어있는 ARP테이블을 보여주는 기능을 하는 명령어 이다.

 

②  arp –d 명령어는 저장되어 있는 ARP테이블안에 있는 List를 삭제하는 기능을 하는 명령어이다 ex) arp-d 192.168.52.11

 

 ftp명령어: 삭제한 ip 192.168.52.11에 대한 MAC address 알아내기 위하여 ftp 192.168.52.11 명령어를 사용하였다. 여기서 사용된 ftp명령어는 File Transfer Protocol의 약자로서 입력하는 파일을 전송할 때 사용하는 프로토콜이다. CMD창에서 ftp명령어는 입력하는 ip주소를 가진 host와 연결을 하는데 이때 Request Message를 broadcast망으로 보내고 수신측은 Request Message를 수신하면 Reply Message에 MAC address를 실어 전송하게 된다. 이렇게 MAC address를 알아 내어 연결을 하면 192.168.52.11에 대한 MAC address를 ARP 테이블 안에 저장 시킨다.

 

arp/?를 이용하여 arp명령어가 arp-a, arp-d외에 다른 기능이 무엇이 있는지 확인하였다.

 

 

3. 실습실 내의 컴퓨터 간의 ARP 패킷 수집 실습

 

 ⦁ router를 거치지 않는 경우의 ARP 실습

 

 

ARP 테이블안에 있는 List들을 모두 삭제하는 명령어인 arp –d를 입력하고 테이블 안에 있는 정보들을 보여주는 arp –a를 사용하여 저장되어 있는 List들이 없는 것을 확인 하고 난 후 ftp 192.168.52.11에 접속을 하기 위해 ARP동작을 하여 ARP 테이블 안에 List가 추가 된 것을 확인 할 수 있다.

 

 

ftp 192.168.52.11 명령어를 실행 한 직후 wireshark에 수집되는 패킷들 중에서 filtering을 통하여 수집한 ARP Request Message이다. 이 패킷을 보면 Sender IP address란 항목에서 알 수 있듯이 이 항목은 송신하는 컴퓨터 즉 명령어를 실행한 컴퓨터의 ip주소이고 Sender MAC address는 송신하는 컴퓨터의 Ethernet address이다. 그리고 Target IP address항목에서 알 수 있듯이 ARP Request Message를 수신하는 컴퓨터 즉 상대방의 컴퓨터 ip주소이다. 그리고 Target IP address항목에서 알 수 있듯이 ARP Request Message를 수신하는 컴퓨터의 Ethernet address는 모르는 것을 알 수 있다.

 

  수신측에서 ARP Request Message를 수신한 후 송신측에 송신한 ARP Reply Message이다. 이 Reply Message에서 보면 Sender MAC Address, Sender IP address, Target MAC address, Target IP address 항목이 아까 ARP Request Message에 있던 항목과 다른 것을 알 수 있다. 이 Reply Message는 수신측이 송신측에게 자신의 Ethernet address를 보내기 위한 패킷인데 여기서 보면 Target MAC address와 Target IP address 항목이 아까 Request Message의 주소 정보와 같다는 것을 알 수 있다. 왜냐하면 이 Reply Message는 Request Message와는 반대로 수신측이 송신측에게 송신하는 패킷이기 때문이다. 그리고 Sender IP address는 자기 자신 즉, Request Message에서 Target IP address에 해당하는 정보가 들어있다. 그리고 Sender MAC address는 Request Message를 수신한 host에 대한 Ethernet address이다. 이렇게 내부 망 ip주소에 대하여 Ethernet address를 알 수 있다

 

 

 

4. 외부 server 접속 시의 ARP 패킷 수집 실습

 ⦁ router를 거치는 경우의 ARP 실습

 

arp –d 로 ARP 테이블을 삭제 후 arp –a명령어로 ARP 테이블안에 List가 없는 것을 확인 하였다. 그 후 ftp 명령어로 ftp.kaist.ac.kr에 연결 하여 Request와 Reply가 실행 되도록 한 후 ARP테이블에 List가 추가 된 것을 확인 하였다.

 

이 그림은 ipconfig/all명령어의 실행모습이다. 이 그림에서 알 수 있듯이 192.168.52.1이 기본 게이트웨이 주소 인 것을 알 수 있다. ARP 테이블에 ftp.kaist.ac.kr의 ip주소와 MAC address가 없고 기본게이트웨이 ip주소와 MAC address가 저장되어 있는 이유는 ftp.kaist.ac.kr은 외부 망 ip주소이기 때문에 송신측에서 Ethernet Header에 수신 받는 라우터포트에 할당된 ip주소를 넣어 라우터에서 라우팅 후 외부 망 ip주소에 할당되어 있는 라우터포트에서 Request Message를 송신하여 MAC address를 알아내기 때문에 송신측에서 보내는 Request는 라우터까지 가게 되고 라우터에서 Reply Message를 송신 한다. 그리고 이 Reply Message에 포함된 라우터포트에 해당되는 ip주소(기본 게이트웨이 주소)인 192.168.52.1에 대한 MAC address로 ARP 테이블에 저장시킨다.

 

위 그림은 외부 망인 ftp.kaist.ac.kr에 접속할 때 발생하는 ARP Request Message 패킷이다. 이 패킷을 보면 Sender IP address와 Sender MAC address는 해당 컴퓨터의 ip주소와 MAC address인 것을 알 수 있고,  Target IP address는 라우터포트에 할당되어 있는 ip주소로 기본게이트웨이 주소 인 것을 알 수 있다. 그리고 라우터포트의 MAC address는 모르기 때문에 Target MAC address는 비어 있다.

 

  위 그림은 위부 망인 ftp.kaist.ac.kr에 접속 할 때 발생하는 ARP Request Message에 대한 ARP Reply Message 패킷 이다. 이 패킷은 외부 망에 접속 할 때 발생하는 Request에 대한 Reply이기 때문에 라우터포트에서 라우터포트에 할당되어있는 ip에 대한 MAC address를 Reply에 실어 해당 컴퓨터로 송신 하여야 하기 때문에 Target IP address와 Target MAC address와 해당 컴퓨터의 ip와 MAC address의 정보이며 Sender IP address는 라우터포트에 할당되어 있는 ip 즉, 기본게이트웨이 주소이며 Sender MAC address는 라우터포트에 할당되어 있는 ip에 대한 MAC address이다.

 

 

1. DIX 2.0/IEEE802.3 frame

preamble

(8byte)

 destination address

(6byte)

source

address

(6byte)

ether type

(2byte)

Data

Pad

FCS

(4Byte)

 

- DIX2.0 frame 형식을 나타낸 것이다. preamble은 8byte로 구성되어 있으며 시작점을 나타낸다.
- destination address~ether type 까지를 Ethernet Header 라고 부른다. destination address 에는 6byte의 목적지 주소가 들어 있다. source address에는 6byte의 송신측 주소가 들어 있다. 그리고 ether type은 2byte로 0x600(=1536)이상의 값이 저장되어 있다.

- 여기서 IEEE802.3 frame 형식에서는 DIX2.0 frame 형식의 ether type자리에 2byte로 구성된 length 영역이다. DIX2.0 frame 형식의 ether type 영역과 IEEE802.3 frame형식의 length 지역은 IEEE802.3 frame형식인지 DIX2.0 frame형식인지 구별 하게 해주는 중요한 자리이다. 구별 하는 방법은 위에서 말했다시피 ether type이 0x600(=1536)이상의 값이 있으면 DIX2.0 frame 형식이고 1536이하이면 IEEE802.3 frame 형식이다.

- Data 부분은 Ethernet Data가 들어있으며 최소 46byte이고 최대 1500byte이다.

- Pad 영역은 destination address ~ FCS 영역까지의 길이가 frame 최소 길이인 64byte보다 짧은 경우에 모자란 길이를 0으로 채워 넣는다.

- 따라서 DIX2.0 frame 형식의 총 길이는 64byte ~ 1518byte이다.

 

2.IEEE802.3 frame

 

Preamble

(7byte)

SFD

(1byte)

destination

address

(6byte)

source

address

(6byte)

length

(2byte)

Information

Pad

FCS

(4byte)

 

 

 

- IEEE802.3 frame 패킷 형식을 나타낸 것이다.

- IEEE802.3 frame 패킷 형식을 나타낸 것이다. IEEE802.3 frame은 DIX2.0 frame과는 다르게 Preamble 이 7byte이며 SFD라는 영역이 있다. 이 SFD 영역은 1byte로 구성되어 있다. Preamble 이 시작점을 나타내는 것이면 SFD는 유효한 프레임이 시작되는 것을 알린다.

- destionation address와 source address영역은 DIX2.0 frame형식과 마찬가지로 6byte이며 각각 수신측과 송신측의 주소를 나타낸다.

- length 영역은 위에서 말했다 시피 DIX2.0 frame과 IEEE802.3 frame을 구별 하는 중요한 역할을 한다 DIX2.0 frame과 같은 2byte로 구성되어 있지만 이 영역이 1536보다 작은 수가 들어 있으면 IEEE802.3 frame이다.

- Information영역과 Pad영역을 합쳐서 LLC영역이라고 한다. 이 LLC(Logical Link Control의 줄임말)영역은 크게보면 LLC Header와 LLC information field영역으로 나뉘어 진다. 먼저 LLC Header 영역은 DSAP, SSAP, CTRL 영역으로 나뉘어지며 DSAP, SSAP 영역은 각각 1byte씩으로 구성 되어 있고, CTRL영역은 1, 2byte로 구성되어 있으며 보통은 1byte이다. CTRL영역은 제어 필드이다. 그리고 DSAP, SSAP영역에서 IEEE802.3 frame의 ether type의 정보를 담고 있다. 또, LLC information field영역은 상위 계층 프로토콜의 종류를 저장하고 있다.

 

- 만약 DSAP, SSAP영역에서 ether type의 정보를 담고 있지 않는 경우가 있는데 이 경우에는 LLC information field의 영역이 갈라져 3byte로 구성된 OUI 영역과 2byte로 구성된 PID 영역으로 나뉘어 진다. OUI는 할당받은 어댑터 회사 코드이다. PID영역에 ether type의 정보가 들어가 있는 경우에는 LLC에서 표시를 해주는데 DSAP영역과 SSAP영역에는 0xAA값 CTRL영역에는 0x03값이 들어가 있다.

 

- 이렇게 표시하는 방법을 SNAP방법이라고 한다.

- DSAP영역과 SSAP영역에는 항상 같은 값이 저장되어 있다. ether type정보가 들어가 있을때도 같은 값이 저장되어 있고 PID영역에 ether type의 정보가 들어가 있을 때에도 0xAA라는 값이 똑같이 들어가 있다.

 

 

 

3.  ARP Request와 ARP Reply 패킷의 형식

 

Destination MAC address 

6Byte

Source MAC address

6Byte

Ether Type

ARP = 0x0806

RARP = 0x8035

2Byte

Hardware Type

0001 : Ethernet

2Byte

Protocol Type

0800 : IP

2Byte

Hardware address size

6 : Ethernet

1Byte

Protocol size

4 : IP

1Byte

Operation = 01, 02, 03, 04

1Byte

Sender Ethernet address

6Byte

Sender IP address

4Byte

Target Ethernet address

6Byte

Target IP address

4Byte

PAD

 

 

 

 Destination MAC address : ARP Request의 주소이다. host에 전송할 때 필요한 주소이다.

- Source MAC address : Source(송신자)측의 주소이다, 이 주소는 ARP Reply받을 때 필요한 주소이다.

- Ether Type : ARP의 경우 0x0806, RARP의 경우 0x8035이다. Request나 Reply 모두 동일한 값을 가지고 있다.

- Hardware Type : MAC종류에 따라 Hardware주소 형식을 구별하기 위하여 사용하며 Ethernet 의 경우 1 이다. (* IEEE802.3 = 6,)

- Protocol Type : 네트워크 계층의 프로토콜 종류마다 가지고 있는 고유 값이다. IP는 0x800이다.

- Hardware address size : Hardware address의 크기를 표시한다. Ethernet은 6이다.

- Protocol size : 네트워크 계층의 프로토콜의 크기를 표시한다. IP는 4이다.

- Operation : ARP Request와 ARP Reply들을 구별 해 주는 것이다.

- Sender Ethernet/IP address : ARP Requst를 보내는 source(송신자)측의 Hardware주소와 ip주소 이다.

- Target Ethernet/IP address : Source(송신자)측에서 Destination(수신자)측으로 ARP Request를 보낼 때 필요한 Destination(수신자)측의 Hardware주소와 ip주소이다.

 

- RARP는 ARP의 반대개념으로 Ethernet 주소에 대한 IP주소를 알아내는 프로토콜이다. RARP와 ARP의 다른 점은 Ether Type의 값이 표에나타난 것처럼 0x8035이며 Operation의 값이 Request의 경우 3, Reply인 경우 4이다.

 

 

4.CSMA/CD, MTU, BPDU란

 

- CSMA/CD Ethernet의 전송 protocol로서 iEEE802.3의 표준화한 프로토콜이다.

CSMA/CD : 하나의 회선에 다수의 단말기가 연결되어 있을 때 데이터를 송신하는 방식으로 회선이 busy인지 확인을 하다가 idle이 되면 데이터를 보내는 방식이다, 이럴 경우에 동시에 데이터를 보내면 데이터는 충돌하게 된다. 이 경우를 방지하기위해 busy인 상태에서 random한 시간 동안 기다리다가 idle이 되면 데이터를 보내는 방식과 busy인 상태에서 idle로 바꼇을 때 random한 시간을 기다린 후에도 idle이면 데이터를 보내는 방법이 있다.

 

- MTU : MTU란 MAX Frame Length의 줄임말로 최대 프레임의 길이를 뜻한다. destination address ~ FCS 영역까지의 길이를 뜻한다.

 

- BPDU : BPDU란 STP 프로토콜 안에서 브리지의 정보 데이터로서 STP를 이루고 있는 브리지들 사이에서 주고 받는 데이터이다. 이 데이터로 인하여 STP의 상태를 바꾼다.

 

5. 1-persistent, non-persistent, p-persistent CSMA 란

 

- 1-persistent : 회선이 busy인지 계속 확인하다가 idle상태가 되면 데이터를 보내는 방식이다.     이 방식은 두 개 이상의 단말기에서 idle인 상태를 확인하여 데이터를 동시에 하게 될 것이고 이    경우에 데이터가 가장 많이 충돌한다.

 

- non-persistent : busy상태일 때 random한 시간 동안 기다린 후 다시 회선의 상태를 확인하는데 idle일 경우에는 데이터를 전송하고 busy일 경우에는 다시 random한 시간을 기다린다. 이 경우에는 회선이 idle인 상태에서도 대기할 확률이 많기 때문에 회선의 효율이 낮다.

 

- p-persistent : 회선이 busy인지 계속하다가 idle인 상태가 되면 p확률로 데이터를 전송하거나 1-p확률로 데이터를 보내지 못하게 된다. 1-p확률로 보내지 못할경우에는 random한 시간을 기다린후 다시 idle인 상태가 p확률로 보낸다. 이 방법은 1-persistent와 non-persistent를 합친 방식으로 충돌할 경우도 낮추면서 전송효율도 높인 방법이다.

+ Recent posts