[컴퓨터네트워크] Link Layer(3)

2025. 6. 20. 13:55·CS/컴퓨터네트워크
728x90

 

국민대학교에서 The Computer Networking: A Top-Down Approach, Global Edition 교재를 사용한
이창우 교수님의 강의를 듣고 정리한 글입니다

wireless & mobility Introduction

현재에는 유선 전화 가입자보다 무선 전화 가입자가 5배 이상 많은 시대이다

중요한 두 가지 도전 과제가 있다

바로 wireless와 mobility가 현대 네트워크 환경에서 중요하다는 점이다

 

  • wiresless hosts

스마트폰과 노트북 이미지가 이에 해당된다

응용 프로그램 실행이 가능한 기기들에 해당하며, 이동 가능하거나 고정되어 있을 수 있다

 

  • base station(bts)

기지국 이미지에 해당되는 부분이다

일반적으로 유선 네트워크에 연결된 장비로 무선 호스트와 유선 네트워크 간의 패킷 전달을 담당한다

 

  • wireless link(무선 링크)

이미지의 파란색 배경을 의미하며 기지국과 모바일 장비 간의 연결에 주로 사용된다

여러 장치가 하나의 링크를 공유하므로 다중 접근 프로토콜이 필요하다

 

  • infrastructure mode

기지국이 중심 역할을 해 모바일 장치들을 유선 네트워크에 연결해 주는 방식이다

네트어크의 중앙 집중형 구조라고 이해하면 된다

현재 기지국의 범위를 벗어나 다른 기지국으로 연결이 전환되는 것을 핸드오프라고 하는데

이때 soft 핸드오프 방식은 새로운 기지국과의 연결이 완료된 후 기존 기지국과의 연결을 끊는 방식이고(안정)

hard 핸드오프 방식은 기존 연결을 끊은 후 새로운 연결을 설정하는 방식이다(끊김 가능성)

 

  • ad hoc mode

기지국 개념이 존재하지 않아 각 노드(노트북 등)가 스스로 연결하고 통신해 네트워크를 형성한다

 

  • wireless network taxonomy

무선 네트워크를 이루는 요소들을 다양한 방식으로 결합한 결과이다

 

Wireless

wirelss links characteristic

무선 링크는 유선 링크와 달리 중요한 차이점들이 존재한다

 

decreased signal strength(신호 세기 감소)

무선 신호는 전파될 때 장애물이나 공기 등 물질을 통과하면서 약해진다

이 현상은 path loss 경로 손실이라고 한다

 

interference from other sources(다른 장치로부터의 간섭)

무선 주파수(2.4GHz)는 여러 장치가 공유하므로 간섭이 쉽게 발생한다

예를 들어 휴대폰, 모터 등의 장치가 같은 주파수를 사용할 경우 충돌이 발생한다

 

mulipath propagation(다중 경로 전파)

무선 신호가 벽, 바닥, 물체 등에 반사되면서 여러 경로로 수신지에 도달한다

이로 인해 신호가 조금씩 다른 시간에 도착하여 통신에 왜곡이 발생 가능하다

 

이러한 요소들을 보면 유선 링크보다 무선 링크에서 더 여러운 통신 환경이 만들어진다

 

SNR, BER

  • SNR(signal-to-noise ratio)

측정된 수신 신호의 세기와 잡음의 상대적인 비율이다

SNR이 클수록 신호를 잡음에서 쉽게 구분할 수 있어 오류가 줄어든다

 

  • BER(bit error rate)

송신된 비트가 수신 측에서 오류로 검출될 확률이다

 

주어진 물리 계층에서 전력을 증가시키면 SNR은 증가하고 BER은 감소하게 된다

즉, 더 강한 신호를 보내면 오류가 줄어든다는 것이다

 

이미지를 해석해보자면 각 선마다 물리 계층 방식이 다를 때

파란 선은 낮은 SNR에서도 낮은 BER유지가 가능하지만 속도가 낮다

초록 선은 높은 SNR에서 낮은 BER 유지가 가능하고, SNR이 낮아지면 오류가 많이 생긴다

 

