전체글397 [컴퓨터 네트워크] 링크 상태 라우팅(Link State Routing) 알고리즘 링크 상태 데이터 베이스 유지 각 라우터가 전체 네트워크의 구성과 링크 상태 정보를 유지 글로벌 라우팅(Global Rounting) 다익스트라 알고리즘(Dijkstra Algorithm) 각 라우터가 다익스트라 알고리즘을 수행하여 전체 k개의 목적지 라우터에 대한 최소 비용 경로와 다음 라우터를 계산한다. 라우팅 테이블 설정 목적지, 최소 비용 경로 상의 다음 라우터, 비용 설정 LSP(Link State Packet) 플러딩(flooding) 링크 상태 공유, 다익스트라 알고리즘과 별개의 라우팅 프로토콜에 의해 수행 링크 상태 데이터베이스(Link-State DB) LSP 플로딩 결과 모든 라우터가 동일한 LSDB 유지 각 라우터가 알려진 LSDB에 대해 수행 직접 연결된 링크 중에 비용이 가장 작은.. Computer Network 2022. 11. 23. [컴퓨터 네트워크] 거리 벡터(Distance Vector) 라우팅 알고리즘 인터넷: 가중치 그래프(Weighted Graph) 라우터들을 비용이 매겨진 링크로 연결한 그래프 링크의 유형에 따라 링크 사용 비용에 차이 라우터가 선호하는 링크의 비용이 낮다. 최소경로비용: 출발지 라우터와 목적지 라우터를 연결하는 경로 중에 링크 비용의 합이 가장 작은 경로 링크 비용: c(u, x) = 1, 최소경로비용 Duz = 4 인터넷 라우팅: Hob-by-Hop 라우터들을 비용이 매겨진 링크로 연결한 그래프에서 출발지 라우터에서 목적지 네트워크의 라우터까지 최소 비용 경로를 찾는다. 최소 비용 경로 상의 다음 라우터의 주소를 라우팅 테이블에 저장한다. 거리 벡터(Distance Vector) 특정 라우터에서 다른 모든 라우터까지의 최소 경로 비용을 갖는 1열 벡터 u[ ]: 라우터 u의 전.. Computer Network 2022. 11. 23. [컴퓨터 네트워크] NAT(Network Address Translation) 공인 IP 주소(Public IP Address) 인터넷에서 사용되는 주소 IP 주소 할당 기관에 의해 할당된 주소 인터넷상에서 유일한 주소 사설 IP 주소(Private IP Address) 인터넷 미연결 TCP / IP 네트워크를 위한 IP 주소 인터넷 IP 주소 관리 대상에 불포함 서로 다른 네트워크에서 중복 사용 가능 인터넷 IP 주소와 엄격하게 구분(인터넷에서 사용 불가) 서브넷마스크 없어도 된다. 사설 IP 주소 범위 클래스 A: 10.0.0.0 ~ 10.255.255.255 클래스 B: 172.16.0.0 ~ 172.31.255.255 클래스 C: 192.168.0.0 ~ 192.168.255.255 사설 IP 주소 할당 임의로 할당 가능 사설 IP 주소 사용 네트워크 내에서 유일하게 할당 .. Computer Network 2022. 11. 20. [컴퓨터 네트워크] DHCP(Dynamic Host ConfigurationProtocol) IP 주소 할당 고정 할당(Static Allocation): 수동 할당, 고정 할당 동적 할당(Dynamic Allocation): 자동 할당, 유동 할당 DHCP DHCP 서버에 의한 호스트 구성 정보 동적 할당 절차 정의 IP 주소, 서브넷마스크, 디폴트 게이트웨이 주소, DNS 서버 주소 등 구성 정보 자동 할당 DHCP의 장점 사용자 편의성 IP 주소 절약(필요할 때만 할당, 동시 사용자 수만큼 할당) 호스트 구성 정보 IP 주소: 호스트 IP 주소 서브넷마스크: 네트워크 ID 필드 크기, 네트워크 주소 구분을 위한 필수 정보 디폴트 게이트웨이 주소: 자신의 네트워크에 연결된 라우터의 주소, 목적지 주소가 동일 네트워크에 존재하지 않을 때 IP 데이터그램을 전달할 다음 홉 주소 DNS 서버 주소.. Computer Network 2022. 11. 20. [컴퓨터 네트워크] IP 주소: 구조와 할당 네트워크 주소(Network ID) 기반 라우팅 라우팅 테이블 크기 축소 인터넷 성능 제고(높임) 라우터로 연결된 네트워크 식별 위 그림에서 네트워크의 수는 6개이다. IP 주소 구조: 32비트 네트워크 ID와 호스트 ID 비트수 주소 구조 활용 방식 클래스 주소(Classful Addressing) 비클래스 주소(Classless Addressing) 클래스 주소 고정 길이 프리픽스(네트워크 ID) 초기의 주소 방식 주소 낭비 문제로 현재는 사용하지 않는다. 비클래스 주소 가변 길이 프리픽스(네트워크 ID) 현재 사용하고 있는 주소 방식 클래스 주소 구분 클래스 주소의 주소 낭비 문제 CIDR(Classless InterDomain Routing) 임의의 길이의 프리픽스(Network ID) 할당 네트.. Computer Network 2022. 11. 20. [컴퓨터 네트워크] 인터넷과 라우터 인터넷 인터넷은 라우터를 사용하여 여러 개의 네트워크를 상호 연결해놓은 네트워크다. 네트워크의 종류는 같을 수도 있고, 다를 수도 있다. 서브넷은 인터넷 내에서 유일한 서브넷의 ID를 갖는다. 호스트는 네트워크 내에서 유일한 호스트 ID를 갖는다. Network of Networks Internet: 이기종 네트워크를 라우터로 연결 Subnet: 인터넷에서 유일한 ID를 갖는다. Host: 서브넷에서 유일한 ID를 갖는다. Subnet 서로 다른 종류의 네트워크 서로 다른 주소 체계 서로 다른 통신 체계 인터넷 차원의 주소: IP 주소 인터넷에서 통신 장치를 유일하게 식별 Network ID + Host ID 논리적 주소 서브넷 차원의 주소: 서브넷 의존 주소 서브넷에서 통신 장치를 유일하게 구분 서브넷.. Computer Network 2022. 11. 20. [백준/BOJ] 14890번: 경사로 문제 https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 해설 문제를 이해하는건 어렵지 않았지만, 코드를 짜고보니 깔끔한 코드가 아닌 것 같은 생각이 들었다. 한 클래스에 한 개의 책임만 지게 하고 싶었지만, 어떻게 나눠야 효율적일지 좀 더 생각을 해봐야겠다. 문제를 풀기 위해 생각해낸 순서는 다음과 같다. 각 높이를 입력받을 board 배열, 경사로를 놓았는지 검사할 check 배열을 선언한다. 가로로 길을 통과할 수 있는지, 세로로 길을 통과할 수 있는지 확인한다. .. PS(Problem Solving)/BOJ 2022. 11. 9. [컴퓨터 네트워크] 인터넷 프로토콜: IP IP 서비스 개요 비연결형 서비스 연결 설정 과정 없음 일련의 데이터그램을 독립적으로 전달 최선형 서비스 전송속도, 지연시간 보장 없음 오류 복구 서비스 미지원 서브넷 독립적 서비스 다양한 서브넷을 통해 IP 데이터그램 전송 가능 서브넷 주소와 독립적인 IP 주소 사용 Hop-By-Hop 통신 서비스 계층 구조 IP 데이터그램 구조 Identification, Flags, Framentataion Offset은 IP 데이터그램의 크기가 서브넷의 데이터 전송 단위보다 커서 서브넷을 통과할 수 없을 때, 단편화를 하기 위해 사용되는 필드이다. IP Datagram Encapsulation Ethernet 유선 LAN의 경우 IP 데이터그램 단편화(Fragmentation) 서브넷에 따라 MTU(Maximum.. Computer Network 2022. 11. 8. [컴퓨터 네트워크] TCP 혼잡 제어(Congestion Control) 혼잡 제어 개념 네트워크 혼잡 트래픽 증가로 인해 라우터/스위치 버퍼의 큐잉 지연시간 증가 및 오버플로우 발생 TCP의 네트워크 혼잡 인식 심각한 혼잡: Timeout 발생 경미한 혼잡: 중복 ACK 발생(3번 중복 ACK) TCP의 혼잡 제어 원리 세그먼트 전송률 축소 조정(네트워크로 유입되는 트래픽 감축) 흐름제어를 위한 TCP 전송률 제어 마지막 송신바이트 번호 - 마지막 수신확인바이트 번호 ≤ 수신윈도우 (LastByteSent - LastByteAcked ≤ rwnd) 혼잡제어를 위한 TCP 전송률 제어 마지막 송신바이트 번호 - 마지막 수신확인바이트 번호 ≤ min(수신윈도우, 혼잡윈도우) (LastByteSent - LastByteAcked ≤ min(rwnd, cwnd) TCP 혼잡 제어 .. Computer Network 2022. 11. 1. [백준/BOJ] 2437번: 저울 문제 https://www.acmicpc.net/problem/2437 2437번: 저울 하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓 www.acmicpc.net 해설 문제의 예시를 봐보자. 3, 1, 6, 2, 7, 30, 1이 있을 때 이를 오름차순으로 정렬해보면 1, 1, 2, 3, 6, 7, 30이 된다. 만약 가장 가벼운 추에 1이 없다면, 우리가 측정 못하는 가장 작은 무게는 1이 된다. 차례대로 봐보면, 첫번째 추로 1을 측정할 수 있다. 두번째 추를 이용해 2도 측정할 수 있다. 세번째 추를 이용하여 3, 4를 측정할 수 있다. 4번째 추를 사용하.. PS(Problem Solving)/BOJ 2022. 11. 1. [컴퓨터 네트워크] TCP 신뢰 전송과 흐름 제어 TCP 세그먼트 전송 규칙 누적 수신 확인 누적적으로 완전하게 수신된 바이트 스트림 번호 확인 중복 ACK 세그먼트 수신 가능 중복 ACK 이미 수신한 확인번호를 가진 ACK 중복 ACK 수신 순서가 바뀐 세그먼트 도착 중간 세그먼트 손실 단일 타이머(Single Timer) 누적 수신 확인이 되지 않은 가장 오래된 세그먼트에 대한 재전송 타이머 유지 재전송 기반 오류 복구 Timeout에 의한 재전송 Timeout동안 누적 ACK 미수신 세그먼트 재전송 라우터 버퍼 오버플로우(Buffer Overflow)에 의한 세그먼트 손실 네트워크 혼잡 상황에 따른 버퍼 오버플로우 발생 충분히 긴 시간(timeout) 동안 ACK 미수신 빠른 재전송 세그먼트가 손실된 상황에서 Timeout까지 불필요한 긴 시간 대.. Computer Network 2022. 10. 31. [디자인 패턴] 장식자 패턴(Decorator Pattern) 장식자 패턴(Decorator Pattern)이란? 객체에 동적으로 새로운 행위를 추가할 수 있도록 해주는 구조 패턴이다. 클래스의 책임을 실행 시간에 코드를 수정하지 않고 바꾸고 싶을 때 사용한다. 전략 패턴도 이 기능이 가능하다. 전략 패턴은 전략 객체를 바꿔 실행시간에 확장한다. 장식자 패턴은 한 객체를 다른 객체로 포장하여 책임을 추가/변경한다 장식한 개체는 여전히 원래 객체와 같은 타입이다. -> is-a 한 객체를 여러 번 포장할 수 있고, 보통 포장하는 순서가 중요하지 않다. 포장하는 순서가 중요할 시 제한을 따로 둬야한다. is-a와 has-a를 모두 사용한다. has-a(포함 관계)를 이용해 책임을 추가/변경한다. 사용하는 이유 위와 같은 주문 시스템이 있다고 하자. 주 목적은 가격을 계.. 디자인 패턴/Design Pattern 2022. 10. 14. 이전 1 2 3 4 5 6 7 ··· 34 다음 728x90