Local Area Network : 특정 지역에서 컴퓨터들이 서로 연결된 네트워크 (범위)
Ethernet : LAN에서 사용하는 프로토콜 중 하나로, 유선 연결 방식 (특정 유선 방식)
오늘날 대부분의 LAN은 이더넷 기반으로 구축된다.
오늘날 대부분 스위치를 사용하는 Star 방식을 사용한다.
이런게 스위치다.
이더넷에서 사용되는 프레임의 형식이다. (링크 계층에서 사용하는 프레임과 같은 구조라고 한다.)
data 부분에는 대부분 IP Packet이 담길 것이고, 우리는 다시 헤더에 주목한다.
이더넷은 Collision Detection을 사용한다.
만약 충돌이 난다면 재전송을 하는데,
TCP의 재전송과는 느낌이 다르다.
Link Layer에서의 충돌은 한 홉 사이에서 일어난다. 내 컴퓨터와 내 담당 라우터 간의 통신이다.
이 사이에서 충돌이 있으면 재전송하는 것이고, 충돌이 없다면? 99.9% 도착했다고 알 수 있다.
그런데 TCP는?
응답이 없으면 난 어떻게 되었는지 알 길이없다. 그래서 다시 보내는 것이다.
그런데 만약, 충돌이 있는데 눈치를 못채는 경우가 있다면?
A가 E에게 빛을 쫄쫄 보내고 있었다.
E도 빛을 쏘기 시작해서 1만큼을 쏘다가, A로부터 빛이 들어온다. E는 정상적으로 BackOff를 한다.
E가 쏜 1만의 빛은? 어쩔 수 없다. A로 향하기 시작한다. 이미 이 선 안에선 개판이다.
A가 E로 보내던 모든 빛을 다 쏘고 난 뒤에 E가 쏜 1만큼 빛이 들어온다.
A는 이걸 Collision이라고 생각할까? 아니지. 다 끝나고 들어왔는데.
이처럼 고장이 안 났는데도 CD가 안되는 상황이 있을 수 있다.
그럼 어떻게 해결할까? 당신이라면?
A가 메시지를 좀만 더 길게 보냈으면 E가 보낸 1을 CD할 수 있지 않을까?
MAC 주소 == 주민번호
IP == 거주지
라고 할 수 있다.
거주지는 이사가면 바꿀 수 있다. 카페에서, 도서관에서 IP가 바뀔 수 있다.
그런데 주민번호는 바꿀 수가 없다.
그냥 컴퓨터 만들 때 부터 박고 가는 것이다.
내가 라우터의 MAC 주소를 알 수 있는가?
모르지.
그 전에 우리는 무엇을 하는가?
DHCP를 통해 GateWayRouter의 IP 주소는 안다.
그러면 Frame에
헤더
바디
주소를 이더넷에 뿌리면, GWR이 받아 IP를 확인하고 본인 MAC을 돌려준다.
이 과정이 ARP이다.
모든 컴퓨터에는 이처럼 ARP table이 존재한다.
IP 주소 - MAC 주소 - TTL 유효시간
A가 라우터 1에게 Frame을 보냈다.
라우터는 메시지의 IP를 찾아서,
Forwarding table을 보고 IP로 어떤 라우터 에게 보내야 할지 판단을 한다.
그리고 ARP table을 보고 IP를 MAC으로 찾아서 Frame으로 보내는 것이다.
같냐? 다르다. 라우터는 여러 NIC을 가지고 있다.
서브넷에서 다른 서브넷으로 보내려면 당연히 NIC이 달라야 할 거 아니냐?