[2024-1 서강대학교 컴퓨터네트워크 mp2]
네트워크 라우팅의 두 가지 알고리즘 Distance Vector와 Link State을 구현했습니다. 각 알고리즘은 네트워크 환경에서 각 라우터의 라우팅 테이블을 생성하고, 네트워크 토폴로지의 변화에 따라 이를 업데이트하는 시뮬레이션을 수행합니다.
-
distvec_20200185.cc: Distance Vector 라우팅 알고리즘을 시뮬레이션하며, 각 라우터는 네트워크의 다른 모든 라우터까지의 최소 거리를 벡터로 유지하고, 이웃 라우터로부터 받은 정보를 바탕으로 라우팅 테이블을 업데이트합니다. -
linkstate_20200185.cc: Link State 라우팅 알고리즘을 시뮬레이션하며, 각 라우터는 네트워크 토폴로지의 전체 정보를 가지고 Dijkstra 알고리즘을 사용해 다른 모든 라우터까지의 최단 경로를 계산합니다.
g++ -o distvec distvec_20200185.cc
g++ -o linkstate linkstate_20200185.ccDistance Vector 알고리즘 실행:
./distvec topologyfile messagesfile changesfileLink State 알고리즘 실행:
./linkstate topologyfile messagesfile changesfile./distvec topology.txt messages.txt changes.txt
./linkstate topology.txt messages.txt changes.txttopology.txt: 초기 네트워크 구조 정의
messages.txt: 한 노드에서 다른 노드로 라우팅할 메시지 정의
changes.txt: 링크 추가 및 제거와 같은 네트워크 토폴로지의 변경 사항 정의
distvec 프로그램은 output_dv.txt 파일에 결과를 출력
linkstate 프로그램은 output_ls.txt 파일에 결과를 출력
출력 파일 내용:
토폴로지 파일을 처리한 후의 라우팅 테이블.
네트워크 변경 전후 각 메시지의 라우팅 결과.
네트워크 변경이 적용된 후 업데이트된 라우팅 테이블과 메시지 라우팅 결과.