본문 바로가기
공부/Network

[Network] ARP와 이더넷(Ethernet)

by 웅대 2023. 6. 26.
728x90
반응형

network layer에서는 IP 계층으로 출발지와 도착지를 알 수 있다.

 

link layer에서는 MAC address를 사용해서 출발지와 도착지를 알 수 있다.

 

MAC address는 주로 물리적으로 연결된 인터페이스끼리 frame을 주고 받을 때 사용한다.

 

MAC address는 6 byte, 즉 48 bit로 이루어져있고 보통 NIC ROM에 저장되어있다.

 

[ Manufacturer ID ] [ Product ID ]

1A - 2F - BB - 76 - 09 - AD 

 

LAN의 각각의 어댑터는 고유한 LAN 주소를 가지고 있다.

 

그리고 ARP는 IP 주소와 물리적 주소인 MAC 주소를 매핑해주는 역할을 한다.

 

ARP (Address Resolution Protocol)

https://www.fortinet.com/resources/cyberglossary/what-is-arp

MAC 주소는 portability 성질을 가지고 있기 때문에 LAN 카드를 다른 LAN으로 옮길 수 있다.

 

또한 IP 노드는 IP 주소와 MAC 주소를 매핑해주는 ARP 테이블이 존재하기 때문에 서로 변환할 수 있다.

 

ARP은 같은 LAN에 있는지, 다른 LAN에 있는지에 따라 방법이 다르다.

 

같은 LAN

 

http://www2.ic.uff.br/~michael/kr1999/5-datalink/5_04-arp.htm

같은 LAN에 존재하는 A 노드, B 노드가 있을 때 A 노드가 B 노드에게 데이터그램을 전송하고 싶다면 A는 자신의 MAC 주소와 B의 IP 주소를 담아서 ARP 쿼리 패킷을 broadcast한다.

 

같은 LAN에 존재하는 모든 노드들이 이 쿼리를 받아서 자신이 아니라면 버리고 자신이 맞다면 자신의 MAC 주소를 담아서 A에게 응답해준다. (unitcast)

 

A는 받은 응답을 가지고 ARP 테이블을 구성한다.

 

다른 LAN

위와 같은 서로 다른 LAN에 존재하는 노드 A와 B가 있다고 하자.

 

노드 A에서 데이터그램을 노드 B로 보내는 과정은 다음과 같다.

 

우선 다른 LAN에 존재한다는 것을 알아야 한다.

 

IP 주소와 서브넷 마스크에 &연산을 적용하면 네트워크 주소를 알 수 있다.

 

출발 IP 주소와 도착 IP 주소의 네트워크 주소를 위 방식으로 알아내어 둘이 다른다면 다른 LAN에 존재한다는 뜻이다.

 

만약 같다면 위에서 설명한대로 broadcast 방식을 쓸 것이고 다르다면 다른 방식을 사용할 것이다.

 

도착지 노드가 다른 LAN에 존재한다면데이터그램을 First-Hop Router에게 보내야한다.

 

보내기 위해 First-Hop router의 MAC 주소를 알아야하기 때문에 ARP 쿼리를 날려서 First-Hop Router의 MAC 주소를 알아낸다.

 

그리고 Router에게 아래와 같은 frame을 보낸다.

 

frame이 라우터의 link layer에 도착하면 껍질을 벗겨내고 network layer로 보낼 것이다.

라우터는 forwarding table의 정보를 바탕으로 적절한 곳으로 forwarding 할 것이다.

 

그리고 다시 header를 붙여서 frame으로 만들 것이다.

 

도착 IP 주소를 알고있는 상황에서 도착 MAC 주소를 알아내야 한다.

 

ARP 테이블을 확인하고 있다면 해당 MAC 주소를 붙여서 보내고 없다면 ARP 쿼리 패킷을 보내서 도착 MAC 주소를 알아낸다.

 

도착 MAC 주소를 알아내면 frame을 새로 만들어서 보낸다.

도착 노드에 도착하면 한 겹씩 벗겨내면서 위 계층으로 보내게 될 것이다.

이더넷 (Ethernet)

wired LAN에서는 대부분 이더넷을 사용한다.

 

이더넷 프레임의 구조는 다음과 같다.

  1. preamable : 1과 0을 반복하는 7 bytes가 오는데 이를 통해 송신자와 수신자가 clock 동기화를 할 수 있다.
  2. dest, source address : 6 byte의 MAC 주소를 의미한다.
  3. type : hight layer의 프로토콜을 의미한다. 대부분은 IP이지만 다를 수도 있다.
  4. CRC : CRC를 통해 에러를 감지하고 에러를 감지했다면 해당 frame을 버린다.

이더넷은 연결을 맺지 않고 NIC가 ACK나 NACK를 보내지도 않는다.

 

버려진 데이터는 초기 송신자가 TCP와 같은 high layer rdt을 사용했을 때 복구할 수 있다.

 

또한 이더넷의 MAC 프로토콜은 CSMA/CD를 사용한다.

 

이더넷의 물리적 토폴로지는 bus와 star가 있다.

 

bus

서로 충돌이 발생할 수 있다.

 

star

중간에 스위치를 활성화 한다.

 

독립적인 이더넷 프로토콜을 사용하기 때문에 서로 충돌하지 않는다.

728x90
반응형

'공부 > Network' 카테고리의 다른 글

[Network] MPLS  (0) 2023.07.04
[Network] swtich와 VLAN  (0) 2023.06.28
[Network] MAC protocol  (0) 2023.06.24
[Network] Link layer, error detection (parity, CRC)  (0) 2023.06.22
[Network] SDN(Software Defined Networking)  (0) 2023.06.14

댓글