달력

11

« 2024/11 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
2017. 5. 6. 09:31

Routing 네트워크2017. 5. 6. 09:31

라우팅이란 라우터가 자신과 연결된 다른 라우터를 찾아 최종 목적지까지 연결하는 과정이다. 라우팅에는 동적 라우팅과 정적 라우팅이 있다. 

정적 라우팅은 네트워크 관리자가 경로를 목적지별로 직접 지정해 두는 것인데, 경로가 미리 입력되어 있기 때문에 CPU 부담이 적고 라우터 간 대역폭을 낭비하지 않는 다는 장점이 있지만, 어떤 라우터간에 연결되어 있는지 파악해야하는데다 추가 회선이 필요할 때 새로 설정해주어야 하는 불편함과 현재 설정한 회선에서 연결이 불능에 빠지는 경우 자동으로 새로운 경로를 찾지 않는다는 단점이 존재한다.

반면, 동적 라우팅은 라우팅 프로토콜을 사용하여 자동으로 경로를 수집하여 라우팅 테이블을 설정하는 것이다. 이 프로토콜에는 여러가지가 있다.

그 중 하나는 RIP(Routing Information Portocal)로, 목적지까지의 거리를 살펴보고 홉(hop)수가 적은 경로를 선택한다. 구성이 간단한 LAN과 같은 네트워크에 적합하다. 아래 그림에서 데이터가 도착해야 하는 목적지가 라우터5라면, 라우터1을 거쳐 라우터3, 라우터5로 가는 것이 가장 유리한 경로라고 할 수 있다.

다음은 OSPF(Open Shortest Path First)로, 통신상태 정보를 맵(map)으로 관리하면서 상태가 좋은 경로를 선택하는 방식이며, 복잡하고 변화가 다양한 네트워크에 적합한 형태다. 만일 아래와 같이 라우터2번과 라우터4번 사이에 고속회선이 적용되어 있다면 데이터는 라우터1, 라우터2, 라우터4를 거쳐 라우터5로 향하는 것이 유리할 수 있다. 즉, 라우터1라우터2의 상태가 '좋다'라는 정보를 보유하고 있어야 한다.


마지막으로 BGP(Border Gateway Protocol)가 있는데, 경로의 거리뿐만 아니라 경유 AS(Autonomous System 자율시스템)를 포함하여 경로 정보를 생성하는 형식으로 규모가 큰 네트워크에서 몇 개의 네트워크를 묶어 AS단위로 관리하는 것이다. 네트워크 전체 경로를 탐색하는 것이 아니라 AS같이 큰 덩어리 단위로 이동하여 원거리 컴퓨터와 빠르게 통신하는 것이 목적이다. 


'네트워크' 카테고리의 다른 글

멀티캐스트  (0) 2019.01.28
어드레스 클래스  (0) 2017.04.14
TTL / IPv4, I.Pv6  (0) 2017.04.01
Port  (0) 2017.03.11
MIME  (0) 2017.02.26
:
Posted by SK
2017. 4. 29. 22:07

병합정렬(Merge Sort) 알고리즘-자료구조2017. 4. 29. 22:07

정렬 중 O(nlogn)의 시간복잡도를 가진 방법으로, 개인적으로는 퀵소트나 힙정렬 보다는 구현이 간단하다. 

정렬해야하는 원소가 적다면(정확한 것은 모르겠지만 5개 이하) 삽입정렬이 더 낫다고도 한다.

스택오버플로우를 보면 퀵 정렬이 최악의 경우 O(n^2)임에도 여러가지 이유로 

병합 정렬보다 나은 성능을 보인다고 하는데, 확인해보아야 할 듯 싶다.

C++ std library에는 퀵 정렬과 힙 정렬을 적당히(?) 활용한 Intro sort라는 게 쓰이는 듯 하다.

(http://stackoverflow.com/questions/70402/why-is-quicksort-better-than-mergesort)


https://gist.github.com/woo972/0924604b96188cb78b9cf8b1a34fbd19

'알고리즘-자료구조' 카테고리의 다른 글

SegmentTree(구간트리)  (0) 2017.02.19
:
Posted by SK
2017. 4. 28. 21:15

sed로 텍스트 바꾸기 정규표현식2017. 4. 28. 21:15

sed -E '1s/^(.*)/<!Doctype html>\

<head>\

<title>\1</title>\

</head>\

/;q' test.txt



1. -E 옵션 : sed가 확장정규표현식을 사용할 수 있게 해준다. 만약 이 옵션이 없다면 괄호를 표기할 때 \(\) 처럼 처리해 주어야 한다.

2. s : 1행에서 뒤에 나오는 패턴으로 검색하여 치환한다.

3. (^(.*)$) : 참조그룹으로 행 전체를 선택.  \1로 재참조한다.

4. \ : 행 끝에 \를 붙여서 개행문자의 특수의미를 무효화한다. (=> 명령어를 여러줄에 걸쳐 입력할 수 있다)

5. q : 화면에 텍스트 나머지를 출력하지 않고 sed를 종료한다.


결과 : test.txt파일의 첫 행의 내용을 html형식으로 맞추어 title 태그안에 넣는다.

'정규표현식' 카테고리의 다른 글

수량자  (0) 2017.07.30
문자클래스  (0) 2017.04.21
비참조 그룹  (0) 2017.03.05
패턴변경자(정규표현식 옵션)  (0) 2017.02.18
Regular Expressions을 공부하자  (0) 2017.02.12
:
Posted by SK