반응형

CS(computer science) 32

[42 NetPractice] - 2 오류 모음(1/2) - error on gate ip - multiple interface match

error on gate ip - multiple interface match 그림을 보면, 민트색 칸에 OK와 KO가 섞여 있다. 현재 Goal 4~7이 안되고 있는 상황이다. Goal 6,7은 foward way 보내는 것 자체가 안되고(H3-> internet) (H4->internet) Goal 4,5는 reverse way로 돌아오는 경로가 되지 않고 있다. (H1 -> H4, H2->H3) : H3, H4쪽에 문제가 있는 것으로 유추할 수 있다. 지금부터 돌아가는 상황을 제대로 파악하면서 문제가 뭔지 알아내려고 한다. Goal 5가 안되는 문제를 살펴보자. H2 : Host two가 Host three(H3) 와 통신하는 과정이다. 목표: H2->H3 1~6 : H2에서 모든 입력에 대해 16..

[42 NetPractice] - 2 오류 모음(2/2) - invalid IP

이번에 살펴볼 오류는 invalid IP address이다. 문제를 풀다보면 다음과 같은 오류가 뜨면서 KO가 뜬다. on interface R22: invalid IP address 처음에는 나도 이게 왜 생기는 지 이유를 몰라서 서브넷만 주구장창 계산하고 있었는데 , 알고보니 IP 주소에 특정한 규칙이 있어서 생기는 문제였다. 42 Netpractice 과제에서 규정하는 IPv4 에서는 사용하면 안되는 IP주소가 있는데 이는 다음과 같다: Loop back IP address : 127.0.0.1 루프백 주소 loop-back 이라도 불리는 loopback 주소는 호스트 자신을 가리키는 IP(:12) 주소다. 주로 네트워크(:12) 관련 프로그램이나 환경의 테스트를 위한 목적으로 사용한다. Priva..

[인프런 김영한 강의 정리 - 인터넷과 http- 3 ] -3. HTTP 기본과 Scale out

