본문 바로가기
2022-2/데이터통신

ARP and Ethernet

by 철없는민물장어 2022. 11. 16.
728x90

ARP(Address Resolution Protocol)

해석하자면 주소 결정 프로토콜이다.

전송 목적지의 IP만 알고 MAC주소는 모를 때, IP를 이용해서 MAC주소를 알아내는 방법이다.

 

MAC Address

NIC(랜카드) 제조 시 48비트의 MAC 주소를 ROM에 구워버리기 때문에, MAC주소는 변경이 불가능하다.

[1A-2F-BB-76-09-AD] 처럼 16진수로 4비트씩 나타낸다.(총 48비트)

MAC address는 IEEE라는 협회에서 할당 관리한다.

각각의 MAC주소는 유일하다.

 

ARP는 IP주소를 이용해서 MAC주소를 어떻게 알아낼까?

ARP table이 있다.

(예시)

IP address MAC address TTL(Time to live)
123.456.7.12 92-43-F4-2D-93-BB 500
     

table에는 IP주소, MAC주소, TTL이 있다.

(TTL은 Time To Live로, 표에서 해당항목의 유지시간이고, 유지시간이 지나면 표에서 삭제된다)

 

우선 해당 IP주소를 표에서 찾는다.

표에 IP-MAC이 존재한다? 해당하는 MAC을 찾은것이다.

 

그런데 표에 없는 IP는 어떡하죠..

 

우선 해당 IP주소를 포함한 ARP query를 브로드캐스트 한다.

(목적지 MAC address를 FF-FF-FF-FF-FF-FF로 보내어 브로드캐스트하고, 나의 IP와 MAC도 포함하여 보냄)

(여러분~ 이 IP주소인사람은 나한테 MAC주소좀 보내주세요~ 라고 하는 것)

 

그럼 해당IP를 가진 장비는

자신의 MAC주소를 보내줍니다.

(받았던 메세지에 IP와 MAC이 있으므로 unicast로 보냄)

 

이후 받은 정보를 ARP table에 채우고 사용한다.

 


Ethernet 

유선랜.

하나의 칩으로 여러 스피드를 지원함.(하위호환가능)

 

Ethernet frame

preamble dest address source address type data(payload) CRC

preamble에는 101010...의 데이터가 7바이트, 마지막 바이트는 10101011이 들어있다.

동기화가 잘 되도록 하는 역할이다. (총8바이트)

 

dest address

src address

==>MAC주소니까 각각 6바이트

 

type = indicates higher layer protocol(mostly IP) (2바이트)

 

data =상위계층으로부터 받은 캡슐화된 데이터(46~1500바이트)

 

CRC = 오류체크 (4바이트)

 


Ethernet CSMA/CD 

 

이더넷에서 collision이 발생했는데 MAC 레이어에서 감지못하는 경우가 있다.

 

이런 형태의 BUS로 연결된 A,B가 있다고 하자.

A에서 전송을 시작하고, 그 데이터가 B에 도착하기 직전, B는 전송을 시작한다.(A가 보낸 것을 감지 못했으므로)

B는 전송 직후 A의 데이터를 받고, collision을 감지해 전송을 중단한다. 

그 와중 A는 전송을 완료해버렸고, A는 정상적으로 전송되었다고 생각하는 참사가 일어난다.

 

이런 상황을 막으려면 우째야할까..

A가 전송하는 데이터가 좀 더 길었더라면 이런상황이 안 생겼지 않았을까?

 

Ethernet Frame의 최소길이를 64bytes로 지정하자.

dest address source address type data(payload) CRC

dest,src,type,CRC가 각각 6 6 2 4 바이트씩 차지하니까

data/payload는 최소 46바이트의 길이를 가져야 한다.

내용이 적은 경우에도 padding을 붙여 46바이트를 지킨다.

 

참고로 최대는 1500bytes라나 뭐라나.

728x90

'2022-2 > 데이터통신' 카테고리의 다른 글

[데이터통신] Wireless LAN  (0) 2022.12.04
Switch  (1) 2022.11.23
[데이터통신] Data Link Layer  (0) 2022.11.02
Analog Transmission  (0) 2022.10.19
Digital TransMission(2) - Ananlog data to digital data conversion  (0) 2022.10.12

댓글