Network 2. IP주소,ARP

skh951225·2023년 3월 6일
0

네트워크 기초

목록 보기
2/5

출처 : Youtube

IP주소

우리는 IP주소를 많이 사용하게된다. 왜냐하면 보통 LAN대역내의 컴퓨터와 통신을 하는 것이 아니라, 멀리 있는 컴퓨터와 통신을 하기때문이다.

3계층의 역할은 서로 다른 LAN 대역, 서로 다른 네트워크 대역의 컴퓨터를 연결한다. 서로 다른 대역의 네트워크를 연결하기 위해서는 router라는 3계층 장비가 필요하다. IP주소를 사용하기 위해서는 IPv4 뿐만아니라 서브넷 마스크,게이트웨이가 추가적으로 필요하다. 3계층의 프로토콜에는 ARP, IPv4,ICMP ...등 이 있다. ARP 프로토콜은 IP주소를 이용해 MAC주소를 알아오는 프로토콜이다. IPv4 프로토콜은 아주 옛날부터 계속 사용되고있다.(IPv6 예전부터 쓰려고 하는 움직임이 있었는데.. 아직 IPv4가 많이 쓰인다) ICMP 프로토콜은 서로 통신되는지 확인할때 사용한다.

IP주소는 . 으로 4개의 필드로 나누어져 있고 10진수로 표현되어 있다. 하나의 섹터는 1byte를 차지하여 0~255의 범위를 가진다.

Classful IP주소는 주소를 5개의 클래스로 나누었다. A 클래스는 첫번째 필드는 네트워크 대역(128개)을 구분하는데 쓰고 그 외의 필드는 그 대역을 구분(16M)하는데 사용하였다. 하나의 네트워크 대역이 16M로 나누어져 있어 A클래스의 경우 큰 기관에서 사용하는 주소이다.B클래스 2개의 필드를 네트워크 대역을 구분하는데 쓰고 나머지 2개는 그 대역을 구분하는데 썼다. C클래스는 3개의 필드를 네트워크 대역 구분, 나머지 1개를 그 대역을 구분하는데 썼다. A,B,C는 일반적인 PC에서 사용되었고 그 중 C클래스가 가장 많이 사용되었다.(하나의 대역이 256개로 나누어 져있어서 딱 필요만큼 있음) D클래스는 일반 컴퓨터를 위한 것이 아니라 멀티캐스트를 위해서 존재하는 주소이고 E클래스는 연구용으로 남겨뒀던 주소이다. Classful IP주소는 필드단위로 네트워크 대역을 구분하여 그 대역을 나누는 개수가 유연하지 못했다. 그래서 IP주소의 낭비가 심했다. 이를 해결하기 위해 Classless IP주소가 도입되었다.

Classless IP주소는 서브넷 마스크를 두어 대역과 대역을 구분하는 부분을 bit단위로 나누었다. 서브넷 마스크는 2진수로 표기했을때 1로시작하여 연속적인 1을 가지다가 0으로 바뀌는 부분부터는 끝까지 0의 값을 가진다. 연속적인 1에 해당하는 비트는 어떤 대역에 속하는지 알려주고 연속적인 0에 해당하는 비트는 그 대역을 구분하는데 사용한다.

