본 내용은 경희대학교 소프트웨어융합대학 이성원 교수님의 수업을 바탕으로 작성하였습니다.
MAC Layer
- OSI 7 계층 구조에서 봤을 때 2 계층 Data Link Control에 들어간다.
- Data Link Control 은 사실상 안으로 들어가게 되면 두 개의 Layer로 다시 나눠진다. 아래쪽이 Medium Access Control이라는 Layer가 되고 그 위쪽이 Data Link Control Layer로 둘이 나눠진다. 2 계층은 둘로 나눠진다.
- Physical Layer는 다루지 않고 2 계층 이상의 내용에 대해서 다룬다.
- MAC은 Random Access Protocols, Controlled Access Protocols, Channelization Protocols 이 3가지 기법으로 나눠진다.
Basic Terminologies
- Message
- 전달하는 정보, text, number, pictures, sound..., 0과 1의 조합을 가진 형태
- Sender
- 메시지를 보내는 디바이스, 컴퓨터, 핸드폰...
- Receiver
- Sender가 보낸 메시지를 수신하는 디바이스, 컴퓨터, 핸드폰...
- Medium
- Sender가 Receiver에게 보낼 때는 통신매체(1계층)가 필요함, 전화선, 케이블, 광섬유, 무선이거나 유선이거나...
- Protocol
- 송신단위, 수신단위에게 메시지를 Medium을 통해서 보내기 전, 보내는 중, 보낸 후에 작업들이 존재함
- 메시지 자체의 형태, 보내기 전후에 대한 Sender와 Receiver의 동작들 이런 것들을 약속이라고 얘기하고 전문용어로 프로토콜이라고 이야기한다.
- 메시지에 대한 정의, Medium을 통해서 어떻게 보낼건지 그리고 동작에 대한 부분을 정의한다.
Station을 Point로 봤을 때 a는 점에서 점을 한 줄로 연결한 것
- 5개의 Station이 있고 본인을 제외한 모든 Station과 줄을 갖고 있음, 이런 방식을 mesh 중에서도 pull mesh라고 한다.
- 장점
- 하나의 Station에 대해 전용 줄을 가지고 있어서 다른 컴퓨터들이 방해를 못하므로 성능이 좋다.
- Station과 Station을 연결한 줄이 고장나도 줄이 많아서 다른 Station을 통해서 통신할 수 있다. 안정적임
- Station과 Station을 연결하는 전용 줄이 있어서 다른 사람들은 이 줄을 들을 수가 없다. 보안이 좋음
- 단점
- Station이 많아지면 많아질수록 매우 많은 줄을 가지고 있어야 함
- 네트워크의 네트워크를 만들 때 pull mesh를 사용하기도 한다.
- 뿌리를 내린 나무 모양과 유사 Tree, Hub를 가운데 두고 Station을 위로 올리면 별모양을 만들 수 있다고 해서 Star.
- 특징은 Hub라는 중간 장치를 만들었다.
- 장점
- Station이 늘어나도 각각의 Station이 가져야 할 줄은 1개밖에 없다. Hub에만 연결하면 되니까(그러나 단점이 될 수도 있음 줄이 끊어질 경우 그 Station은 통신을 못 함, 다른 Station은 통신 가능)
- 단점
- Hub가 고장 나면 Station 통신두절
- 장점
- 줄을 쭉 깔고 필요한 컴퓨터가 있으면 줄에다가 연결하면 됨, 설치가 용이하다. 줄의 개수도 적어서 가격이 싸다.
- 단점
- 줄이 끊기는 등 오류가 발생하면 통신이 두절된다.
- 이름이 얘기하듯이 원을 만든다. 사실상 Bus에서 왼쪽 끝과 오른쪽 끝을 연결했다고 보면 된다.
- 장점
- Bus처럼 설치가 용이하다. 줄이 끊어지면 Ring은 끊어진 줄만 방어할 수 있는 메커니즘이 있다.
- 단점
- 줄 하나로 공유한다는 것은 Station들이 경쟁적으로 줄을 사용하려고 했을 때 결국 충돌이 발생한다. 줄이 하나라서 동시에 쏘면 충돌이 날 수밖에 없다. 그래서 특정 Station 이 전송할 때 다른 Station 은 듣기만 하는 시스템을 도입할 수 밖에 없다. 이런 경우에 줄의 속도가 저하된다. 나한테 권한이 올 때까지 기다려야 하므로 지연발생
Network을 지칭할 때에는 규모에 관련된 명칭이 존재, 대표적으로 3가지 카테고리, PAN/BAN도 존재함
- LAN : Local Area Networks
- 보는 것처럼 하나의 방 혹은 방들이 연결되어있는연결되어 있는 층, 층이 연결되어 있는 건물, 건물들을 연결한 캠퍼스
- LAN은 대부분 한 소유주가 전체를 가지고 있는 경우, 걸어서 갈 수 있는 정도의 거리
- WLAN : Wireless LAN, 와이파이라고 보면 된다.
- MAN : Metropolitan Area Network
- 이름 그대로 도시임, LAN들이 모여서 도시만한 규모가 이루어질 때, 도시 규모의 네트워크
- 이동 통신
- 유/무선 기술이 있음
- WAN : Wide Area Network
- LAN과 LAN을 연결하거나 MAN과 MAN을 연결하는, 먼 거리에 있는 네트워크를 연결하는 기술
- Wide 한 규모에 대해서 Network과 Network을 연결한다.
- micro wave라는 기술이 있음 A와 B를 무선으로, 예를 들어 산에서 산으로 혹은 건물과 건물 사이 줄을 사용하기 힘들 때 사용하는 기술
- 유/무선 기술이 있음
- LAN들이 모여서 MAN이 되고 LAN과 LAN을 연결하거나 MAN과 MAN을 연결할 때 WAN의 기술을 이용한다.
- 유/무선 기술이 있음
LAN보다 작은 건 무엇이 있을까? 블루투스!
- PAN : Personal Area Network, 개인 규모의 네트워크
- BAN : Body Area Network ,사람을 기준으로 네트워크를 만듦 센서 부착해서 혈당이나 혈압 측정
WAN보다 큰 건 무엇이 있을까? 항선 간 통신
- 우주에서 통신하는 것
Standard가 필요함 2가지가 있음
- by fact : MS Windows 같은거, 어쩌다 보니 사람들이 사용함
- by law : 통신을 위한 프로토콜을 법으로 규정하는 것, 이동통신이 대표적인 예
MAC Overview
Random Access Protocols
ALOHA
- 송신을 하고자 하는 Station이 있으면 다른 Staion을 배려하지 않고 그냥 자기가 전송한다. 충돌이 발생할 수 있음
- 이렇게 해서 만들어진 최초의 통신 소프트웨어 ALOHA, 무선으로 구현
- Station1이 전송할 데이터가 있다면 전송, 또 있으면 또 전송, 다른 Station도 보낼 데이터가 있으면 전송
- 초기 ALOHA는 본인이 보낼 데이터가 있으면 전송함, 만약 에러가 나면 몇 번 더 시도함 매우 단순
- Station이 서로를 배려하지 않기 때문에 동시에 보내게 되면 충돌이 발생함, 동시에 보내고 끝내는 게 아니라 일정 시간대에 겹치면 모든 메시지는 의미가 없음
- 과거에 보낼 데이터가 매우 작았기 때문에 잘 사용하였음
줄줄이 에러가 나는 경우를 줄여보자 -> Slotted ALOHA network
- 메시지들이 시작하는 시간과 끝나는 시간을 맞춤 따라서 에러가나면 슬롯 안에서만 난다. 충돌을 줄일 수 있었다.
- 단점은 Station들끼리 시간을 맞춰야함
CSMA
- Carrier sense multiple access
- medium에 접근하는데 많은 노드들을 이용
- 제한된 길이의 유선 케이블
- 보낼 메시지를 케이블에 올리기 전에 들어본다. 전자신호가 있으면 다른 곳에서 데이터를 전송하고 있는 것임! 그러면 나는 전송하지 않는다. 들었을 때 아무도 전송하고 있지 않는다면 자신이 데이터를 보낸다.
- 위에서 아래로 시간이 흘러감
- B가 t1에서 메시지 전송 그러면 A와 C, D 쪽으로 퍼져나감, 문제가 생기는 지점은 C, C가 메시지를 받기 전에 아무도 사용하지 않는 줄 알고 자기가 t2 때 메시지를 전송 그러면 충돌 난다. 회색 부분이 두 개가 섞여서 다 깨져버림
- CSMA는 데이터를 전송하기 전에 먼저 들어봄으로써 충돌 확률을 줄이긴 했는데 여전히 문제점이 있음
- 채널에서 정보를 얼마만큼 동안 기다려야 충돌을 피할 수 있을지 생각해 보면 A가 데이터를 보내서 끝에 D에 도착하는 최초의 시점만큼 기다려야 함 propagation time만큼 듣는다면 충돌을 많이 줄일 수 있다.
CSMA 방식이 여러 개 있음
- 1-persistent : 확률 계수 1, 채널을 끊임없이 보고 있다가 아무도 안보내면 내가 보낸다. (확률 1로 반드시)
- 장점 : 지연효과에서 제일 좋음, 지연이 없다.
- 단점 : 회로를 계속 구동해야 하고 전력이 많이 소모됨, 바로 쏘면 충돌 가능성 있음
- Nonpersistent : 랜덤 하게 간격을 두고 들었다가 아무도 안보내면 내가 보낸다.
- 장점 : 회로도 덜 사용해서 전력소모 줄어듦, 충돌도 피함
- 단점 : 지연이 있음
- p-persistent : 끊임없이 봐서 끝나는 시점은 안다. 하지만 그 시점을 알아도 동시에 보내면 충돌이 일어나니 랜덤 하게 한 번 건너뛰고 나서 내가 보낸다.
CSMA/CD
- CD : collision detection
- CSMA의 전송 후 듣지 않아서 충돌이 일어나는 걸 개선, 유선통신망
- t1에서 보낸 메시지의 신호가 propagation time을 타고 가는데 C는 그걸 기다리지 않았음 C에 오기 전에 전송시작함 신호가 섞이기 시작함 그때부터 A, C의 신호는 의미가 없음
- CSMA 하고 차이점은 A와 C는 본인이 송신하면서 그걸 듣고 있음 따라서 Collision을 detect 하고 전송을 중지한다.
- 물론 그전까지 주고받은 건 무용지물이 되지만 조기에 충돌을 감지하고 막았기 때문에 버려지는 시간을 줄일 수 있다.
- 그래서 CSMA/CD는 쏘기 전에 듣고 쏘면서 듣는 기술, 이더넷 기술을 만드는데 큰 기여를 함
- jamming : 충돌이 발생하면 멈추는 거에서 끝내지 않고 확실하게 깨버리는, 쓰레기를 더 강화시키는 시그널을 보냄
CSMA/CA
- 무선통신망
- CA : collision avoidance
- A가 B랑 통신하려고 한다면 데이터를 보내는 것 이외에 추가적인 작업이 필요함 A가 B에게 RTS(Request to send) 메시지를 보내고 B가 A에게 CTS(clear to send) 메시지를 보냄 그러면 데이터를 주고받음, 데이터를 잘 받은 B는 A에게 ACK메시지를 보낸다.
- B에서 시작한 CTS가 어디로 가느냐가 중요함 데이터를 보내는 중에는 다른 Station이 보내는 것을 들을 수 없기 때문에 avoidance를 위해서 내가 보낼 거라고 말하는 것을 만듦 무선에는 A가 보내는 RTS 나 B가 보내는 CTS를 다른 Station이 들릴 수 있음
- 다시 말해서 A와 B가 자기들끼리 통신하는 것처럼 보이지만 사실 주변에 있는 애들한테 알린 거임 우리끼리 통신할 거다!
- RTS가 가고 CTS가 가면 다른 애들한테 위 내용을 충분히 알린 것임 그러고 나서 데이터를 주고받는다.
- 그리고 B가 ACK를 보내면 다른 Station도 받으니까 통신이 끝났구나라는 것을 알 수 있음
- 에러를 줄일 수는 있으나 없앨 수는 없다.
- ABCD 중 C 혹은 D가 CTS를 놓쳐서 통신에 개입하는 경우가 발생할 수 있다.
- 에러가 없는 시스템은 없음 줄이는 쪽으로 가야 함
- B가 보낸 메시지가 A에는 가지만 C까지는 안 갈 수도 있음 즉, B가 A에 보내고 있는 것을 C는 모름 결국 B가 A에게 RTS를 보내면 A가 B에게 CTS를 보내면서 C에게도 CTS를 보내서 자기가 다른 애랑 통신한다는 것을 알려주는 것
- 내가 무선 채널을 바라보다가 비어있을 때에 상대방에게 메시지를 보내는 CSMA에서 1-persistent 하는 게 들어가 있다는 것을 보여준 거
- RTS CTS 메시지는 채널이 놀고 있는 걸 확인하는 CSMA 과정을 거친 다음에 Contention window에서 RTS도 보내고 CTS도 보내고..
- 작은 구간 안에서 작은 RTS, CTS 메시지를 주고받는 이런 걸 Contention window라고 함
Controlled Access Protocols
- 별도의 통제자가 있다.
Reservation
- 특정 구간을 내가 사용하겠다.
- 1,2,3,4,5 노드들이 있을 때 이 메시지가 지나간 다음에는 누가 송신 권한을 가지는지 정함
- 이렇게 일종의 medium을 누가 얼마만큼 사용할지에 대한 정보를 누군가 관리하고 뿌려준다. 이거에 따라서 송신을 하므로 충돌이 발생하지 않는다.
- 장점
- 충돌이 없어진다.
- 단점
- 내가 전송하고 싶을 때 바로 전송하지 못한다. 예약하고 시간올 때까지 기다려야 함 지연시간 증가
Polling
- Primary가 B에게 받을 준비됐냐고 물어봄 B가 준비됐다고 하면 데이터 보냄 잘 받았다고 ACK 보냄
- Primary가 A에게 보낼 거 있냐고 물어봄 없다고 NAK 보냄, B한테 보낼거 있냐고 물어봄 있어서 데이터 보내줌 Primary가 데이터 잘 받았다고 ACK 보냄
- 이런 식으로 중앙통제자가 존재
- 장점
- 에러가 거의 없음
- 단점
- 주고받을 게 없더라도 Poll과 NAK를 주고받으니까 medium 낭비, 지연증가
Token Passing
- 토큰 : 권한
- 토큰을 가진 사람만 데이터를 보낸다.
- 장점
- 에러가 거의 없음, 채널 효율 좋음
- 단점
- 지연
Channelization Protocols
FDMA
- frequency-division multiple access
- 주파수를 시작 주파수 대역부터 끝나는 주파수 대역까지 4개가 있다면, 통신을 하고 싶다면 이 주파수 중에 하나를 쓰면 됨
- 그림처럼 주파수를 주고 전용으로 사용하라고 하는 것
- 유선이나 무선이나 medium이 있을 때 물리적인 주파수로 나눈 것
TDMA
- Time-division multiple access
- time을 나눠서 Station 마다 할당함
- 이렇게 함으로써 하나의 매체에 4명이 통신할 수 있도록 만듦
CDMA
- Code-division multiple access
- 암호화할 때 많이 사용했음
- Station이 데이터를 보낼 때 본인이 보낼 데이터에 코드를 곱함, 본인의 코드에 본인의 코드를 곱하면 1 나옴, 본인의 코드에 다른 코드를 곱하면 0 나옴 즉, 본인의 코드에 대해서 본인의 코드가 주어져야 반응하고 다른 코드를 주면 아무런 의미가 없음
- Station1은 송신할 때도 c1을 곱하고 수신할 때도 c1을 사용해야 함 일종의 암호화 기술
- 코드가 곱해진 것들은 무선 차원에서 더해진다.
- 보낼 데이터가 있을 때는 이렇게 해야 함, 내가 데이터 비트 0을 보낼 땐 -1을 코드와 곱하고 1을 보낼 때에는 +1을 코드에 곱함 보낼 게 없을 때는 0을 곱한다.
- C2 코드 오류[+1, +1, +1, -1] -> [+1, -1, +1, -1] 로 수정해야한다.
- S1에선 0 보내려고 C1과 -1을 곱함... 4개를 다 더해서 보낸다.
- 수신하는 쪽은 위 내용(4개를 합쳐서 만들어낸)을 수신받고
- 4개 합쳐진 거에 본인의 코드를 곱하고 다시 다 더함 그리고 코드사이즈로 나누고 나온 값으로 원래 보내려는 값을 알아낸다.
잘못된 내용이 있다면 언제든 댓글 달아주세요~
'Computer Science > 컴퓨터 네크워크' 카테고리의 다른 글
[컴퓨터 네트워크] 5-2장 Network Layer (0) | 2024.04.29 |
---|---|
[컴퓨터 네트워크] 5-1장 Network Layer (0) | 2024.04.29 |
[컴퓨터 네트워크] 4장 MAC/DLC (0) | 2024.04.15 |
[컴퓨터 네트워크] 3장 DLC Layer (0) | 2024.04.08 |
[컴퓨터 네트워크] 1장 Introduction (1) | 2024.03.23 |