그러면 SNR이 무조건 높으면 좋지 않을까?

하지만 무조건 높다고 해서 좋은 것은 아니다

SNR을 높이려면 신호 세기를 키워야 하는데, 이에 따른 전력 소비가 증가로 비용이 상승한다

또 송신 전력이 커지면 다른 채널이나 사용자에게 간섭을 주기 쉬워진다

 

무선 통신은 위에서 설명했던 예시보다 추가적인 문제들이 발생한다

 

Hidden terminal problem(숨은 터미널), Signal attenuation(신호 감쇠)

  • hidden terminal problem

A와 B는 서로 들을 수 있고, B와 C도 서로 들을 수 있다

하지만 장애물이 존재할 때 A와 C는 서로 듣기 힘들다

이때 둘 다 서로의 존재를 몰라 B에게 전송을 하게되면 간섭으로 충돌이 일어난다

 

  • signal attenuation

A와 C는 물리적으로 멀리 떨어져 있어 서로의 신호가 약하다

그래서 서로의 존재를 감지하지 못하는데, 중간의 B는 두 신호를 모두 수신할 수 있다

이때 서로 통신 중인지 모르고 동시에 전송 시도를 하게 되면 두 신호가 섞여 충돌이 일어난다

 

CDMA(code division multiple access)

저번에 봤던 다중 접속 프로토콜 중 채널 분할 방식에 속하는 프로토콜이다

코드 분할 다중 접속은 채널 분할 접속 프토콜로의 하나로 무선 랜 및 샐룰러에서 많이 사용된다

 

CDMA는 각 사용자에게 고유한 코드(chipping sequence)를 부여해서 데이터를 인코딩을 하고

모든 사용자가 동일한 채널을 사용하지만, 다른 코드를 사용하기 때문에 간섭 없이 동시 전송이 가능하다

 

encoded signal은 원본 데이터 x chipping sequence(코드)로 인코딩된 신호이며

decoding 방법은 인코딩된 신호에 해당 코드와 내적을 해 원래 데이터를 복원한다

 

위에 data bits이 실제 데이터, code가 chipping sequence이다

이때 송신자가 보내면 두개를 곱해서 channel output Z를 만들게 된다

 

이러한 데이터를 수신자가 받게되고 이전에 사용한 chipping sequence를 다시 사용한다

channel output과 code를 곱하고 더한 값을 총 갯수 M으로 나눠주게 되면 원래 데이터가 나온다

 

잘 동작하는 것을 볼 수 있다

하지만 우리는 단일 환경이 아니라 다중 접속이기 때문에 여러개가 들어오는 상황을 봐야한다

여러개의 데이터가 왔을 때 뭔지 잘 뽑아내야하기에 동작하는 과정을 알아보자

송신자가 두명이지만 당황하지 않고 각 송신자에서 데이터와 코드를 곱한 후 두 송신자의 값을 더해준다

-2와 2로 구성된 channel output Z를 볼 수 있다

 

디코딩하는 과정도 얼추 비슷하다

channel output을 가지고와 원하는 송신자의 chipping sequence를 곱해주고 더하고 총 갯수로 나눈다

그러면 송신자2의 원본 데이터인 -1과 1을 얻을 수 있다

 

뭔가 어려워보이지만 인코딩은 곱하고 더하면 되고, 디코딩은 곱하고 더하고 나누면 된다

 

IEEE 802.11 wireless LANs (”Wi-Fi”)

무선 랜 관련해서 여러 기술이 나오고 발달했지만, 그 중 가장 성공적인 기술이 와이파이이다

아직 나오지 않았지만 CSMA/CA 프로토콜을 사용하고

AP라는 base station 역할을 하는 중앙 제어 장치가 있으며 ad-hoc도 지원하는 것도 있다

 

Architecture

  • BSS(basic service set) infrastructure

무선 호스트와 기지국인 AP로 구성되어 있으며

무선 호스트는 base station인 AP(access point)와 통신을 한다

 

채널은 2.4GHz ~ 2.485GHz 주파수에서 11가지 채널로 나뉘며 AP 관리자가 선택을 한다

