Tomorrow is the 2nd library book sale of the year. I like the book sale. What's better, it's a brown bag of books for about $5. Sure, they are used books. But books are books. I've gotten entire collections of books for practically nothing.
So... support your local library. Go check out their books and visit their book sales.
They are awesome.
A blog about the things that interest me. Includes random thoughts, Cisco, programming, and business related stuff from convenience store world.
Showing posts with label learning. Show all posts
Showing posts with label learning. Show all posts
Friday, November 18, 2016
Friday, March 4, 2016
Accomplishments
So, a few weeks ago I started reading my goals twice a day. You can read about that here. So I've been reading them. And making some progress. But not the progress I want. See, reading is just a simple action. It requires little effort. You are effectively done reading your goals in a few minutes. But reading goals and accomplishing goals are two different things.
So I've started to keep track of my goal accomplishment in a spread sheet. I just started today. I'm not sure how well this setup is going to work, so I may tweak it. But at the moment its something. The end result is to start accomplishing goals more. To do the work to accomplish the goal. Which is a lot harder than just writing the things down.
I have to admit. Writing them down and reviewing them on a daily basis is causing me to put some effort in. Just not the effort level I want to put. The hope is small accomplishments spread out over time resulting in a big goal being accomplished. Not some giant, one time step to accomplish the thing. There's no exoneration in this plan. Just straight up dirty labor. Never ending dirty labor. But that's what gets things done.
Now, back to reading. I've got 6 more pages on one goal today, and I want to get those knocked out.
So I've started to keep track of my goal accomplishment in a spread sheet. I just started today. I'm not sure how well this setup is going to work, so I may tweak it. But at the moment its something. The end result is to start accomplishing goals more. To do the work to accomplish the goal. Which is a lot harder than just writing the things down.
I have to admit. Writing them down and reviewing them on a daily basis is causing me to put some effort in. Just not the effort level I want to put. The hope is small accomplishments spread out over time resulting in a big goal being accomplished. Not some giant, one time step to accomplish the thing. There's no exoneration in this plan. Just straight up dirty labor. Never ending dirty labor. But that's what gets things done.
Now, back to reading. I've got 6 more pages on one goal today, and I want to get those knocked out.
Friday, September 11, 2015
Circling the globe (the thoughts in my head)
I went on vacation this last week. I didn’t spend any time working. It was wonderful. Now, it’s Saturday and I’m back to getting
ready for work. The mental processes are
starting to grind away, and get back to what I was working on. At the moment, I’m updating Visual Studio so
I can work on the program I was writing in C#.
I know I’ve heard a lot of disparaging things about C#, but I’m not
terribly concerned. There are too many
purists in the world.
C# is a tool. Nothing
more. If it’s not the tool you need for
the job, then don’t use C#. C++ is a
tool. Java is a tool. Visual Basic is a tool. They are all tools. Nothing more, nothing less.
Each tool out there has a specific use, and some tools are better
for certain applications. I can’t say C#
is any better a tool than Java in this case, but it’s a tool I can manipulate easier. I also spend a lot less time fighting the
interface and more time working on what I’m interested in working on. As such, the thing already reads XML files,
runs threads, and generally works like I want it to. It’s not complete by any means, but it’s on
its way there.
In the period since I started writing this (it’s been about
a week) I read Seth Godin’s Small in the New Big. It’s quite a remarkable book, and there’s a
lot I’d like to say about it. I’m really
not sure what to say, though. There truly
has been a paradigm shift and in the world, and those trying to follow the old
paradigm seem to be getting left behind.
It’s much easier to follow the new paradigm.
But what is the new paradigm? I think the answer is release early, release
often, and benchmark everything. Quit
trying to make something perfect, and make something you can release.
So I think I’m going to go with that, and make something I
can release. I’ve already started working
on it, but it’s neither groundbreaking nor amazing. But it’s something.
When you release often, you end up basically throwing a lot of
stuff up, and hoping some of it sticks.
I’m not sure if that makes sense, but it does to me. If I release something in the next month or
so, then I’m doing better than I have in the last few years. Too much thinking and trying to come up with the
perfect idea. Too little time
releasing.
I think I also realized the background for the past few months (maybe a year) has been chemistry related. I like the picture, but this has nothing to do with chemistry. I should probably change that.
Tuesday, July 7, 2015
Antiquated, Arbitrary Systems
I home school my children. Why I do that is a subject of a different post. The subject of this post is to understand the contrast between public, private, and home schools. It is fairly obvious to me that public schools as we know it are a way of the past. The need to learn more material at a faster rate needs better methods of teaching that are more reproducible. The herd mentality isn't going to work as a system much longer.
Think of the average public school. You have a collection of subjects taught in a micro landscape with no tie to the rest of the world. Secondly, you have students at differing levels of interest being forced in with those students who have no interest. Third, you have an arbitrary knowledge level system that forces every student, regardless of ability, into a group. Tackling these issues has been something home schooling has never had to deal with.
And before I move on, class size doesn't matter. I had a high school size of 140 and no class I took had more than 20 people. And yet there were still people who passed high school barely capable of reading.
Now, I'm thinking the answer is going to be a combination of software and hardware. Software provides the basis and the consistency of the system, while hardware produces the interaction. Would an hour of class be as bad if the student spent their entire time standing, working on the board?
Secondly, you could have the program tailor itself to each individuals skills and abilities. No more passing because the teacher just doesn't want to deal with you any more. Computer programs have infinitely more patience than the average teacher. The converse to that is now the gifted students will move at the pace that keeps them challenged as well. If they learn a subject in five minutes and can prove competence in the next twenty, then there would be no need to keep going on for another fifty minutes. Move on to the next subject so that gifted mind can keep up.
And when the mind hits a roadblock, the system slows down and doesn't let them move on until they have mastered the subject.
I think I envision the next generation being raised by computers in individual rooms or cubicles. The teacher still exists in this environment, but their purpose is to help frustrated kids and give the hands on approach to the child that needs it.
I know the system we currently have does not work. That's quite evident. So the goal is to radically redesign the system to something that does work, and is reproducible.
I also seem to remember something years ago that stated Algebra was a college level course. And now, it's a junior high course. If you want the next level on movement, you have to get more people up to a higher level learning faster so those people can spend more time with the requisite knowledge to figure out the hard problems.
Think of the average public school. You have a collection of subjects taught in a micro landscape with no tie to the rest of the world. Secondly, you have students at differing levels of interest being forced in with those students who have no interest. Third, you have an arbitrary knowledge level system that forces every student, regardless of ability, into a group. Tackling these issues has been something home schooling has never had to deal with.
And before I move on, class size doesn't matter. I had a high school size of 140 and no class I took had more than 20 people. And yet there were still people who passed high school barely capable of reading.
Now, I'm thinking the answer is going to be a combination of software and hardware. Software provides the basis and the consistency of the system, while hardware produces the interaction. Would an hour of class be as bad if the student spent their entire time standing, working on the board?
Secondly, you could have the program tailor itself to each individuals skills and abilities. No more passing because the teacher just doesn't want to deal with you any more. Computer programs have infinitely more patience than the average teacher. The converse to that is now the gifted students will move at the pace that keeps them challenged as well. If they learn a subject in five minutes and can prove competence in the next twenty, then there would be no need to keep going on for another fifty minutes. Move on to the next subject so that gifted mind can keep up.
And when the mind hits a roadblock, the system slows down and doesn't let them move on until they have mastered the subject.
I think I envision the next generation being raised by computers in individual rooms or cubicles. The teacher still exists in this environment, but their purpose is to help frustrated kids and give the hands on approach to the child that needs it.
I know the system we currently have does not work. That's quite evident. So the goal is to radically redesign the system to something that does work, and is reproducible.
I also seem to remember something years ago that stated Algebra was a college level course. And now, it's a junior high course. If you want the next level on movement, you have to get more people up to a higher level learning faster so those people can spend more time with the requisite knowledge to figure out the hard problems.
Sunday, July 5, 2015
post CCENT
I passed the CCENT. Grading criteria was between 300 and 1000, and passing was 803. I scored a 907. Hooray for me.
The test was copyrighted 2013. There was a lot of subnetting through out. Not much IPv6. There was four question problem on OSPF. Another was on security settings. Which reminds me. I need to test one of the configurations they performed. Because I think I know the answer, but I don't know if I was correct or not.
I guess now on to something else. Back to studying the stuff I've been studying. I'm currently reading Simple Nature by Benjamin Cromwell. After that, it's on to Mechanics and then my study of physics takes a temporary break.
Other stuff I'm currently reading include The Book of Five Rings by Miyamoto Musashi. After that one is finished, it's off to The Hacker Playbook by Peter Kim.
There's an entire list of books after that, but that collection will keep me good for several days.
Remember: people don't grow without intentional effort.
The test was copyrighted 2013. There was a lot of subnetting through out. Not much IPv6. There was four question problem on OSPF. Another was on security settings. Which reminds me. I need to test one of the configurations they performed. Because I think I know the answer, but I don't know if I was correct or not.
I guess now on to something else. Back to studying the stuff I've been studying. I'm currently reading Simple Nature by Benjamin Cromwell. After that, it's on to Mechanics and then my study of physics takes a temporary break.
Other stuff I'm currently reading include The Book of Five Rings by Miyamoto Musashi. After that one is finished, it's off to The Hacker Playbook by Peter Kim.
There's an entire list of books after that, but that collection will keep me good for several days.
Remember: people don't grow without intentional effort.
Wednesday, July 1, 2015
As the world burns...
The world burns. I
study.
I’m concerned with Dora (Discover, Offer, Request, ACK) the
DHCP explorer and her friend Bubu (broadcast,
unicast, broadcast, unicast) and learn on source, forward on destination.
Open suckiest path first:
Hello, dead beat dad. Losers suck
right? Losers suck up. Ack.
(link state packets for OSPF.)
Basic ACL near destination
Extended ACL near source
Deploy access class to limit access to console
Default information-orginate
Ip helper-address
I’ll know Thursday if I pass. Wish me luck.
Sunday, June 7, 2015
Garbage In/Garbage Out
I’ve been thinking of the concept of garbage in / garbage
out. It’s a computer science
concept. It’s an interesting
concept. The idea is that a computer is
capable of processing all sorts of data, not just good data. So if you give a computer bad data, it will
spit out bad results. Makes perfect
sense in the computer world. But what
about applying the concept to life?
Seems perfectly applicable to me, but it’s hard to interpret
what constitutes good or bad information.
The basic concept I’m trying is limit the type of music I intentionally
listen to. I find that it’s hard to
maintain the correct mindset when being assaulted by lyrics that preach the
wrong kind of information.
Building the concept of where I want to be in relation to
where I am is only limited by what my mind thinks I’m capable of. But when you feed your mind information
telling it that something can’t be done, then you are defeating yourself. Logically, your brain is sitting there
telling you that the music you are listening to is not affecting you. But it is, and the effect is incredibly
subtle. It’s something easy to test,
though it requires a bit of discipline.
What I did was eliminate music with words from my day to day
listening.
I guess I spent too much time listening to people doing bad
things to other people. Or listening to
music written by people who are convinced the world is out to get them. Or those that think the world owes them something. I’m generally more inclined to think the
world is ambivalent to individual existence.
Life is not fair, or easy. But
that doesn’t mean there is plenty of great stuff to pull out of the world. In the grand scheme of things, the individual
human life spans a very short period and has very little impact. So really, our lives don’t matter all that
much.
But mentally, people don’t want to believe that. They want to believe in the importance and
reach of their life. But it’s simply not
the case for the most part. So you get a
collection of garbage thrown in your brain that tells you the wrong thing and
leads you to the wrong conclusions. And
generally, these conclusions are very logical.
Andy Andrews describes it as “thinking logically to the wrong conclusion”.
So my recent approach has been to take in less garbage with
the hopes of getting better information out.
I recently took a 4 day weekend after 17 straight days at work. I had to work 17 straight days because I had
been focusing on solving the wrong problem.
See, there’s the right problem and the wrong problem. If you solve the wrong problem, you have to
keep solving the problem over and over again.
It just doesn’t work. What I
finally realized in those last three or four days was I could have easily
avoided working 17 days straight if I had done the correct thing. What I needed to do was document better. If I had documented better, then I could have
turned anyone calling me to look at the document in question and follow it to
its conclusions. If the document was
incapable of producing an answer, then there must have been some other issue.
What good does it do to create wonderful systems that have
no documentation or notes?
Wednesday, May 13, 2015
end of a semester
Routing and Switching is over. Finished the final with an 85, closed book closed notes.
That should give me an A for the semester. I need to prepare for the CCENT for the next 2-3 weeks, and then go take that. Based on the Routing and Switching final, I need to study OSPF more. I missed more than I would have liked on that.
Scaling Networks is next. The book is on order. I spent a few minutes looking through the chapter headings on the final book, and found the PPPOE section. Yeah. Book 4, right before the CCNA.
Moving on. Back to site construction tomorrow, now that finals are complete. Yay.
That should give me an A for the semester. I need to prepare for the CCENT for the next 2-3 weeks, and then go take that. Based on the Routing and Switching final, I need to study OSPF more. I missed more than I would have liked on that.
Scaling Networks is next. The book is on order. I spent a few minutes looking through the chapter headings on the final book, and found the PPPOE section. Yeah. Book 4, right before the CCNA.
Moving on. Back to site construction tomorrow, now that finals are complete. Yay.
Saturday, April 4, 2015
Speaking of Java and MySQL
So, I finally got my Java/MySQL connection working.
Hooray!
https://help.ubuntu.com/community/JDBCAndMySQL
Was where I learned to fix the "class not found issue".
After that, I dug up http://www.tutorialspoint.com/jdbc/jdbc-quick-guide.htm to get instructions on how to use/connect to the database.
Afterwards, I was capable of spitting out information to the system console from the database. Holy crud!
Definitely making progress today.
Yay.
Hooray!
https://help.ubuntu.com/community/JDBCAndMySQL
Was where I learned to fix the "class not found issue".
After that, I dug up http://www.tutorialspoint.com/jdbc/jdbc-quick-guide.htm to get instructions on how to use/connect to the database.
Afterwards, I was capable of spitting out information to the system console from the database. Holy crud!
Definitely making progress today.
Yay.
Wednesday, April 1, 2015
The first two hours
In trying to program 10,000 hours worth of stuff in Java, I
realized I was going to be building a whole lot of stuff. After two hours, I’ve finished the first
program. It’s a translator that takes
CIDR notation information and turns it into Snort rules. The entire purpose is to block entire
countries. The problem is countries are
large and have a lot of IP addresses.
Blocking China takes a few thousand lines of CIDR notation. And aggregate it all into smaller
routs? Highly unlikely. So you end up with 3,000 lines that you can
either manually parse through or write a program to parse through. I chose to write a program.
And I’ve also come to the realization that in the run to get
10,000 hours, I’m going to program a lot of stuff. That is a lot of time. At 30 minutes per day, that’s 54 YEARS. So at some point, I’m definitely going to
have to put in a lot more effort than I currently am.
So now that the Snort builder is done, what’s next? Probably moving back to my automatic network
test application. Which is mostly
writing text parsing. From there, I’ve
got to figure out how to design a database structure and get the information
into a database. From the database, I
have to get data into a web form and display it on a web server that doesn’t
exist.
Just a slight bit complicated, but I’ve got nothing but
time.
After that, there's a SHA application I've been contemplating. SHA is secure hash algorithm. It's essentially a long number that indicates the properties and data of a file. Well, if the SHA is the same for two files, then the file is the same. So if you have a desire to back up data, you can create a SHA of every file on your system, and every file on the remote system. Compare those two files together, and identify which files need transferred. Do so, and you synchronize the data on both systems.
It's an idea. Like I said, 10,000 hour is a lot of time. A whole lot of time.
side note: I realize this is April Fools Day. I am not a practical joker.
Friday, March 27, 2015
Pareto Principle in Action
My last experiment started as a practical examination of the
Pareto principal, otherwise known as the 80/20 rule. I had been making straight B’s on my Routing
and Switching tests, and I wanted to consistently improve them to A’s. In order to do that, I needed to know how much
time I was spending getting that B.
So I changed my study habits slightly, and decided to keep
track of time spent studying. I’d also
read something about two competing South Pole expeditions. One ran as much as they could every day. Some days they didn’t go anywhere because the
weather was bad. The other went 15 miles
a day, regardless. They went 15 miles,
and stopped for the day. So I decided to
try that principal with studying. And
the results were pretty remarkable.
I went from an average low B to a high A on the next
test. Hooray for me. Anyway, this was the process.
Read any previous notes I had made.
Grab a highlighter, and read 15 pages, highlighting what I
thought was important.
Copy those highlighted notes into my printed notes.
Quit for the day.
Return tomorrow.
In doing this process, I found it only took about an hour a
day, so I really had more time to work on other things. Normally, I would have spent 3-4 hours
straight on Saturday or Sunday reading and highlighting. Granted, chapter 7 took me 387 minutes to
complete, but that only averaged 64 minutes per day. I have yet to take the test on that chapter,
so I’m not yet sure how effective this process has been for that chapter. But I do know the previous chapter resulted
in huge positive results.
I think I missed a lot of the main part of this that makes
it so effective. The main effective part
is that you study a little bit every single day. It’s not a brain destroying group done once
or twice per week. It’s simply an hour
per day, every single day. In that way,
your brain doesn’t have time to stop thinking about what you have studied. On top of that, by the end you’ve read and
reread your notes numerous times. Then,
the information is more likely to stick.
We’ll see what happens with chapter 8. Though I have to admit, single area OSPF just
doesn’t interest me that much.
Monday, January 19, 2015
The end of one thing, the beginning of another.
I finished the Security+ book, and I think it left me with
more questions than answers. At the
moment, I’m questioning how to do a lot of things. Network baseline analysis is the primary one
of those. At the moment, I’m doing some
preliminary reading. Sure, there are a
lot of books out there that say “this should be done”. None of them discuss how to do network
baseline analysis. I think the best
answer I’ve seen so far “there isn’t a standard”. Which sounds pretty normal with network
security. And that’s why network
security is, as a general rule, very splotchy.
With Security+ being finished, it’s off to learning physics
VIA a collection of books written by Benjamin Crowell. Part of me wants to write a long, drawn out
blog post describing in detail how I can believe in both science and God at the
same time. But I’m not. The answer is pretty simple: most of life is
not an either/or selection. Despite
simplistic arguments against, it is entirely possible to believe in both at the
same time. The two are not mutually
exclusive. Sorry folks, I can believe in
both at the same time.
I’ve touched on the false idea of mutual exclusivity
before. I can’t remember the post, but
it’s the argument of people who want to lead you down paths that are only valid
if the two items discussed in the beginning really are mutually exclusive. For the most part, there are very few
mutually exclusive items in the world. I
guess in the end, you have to question the assumptions people push at you, and
assume everyone has an agenda. Despite
the best arguments, the truth is not the real agenda.
I think Andy Andrews put it best: People often think logically to the wrong
conclusions.
Really, there was an entire book about that subject. It was pretty interesting.
Wednesday, January 14, 2015
Some programming... more about planning
I think I’ve thought of the problem with the threading
function. There’s really no problem with
the thread function. The thread works
great. My expectations of what the
thread should do were wrong, though. I
incorrectly assumed the thread would run multiple times. It doesn’t.
It just runs once. And that’s the
problem with it. So it’s not the thread’s
fault I told it wrong. It is simply a
matter of me assuming the wrong thing about how it would behave.
Essentially, I have to remember that the thread is nothing
more than a function. The function runs,
and then the function quits. Bu nothing
ever calls the function again, so the numbers never change after the first
press of the button. Or at least I
think that’s the explanation.
On a second note, my reading has gone past 20%
complete. I should be done with
Security+ this week. As a general rule,
I’d say the book has good info but it’s so incredibly vague in most cases. This is not an action oriented book. This book is there to give you a gigantic
overview. From there, its’ up to the
user to pursue whatever interests them.
Which takes the focus out of the reading. I’m guessing a server book should go
next. At the moment, I’m not progressing
down the security path though. I’m
heading towards a programming path. Once
the programming path is done, then it’s back off to other things.
At the moment, I’ve read about 1000 pages of the 5000 I need
to complete my current goal. So that
leaves me with another 4000 or so to read.
Do I really want to schedule the next 10,000 pages when I don’t know
where I intend to go from here? I could
easily pick a number of books. A Cisco
Voice book probably needs to be in there somewhere.
For now, the examination of where I want to go is behind
4000 pages of physics, calculus, and artificial intelligence books and the last
50 or so pages of Security+. Towards the
end, I’ll probably have a better understanding of where I want to go. But now?
The schedule is set, I just have to follow it.
Tuesday, January 13, 2015
Threads: I still hate them
Hmm…
Looks like implementing threads is going to be about what I
expected. The code is simple
enough. It’s getting that thread to run
multiple times on a schedule that’s going to be the complicated part. I have no idea how to get it to do that. The thread.sleep() should cause it to work,
but it’s not doing what it’s supposed to do.
I suppose I’m used to dealing with threading causing me havoc.
Grr… Slight
modifications to the system and it still doesn’t work. But eh…
The real problem is threading is critical to half of the
stuff I have running through my head. So
I have to figure out threading, or the rest of my ideas need to go on
hold. And I really don’t want to put
them on hold.
But… grr.
Did I mention I’ve never been good at threads? In general, they seem to be easy. But I’ve never been able to implement them
properly. Though quickly looking through
the Java documentation, there is also a timer implementation that would probably
implement the countdown portion of the clock just fine. It still annoys me…
Yeah, I still hate threads. I wouldn't bother trying the code, as it doesn't work...
private class CountDown implements Runnable
{
CountDown()
{
}
public void start()
{
t = new Thread(this, "counter");
t.start();
}
public void run()
{
try
{
int ones;
int tens;
String txt = seconds.getText();
char characters[] = txt.toCharArray();
ones = characters[1] - '0';
tens = characters[0] - '0';
ones = ones - 1;
if(ones < 0 && tens > 0)
{
tens = tens -1;
ones = 9;
}
else if(ones < 0 && tens == 0)
{
tens = 0;
ones = 0;
}
seconds.setText( Integer.toString(tens) + Integer.toString(ones));
Thread.sleep(20);
}
catch(InterruptedException e)
{
}
}
}
Tuesday, January 6, 2015
Program 2: Java Stopwatch
With the NetworkStatus application in a mostly working
state, it’s time to shift gears to a separate application. I like to build small, similar applications
that will eventually use the same basic ideas.
The first application was designed to get a button working and
responding to being pressed. Program two
is about threading.
And what better way to move to in to threading than my old favorite
of the threading world, the Stop Watch.
StopWatch will be of similar design to NetworkStatus. The thing would have several buttons allowing
you to adjust the time, and display in the middle of the screen. There should be a start and stop button. So I guess the first thing is to pull up
paint and create a generic mockup of the program design.
I decided to go with a 3x4 grid layout simply because it’s
different than the gridbag layout I went with earlier. I’m still not impressed with Java
FlowLayouts, and GUI design in general seems like a real pain. But I’ve got to learn to work with what I
have to work with. Some systems just
seem to be better suited for certain things than others.
The number in location 0,1 and 2,1 will be independent of
each other. They will be separated by a colon. The colon ends up being just a text field
with the text size increased to make it look pretty. Really, the 0,1 and 2,1 are text fields as
well. They will just be handled with
some special code to make them operate properly. It’s not complex code, and I’ve written the
same thing in other languages before. See my C# example below.
Though after examining my old C# stop watch, I might put a
reset button in the middle. That could
work out nicely. So, half an hour into
this project I have a reasonable (though ugly) facsimile of a StopWatch. It is not fuctional, and I need about 200-300
more lines of code to make it work without threading. But at least there’s been some progress made. Maybe tomorrow, it will be counting.
Probably not. It will
take all of tomorrow to get the buttons working properly.
Monday, January 5, 2015
Working solutions
So it looks like the basics are working on the program.
Now that it does what it’s supposed to, it’s off to creating the not so easy
portion of the system. There are still
some minor portions or the program that aren’t working properly.
The answer to the initial question was…
this.setVisible(true);
Guess it
was the simple stuff that was causing things to fail. It almost always is. The next question I’m wondering about is the
scroll bar on the text box. I’m sure it’s
something easy, but easy isn’t hitting on the head right now, I’m going to have
to keep guessing.
The
other items I’m wondering about are all style issues. Simple things like why there is so much gap
between the top grouping and where the list box starts. I shouldn’t call it a list box, but that’s
what it reminds me of. It’s really a JTextArea.
This is
what often happens in many of my programs and projects. I break down to fighting simple/stupid stuff
that doesn’t really equate to how the program operates. It’s just a visibility/design issue. But design issues can make or break a
program. Certainly, there should be more
to the program, but at the moment, everything seems to be acting like I think
it should. As a test, it works
well.
The next
questions are all technical ones. Such
as, the InetAddress.isReachable implementation. I question these things, because the creation
I’m thinking of making is some sort of thing that examines the current state of
hosts imported through an XML file and alerts based on whether hosts are
reachable or not. It then checks every
30 seconds or so and writes the information to a database. From there, you can see the long term uptime
of a network.
And I really want to know what it does and how it operates, because proper troubleshooting requires knowing why something is doing what it is doing. And really, you need to know both what the results tell you and what the results don't tell you. I've spent 3/4 of a day fighting an Internet issue because I quit listening to what everything was telling me. I was being too quick to jump to conclusions.
There
are other things I’m contemplating, but I don’t know how to implement
them. In the end, almost all of my
programs become horrendously ungainly things where feature creep becomes a
dominant factor. Well, feature creep and
general GUI design flaws. Like I said, I
spend a lot of time fighting GUI design.
Other
than something I wrote in C# that checks to see whether a collection of backup
files are there, and the date on those files.
It then emails me, telling me whether things succeeded or not. But that probably needs updated just to make
sure it stays working. Or, I need to rewrite the entire thing in Java.
Thursday, December 11, 2014
Introduction to Networks ch 6
Quiz
How does the network layer use the MTU value?
A) The MTU is passed to the network layer by the data link layer.
What are 2 functions that are provided by the network layer?
1) providing end devices with a unique network identifier
2) directing data packets to destination hosts on other networks
During the boot process, in what memory location will the router bootstrap program look for the IOS image if a TFTP server is not used?
A) flash
When transporting data from real-time applications, such as streaming audio and video, which field in the IPv6 header can be used to inform the routers and switches to maintain the same path for the packets in the same conversation
A) Flow Label
Within a production network, what is the purpose of configuring a switch with a default gateway address?
A) The default gateway address is used to forward packets originating from the switch to remote networks.
Chapter 6 Notes
routing - communication between networks
Network Layer
Provides services to allow end devices to exchange data across the network
-OSI Layer 3
-4 basic processes
-Addressing (end devices)
end device with configured IP is called a host
-Encapsulation
Receives PDU from transport layer. Adds header. Now called a Packet
-Routing - services to direct packets to a destination host on another network
-each route the packet takes to reach the destination is called a hop
-Deencapsulation - process of removing headers from lower layers
Operates without knowing/caring of the data being carried
Media/Path is irrelevant. Satelite, wireless, cable modem, serial.. doesn't matter
Network Layer protocols
IPv4
IPv6
Characteristics of IP protocols
-low overhead
-connectionless
-best effort (unreliable)
-media independant
Connectionless - no dedicated end to end connection created before sending. Kind of like mail.
-send at any time
-unaware of the state of the recipient
-unaware if the receiver can understand the data
-no error correction
-no guarantee packets will arrive in order
Best Effort Delivery
can't recover from failed/corrupt packets
bad packets are dropped
trouble with transmission handled by upper layers if the layer desires
Media Independent
Data link layer responsible for transmitting over media.
maximum size packet that can be sent is the MTU (maxium transmission unit)
-data link layer passes the MTU value up to the network layer
-network layer uses information to determine packet size
-breaks packets to fit the MTU.
-Fragmentation is necessary to split packet size so it will fit on a device with a smaller MTU
IPv4 Packet
-In use since 1983
Packet has 2 parts
1) IP header
Significant portions of the header
-Version - packet version. Constant at 0100
-Differentiated services (formerly Type of Service) - used for QoS. 1st 6 bits used by QoS. last 2 bits used to prevent dropping
-TTL (Time to Live) 8 bit value to limit the lifetime of the packet. Reduced at each hop. If hits 0, router discards packet and returns ICMP Time Exceeded message to the source IP address
-Protocol - indicates data payload
-Source IP address
-Destination IP address
2) Payload
Remaining fields of the IPv4 header
-Internet Header Length (IHL) - 4 bit value identifying the number of 32 bit words in the header
-total length - defines entire packet size, including header and data
-header checksum - used for error checking IP header. If values do not match, packet is discarded
If the packet is fragmented, other fields are used to keep track of the data
-Identification - unique identifier of a fragment
-flags - identifies how a packet is fragmented
-fragment offset - identifies the order in which to place the packet when it arrives at the destination
IPv6 packet
Limitations of IPv4
-IP address depletion - only 4 billion available IP addresses. Quickly running out due to always-on connections
-Internet Routing Table Expansion - more networks, more routes, more waiting
-Lack of end-to-end connectivity - Troublesome when NAT and PAT are used.
Encapsulating
-simplification of the IPv6 header
IPv4 had 20 octets and 12 basic header fields
IPv6 has 40 octets and 8 basic header fields
advantages over IPv4
-better routing efficiency for performance and forwarding rate
-no requirement for processing checksums
-simplified and more efficient extension header mechanisms
-flow label field for per-flow processing with no need to dencapsulate to identify various traffic flows
IPv6 packet header
-Version- 4 bit binary. Constantly set to 0110
-Traffic Class - equivelant of the differentiaed services field
-flow label - used to inform routers and switches to maintain the same path for packet flow so that packets are not reordered
-payload length
-next header - equivelent of the IPv4 protocol field. indicates data being carried
-hop limit
-source address
-destination address
IPv6 addresses
-128 bit address
-colons separate entries into a series of 16-bit hexadecimal blocks
Routing
How a host routes
Host forwarding decision
hosts can send a packet to ...
-itself
-local host
-remote host
local host vs remote host is based on IP address and subnet mask comparison between sender and receiver
devices beyond the local network segment referred to as remote hosts
Default Gateway
the device that routes traffic from the local network to devices on remote networks
if a host is sending to remote network, it sends to default gateway
default gateway maintains a routing table
-data file in RAM that stores route information from directly connected networks
-also knows remote networks the device has learned
host must maintain a local routing table to ensure proper delivery
hosts routing table typically contains of...
-direct connection
-local network route
-local default route
default route only used to connect outside of the local network
IPv4 routing
If a host wants to send a packet inside the local network
1) consult the IPv4 route table
2) match the destination IP address and identify it as being in the same network
3) send the packet using the local interface
If a host wants to send a packet outside the local network
1) consult the IPv4 route table
2) find there is no exact match for the destination IP address
3) choose the local default route to pick the forwarding location
4) send the packet to the gateway using the local interface
IPv6 routing
View routing table in Windows with netstat -r or route print
If - lists the interface numbers from the interface list
metric - lists the cost of each route to a destination. Lower numbers are preferred routes
network destination - lists the reachable networks
gateway - lits the address used by local host to forward outside the network
::/0 - IPv6 equivalent of the local default route
::1/128 - IPv6 equivalent of the loop back address
200::/32 - global unicast network prefix
fe80::/64 local link network route address; represents all computers in the local network
ff00::/8 multicast address
no broadcast addresses in IPv6
Router Routing Tables
routers store information about
directly connected routes
-known from interfaces physically plugged into the router
remote routes
-routes that come from other routers.
-manually configured or dynamically configured through the device learning from other routers
routing table of a router
-destination network
-metric associated with the destination
-gateway to get to the destination
show ip route
when a packet arrives at the router, the router examines the routing table. if the destination network matches a route in the routing table, the router forwards the packet to that route
if multiple paths to the same location, then lowest metric wins
directly connected routing table entries
routers have 2 rotus after IP address is assigned
route source: - how the route was learned
C: directly connected
L - local route
Destination network and how reached
identifies the address of the network and how a packet can reach the destination
outgoing interface
what interface is used to connect to that network
routers generally have multiple interfaces configured
common codes for remote networks
-S: route was manually created by an admin. Static route
-D: learned dynamically using EIGRP
-O: learned dynamically using OSPF
remote network routing table entries
route source- how the route was learned
destination network - the address of the remote network
administrative distance - trustworthiness of the route source
metric - value assigned to reach the remote network. Lower wins
next hop - ip address of the next router to forward packets to
route timestamp - when the route was last heard from
outgoing interface - physical interface to forward a packet
next hop address
address of the device that will process the packet next.
packets can not be forwarded by the router without a route for the destination network.
if no route, packet is dropped
router can be configured with a gateway of last resort if the destination is unknown
Routers -
a router is a computer
branch - small business, medium business, teleworkes
WAN - large business
Service provider - large service providers
router CPU and OS
Router memory
RAM - store applications and process including
-IOS - copied during bootup
-running config
-ip routing table
-ARP cache
-packet buffer
routers use DRAM
volatile memory and requires continual power to maintain information
all content lost when powered down
ROM
used to store:
-bootup instruction
-basic diagnostic software
-limited IOS
firmware embedded on an integrated circuit inside the router
doesn't lose contents when powered down
NVRAM
used as permanent storage for the startup config file
doesn't lose contents when powered off
flash
used as permanent storage for IOS and system related fields
router backplane
has the following connections
-console ports
-aux port
-LAN interfaces
-Enhanced high-speed WAN interface card (EHWIC) slot
modular enhancement slot. Different interface, different card
connecting to a router
routers interconnect many devices
connections grouped into two categories
management ports - used to configure/manage/troubleshoot. not used for packet forwarding
in-band router interfaces - LAN and WAN interfaces configured with IP addressing to carry traffic
two interfaces can't belong to the same network
router bootup
bootset files - loaded into RAM when booted
-IOS image file
-start config file
router bootup process
1) perform POST and load the bootstrap program
2) locate and load the Cisco IOS software
3) locate and load the startup config file or enter setup mode
locating/loading config file
can be saved in NVRAM.
if not, can be loaded from a TFTP server
show version
CPU and amount of RAM
some versions write the amount of ram with XXXX/YYYY. add those two numbers together
has config register as 0x2102. changing to other used for password recovery
general config steps
1)give hostname
2) set passwords
-enable
-console
-VTY
-use service password-encryption to encrypt password
3) setup a banner motd
4) exit config
5) save configuration
configuring interfaces
1) conf t
2) interface whatever
3) ip address xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy where x is IP address, y is subnet mask
4) description blah
5) no shutdown
6) exit config
7) save
verify interface configuration
show ip interface brief
show ip route
show interfaces
show ip interface
default gateway on a switch
1) interface blah
2) ip address xxx yyy (x is IP, y is subnet)
3) no shutdown
4) ip default-gateway xxx.xxx.xxx.xxx (x is IP address)
IP address on a switch is only used to mange the switch
if you want it accessible from anywhere, it needs a default gateway
Subscribe to:
Posts (Atom)