Shine's dev log
Link layer 프로토콜 개요 본문
1. TCP/IP protocol stack
TCP/IP 프로토콜 스택에 따르면, 위의 그림과 같이 총 5개의 프로토콜 스택으로 구성되어 있다.
이번에 살펴볼 레이어는 2번째 레이어인 Link layer 프로토콜이다.
특히 Link layer에서 취급되는 패킷을 Frame 이라고 부르는데, Frame의 구조는 아래 그림과 같다.
다른 레이어의 패킷에 비해 크게 두가지 특징을 발견할 수 있는데, 1) payload 뒤에 error control을 위한 trailer(꼬리)가 붙어있다는 것이고, 2) Source address가 아닌 Destination address가 먼저 위치해 있다는 것이다.
특히 2)번의 경우, 라우터 입장에서 해당 Frame이 자신이 받아야 하는 녀석인지를 빠르게 판단하기 위해서 가장 앞에 위치해 두었다.
2. Link layer 서비스
다음으로 Link layer에서 제공하는 다양한 서비스를 살펴보자.
1) Framing, link access
- network layer의 datagram을 encapsulate 하여(헤더와 트레일러 붙이기) frame으로 만드는 기능
- 여러 노드가 공유된 medium을 사용할 경우, 이를 제어한다.
2) 인접한 노드들 간의 Reliable delivery
- go-back-N, Selective repeate 등의 기술 이용
- 특히 무선 통신의 경우, 잘 고려해야 함
3) Flow control
- 수신단의 상황을 보며 트래픽 조절
4) Error detection / correction
- 에러를 감지하며, 효율성을 위해 correction 까지 수행
3. Link의 두가지 타입
여러 노드가 link를 구성하는데에는 크게 두가지 타입으로 나눌 수 있다.
1) Point-to-point link
위 그림처럼 노드들 간에 dedicated 된 link를 사용하는 방식이다.
빠르고 보안성이 높다는 장점이 있지만, 패킷의 경로가 길어지거나, 네트워크 카드가 여러개 필요하는 등 효율성이 떨어진다는 단점이 있다.
이 경우, 신뢰성 있는 전달이나 flow control 등과 같은 Data link control 기능만 제공하면 된다.
2) Broadcast link
여러 노드들이 하나의 공유된 link를 사용하는 방식이다.
효율적이라는 장점이 있지만, 보안이 약하고, 여러 노드가 동시에 신호를 보낼 경우 변조될 가능성이 존재한다는 단점이 있다.
이 경우, 위 그림과 같이 Data link control 기능 뿐만 아니라, 여러 신호가 섞이는 것을 방지하기 위한 Media access control 기능도 필요하다.
4. 그래서 link layer는 어디 구현되어 있는데?
앞서 application layer는 application 프로그램에 구현되어 있고, 나머지 하위 4개 layer는 OS 커널에 구현되어있다고 했었다.
그래서 link layer도 OS 커널에 구현되어 있는데, OS 뿐만 아니라, 네트워크 카드에도 일부 구현되어있다다.
위 그림처럼, 특정 application에서 트래픽을 보내고 싶을때, CPU를 통해 appilcation과 OS 커널에 구현된 프로토콜을 따라 내려오다, link layer를 거칠 때 네트워크 카드를 거치는 것을 확인할 수 있다.
이후 네트워크 카드의 physical transmission 인터페이스를 통해 실제 물리적인 신호가 전달되는 것이다.
오늘 배운 내용을 정리해보면,
1. Link layer는 TCP/IP 중 2계층에 해당한다.
2. Link layer의 Frame은 여러 서비스를 제공한다.
3. Link layer 프로토콜은 OS 커널과 네트워크 카드에 분할 구현되어 있다.
위 내용은 공부하며 정리한 것으로, 오류가 있을 수 있습니다.
'컴퓨터 네트워크' 카테고리의 다른 글
BGP의 개념 (Border Gateway Protocol) (3) | 2021.07.31 |
---|---|
OSPF의 개념 (Open Shortest Path First) (1) | 2021.07.22 |
라우팅 알고리즘 (Dijkstra's 알고리즘, Bellman-Ford 알고리즘) (0) | 2021.07.15 |
라우팅 알고리즘 (Link state & Distance vector) (0) | 2021.07.14 |
IPv6 의 개념 (0) | 2021.07.02 |