그리고 호스트 기기를 사용하려면 AP와 연결(결합, association)을 해야지 인터넷을 사용할 수 있다

 

만약 내가 BSS에 들어왔다면 연결을 해야하는데 어떻게 연결이 될까?

 

passive/active scanning

  • passive scanning

AP가 먼저 광고하는 방식이다

AP가 beacon frame을 주기적으로 전송하면, 호스트가 원하는 AP를 골라 association request을 전송한다

그리고 선택된 AP가 호스트에게 association response를 보내 연결을 확립한다

단말은 대기만 하면 되는 장점이 있지만, 그만큼 기다릴 수도 있다는 점이 단점이다

 

  • active scanning

호스트가 먼저 탐색 요청을 보내는 방식이다

호스트가 probe request 프레임을 브로드캐스트한다

각 AP가 probe response를 보내게 되고 호스트는 원하는 AP를 선택 후 association request을 전송한다

선택된 AP가 association response을 보내 연결을 확립한다

빠른 연결이 가능한 것이 장점이지만, 호스트가 프레임을 적극적으로 보내야하니 비용이 소모된다

 

Addressing

802.11 프레임 구조에 주소 필드는 유선 이더넷과 다르게 최대 4개의 6바이트 주소 필드를 가진다

  • address1: 이 프레임을 받을 대상인 수신자의 MAC 주소
  • address2: 이 프레임을 보낸 송신자의 MAC 주소
  • address3: 보통은 AP가 연결된 라우터의 MAC 주소(원래 목적지 또는 출발지)
  • address4: ad hoc 모드일 때만 사용되는 프레임이 중간 노드를 거칠 때 출발-목적지 정보를 유지하는 용

 

현재 상황은 무선 호스트 H1이 데이터를 AP를 통해 인터넷으로 전송하는 상황이다

처음에는 아마 H1이 자신의 주소는 알고 있어도 라우터의 맥주소는 모를 것이다

그래서 H1은 APR을 사용해 브로드캐스트를 하고 R1의 APR 응답을 받아 R1의 MAC 주소를 얻게 된다

 

H1이 802.11 프레임을 생성한다

address1: AP의 MAC 주소

address2: H1의 MAC 주소

address3: R1의 MAC 주소

 

AP가 이 802.11 프레임을 수신하게 되면 이것을 이더넷 프레임(802.3)으로 변환시킨다

출발지 주소 필드: H1의 MAC 주소

목적지 주소 필드: R1의 MAC 주소

AP가 이더넷 프레임을 구성할 때 address3가 원래 목적지 또는 출발지가 사용되는 것을 알 수 있다

 

이건 어떤 과정으로 프레임이 만들어지는지 궁금해서 참고하려고 적었다

H1이 어떤 데이터를 전송할 때
1. 전송 계층 (TCP/UDP) → 데이터를 TCP 세그먼트나 UDP 데이터그램으로 만듦
2. 네트워크 계층 (IP) → IP 헤더를 붙여서 IP 데이터그램 생성
예: [IP Header][TCP Segment]
3. 데이터 링크 계층 (802.11, Ethernet 등) → 프레임 헤더와 트레일러를 붙여서 프레임 생성
예: [MAC Header][IP Datagram][Frame Trailer]

 

Advanced capabilities

와이파이는 어떻게 신호가 약해져도 끊기지 않고 연결을 유지할 수 있을까?

바로 신호 품질(SNR)이 나빠지면, 전송 속도를 낮추는 대신 더 안정적인 통신 방식을 선택해 연결을 유지한다

 

  • Rate adaptation(속도 적응)

속도 적응은 기지국(AP)과 모바일 기기가 상황에 따라 동적으로(실시간으로) 전송 속도를 바꾼다는 의미이다

왜 속도를 바꿔야 할까? 바로 상황에 따라 SNR이 계속 변하기 때문이다

 

예시를 보면 이해하기 더 쉽다

 

  • 공유기 바로 앞에 있을 때 (신호 최상)

현재 위치는 공유기 바로 앞이라 신호가 매우 강해 SNR이 30dB이다

