반응형
SMALL

프로그램 공부/네트워크프로젝트 4

네트워크 프로젝트 5주차

Mutiple-Access Protocols상황 : 여러 노드가 하나의 공유 매체(버스, 이더선, 무선 채널) 위에 얹혀 있다문제 : “나 먼저 보낼래!” → 동시에 보내면 충돌(collision) 상상해봐, 모든 노드가 같은 선 위에 있어 : Single shared broadcase channel그럼 당연히 전송들이 겹치면서 충돌Collision이 생기겠죠?그러니 우리는 multiple access protocols를 필요로 한다. 이것의 특징이라고 한다면 제어 채널 없음 : 따로 ‘신호등’ 링크가 없다 (out‑of‑band X)분산 알고리즘 : 중앙 스케줄러 없이 각 노드가 알아서 판단해야 함 이를 위한 범용 틀로Random Access MAC이 있다.보낼 게 있으면 * 채널이 idle? → ..

네트워크 프로젝트 4주차

CommandLine Arguments시뮬 돌릴 대 '옵션만 바꿔서" 재컴팡리 안하게 해주는 장치코드에 변수 뚫어놓고 -> 실행할 때 --size=128 이런 식으로 값만 밀어버린다. “CommandLine은 ‘짓고 난 뒤에 다이얼 돌리는 손잡이’.코드에 AddValue 몇 줄 박아두면,./waf --run "시나리오 --딜레이=1s --howmany=999" 이렇게 옵션 뿌려 넣어 실험치만 무한 갈아끼울 수 있음 ㅋㅋ 귀찮은 재컴파일은 이제 그만.” 구조 한번 맛봐보자int main(int argc, char* argv[]){ /* 0. 디폴트 값 준비 */ uint32_t maxPackets = 1; std::string delay = "2ms"; uint32_t pktSize ..

네트워크 프로젝트 3주차

이전에 나온 그 어려운 용어들 다시 정리해보자 ㅇㅇNode현실로 치면 컴퓨터 본체임ns3::Node인데 걍 껍데기임. 물리적으로 연결만 안됐을 뿐, 시뮬 안에서 하나의 컴퓨터인거야라우터이든, 호스트이든 스위치이든 전부 Node로 표현한다NodeContainer nodes;nodes.Create(2); // 노드 2대 생성 Application현실로 치면 유튜브 켠 크롬 브라우저, 사용자 프로그램(웹 브라우저, ip 등이다)ns3::Application인데, 트래픽을 만드는 주체이고 패킷 만들고(Send) 받는(Recv) 로직 담당. Echo Client, OnOffApp 등 이미 만들어진 놈도 있고, 직접 만들수도 있대 ㅇㅇUdpEchoClientHelper cli(addr, 9);cli.SetAtt..

네트워크 프로젝트 1주차

NS-3가 뭔데?얘는 인터넷 시스템용 이산 이벤트 시뮬레이터 discrete-event simulator이다. 주로 연구 교육용으로 쓰는 공짜 소프트웨어라는 것내가 뭘 시뮬레이션 돌리고 싶을 때, "시간흐름"을 그냥 연속적으로 돌려버리는게 아니라"이벤트가 생길 때만" 처리하는 식으로 굴러간대 그럼 젠장할 "이산 이벤트? 이벤트 기반 시뮬레이터?" 이게 뭔데 그럼예를 들어서 패킷이 송신되거나 수신되는 "특정 순간"에만 시뮬레이터가 반응하는거야 ㅇㅇ실제 시간이 100초 흘러가든 말든 관심없고 이벤트만 처리하는데 이게 바로 CPU 자원 안 잡아먹고 성능상 개꿀이라는 거임 Priority Queue로 동작한다는게 뭔 소리냐NS-3의 핵심구존데 일단 그림 ㄱㄱ이벤트 A가 11:28이고 이벤트 B가 11:49래그럼..

반응형
LIST