ranunclulus
로그인
ranunclulus
로그인
Chapter 5 Network & Database
Huisu
·
2024년 8월 20일
팔로우
0
0
CS
목록 보기
5/25
라우팅
라우팅
출발지에서 목적지까지의 경로를 결정하는 것
라우팅 테이블: 라우팅 알고리즘을 통해 생성되는 테이블
라우팅 알고리즘: 많은 경로 중 하나를 선택하는 것
포워딩
라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것
포워딩 테이블: 해당 테이블을 참조하여 포워딩 진행
라우팅을 통해 경로를 저장해 둔 것
어떤 포트로 패킷을 보냈을 때 목적지까지 가장 빠르게 도달하는가를 계산해서 저장해 둔 표
라우팅 알고리즘
Link-State Routing Algorithm
글로벌 알고리즘
네트워크가 글로벌한 경우
각 라우터는 자기에게 인접한 링크들에 대해 Link-State를 broadcasting 해서 네트워크 전체에 대한 토폴로지 정보를 알고 있음
각 라우터는 Network 전체에 대한 정보를 수집하게 됨
다익스트라 알고리즘 실행
Distance Vector Algorithm
거리벡터 알고리즘
자기 근처만의 정보 이용
밸만포드 (다이나믹 프로그래밍) 개념을 사용
모든 라우터가 거리에 의존하는 방식
각 노드는 직접 연결된 이웃들이 보내는 정보로부터 계산하고 그 결과를 이웃에게 알림
이웃끼리 라우팅 정보를 반복적으로 주고받음
모든 노드가 비동기적으로 제각각 동작하며 계산
LS vs DV
Message 복잡도
LS: 네트워크에 노드가 늘어나는 것에 비례해 message 복잡도 증가
DV: 나와 인접한 링크에 대한 정보만 알면 돼서 상대적 부담이 덜함
Speed of convergence (경로 결정 속도)
LS: Link State가 broadcast된 후 알고리즘을 돌리면 모든 라우터가 똑같은 경로 그림
DV: 서로가 서로의 데이터를 받아오기 때문에 경로 결정 속도가 경우에 따라 매우 달라짐
포워딩 테이블 구조
목적지 IP 주소 (Destination IP Address)
패킷의 최종적인 목적지 IP 주소
출력 포트 (Outgoing Port)
목적지의 IP 주소에 대응하는 포트
패킷을 이 포트로 내보냄
넥스트 홉 (Next Hop)
목적지 IP 주소로 패킷을 전달할 때, 다음으로 이동해야 할 넥스트 홉의 IP 주소가 여기에 기록
주로 다음에 연결되어 있는 라우터의 IP 주소가 넥스트 홉으로 사용
인터페이스 (Interface)
패킷을 목적지로 전달할 때 사용하는 네트워크 인터페이스
라우터나 스위치는 해당 인터페이스를 이용해서 출력포트로 패킷을 내보냄
로드밸런서
L4 로드밸런서
전송 계층에서 작동하는 로드밸런서로, 주로 TCP 및 UDP 프로토콜을 기반으로 클라이언트와 서버 간의 트래픽을 분산
L4 로드밸런서는 클라이언트의 IP 주소와 포트, 서버 IP 주소와 포트를 기반으로 로드밸런싱 수행
상대적으로 빠름
기능 및 유연성에서 제한적
L7 로드밸런서
애플리케이션 계층에서 작동하는 로드밸런서로 주로 HTTP/HTTPS 프로토콜을 기반으로 클라이언트와 서버 간의 트래픽 분산
요청 내용인 (URL, 헤더, 쿠키) 등을 기반으로 로드밸런싱 수행
상대적으로 느림
다양한 기능 및 유연성 제공
로드밸런싱 알고리즘
라운드 로빈
클라이언트로부터 받은 요청을 로드밸런싱 대상 서버에 순서대로 할당받는 방식
첫 번째 요청은 첫 번째 서버, 두 번째 요청은 두 번째 서버 …
로드밸런싱 대상 서버의 성능이 동일하고 처리 시간이 짧은 애플리케이션인 경우 균등하게 분산이 이루어지기 때문에 해당 방식 사용
가중 라운드 로빈
실제 서버에 서로 다른 처리 용량 지정
각 서버에 가중치 부여 가능, 여기서 지정한 정숫값을 통해 처리 용량 결정
최소 연결
연결 수가 가장 적은 서버에 네트워크 연결
동적인 분산 알고리즘으로 각 서버에 대한 현재 연결 수를 동적으로 카운트
healthcheck
로드밸런서를 통해 서비스하는 그룹의 서버에 장애가 발생하는 경우
각 서버의 서비스를 주기적으로 헬스체크해 정상적인 서버 쪽으로만 부하를 분산하고 비정상적인 서버는 서비스 그룹에서 제외한 뒤 트래픽 전송 중단
DNS 로드밸런싱
DNS 로드밸런싱은 별도의 소프트웨어나 하드웨어 로드밸런싱 장비를 이용하지 않고 DNS를 이용하여 도메인 정보를 조회하는 시점에 다른 IP 정보를 통해 트래픽을 분산하는 기법
클라이언트가 웹 어플리케이션에서 리소스를 요청하면 DNS 확인자는 도메인 이름과 연결된 IP 주소 중 하나를 반환
클라이언트는 해당 IP 주소로 서버에 연결하여 요청된 리소스 가져옴
일반적인 DNS 로드밸런싱 설정에는 로드밸런서 뒤에 여러 서버가 배치
로드 밸런서는 들어오는 요청에 대한 프록시 역할을 하며 밸런싱 알고리즘을 기반으로 서버 전체에 요청을 배포
서브넷 마스크와 게이트 웨이
서브넷
서브넷이란 대규모 네트워크 내의 작은 네트워크
서브넷을 이용하면 네트워크 라우팅이 훨씬 더 효율적으로 변경
서브넷을 통해 네트워크 트래픽은 불필요한 라우터를 통과하지 않고 더 짧은 거리를 이동하여 대상에 도달 가능
바로 옆마을에 편지릘 보낼 때 수백 킬로미터 떨어진 우체국을 거쳐 보내지 않아도 되게 함
서브넷을 이용하면 IP 주소를 장치 범위 내에서 사용하도록 좁혀 줌
서브넷은 네트워크 내에서 내부적으로만 사용되며, 라우터는 서브넷 마스크를 사용하여 데이터 패킷을 올바른 위치로 라우팅
NAT
Nrxtwork Address Translation
IP NAT은 원래 제한된 수의 인터넷 IPv4 주소 문제를 해결하기 위해 개발
여러 디바이스에서 인터넷에 액세스해야 하지만 하나의 IPv4 인터넷 주소만 ISP에 의해 할당되는 경우에 필요
게이트웨이
서브넷 마스크 개념을 도입하면 네트워크는 부분망으로 나뉨
논리적인 망의 분리 이후 연결을 하기 위해서는 결국 이를 처리해 줄 무언가가 필요
서로 다른 네트워크 망을 이어 주는 것이 게이트웨이
공유기나 라우터 같은 애들의 역할
게이트웨이가 없다면 같은 네트워크 망에 있는 장비들끼리는 통신이 가능하지만 다른 넽느워크 망과 통신할 수 없음
트랜잭션
트랜잭션
데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위
하나의 논리적 작업 단위를 구성하는 일련의 연산들의 집합
ACID 원칙
Atomicity (원자성)
트랜잭션은 모든 연산들이 정상적으로 수행 완료되거나 아니면 전혀 어떤 연산도 수행되지 않은 상태 보장
Consistency (일관성)
트랜잭션의 작업 처리 결과는 항상 일관성 필요
Isolationn (독립성)
여러 트랜잭션이 동시에 수행되더라도 각각의 트랜잭션은 다른 트랜잭션 수행에 영향을 받지 않고 독립적으로 수행
Durability (지속성)
트랜잭션이 성공적으로 완료되어 commit 되고 나면 해당 트랜잭션에 의한 모든 변경은 향후에 어떤 소프트웨어나 하드웨어 장애가 발생되어도 보존되어야 함
고립 수준
트랜잭션끼리 일관성 있는 데이터를 얼마나 허용할 것인가를 정해 놓은 수준
트랜잭션 수행 중 다른 트랜잭션이 해당 데이터를 조회하는 것이 가능한 정도를 결정해 놓은 것
READ uncommitted (LEVEL 0)
각 트랜잭션에서의 변경 내용이 COMMIT/ROLLBACK 여부에 상관없이 다른 트랜잭션에서 값을 읽을 수 있 음
정합성에 문제가 많은 격리 수준이기에 사용하지 않는 것이 좋음
READ committed (LEVEL 1)
트랜잭션 수행이 완료되고 COMMIT된 데이터만 다른 트랜잭션에서 READ하도록 허용하는 수준
일반적으로 DBMS에서 기본적으로 설정하는 레벨
READ READ (LEVEL 2)
이론상 특정 트랜잭션에서 읽고 있는 데이터는 다른 트랜잭션에서 수정/삭제가 불가능하고 삽입은 가능
트랜잭션에 진입하기 이전에 커밋된 내용만 참조 가능
SERIALIZABLE (LEVEL 3)
가장 단순하고 엄격한 격리 수준
모든 동작이 직렬화하게 작동
특정 트랜잭션에서 읽고 있는 데이터는 다른 트랜잭션에서 수정/삭제/삽입 불가능
동시성이 떨어져서 성능 하락 문제 발생
Huisu
팔로우
이전 포스트
Chapter 4 Network
다음 포스트
Chapter 6 Database
0개의 댓글
댓글 작성