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라나 뭐라나.
'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 |
댓글