This week, I will talk about another aspect of computer system-- a macro-scope look at the networks around the world, as is shown below:


One of the best ways to visualize how all of the protocols interact on a particular host is to view it as a stack. A protocol stack shows how the individual protocols within the suite are implemented on the host. The protocols are viewed as a layered hierarchy, with each higher level service depending on the functionality defined by the protocols shown in the lower levels. The lower layers of the stack are concerned with moving data over the network and providing services to the upper layers, which are focused on the content of the message being sent and the user interface.
Different layers have different functions. And different protocols works on different layers to connect the world together and makes it a village.
I want to talk about some examples of famous protocols. IP protocol works on network layer, and is responsible for routing data along different path across the net. And TCP and UDP works on Transport layer. They two are different in the sense of the method they transmit data---TCP is connection-oriented, while UDP needs not to set up connection before transmission. Thus different working method result in different advantages and disadvantages. TCP is reliable, but setting up connection takes time; UDP is unreliable, although it can provide synchronization.
So, I begin to understand that there's no absolute and exact definition of what is good and what is bad. When we achieve some advantages, most of the time we have to give up something. Designing the product and writing proper program is actually a process that we maximize the advantages as well as make compromise to some disadvantages. The most important thing is to make decision according to what we really need and expect. When we think reliability is more important, such as for e-banking, we choose TCP; when we need synchronization, such as live broadcast, we use UDP.
This course also talks a lot on how our personal computer and the server interact with each other when we request some service. It relates tightly to our daily life. Since I'm really interested in it, I download a software called Wireshark to analyze and prove it using what I have learn in class.
We can see the software indeed captured a lot of protocols when I download some web pages, which is just the same as what I have learned. What is more, we can read many detailed information from this screen, and this process really gives me a better understanding about how the system works.
In later class, we have learned more detailed information about how the components that comprise internet work and provide us good service.
For example, we take a closer look and analyze the different way to transmit segments or packets, such as Stop-and-Wait, Go-back-N, and Selective Repeat. We compare the complexity, the protocols, the efficiency of these 3 method. This makes me again realize the importance of improving the product or design repeatedly according to the demand.
Then, after comparing with the course--Computer Networks, I will talk what I have learned in the recent classes of Microprocessor.
First, I'll outline the content I learned as followed:
1. languages to program on the computer.
Three levels of languages available to program a microprocessor: Machine Languages, Assembly Languages, and High-level Languages.
Machine Language
A sequence of binary codes for the instruction to be executed by microcomputers.
Long binary bits can be simplified by using Hexadecimal format.
It is difficult to program and error prone.
Different uP (micro-processor) uses different machine codes.
Assembly Language
To simplify the programming, assembly language (instead of machine language) is
used.
Assembly language uses 2- to 4-letter mnemonics to represent each instruction
type. E.g. “Subtraction” is represented by SUB
Four fields in assembly language statement:
Label, OP Code, Operand and Comment fields.
Programs will be ‘translated’ into machine language, by Assembler, so it can be loaded into memory for execution.
High-Level Language
High level languages, like C, Basic or Pascal, can also be used to program
microcomputers.
An interpreter or a compiler is used to ‘translate’ high level language statement to
machine code.
High level language is easier to read by human and is more suitable when the
programs involves complex data structures.
2.Different Addressing Mode
8088 for memory retrieval and storage.
Register addressing mode,
Immediate addressing mode,
Direct addressing mode,
register indirect addressing mode,
Based addressing mode,
Indexed addressing mode,
Based indexed addressing mode,
String addressing mode, and
Port addressing mode.
So, just as what I have said before, this course is really looking into very detailed part and structures about computer system and computer hardware.
We have to not only understand something like addressing modes, how computers transmit information as bits,how computers store information(shown in the graph above) and so on but as well as remember many assembly orders, address default values to make ourselves more familiar with it.
In addition, we should make good use of Google and Wikipedia to get more information, like pins' functions of microprocessors and block diagrams as shown bellow:
Anyway, I'm interested in both courses, one is more about macro-scope, the other is about micro-scope!
没有评论:
发表评论