2.1. 프로토콜과 계층
“프로토콜”(Protocol 또는 통신 규약)은 둘 이상의 통신 장치 사이에서 메시지를 주고 받는
양식과 규칙을 정의한 것입니다.
(대표적으로 HTTP, FTP, Telnet, SMTP, SSH, SSL, ARP 등이 프로토콜 입니다.)
오늘날 프로토콜은 다양하게 존재하며 이들을 조직화 하기 위해 계층화 된 시스템을 사용합니다.
프로토콜 “계층화”(Layer)는 어떠한 계층이 하위계층의 서비스를 이용하며,
상위계층으로 서비스를 제공하는 구조로 되어 있습니다.
계층화의 장점은 구조적으로 관리하기 쉽고 모듈화를 통해 시스템 구성 및 갱신 작업이 용이 합니다.
계층화의 단점은 각 계층은 각 독립적인 모듈을 사용하여 위 아래 계층을 매개 하므로,
두 계층 간 기능이 중복되게 설계될 수 있습니다.
먼저, PDU에 대해 정의한 후, 프로토콜 스택을 배워 보겠습니다.
“PDU”(Protocol Data Unit)는 프로토콜 계층 간에 전송되는 정보의 단위 입니다.
해당 계층이 다루는 정보의 단위를 PDU로 묶어서 표현한 것입니다.
“프로토콜 스택”(Protocol Stack)은 계층화 된 프로토콜을 스택으로 표현한 것입니다.
인터넷 프로토콜 스택은 5개 계층으로
1). “응용(Application)계층” : 최 상단 계층으로 PDU는 “메시지”(Message)로 표현하고,
각종 응용 프로토콜이 해당 계층에 위치합니다.
2). “전송(Transport)계층” : 최 상단 한 단계 아래 계층으로 PDU는 “세그먼트”(Segment)로 표현하고,
최상단의 Client와 Server간의 메시지 전송 서비스를 제공해줍니다.
전송계층 프로토콜에는 TCP와 UDP가 있습니다.
3). “네트워크(NetWork)계층” : 중간 단계 계층으로 PDU는 “데이터그램”(Datagram)으로 표현하고,
“패킷”(Packet)은 데이터그램에 속합니다.
발신지 host TCP 에서 수신지 IP를 받아 수신지 host TCP에 세그먼트를 전달하는 서비스를 제공해줍니다.
네트워크계층 프로토콜에는 IP프로토콜과 라우팅프로토콜이 있습니다.
4). “링크(Link)계층” : 중간에서 한 단계 아래 계층으로 PDU는 “프레임”(Frame)으로 표현하고,
네트워크계층에서 보낸 데이터그램을 수신지가 있는 네트워크계층으로 전달하는 서비스를 제공해줍니다.
링크계층 프로토콜에는 Ethernet, Wi-Fi 등이 있습니다.
5). “물리(Physical)계층” : 최 하단 계층으로
물리적 선 또는 매체를 사용해서 프레임을 비트단위로 전송하는 서비스를 제공해줍니다.
물리 계층 프로토콜은 선 또는 매체에 따라 다른 프로토콜을 적용합니다.
다른 프로토콜 스택으로는 “ISO” 에서 제시한 “OSI”(Open Systems Interconnection) 모델은 7계층 모델로
“응용(Application)계층” <-> “표현(Presentation) 계층” <-> “세션(Session) 계층” <-> “전송(Transport)계층”
<-> “네트워크(Network) 계층” <-> “데이터링크(Datalink) 계층” <-> “물리(Physical)계층” 으로 정의 합니다.
실제로 프로토콜 계층은 “캡슐화”(Encapsulation) 되어 송수신 되는데,
각 계층의 PDU은 “헤더(Header)필드” 와 “페이로드(Payload)필드” 로 구성되어 있습니다.
메시지를 송수신 하는 과정에서 상위계층의 PDU을 하위계층의 PDU으로 만들어 보내는 과정을 거치는데,
상위계층의 PDU을 하위계층의 PDU으로 만들기 위해,
상위계층의 PDU에 하위계층의 “헤더”(Header)를 부착하여 계층을 내리고,
5계층으로 “캡슐화” 된 PDU을 물리계층으로 전송하고, 도착해서 헤더를 읽거나 수정하여
최종적으로 수신지에 도달하는 과정을 거치게 됩니다.
2.2. 물리 계층( 물리 매체 )
물리적인 선이 존재하여 선을 따라 정보를 전달하는 매체를 “유도매체”라고 표현하고,
물리적인 선이 없이 정보를 전달하는 매체를 “비유도매체”라고 표현합니다.
유도매체는 다음의 내용들이 존재합니다.
1). “꼬임쌍선”(Twisted-Pair) : 2개의 절연 체를 꼬아서 전기 간섭을 최소화 한 선 입니다.
두 개가 “페어”(Pair)로 꼬여 있으며, 이 페어들이 서로 묶여서 하나의 큰 케이블이 형성됩니다.
하나의 페어가 하나의 통신 링크로 동작합니다.
모든 페어는 꼬여있으며, 꼬임의 길이를 서로 다르게 하여 누화 간섭을 최소화 합니다.
하지만, 전기를 사용하여 전송하는 매체이기 때문에, 신호 가로채기 등의 보안 문제와,
점점 강도가 약해지는 문제가 있어 증폭기 또는 리피터를 중간 중간 설치 해야 하는 점이 있습니다.
“UTP”(Unshielded Twisted Pair) 는 보호되지 않은 유연한 꼬임 쌍선입니다.
비 차폐 방식으로 페어들 끼리나 주위 잡음 등의 외부 전자기 간섭에 취약합니다.
오늘날 가정에서 가장 많이 쓰이는 LAN 선도 UTP선 입니다.
“STP”(Shielded Twisted Pair) 는 금속으로 페어를 감싸서 페어끼리 혹은 전체 차폐를 한 꼬임 쌍선입니다.
간섭이 많은 환경이나 민감한 데이터 전송을 필요로 하는 곳에서 자주 사용됩니다.
오늘날 기업에서 “STP”(Shielded Twisted Pair)를 사용하기도 합니다.
2). “동축 케이블”(Coaxial Cable) : 중심 도체로 정보를 전달하고 중심 도체를 감싸는 절연체와,
차폐 기능을 하기 위해 외부 도체를 두어 만든 케이블입니다.
TP보다 구조적으로 튼튼하고 간섭과 누화가 덜하여, 보다 장거리에서도 좋은 효과를 발휘 할 수 있습니다.
하지만, TP와 동일하게 전기를 사용하여 전송하는 매체이기 때문에, 신호 가로채기 등의 보안 문제와,
점점 강도가 약해지는 문제가 있어 증폭기 또는 리피터를 중간 중간 설치 해야 하는 점이 있습니다.
오늘날 일반적인 유선 TV 에 사용되는 선 입니다.
3). “광섬유”(Fiber Optics) : 빛의 파동으로 비트를 전달하는 가늘고 유연한 케이블 입니다.
빛의 굴절률이 다른 코어와 클래딩이 존재하여 클래딩이 코어를 감싸고,
외피가 클래딩을 감싸는 구조로 되어 있습니다.
빛의 전반사를 사용하여 선에 흡수 되지 않고 도달 할 때까지 반사되면서 도달하는 방식입니다.
전기를 사용하지 않는 매체이기 때문에, 신호 가로채기 등의 보안 문제와 신호 강도가 약해지는 문제가 없습니다.
오늘날 가정용 광케이블과 기업용 해저 케이블에 사용됩니다.
비유도 매체는 다음의 내용들이 존재합니다.
1). “지상 라디오 채널”(Terrestrial Radio Channel) : 흔히, 지상파로 불리는 것으로 가정에 안테나를 달고
큰 송/수신탑에서 나오는 내용을 주고 받는 방식입니다.
2). “위성 라디오 채널”(Satellite Radio Channel) : 흔히, 위성전파로 불리는 것으로
위성에서 안테나로 내용을 주고 받는 방식입니다.
물리 매체에 의한 전송 모드는 다음 세 가지가 있습니다.
1). Simplex : 단방향 전송 방법입니다. 즉, 전송부와 수신부로 구별 가능합니다.
2). Half-Duplex : 양방향 전송 방법입니다. 하지만, 순간 순간에 전송 또는 수신 둘 중에 하나만 가능합니다.
3). Full-Duplex : 양방향 전송 방법입니다. 다양한 방법으로 동시에 전송과 수신을 할 수 있습니다.
Full-Duplex을 가능케 하는 다양한 방법으로 다음 두 가지 방법을 주로 사용합니다.
i). “시분할 이중통신”(Time Division Duplex, TDD) :
특정 시간을 기준으로 송신과 수신을 나누어 돌아가는 방식(라운드 로빈 방식)으로 수행하는 방식입니다.
ii). “주파수분할 이중통신”(Frequency Division Duplex, FDD) :
특정 주파수를 분할하여 송신 주파수와 수신 주파수를 할당해서 통신을 수행하는 방식입니다.
물리매체에서 생기는 전송손상 요인으로 다음 세 가지가 있습니다.
1). “감쇄”(Attenuation) : 전송매체의 저항, 임피던스 때문에 신호가 점점 약해지는 현상을 의미합니다.
2). “지연왜곡”(Delay Distortion) : 유도매체에서 각기 다른 주파수 신호는 주파수별 속도차이가 간섭을 일으키거나,
비트 전송을 할 때 일부 지연이 다른 비트를 간섭하는 현상을 의미합니다.
3). “잡음”(Noise) : 크게 “열잡음”( 도체 내 전자가 내는 열에 의해 발생 ),
“누화잡음”( 인접한 전송매체 간의 전자기적 유도로 인해 발생 ),
“충격성 잡음”( 강한 전자기적 충격( 번개, 전자기공격 )으로 인해 발생 ) 이 존재합니다.
2.3. 물리 계층 ( 무선 매체 )
유선 매체를 이용한 통신도 사용되지만, 오늘날에는 유선통신보다 무선통신이 보편화되어 있을 정도로
무선 매체 통신을 자주 이용합니다. 그래서 이번 장에서는 무선 매체와 무선 매체의 통신에 대해 다뤄 봅시다.
“Wi-Fi 802.11 Wireless LAN” 그룹은 다음의 내용들을 가집니다.
1). IEEE 802.11 워킹그룹에서 무선 LAN관련 표준을 담당합니다.
2). 그룹내 모든 표준이 CSMA/CA를 기반으로 사용됩니다.
3). 그룹내 모든 표준이 링크 계층 프레임 구조를 사용합니다.
4). 그룹내 모든 표준이 이전 표준 기술과 호환성을 가집니다.
5). 그룹네 표준들은 각자의 주파수 영역을 가지고 동작합니다. ( 보통은 2.4GHz 대역과 5GHz 대역으로 나뉩니다. )
6). 2.4GHz 대역에서 “비허가”(unlicensed) 주파수 영역으로, 802.11 사용기기는 같은 주파수끼리 경쟁합니다.
7). 5GHz 대역에서 같은 전력에서 전송거리는 더 짧아지고 다중 경로 전파에 영향을 많이 받습니다.
( Hz 가 높을수록 장애물의 간섭을 많이 받기 때문입니다. ) 하지만, 데이터 전송량은 가장 많습니다.
8). 802.11n 과 802.11ac 는 “MIMO”(Multiple-Input Multiple-Output)안테나를 사용하고,
해당 안테나는 송신 안테나, 수신 안테나가 독립적으로 동작합니다.
802.11 무선랜 모델의 구조는 다음과 같습니다.
1). “BSS”(Basic Service Set)를 기본 구성단위로 사용합니다.
BSS는 하나 이상의 무선 수신기와 하나의 무선 송신기(Base Station, Access Point)로 이루어진 집합을 의미합니다.
2). “Infrastructure Wireless LAN”은 AP가 있는 BSS를 “기반구조”(Infrastructure)네트워크라고 표현하고,
수신기 A가 수신기 B로 전달하기 위해서 A는 AP로 “프레임”을 전송하고 AP가 B로 데이터를 전송합니다.
3). “Ad Hoc”네트워크는 AP가 없는 BSS를 의미하며, IBSS(Independent BSS)로도 표현합니다.
IBSS 내 수신기들은 서로 독립적으로 통신합니다.
4). “ESS”(Extended Service Set)는 AP를 가진 2개 이상의 BSS로 구성된 무선 네트워크 입니다.
5). 802.11 수신기와 AP는 6바이트 크기의 MAC주소를 가집니다.
802.11 채널 관련 내용으로는 다음과 같습니다.
1). 802.11 단말기는 프레임을 송수신 하려면, 먼저 AP에 연결되어 있어야 합니다.
2). AP는 SSID(Service Set IDentifier) 및 채널번호를 가집니다.
3). AP SSID와 MAC주소가 포함된 “비컨프레임”(Beacon Frame)을 주기적으로 전송하고,
무선 수신기는 주변 AP로부터 비컨프레임을 찾기 위해 채널들을 검사합니다 검사방법은 다음 두 가지를 사용합니다.
i). 수동적 스캐닝은 무선 호스트가 주변 AP들로부터 비컨프레임을 수신받으면,
그 중 하나의 AP로 결합 요청 메시지를 전송하고,
이후 해당 AP로 부터 결합 수락 메시지를 수신하는 방식입니다.
ii). 능동적 스캐닝은 무선 호스트가 영역내 AP들에게 탐사용 “프로브”(Probe)프레임을 전송하면,
주변AP들은 프로브프레임에 대한 요청으로 프로브 응답 프레임을 전송하고,
이후 해당 AP 로 부터 결합 수락 메시지를 수신하는 방식입니다.
802.11의 매체 접근 방식은 각 무선 단말이 송신기에 접근하기 위한 여러 방식들을 통틀어서 말합니다.
메체 접근 방식 관련 내용으로는 다음과 같습니다.
1). IEEE 802.11의 MAC은 DCF와 PCF가 있습니다.
2). “DCF”(Distributed Coordination Function)은 “CSMA/CA”기법을 사용하며,
경쟁을 통해 채널 접근을 제어하는 방식으로 충돌이 발생할 수 있어 비 실시간 데이터 전송에 적합합니다.
3). “PCF”(Point Coordinated Function)은 AP의 “중앙집중형 풀링”(Polling)방식을 사용하며,
비경쟁 방식을 사용하여 충돌이 발생하지 않아 실시간 트래픽 서비스에 유리합니다.
( 중앙집중형 풀링은 정해진 시간 슬롯을 두고 정해진 시간 슬롯만큼 지정된 시간에 주고 받는 방법입니다. )
4). IEEE 802.11에서 DCF 구현은 필수적이지만, PCF는 선택적으로 사용됩니다.
2.4. CSMA/CA
802.11 MAC 프로토콜 중 CSMA/CA 에 대한 설명을 나열한 것입니다.
1). “CSMA/CA”(Carrier Sense Multiple Access with Collision Avoidance)는 802.11 의 다중 접속 프로토콜 입니다.
2). 문제점은 다중 접속을 할 때, 서로간의 충돌(간섭, Collision)이 일어 날 수 있는데,
이를 “검출”(Detection)하거나 “회피”(Avoidance)하는 방법을 사용해야 합니다.
하지만, 무선랜의 특성상, 충돌 검출방식을 사용할 수 없는 구조이기 때문에, “충돌 회피”를 사용합니다.
따라서, 802.11 무선 단말은 데이터(프레임) 전송을 한 번 시작하면, 데이터를 끝가지 전송하게 되고,
그 사이에 발생하는 충돌을 최대한 회피하도록 하는 기술이 CSMA/CA라고 볼 수 있습니다.
다른 표현으로 “DCF”(Distributed Coordination Function)로도 표현합니다.
3). 802.11 MAC에서는 “CRC(Cyclic Redundancy Check) 검사”를 통과한 오류 없는 프레임을 수신 할 때,
“SIFS”(Short Inter-Frame Space) 라는 짧은 시간을 기다린 후, 송신측에게 ACK를 전송합니다.
( CRC 검사는 전송과정에서 생긴 오류를 검출하는 검사입니다. 정확도가 뛰어나지만, 오류 검출만 가능합니다. )
( SIFS 는 두 프레임 간의 최소 대기 시간을 의미합니다. 즉, 프레임을 받고 ACK를 돌려주는 과정에서도 적용됩니다. )
송신측은 ACK를 받지 못했다면, CSMA/CA로 채널 접근 후 프레임을 재 전송합니다.
4). 전송할 프레임이 있는 단말기는 전송 전에 채널 사용 여부를 먼저 확인합니다.
5). CSMA 의 “캐리어 감지”( Carrier Sense )는 데이터를 전송하기 전,
데이터를 받는 대상이 채널을 사용하는 지의 여부를 알아내는 행위로, 다음 두 가지 방식이 존재합니다.
i). “물리적 캐리어 감지”(Physical Carrier Sensing, PCS) : 실제 신호 강도(에너지)를 감지하는 방법입니다.
ii). “가상 캐리어 감지”(Virtual Carrier Sensing, VCS) :
프레임을 전송 중에 예상하는 채널 점유 시간 동안 스스로 접근을 하지 않는 방법입니다.
프레임을 전송하기 전에 “RTS/CTS 프레임 내 지속 시간 필드”에 프레임 전송에 소요되는 시간을 기록합니다.
수신 측이 지속 시간 필드를 참고하여 “NAV”(Network Allocation Vector)라는 카운터를 설정합니다.
이후, NAV를 감소해가면서 대기하다가 0이 되면, 단말이 준비되었다고 판단하여 데이터 전송을 시작합니다.
( RTS/CTS 프레임은 3장의 링크 계층에 설명되어 있어, 3장을 보고 난 뒤 한 번 더 보는 것을 권장합니다. )
6). 캐리어 감지를 실시하여 상대가 캐리어를 아직 사용한다면, “전송 연기”(Defer Transmission)를 시도 합니다.
전송 연기는 DIFS + “랜덤 백오프”(Random Backoff)시간 동안 기다린 후에 채널이 “유휴(idle)상태”이면,
상대에게 데이터 프레임을 전송합니다. ( 유휴 상태가 아니면, 재 전송 연기를 시도합니다. )
( 랜덤 백오프 시간은 재 전송 연기를 시도 할 때마다 지수적으로 늘어나는 임의의 값을 의미합니다. )
7). 랜덤 백오프 시간 카운터는 (채널이 유휴 상태인) DIFS시간 이후 동작하게 되고,
채널이 유휴 상태가 될 때까지 감소합니다.
이때, 일정 “슬롯 시간”(Slot Time)마다 채널의 상태를 보고, 유휴 상태 일 때마다 카운트를 합니다.
8). 랜덤 백오프 시간이 0이 되면 상대에게 데이터 프레임을 전송 후 ACK를 기다립니다.
이 때, ACK가 온다면 정상적으로 통신이 되었다는 의미이고,
ACK가 오지 않는다면, 재 전송 연기를 시도합니다. ( 랜덤 백오프를 지수로 늘리고 전송 연기 시도 )
7). 만약, 캐리어를 사용 중이 아니라고 하면, “DIFS”(DCF Inter-Frame Space)시간을 추가로 기다려보고,
그래도 사용 중이 아닌 경우에 데이터 프레임을 상대에게 전송합니다.
( 즉, DIFS(캐리어 사용 여부를 확인하는 시간)만큼 캐리어를 사용하지 않으면 통신을 시작하는 방식입니다. )
8). CSMA/CA가 “CD”(Collision Detection)보다 뛰어난 점은 충돌 발생이 일어날 때, 전송을 즉시 중단 가능하여,
전송 비용을 크게 아낄 수 있습니다.
9). 802.11은 충돌 감지가 없기 때문에 한 번 연결이 되면 온전하게 프레임을 보내려 하게 되고,
그렇기에 충돌 회피 방식을 사용하게 되는 것입니다.
하지만, 이 전략을 사용해도 “숨겨진 단말”(Hidden terminal)등의 문제를 해결하지는 못합니다.
10). 일반적으로 SIFS < PIFS < DIFS 가 성립합니다.
( “PIFS”(PCF Inter-Frame Space)는 비 경쟁 구간에서 시작할 때 사용되는 시간입니다. )
2.5. 숨겨진 단말
두 장치 A와 B가 존재하고 둘은 같은 AP에 캐리어 감지를 날리고 있는데,
A와 B는 서로 모르는 범위에 존재한다고 가정한다면, A의 응답을 받기 위해 AP가 응답하면,
이 응답 내용은 B또한 받을 수 있기 때문에, 두 장치가 동시에 프레임을 보내고 충돌이 일어나는 문제를
“숨겨진 단말”(Hidden Node, Hidden Terminal)문제라고 표현합니다.
이 숨겨진 단말 문제의 해결 법은 RTS/CTS에 “채널 접근 예약” 값을 저장하고 사용하여 문제를 해결합니다.
“RTS/CTS”는 “RTS”(Request to Send)프레임과 “CTS”(Clear to Send)프레임을 이용하여,
숨겨진 단말 문제를 해결하기 위한 예약 시스템입니다.
1). 먼저, 채널 사용 요청 겸으로 RTS를 AP로 보냅니다.
2). 받는 AP가 응답의 의미로 CTS를 주변으로 전파합니다.
3). 이 때, 전파를 조절 할 수 없기 때문에 정상적으로 받은 단말은 다음 두 가지 중 하나의 행동을 취합니다.
i). CTS가 자신이 보낸 RTS에 응답한 것이 확인 되는 경우, CTS 프레임을 이용하여 통신을 수행합니다.
ii). CTS가 자신의 것이 아니거나 자신의 RTS와 관련이 없다고 확인 되는 경우,
현재는 AP를 사용할 수 없다고 판단합니다.
4). i)의 경우 정상적으로 데이터를 주고 받고, AP에서 ACK신호를 주변으로 전파합니다.
ACK를 받는 단말은 정상 종료를 하거나, 다른 단말이 ACK를 받고 RTS 전송 준비를 할 수 있습니다.
5). RTS/CTS 역시 충돌이 발생할 수 있습니다.
동시에 RTS를 보낼 때 둘 중 하나의 RTS에 응답하려는 경우에 충돌이 발생할 수 있을 것입니다.
이 경우 CTS를 보내지 않고 있다가, 두 단말이 충돌 발생을 확인하고 백오프 전략을 취하면,
이후 AP는 적절하게 응답을 보내고 통신을 시도하게 됩니다.
6). RTS/CTS 는 반드시 오버헤드가 포함 되는 구조이기 때문에,
교환 실효성이 다소 떨어지고, 긴 오버헤드는 더 많은 충돌 가능성을 발생하기에 상황에 따라 조절하여 쓰입니다.
어떤 특정 임계치를 넘은 데이터 프레임에 한해서나, 연결 장치가 많은 경우 생략해서 사용하기도 합니다.