그래프에서 SNR=30인 지점에서 가장 빠른 녹색 선을 선택한다

이때의 오류율(BER)은 10⁻⁶으로 매우 낮아, 최고 속도로 매우 안정적인 통신이 가능하다

 

  • 다른 방으로 이동했을 때 (신호 약화)

사용자가 벽이 있는 다른 방으로 이동해 신호가 약해져서 SNR이 22dB로 떨어졌다

만약 시스템이 계속해서 녹색 선 고집한다면 어떻게 될까?

SNR 22dB에서는 BER이 10⁻³ 위로 치솟아 오류가 엄청나게 많아져 사실상 통신이 불가해진다

 

이때 "속도 적응” 기능이 작동한다

시스템은 BER이 너무 높아진 것을 감지하고, 파란석은 무리라고 판단해 빨간 선으로 통신 방식을 전환한다

빨간 선의 BER은 약 10⁻⁵ 정도로, 녹색 선에 비해 훨씬 안정적이다

속도는 8 Mbps에서 4 Mbps로 희생했지만, 덕분에 오류율을 크게 낮춰 안정적인 연결을 유지할 수 있게 된다

 

CSMA/CA

유선 이더넷에서 사용하는 CSMA/CD와 달리 와이파이는 신호가 감쇠하고, 숨겨진 단말 문제가 존재해

데이터 전송 중 발생하는 충돌을 실시간으로 감지하기 어렵다

그래서 충돌을 감지하는 대신 회피를 하는 CSMA/CA를 도입하게 된다

 

설명하기 전에 DIFS, SIFS가 무슨 역할을 하는 지 알아보자

DIFS(distributed inter-frame space)는 새로운 데이터 전송을 시작하기 위한 기본 대기 시간이다

다른 통신이 끝났다고 바로 끼어들지 않고, 최소한 이 시간만큼은 기다려서 긴급한 통신이 있는지 확인한다

SIFS(short inter-frame space)는 프레임 사이에 짧은 시간 간격을 주는 것으로

매우 중요한 응답 메세지가 다른 일반 데이터보다 먼저 전송될 수 있도록 권한을 주는 것이다

 

  • 802.11 sender

송신자는 두가지 규칙을 따른다

첫번째, DIFS동안 채널이 비어있으면, 즉시 전체 프레임를 전송한다

두번째, 채널이 사용중이라면 랜던 backoff 타이머가 시작되고 채널이 비어있을 때 까지 타이머가 줄어든다

타이머가 0이되면 전송을 시작하고, 데이터를 보냈는데 ACK가 없으면 백오프를 증가시켜 다시 시도한다

 

  • 802.11 receiver

송신자로 부터 프레임이 잘 수신되었으면 SIFS만큼 대기 후 ACK를 보내 안전하게 잘 도착함을 알려준다

 

Avoiding collisions

이번에는 CSMA/CA의 한계를 보완하는 RTS/CTS에 대해서 알아보자

이 기술은 길이가 긴 프레임의 충돌을 피하기 위해 무작위로 채널을 차지하기 보다 채널을 예약하는 기술이다

RTS(Request to send): 데이터를 보내고 싶은 송신자가 허락을 구하는 신호
CTS(Clear to send): 보내기에 문제없다고 수신자가 전송을 허락하는 신호

 

송신자는 실제 데이터를 보내기전에 작은 RTS 패킷을 CSMA를 사용해서 base station(AP)에게 보낸다

RTS가 충돌할 수도 있지만 그래서 일부러 본 데이터 말고 짧은 RTS를 보내는 것이다

그리고 RTS를 받은 BS는 보내도 되며, 나머지 노드들은 가만히 있어라라는 CTS를 브로드캐스트한다

이때 모든 기기가 CTS를 듣고, 송신자는 프레임을 보내고 다른 기기들은 대기한다

 

충돌 장면인데 이게 RTS를 사용하는 이유이다

그냥 다시 보내면 되기 때문!

 