본 게시물은 인프런 강의(김영한 강사님의 '모든 개발자를 위한 http 강의)를 듣고 정리한 메모입니다. 1.모든 것이 http 모든 서비스가 http 네트워크 위에서 일어나고 있다. http : Hypertext Transfer Protocol 문서간 전환을 할 수 있는 html을 담는 것을 넘어서 영상, 이미지 모두 http를 통해서 전송한다. http의 역사: http 1.1버전 이후로는 http 2 버전, 3버전이 있는데 성능개선과 관련이 있으므로 1.1버전에 주력해서 공부를 하는 것이 좋다. (http3: UDP기반이다.) 2. 클라이언트 서버 구조 http의 특징: 클라이언트 서버 구조이다. 클라이언트가 서버에 요청을 하면 응답을 대기하는 상태가 되고, 서버는 클라이언트의 요청을 대기하고 있다..

[인프런 김영한 강의 정리 - 인터넷과 http2 ] - 2. URI와 웹 브라우저 요청

본 게시물은 인프런 강의(김영한 강사님의 '모든 개발자를 위한 http 강의)를 듣고 정리한 메모입니다. 1. URI URI는 URL(Uniform Resource Locater), URN(Uniform Resource Name)으로 분류되는데, URI란. Uniform Resource Identifier로, 간단히 이해하자면 resource를 구분(identify)하는데 필요한 균일한 정보라는 뜻이다.URL은 평소에 접하는 링크를 url이라고 하듯 리소스가 있는 위치를 지정한 것이다. - URN은 이름을 부여한 것으로, 이것을 이용하려면 모든 이름이 매핑되어 있어야 하므로 사용이 어렵다. 따라서 URL이 대다수 이용되고, URI는 사실상 URL이 대표한다고 이해할 수 있다. 2. URL 분석 예시 ht..

[인프런 김영한 강의 정리 - 네트워크 http - 1] - 인터넷 네트워크 http

본 게시물은 인프런 강의(김영한 강사님의 '모든 개발자를 위한 http 강의)를 듣고 정리한 메모입니다. 1. internet Network 인터넷 통신 클라이언트가 서버에게 메세지를 보내고 싶을 때, 인터넷을 통해서 서버에 보낼 수 있다. 이때 서버가 멀리있다면, 인터넷망이 해저 케이블을 통하는 등 매우 복잡할 수 있다 2. IP 그래서 IP주소를 통해, 통신을 좀 더 용이하게 할 수 있다: IP 주소란 인터넷상에 있는 컴퓨터의 고유한 주소로 이것을 바탕으로 인터넷상의 한 컴퓨터에서 다른 컴퓨터로 데이터를 주고 받을 수 있다. 그런데, 이 주소를 이용해 데이터를 주고받는다면 문제가 있다. 데이터를 보냈을 때 제대로 도착했는지 알 수도 없고 데이터의 순서도 보장되지 않는다. 3. TCP와 UDP 이러한 ..

[minishell] - setenv 함수 구현하기

1. setenv 환경변수를 등록하거나 변경하는 함수이다. - 헤더: stdlib.h - 형태: **int** setenv(**const** **char** *envname, **const** **char** *envval, **int** overwrite) - 인수: **char** *envname 환경 변수 이름 **char** *envval 변수값 **int** overwrite 이미 같은 이름의 변수가 있다면 값을 변경할지의 여부 - 반환: **int** 성공하면 0, 실패하면 -1 설계한 pseudo code는 다음과 같다. 설계한 pseudo code 1. key_finder를 통해 원하는 key를 불러온다. (=이전의 문자열) 2. key를 이용해서 맞는 환경변수의 value를 찾는다. 3...

[linux] - 새로운 명령어 만들기

1. 원리 보통 쉘에 명령어를 입력하면, 쉘은 환경변수에 등록된 경로에서 명령어가 있는지 찾아 그 명령어 프로그램을 실행한다. 이때 경로는 앞에서부터 차례로 탐색한다. 2. $PATH 그러한 환경변수는 $PATH 로, 아래와 같다. (운영체제 혹은 설치 프로그램에 따라 이 내용은 다를 수 있다. ) ':'로 나뉘어진 경로 별로 각 경로에 명령어들이 저장되어있다. 가령 /user/bin/이라는 명령어로 가보면, 이러한 명령들이 잔뜩 들어있다. 3. 나의 명령어 만들기 그런데 신기하게도 나도 쉘 명령어를 만들 수 있다. 그 방법은 다음과 같다. 1. 프로그램을 만들어서 mybin 폴더 안에 넣음. 2. $PATH에 mybin을 추가한다. export PATH=$PWD/mybin:$PATH (export : ..

[minishell] - echo 함수 구현하기

echo -n option 까지 작동하는 함수 구현하기 아래와 같은 경우의 출력예시를 살펴보면, -n 옵션이 있을 때 개행없이 출력한다. 1. 이때 ""안에 있는 경우에는 문자열로 취급하고, -nnnnn 같은 경우 옵션으로 인식한다. 2. 또한, -nnna 같이 옵션이 아닌 문자가 끼어있으면 그냥 문자열로 취급한다. 3. 한번 문자열을 인식하면 그 이후에 적힌 -n 같은 옵션 형식도 모두 문자열로 취급한다. 4. 환경변수로 -n이 등록되어있다면 역시 옵션으로 인식한다. 구현한 코드는 다음과 같다. #include "../inc/minish.h" intft_find_option(char *argv) { inti; intcnt; i = 1; cnt = 0; if (argv[0] != '-') return (..

[minishell] - 환경변수 파싱하기, 재귀함수 이용한 문자열 추출함수 만들기

key = value 라고 지정된 문자열에서 key만을 추출하는 함수를 만드려고 한다. (key = value 에서 value를 찾으려면 ‘=’을 찾은 후 그 이후의 문자열을 복사, 반환하면 된다. ) (존재한다는 가정 하에) 문자열, idx= 0 부터 하나씩 증가시키면서 문자열[idx]를 검사한다. ‘=’를 만나면 그동안 찾은 idx = 문자열 길이 이므로 key_finder(char *key_value, int idx) { if (ret[idx] == '=') { char * ret = (char *)malloc(sizeof(char)*(idx + 1)); ret[idx] = ; return ret; } } 아직 ‘=’를 만나기 전이라면 -재귀적으로 수행, 스택에 쌓인 후 재귀가 종료되기 시작하면(=..

데이터의 표현과 컴퓨터 연산2 - 부동소수점의 표현

데이터의 표현과 컴퓨터 연산 3.2. 정수의 표현 컴퓨터의 가장 근본이 되는 기능은 수치의 계산이라고 할 수 있다. 이걸 수행하는 가장 핵심적인 장치가 바로 CPU안에 있는 ALU라고 하는 하드웨어이다. (ALU의 구조) 컴퓨터는 2진수의 체계로 수를 저장하고 표현한다. 모두가 잘 아는 이진수의 체계인데 한번 더 짚고 넘어가자면, 소수점 이하의 이진수는 2^(-1), 2^(-2), ... 를 의미한다. ex) 0.101(2) = 0.5 + 0.125 = 0.625 컴퓨터는 양수 뿐만 아니라 음수도 처리하기 때문에 음수를 표현하는 방법이 필요하다. 이를 수행하는 데에는 여러가지 방법이 있는데, 공통적인 부분은 2진수의 가장 왼쪽 비트가 부호 비트로 사용된다는 점이다. 맨 왼쪽 비트, 즉 최상위 비트는 MS..

728x90
728x90