데이터 링크 계층 개요
- 물리계층에서 받은 정보를 잘못된 정보 없이 안전하게 전달하는 역활
- 디지털 신호를 프레임 단위로 상위계층에 전달한다.
- 다음 계층인 3계층에서 사용하는 IP주소를 알지 못한다.
- 데이터의 프레임화 - 프레이밍(Framing)
- 데이터의 경계를 식별하기 위해 시작과 끝을 알 수 있게 해준다.
- 컴퓨터는 0과 1밖에 몰라서 어디서부터가 헤더이고 어디가 끝인지 알 수 없다. 그래서 표시(프레임호)가 필요하다.
- 주소지정(Addressing)
- 프레임에 물리적주소, 즉 MAC 주소를 부여
- MAC 주소를 토해 데이터가 올바른 목적지로 전송될 수 있게 해준다.
- 오류검출
- ㅇ데이터 전송과정에서 발생할 수 있는 오류를 검출하는 기능
- 흐름제어(Flow Control)
- 송신측과 수신측 사이에 데이터 처리 속도 차이를 조절하여, 수신측이 처리할 수 있는 범위 내에서 데이터를 전송함
- 매체접근 제어(Media Access Control)
- 여러 장치가 같은 통신 매체를 공유할 때 충돌 없이 효율적으로 매체에 접근 할 수 있게 제어한다.
통신방법
- 단방향 통신
- 송신측과 수신측이 정해져 있고, 데이터는 한 방향으로만 전송된다.
- 송신측과 수신측을 연결하는 전송로 필요
- 무선호출기, 라디오, 아날로그 TV, 키보드 등이 있다.
- 양방향 통신
- 반이중 통신
- 양방향 통신이지만 동시에 데이터를 송/수신 할 수 없다.
- 무전기, 리모컨
- 전이중 통신
- 동시에 데이터를 송/수신할 수 있다.
- 전화, 이더넷, 와이파이 등
- 반이중 통신
- CSMA/CD
- 충돌감지를 통해 여러 장치가 동시에 데이터를 전송하지 않도록 제어한다.
- CS : 채널 감지, 데이터를 전송하려는 컴퓨터 케이블에 신호가 흐르는지 확인
- MA : 다중 접근
- CD : 충돌 감지, 충돌이 발생하고 있는지 확인함
- 데이터 전송 시 충돌 감지를 먼저 진행하고 충돌이 발생하면 브로드캐스팅을 해서 모든 노드에게 충돌 사실을 알린다. 이 후 임의의 시간이 지난 후 다시 데이터 전송을 하고 있는지 확인하여 충돌을 감지하고 충돌이 없으면 데이터 전송
- 초기 이더넷에서 많이 활용한 매체 접근 방식
- 현재는 스위치를 거의 모든 곳에서 사용하기에 잘 사용하지 않는 방식
- 충돌감지를 통해 여러 장치가 동시에 데이터를 전송하지 않도록 제어한다.
- CSMA/CD
- CA : 무선 네트워크에서 사용되는 프로토콜(와이파이)
- 무선 네트워크는 보안이 매우 중요하다.
- 네트워크 충돌을 방지 -> 무선네트워크에선 충돌 감지가 매우 어려워 방지에 초점을 맞춤
MAC 주소
- 네트워크 장비가 네트워크 상에서 고유하게 식별되기 위해 사용되는 식별자
- 랜 카드에 할당되어 있으며, 이 주소를 통해 네트워크에서 데이터를 주고 받을 수 있다.
- 16진수로 표현된다.
- 앞 3바이트는 제조사를 나타내고, 뒤 3바잍는 해당 제조사에서 할당한 고유번호이다.
- D6-25-8B-67-15-3D
- 하이픈으로 구분된 D6 하나를 옥텟이라고 부른다.
- 터미널에서 확인이 가능하다.
- window 터미널 : ipconfig/all
- linux : ifconifg
- MAC 주소를 조회할 수 있는 사이트로 찾아볼 수 있다.
브릿지
- 리피터와 비슷
- 두 개의 근거리 통신망 랜을 연결해준다. - 랜 확장 장치
- 리피터와 다르게 MAC 주소를 읽어서 처리할 수 있다.
- 스위치로 발전하여 더이상 쓰지 않는다.
스위치
- 허브와 달리 데이터 충돌이 발생하지 않는다.
- 이는 스위치가 각 포트를 독립적인 충돌 도메인으로 관리하기 때문이다.(MAC 주소를 구별할 수 있기 때문에 가능함)
- 충돌 도메인 : 데이터 패킷이 충돌할 수 있는 영역
- 허브는 연결된 모든 장치로 데이터를 송신하기 때문에 모든 노드에서 충돌이 발생할 수 있다.
- 한번에 여러 통신을 동시에 처리할 수 있다.
- 24포트 스위치가 기본
- 스위치 동작 방식
- 학습 : 데이터를 수신할 때마다 송신 장치의 MAC 주소를 기억하고 해당 주소와 연결된 포트를 MAC 주소 테이블에 저장한다.
- 전송 : MAC 주소 테이블을 참고하여 목적지 MAC 주소가 연결된 포트를 찾아서 데이터를 전송
- 필터링 : MAC 주소 테이블에 없는 목적지로 전송되는 데이터를 걸러낸다.
MAC 주소 테이블
- 스위치는 연결된 장치들의 MAC 주소를 MAC 주소 테이블에 저장한다.
- 프레임을 더 빠르고 효율적으로 전송할 수 있다.
- 스위치를 껏다가 키면 MAC 주소가 날아가는 것이 디폴트이다.
- 출발지 노드의 MAC 주소만 저장한다.(도착지는 X)
- MAC 주소 테이블은 3계층에서도 활용한다.
- 라우터는 MAC 주소 테이블을 이용해 올바른 목적지로 패킷을 전송한다.
이더넷
- 랜에서 가장 널리 사용되는 데이터 링크 프로토콜
- 네트워크를 연결하려면 하드웨어적으로 연결되어 있어야 하고, 소프트웨어적으로도 프로토콜이 정해져 있다.
- 데이터 전달을 위한 네트워크 프로토콜
- MAC 주소를 사용하여 네트워크 상의 장치들을 식별하낟.
- CSMA/CD 방식(현재는 스위치를 이용)을 사용하여 충돌을 감지하고 해결한다.
이더넷 프레임
- 데이터가 전송될 때 이런 모양으로 전송된다.
- 물리계층 헤더
- Preamble : 프레임의 시작을 알리는 신호, 7바이트로 구성되며 수신 장치가 동기화를 맞추는 목적
- SFD : 프레임의 시작을 표시하는 1바이트 필드
- MAC 프레임
- MAC 헤더(14바이트)
- MAC Destination : 도착지 MAC 주소(6바이트)
- MAC Source : 송신자 MAC 주소(6바이트)
- Len/Type : 이 뒤 내용이 어떤 데이터 타입이고, 길이는 어떤지 알려줌
- Data/Payload : 상위 계층의 프로토콜로부터 캡슐화된 데이터
- 크기가 46bye보다 작을 경우, 끝에 0을 붙여서 전송한다.
- FCS : 4바이트일 때도 있다..
- 2계층에서만 존재한다.
- 오류 검출
- MAC 헤더(14바이트)
MTU
- 상위계층에서 데이터(페이로드)가 내려온다.
- 이 데이터의 크기는 46-1500바이트 사이이다.
- MTU보다 큰 데이터는 MTU단위로 잘라서 전송한다.
- MTU는 네트워크에서 한 번에 전송 가능한 데이터 패킷의 최대 크기를 나타낸다.
- 바이트 단위로 측정
- 라우터, 스위치, 네트워크 인터페이스 등에 관련이 있다.
- MTU가 계속 커진다면, 한번에 엄청 많은 양의 데이터를 전송할 수 있다.
- 하지만 패킷을 전송하는 동안 오버헤드도 같이 증가한다. + 데이터의 품질이 떨어질 수 있다.(다시 보내야하는 것 -> 네트워크 부하)
- 오버헤드 : 어떤 작업을 수행하는데 필요한 부가적인 비용
- 오버헤드가 계속 커지기 때문에 MTU를 너무 크게하지 않고 크기를 1500바이트 안쪽으로 정함(이더넷 네트워크 기준)
- 이더넷 프레임보다 더 큰 MTU를 가진 프레임도 있음(이더넷 점보프레임 같은) -> 모든 장치가 점보프레임이어야지 특정부분만 점보프레임이면 최소 MTU 기준으로 패킷이 쪼개진다.
- 4000바이트로 보내면 1500 / 1500 / 1000으로 나뉘어져서 보내진다.
- 0 ~ 1500, 0 ~ 3000, 0 ~ 4000(offset 기준)
- offset : 특정 기준점으로부터 얼만큼 떨어져 있는가
LLC
- 데이터링크 계층은 물리계층으로부터 들어오는 디지털 신호를 변환해서 상위 계층으로 보내야한다. 이 기능을 LLC를 통해 나누어서 진행한다.
- 상위 LLC 부계층 : 상위 계층에서 내려오는 네트워크 계층과 하위MAC 계층간의 접속을 담당
- 데이터 프레임 처리 : 데이터를 패킷화하여 하위 MAC 부계층으로 전송하고, 하위 MAC 부계층에서 받은 데이터를 추출하여 상위 계층으로 전달한다.
- 하위 MAC 부계층 : 물리 계층 상의 토폴로지나 기타 특성에 맞추어 제어 담당
- 네트워크 상에서 실제로 데이터를 처리하는 역활을 한다.
- 주소 할당 : 각 네트워크 장치에 고유한 MAC 주소를 할당하여 통신에 참여한다.
- 미디어 엑세스 제어 : 여러 장치가 동일한 링크를 공유할 때, 충돌을 방지하고, 효율적인 데이터 전송을 위한 엑세스 제어를 관리한다.
- LAN 환경에서 네트워크 자원을 효율적으로 활용하려고 데이터링크 계층의 기능을 LLC 계층과 MAC 계층으로 나누어서 처리한다.
- 데이터링크 계층의 기본 기능은 주로 LLC에서 다루고, 물리적 전송 선로의 특징과 매체간의 연결방식에 따른 제어 부분은 MAC 계층에서 처리한다.
- MAC 계층
- 전송 선로의 물리적 특성을 반영하므로, LAN의 종류에 따라 특성이 구분된다.
- 대표적인 공유버스 방식은 이더넷과 토큰링 방식이다.
- 이더넷인 경우, 데이터를 전송하기 전 먼저 전송 선로가 사용중인지 확인하고 전송을 한다. 사용 중 다른 데이터 전송이 이루어지게 될 경우 충돌 문제가 발생할 수 있다. 충돌이 발생하면, 호스트는 이를 감지하고 일정 시점이 지난 후 재전송한다
- 토큰 링 방식은 버스표를 주고 버스를 타는 것과 같이 데이터를 전송하려면 먼저 토큰을 확보해야 하고, 전송이 확보되면 토큰을 링 위에 내놓아야 한다.
- LLC 계층
- WAN 환경의 데이터링크 계층과 거의 유사하다.
- 에러제어, 프레임 다중화, 필요시 흐름제어 기능이 있다.
- MAC, LLC의 차이점 : MAC이 공유 매체를 통해서 신뢰성 없이 패킷에 대한 전송서비스를 제공하는 반면, LLC는 기본적으로 두 지점간에 신뢰성이 있는 패킷 링크로 전환한다.
- LAN에서는 각 노드의 연결이 데이터 링크 프로토콜에 의해 직접 연결되는 방식을 취하지 않고, 두 개의 부계층으로 나뉘어 하위 MAC 부계층은 물리 계층 상의 토폴로지나 기타 특성에 맞추어 주는 제어를 담당하고, 상위의 LLC 부계층은 MAC 부계층과 네트워크 계층간의 접속을 담당한다.
Wi-Fi
- 무선 네트워크 기술
- 와이파이를 통해서 컴퓨터, 핸ㄷ폰, 기타 무선장치들이 인터넷에 연결되고 서로 통신할 수 있다.
- 일반적으로 2.4GHz와 5GHz라는 두 개의 주파수 대역을 사용한다.
- 2.4GHz는 비교적 느리지만 장애물의 영향을 덜 받고 상대적으로 전송범위가 넓다.
- 5GHz는 빠르지만 장애물의 영향을 많이 받고 상대적으로 전송범위가 좁다.
- 현재는 Wi-Fi 6E를 쓰는 중
VLAN
- Virtual : 논리적인 영역
- 가상메모리 : 물리적 메모리 + Swap영역(하드디스크)
- 메모리 크기 이상의 프로세스를 한번에 다 올릴 수 없으니 프로세스를 쪼개서 메모리에 올린다.
- 이 때, 쪼개진 프로세스를 메모리에 올릭, 메모리가 꽉 차 있으 경우 기존에 있는 프로세스를 잠시 Swap 영역에 옮기는데 이 공간과 물리 메모리를 모두 합쳐서 가상메모리라고 한다.
- 네트워크 장비 중 스위치는 VLAN이라는 가상화 기술을 사용하고 있다.
- VLAN이란 물리적 배치와 상관없이 LAN을 논리적으로 분할, 구성하는 기술이다.
- 예를 들어, 각 층별 스위치를 가지고 있는 A동 건물 13층에 여러 기업이 상주해 있다고 하자.
- 각 기업간의 네트워크 망은 분리되어 보안 유지가 되어야 한다. 이럴 때 VLAN을 사용하여 각 네트워크를 분리한다.
- 각 기업은 스위치를 통해 네트워크와 연결한다. 스위치는 24포트가 기본이다.
- 모든 기업이 따로 스위치를 각각 쓸 경우 낭비되는 포트가 많기 때문에 하나의 스위치만을 사용한다.
- 하나의 스위치에서 포트별로 VLAN을 설정하여 네트워크를 분리한다.
- 포트번호 1=기업a
- 포트번호 2=기업b
- 포트번호 3=기업c 이런식으로
- 이런 경우, 각 기업끼리만 통신이 가능하고, 기업 a, b, c는 서로 통신이 불가능하다.(인터넷 연결이 안되어 있다고할 때)
- VLAN을 나누면 하나의 스위치에서 다른 네트워크를 갖도록 논리적으로 분할한 것이기 때문에 브로드캐스트, 유니캐스트 통신이 불가능하다.
- 만약 VLAN간의 통신이 필요하다면, 게이트웨이 역활을 해줄 OSI 계층 장비의 도움이 필요하다.
- 스위치에는 각 포트의 기본 VLAN 설정이 1번으로 다 되어 있다.
- VLAN 할당 방식을 기준으로 Static VLAN과 Dynamic VLAN으로 구분할 수 있다.
- Static VLAN
- 스위치 포트에 VLAN을 할당하여 포트 기반 VLAN이라고 부른다.
- 어떤 단말이 접속하든지 스위치의 특정 포트에 VLAN을 할당하면 할당된 VLAN에 속하게 된다.
- 일반적으로 우리가 언급하는 대부분의 VLAN이다.
- Dynamic VLAN
- MAC 주소를 기반으로 VLAN을 할당한다.
- Static VLAN
- 만약 VLAN이 존재하는 상황에서 스위치를 서로 연결해야 하는 경우, 각 VLAN끼리 통신하려면 위의 사진처럼 VLAN의 개수만큼 통신포트를 서로 연결해야 한다.
- 하지만 VLAN을 많이 사용하는 중, 대형 네트워크인 경우 수백개의 VLAN이 있다면 수백개의 포트를 연결해야 하므로 포트 낭비 문제가 발생한다.
- 이러한 문제를 해결하기 위해 VLAN 태그 기능이 나와 VLAN이 N개여도 하나의 통합 링크를 통해 패킷을 보낼 수 있게 되었고, 이 방식을 Trunking이라 한다.
- VLAN 태그 기능은 하나의 포트에 여러 VLAN을 함께 전송할 수 있게 해주는 기능이다.
- 한 포트로 여러 VLAN 데이터가이동하려면 패킷이 어느 VLAN에 속하는지 구분해야 하는데, 이 때 VLAN ID를 통해서 구분한다.
- 태그 포트로 패킷을 보낼 때 VLAN ID를 붙이고, 수신측에서는 VLAN ID를 제거하는 방식이다.
VLAN 정리
- VLAN은 물리적 위치와 상관없이 논리적으로 네트워크를 분리하는 기술이다.
- VLAN은 각각 벼도의 네트워크 망으로 취급하기에 VLAN간의 통신은 3계층 장비의 도움이 필요하다.
- VLAN을 이용해 다른 층에 있는 장비들을 하나의 네트워크 그룹으로 묶을 수 있다.
- VLAN 종류는 대표적으로 Static(포트 기반 할당)과 Dynamic(MAC 기반 할당)이 존재한다.
- Trunking 동작을 하나의 태그 포트로 여러 VLAN 전송이 가능하다(VLAN ID 필드 사용)
- MAC 테이블에 VLAN ID가 추가된다.
'DevOps & SRE 엔지니어 부트캠프 > 공부' 카테고리의 다른 글
[CAB TA 3기] 네트워크(1) - 물리 계층 (2) | 2024.10.22 |
---|---|
[공부] 쿠버네티스 클러스터 흐름 (0) | 2024.10.21 |
[CAB TA 3기] 네트워크 - IP 클래스(IP Class), 서브넷 마스크(Subnet mask) (0) | 2024.10.16 |