NAV(Net allocation vector): 가상 채널 감지 매커니즘,즉 가상의 방해 금지 타이머 → 숨은 터미널 해결
패킷에서 통신의 지속 시간 정보를 읽어 NAV 타이머를 설정해 0이 될 때까지 기다린다

 

  1. Sender의 RTS 전송
  • sender는 DIFS만큼 기다린 후, "데이터 보낼게!"라는 의미의 RTS를 보낸다
  • 이 RTS 안에는 "CTS + SIFS + Data + SIFS + ACK"에 필요한 총 시간 정보가 들어있다

 

  1. Other Stations의 NAV 설정 (1차)
  • other stations 중 sender의 신호를 들을 수 있는 기기들은 이 RTS를 듣는다
  • RTS 안의 '지속 시간' 정보를 읽고, 자신의 NAV 타이머를 설정한다
  • 이제 이 기기들은 타이머가 끝날 때까지 전송을 미룬다(defer access)

 

  1. Receiver의 CTS 전송
  • receiver는 RTS를 받고, SIFS만큼 기다린 후 CTS를 주변에 브로드캐스트를 한다
  • 이 CTS 안에는 "Data + SIFS + ACK"에 필요한 남은 시간 정보가 들어있다

 

  1. Other Stations의 NAV 설정 (2차)
  • other stations 중 sender의 신호를 못 듣던 숨은 터미널들도 receiver가 보낸 이 CTS는 들을 수 있다
  • CTS 안의 '남은 시간' 정보를 읽고, 자신의 NAV 타이머를 설정한다
  • 결과적으로, 이제 주변의 모든 기기들이 앞으로 채널이 얼마 동안 사용될지 알게 되었다

 

  1. 안전한 데이터 전송 및 확인
  • sender는 CTS를 받고 SIFS만큼 기다린 후, 안전하게 data를 전송한다
  • receiver는 data를 받고 SIFS만큼 기다린 후 ACK를 보낸다
  • 이 모든 과정 동안, 다른 기기들은 NAV 타이머 때문에 조용히 기다린다

 

  1. 경쟁 재시작
  • ACK 전송까지 끝나면 예약된 시간이 모두 종료되고, NAV 타이머도 0이 되어 채널이 자유로워진다
  • 이제 다른 기기가 DIFS와 Random Backoff를 거쳐 새로운 데이터 전송을 시도할 수 있다
728x90

'CS > 컴퓨터네트워크' 카테고리의 다른 글

[컴퓨터네트워크] Network Security란?  (1) 2025.06.20
[컴퓨터네트워크] Link Layer(4)  (1) 2025.06.20
[컴퓨터네트워크] Link Layer(2)  (0) 2025.06.20
[컴퓨터네트워크] Link Layer(1)  (1) 2025.06.20
[컴퓨터네트워크] Network Layer(4)  (0) 2025.05.20
'CS/컴퓨터네트워크' 카테고리의 다른 글
  • [컴퓨터네트워크] Network Security란?
  • [컴퓨터네트워크] Link Layer(4)
  • [컴퓨터네트워크] Link Layer(2)
  • [컴퓨터네트워크] Link Layer(1)
Dlawoct
Dlawoct
WeekEnd 개발자
  • Dlawoct
    Week-End
    Dlawoct
  • 전체
    오늘
    어제
    • 분류 전체보기 (58)
      • Language (9)
      • Algorithm (8)
      • Backend (7)
        • Spring (7)
        • Node.js (0)
      • DataEnginering (3)
        • Big Data (0)
      • CS (27)
        • 데이터베이스 (11)
        • 컴퓨터네트워크 (14)
        • 운영체제 (2)
      • IT 지식 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    SQLD
    스프링
    spring
    DML
    백엔드
    컨테이너
    운영체제
    김영한
    network layer
    select
    SQL
    TCP
    UDP
    Ack
    언어
    Java
    데베
    백준
    Link
    데이터베이스
    자바
    김영한 java 강의
    db
    프로그래밍 언어
    쿠버네티스
    관계
    security layer
    Link Layer
    링크계층
    도커
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.3
Dlawoct
[컴퓨터네트워크] Link Layer(3)
상단으로

티스토리툴바