떠도는..개발자 취준생

OSI 모델 : 2계층 - Data Link Layer 본문

네트워크/OSI 모델

OSI 모델 : 2계층 - Data Link Layer

iamjaewhan 2021. 9. 13. 23:28

1계층을 공부하며 2대의 컴퓨터가 통신하는 방법에 대해 공부했다. 즉, 여러대의 컴퓨터의 통신에서는 사용할 수 없는 방법이다. 그렇다면 여러대의 컴퓨터가 통신하기 위해서는 어떻게 해야하는가?

full mesh 구조

 

이 부분은 네트워크 첫번째 포스팅에서도 다루었다. 각각의 컴퓨터를 하나하나 다 연결할 수 있지만, 이런 방법은 매우 비효율적이고 비용이 많이 든다. 여러대의 컴퓨터를 효율적으로 연결하기 위해서 각각의 컴퓨터를 아래와 같은 구조로 연결하는 방법을 고안해내었다. 여러대의 컴퓨터들은 하나의 구리선으로 연결되어있고, 구리선을 통해 컴퓨터2에서 신호를 보내면 양 방향으로 신호가 전달되어 연결된 모든 컴퓨터에 데이터 전송이 가능해지는 것이다.

이처럼 여러대의 컴퓨터가 연결된 하나의 커다란 연결이 존재한다. 이 연결의 중추 부분을 박스에 넣으면 바로 더미허브, 즉 허브가 되는것이다. 이러한 허브가 바로 우리가 집에서 사용하는 공유기인 것이다.

이렇게 하나로 연결된 것을 네트워크라고 부르며, 이러한 네트워크들이 다시 서로 연결되어 인터넷이라는 커다란 연결망이 생성되는 것이다.

더미 허브 vs 스위치

더미 허브와 스위치 모두 연결된 컴퓨터에 데이터를 전송해주는 역할을 수행한다. 다만 둘의 차이점은 더미 허브는 연결된 모든 컴퓨터에 동일한 신호를 전송하는 것이고, 스위치는 특정 컴퓨터에만 데이터를 전송하는 것이다.

Data Linked Layer

 

여러대의 컴퓨터가 연결되어 이제 서로 데이터를 주고 받을 수 있게 되었다. 그런데 아래와 같은 상황이 발생할 수 있다.

여러대의 컴퓨터가 한 컴퓨터로 동시에 데이터를 전송한다고 가정해보자. 그렇다면 데이터를 수신하는 컴퓨터는 데이터를 연속해서 받게 되는데, 문제는 이러한 데이터는 어디서 어디부터가 유효한 범위인지 구분할 수 없다는 것이다. A, B, C 컴퓨터에서 target 컴퓨터로 동시에 데이터를 전송받았는데, 어디서부터 어디까지로 나누어야 하는지 모르게 되는 것이다.

 

 

 

 

Framing

이러한 문제를 해결하기 위해 송신측에서 데이터를 전송하기 전에, 데이터를 구분할 수 있는 구분자역할을 하는 비트열을 데이터의 앞과 뒤에 추가하게 된다. 위에선 예로 데이터의 앞부분에는 1111, 뒷부분에는 0000을 추가해주어 수신하는 컴퓨터에서 "여기서부터 여기까지가 데이터입니다." 식으로 데이터의 구분선을 인식할 수 있게하는 것이다.

처음에 예를 들었던 예시를 구분자를 앞뒤로 추가해서 받은 경우이다. 처음 1111을 시작하면 0000이 나올때까지의 비트열을 데이터로 인식하고 받아들이게 된다. 이러한 방식으로 입력받은 비트열을 송신하는 단위로 끊어읽을 수 있게 되는 것을 프레이밍이라고 한다.

 

 

Data Link Layer?

이처럼 같은 네트워크에 있는 여러대의 컴퓨터들이 Data를 주고받기 위해서 필요한 모듈을 Data Link Layer라고 한다. Framing은 데이터 링크 레이어에서 수행되는 작업중의 하나이며, 이러한 데이터 링크 레이어는 랜카드라는 하드웨어에 하드웨어적으로 구현되어있다.

'네트워크 > OSI 모델' 카테고리의 다른 글

OSI 모델 : 3계층 - Network Layer  (0) 2021.09.14
OSI 모델 : 1계층 - Physical Layer  (0) 2021.09.13