Classless IP주소를 사용하더라도 네트워크 장비를 가지는 기기가 많아짐에 따라 주소가 부족해졌다. 그래서 IPv4는 사설IP와 공인IP를 추가적을 사용한다.(2^32 사설IP/공인IP) 공인 IP는 인터넷 네트워크 통신망을 사용할때 사용하는 주소이고 사설 IP는 같은 네트워크 대역에서 사용하는 주소이다. 사설 IP는 다른 네트워크 대역과 통신을 할때 공인 IP주소로 변경되어 사용한다. 공인 IP는 네이버에 '내 IP 주소'를 검색하여 확인할 수 있고 사설 IP는 cmd창에 ipconfig를 치면 나오는 IPv4 주소이다. 그래서 외부에서 볼땐 사설IP를 알 수 없다. 컴퓨터가 인터넷을 통해 어떤 데이터 요청을 하면 네트워크 장비를 통해 공인 IP로 바뀌어 요청하고 요청받은 것은 공인 IP로 데이터를 보낸다. 공인 IP를 받은 네트워크 장비는 사설IP로 데이터를 보낸다. 이렇게 IP를 변환하는 기술을 NAT(Network Address Translation)라고한다.(3계층 장비인 router에 의해) 네트워크 장비를 통해 다른 대역의 네트워크로 나갈대 NAT table에 기록하고 요청에 대한 응답이 왔을때 NAT table을 통해 요청을 한 주체를 찾을 수 있다. NAT table에 기록되지 않은 응답이 올땐 일반적으로 공유기가 받고 끝낸다.(port forwarding(4계층)을 사용하면 아닐 수 있음) 그래서 네이버 서버와 같은 것은 공인 IP를 사용한다. NAT는 사설->공인,공인->사설 로의 변환에만 쓰이는 것이 아니라 IP를 변환하는 기술을 말한다.

특수한 의미를 가지는 IP주소가 여럿 있다. 0.0.0.0 은 나머지 모든 IP주소를 뜻한다.127.0.0.~ 는 자기 자신을 뜻하는 주소이다. 게이트웨이 주소는 네트워크 대역내에서 쓸 수 있는 가장 작은 IP 주소 혹은 가장 큰 IP주소를 가지며 외부로 통신을 하기 위해서 게이트웨이 주소를 거쳐간다.

ARP 프로토콜

ARP 프로토콜은 같은 네트워크 대역에서 통신을 하기위해 필요한 MAC주소를 IP주소로 알아오는 프로토콜이다. 같은 네트워크 대역에서 통신한다고 하더라도 데이터를 보내기위해선 7계층부터 캠슐화를 통해 데이터를 보내기때문에 IP주소 MAC주소 모두 필요하다.이 때 IP주소를 알고 MAC주소를 모르더라도 ARP를 통해 통신이 가능하다.

ARP 프로토콜은 28bytes로 구성되어 있고 source의 MAC,IP 주소 destination MAC,IP 주소가 총 20bytes를 차지한다.(Ethernet 은 destination의 MAC주소가 온 다음 source의 MAC주소가 오는데 다른 프로토콜은 반대이다) hardware type은 2계층의 프로토콜 type이 온다. (보통 2 계층은 Ethernet(0001)) protocol type은 protocol address의 type을 말하며 IPv4가 올 경우 0800이다. hardware address length은 MAC주소를 사용할 경우 06이 온다. protocol address length는 IPv4를 사용할 경우 04가 온다. OPcode(Operationcode)는 어떻게 동작하는지 알려주는 code값인데 내가 상대방의 MAC주소를 요청할때는 0001, 요청에 대한 응답은 0002이다.

ARP 요청을 할때는 destination MAC주소를 모르기때문에 00-00-00-00-00-00로 설정하고 ethernet의 destination MAC주소는 FF-FF-FF-FF-FF-FF 로설정한다. IP 주소의 뒤에 부분을 전부 1로 채웠을대 broadcast였던것 처럼 FF-.. 도 broadcast를 의미한다.2계층 장비(eg. switch)가 패킷을 받으면 2계층 프로토콜인 Ethernet을 확인하고 broadcast이므로 같은 네트워크 대역내의 모든 컴퓨터에 패킷을 보내게 된다. 받은 모두는 ethernet 프로토콜을 까봐서 자신에게 보낸것이 맞는지 확인하고 ARP 프로토콜을 통해 본인의 IP주소로 온 것이 맞는지 확인한다. 해당 컴퓨터는 ARP 응답 프로토콜을 만들어서 요청을 보낸 컴퓨터에게 보내게된다. 응답을 받으면 ARP 캐시 테이블에 IP주소와 MAC주소를 기록한다. 최초의 통신을 할때는 이런 과정을 한번 하게된다.(MAC주소를 모르니까/ARP캐시테이블에 해당정보가 없으니까) 프레임의 최소단위는 60bytes인데 Ethernet이 14bytes, ARP가 28bytes이어서 18bytes는 0으로 채워지게 된다.

0개의 댓글