오래 못 할 짓 하지 않기

[ 네트워크 ] 23. Link layer : Multi Access Protocol , ARP 본문

3학년 2학기/네트워크 (Network)

[ 네트워크 ] 23. Link layer : Multi Access Protocol , ARP

쫑알bot 2024. 12. 2. 12:41
728x90

Link Layer

: 인접한 노드들끼리 Communication 하여 정보를 주고받는 Layer

* Node = 호스트와 라우터

 

📌  특징

 

해당 Layer에서 데이터의 단위는 Frame 이다.

 

## Link 계층에서는 Datagram(=Frame)을 하나의 노드에서 

     물리적으로 인접한 노드에 Link를 통해서 보낸다.

 

 

📌  기능

- Framing , Link Access

 : Datagram에 Header,Trailer 를 붙여서 Frame으로 Encapsulation 한다.

 

* Frame 헤더에 있는 MAC 주소가 src와 dest를 식별한다.

  ( IP랑은 다른 개념이다. Link layer에서는 IP가 아닌 인접한 Node끼리 소통한다. )

 

- Reliable Delivery Between Adjacent Nodes

  : 가까운 노드와만 소통하기 때문에 Bit-error가 거의 나지 않는다.

 

+ full-duplex : 동시에 쓰고 읽기 가능

 


 Multiple Access Protocol

[ 종류 ] 

 

1. Point to Point 

2. Broadcast ( shared wire or medium ) 

  > Broadcast 방식으로 작동한다고 했을 때, Src에서 보내면 모두가 받는다.

     그렇다면, 동시에 하나의 node가 여러 신호를 받게 되면 Collision이 발생한다.

 

  Multiple Access Protocol

: Node가 어떻게 Channel을 통해 받을지

                                                         언제 받을지 를 정한다.

 

 

Link Layer부터는 Network Interface Card ( NIC ) 혹은 Chip에 저장되어 있다.

= Hardware로 구현됨.

 

[ 보내는 쪽에서 할 일 ]

- Datagram을 Frame으로 Encapsulate

- Checksum 추가

 

 

[ 받는 쪽에서 할 일 ]

- 문제없이 도착했는지 확인한다.

- Datagram을 빼내어서 위로 보내준다.

 


Addressing 

사람을 인덱싱할 땐 어떻게 하냐?

할 수 있는 방법은 많다. [ 이름 , 주소, 학번, 전화번호, 주민번호 ...등등 ] 

 

네트워크는 어떻게 해야할까?

[ Host name , IP address .... Mac address ] 가 있을 것이다.

 

하지만 바꿀 수 있는지 아닌지를 생각해보면 바꿀 수 없는 건, 주민번호밖에 없다.

네트워크도 바꿀 수 없는 건 Mac address 뿐이다.

태어날 때 주민번호 받듯이, NIC이 만들어질 때 할당되는 Mac이다.

 

 

- IP Address : Network Layer에서 Forwarding 및 주소를 다루기 위해서 사용되었다.

   >  우편주소 같은 거( 바뀔 수 있음 )

 

- MAC : 직접 가까이 연결되어 있는 Node 들과 통신하기 위한 주소 + NIC에 할당되어있다. 

   >  주민등록번호 같은 거( 안 바뀜 )

 

 

 

 

따라서 각각의 LAN에서 각각의 Host는 

- 48bit MAC Address와

- 32bit IP Address를 가지고 있다.

 


Address Resolution Protocol
ARP

 

Network Layer에서는 Src,Dest를 IP 정보만 가지고 알아냈다.

그럼 우린 그 IP를 받아서 MAC주소를 알아내야한다.

어떻게 할까?

 

📌ARP Table

: 각각의 IP에 해당하는 Node들에 대한 정보를 담아둠

- IP / MAC Address

- TTL 

 

 

예제) A가 B에게 Datagram을 보내려고 한다.

1. a가 B한테 보내려고 하는데 B의 IP주소는 있지만 MAC주소가 ARP에 없음
a가 broadcast로 인접한 Node들에게 "해당 IP(B)로 보내려고 하는데 관련있는 사람 MAC ADDR좀 줘봐 " 라고 Request

 

2. B가 그 Broadcast를 보고 A한테 response


3. a가 받고 ARP Table을 Update한 후, 그 정보를 기반으로 통신한다.

 

 

 

 

 

 


Routing to anoter subnet 
: Addressing

여기 교수님이 역대급으로 쌉강조하셨음

 

A에서 R을 통해 B로 Datagram을 보내려고 한다.

[ A가 알고있는 것 ]

 

- B의 IP주소                  ( DNS 를 통해 Network Layer에서 받음 )

- 첫 HOP인 R의 IP 주소 (DHCP로 알고있음)

- R의 MAC 주소              (ARP를 통해 알고있음)

 

1. Datagram에는 IP주소가 있고,  → Forwarding Table을 통해 IP dest를 위해 Next HOP을 판단 및 IP받은 것

Frame에는 MAC 주소가 있다.       → 위에서 받은 ARP Table을 통해 MAC 주소 받은 것

 

이때, MAC주소는 Next HOP을 통해 IP를 받고 계산한 것이기 때문에

Router의 주소다.

 

Link Layer 단계로 정보를 주고받는다.

 

 

 

2. R에서 A가 보낸 정보를 받고, Datagram의 주소를 보니 본인이 아닌 걸 보고

  다시 해당 주소로 Forwarding한다.

 

이때도 R이 가진 ARP Table을 참고하여

B의 MAC Address를 얻은 정보를 가지고 Frame을 만들어 보낸다.

 

 

3. B가 해당 Frame을 받는다.

 

 

 

[ 알아두기 ]

- IP는 최종 목적지의 주소를 가리킨다.

- MAC은 다음 = 인접한 Router의 주소를 가리킨다.

 

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

📌

(출처)

한동대학교 고윤민교수님 - 컴퓨터 네트워크