-
Notifications
You must be signed in to change notification settings - Fork 0
Computer Network
This page includes two parts of content. The first part holds my learning notes for the book TCP/IP Illustrated. The second half mainly focuses on common interview topics and questions related to network. It will be organized in a top-down approach as in some textbooks.
此篇主要分为两部分,第一部分是学习《TCP/IP 详解》的读书笔记。后半部分围绕常见的面试类计网问题(八股文)展开,但依然沿用部分课本中自顶向下的方式组织内容(即从整体架构到应用层直至物理层的方式)。
- 1.Introduction
- 2.The Internet Address Architecture
- 3.Link Layer
- 4.ARP: Address Resolution Protocol
- 5.The Internet Protocol(IP)
- 6.System Configuration: DHCP and Autoconfiguration
- 7.Firewalls and Network Address Translation(NAT)
- 8.ICMPv4 and ICMPv6: Internet Control Message Protocol
- 9.Broadcasting and Local Multicasting(IGMP and MLD)
- 10.User Datagram Protocol(UDP) and IP Fragmentation
- 11.Name Resolution and the Domain Name System(DNS)
- 12.TCP: The Transmission Control Protocol(Preliminaries)
- 13.TCP Connection Management
- 14.TCP Timeout and Retransmission
- 15.TCP Data Flow and Window Management
- 16.TCP Congestion Control
- 17.TCP Keepalive
- 18.Security: EAP, IPsec, TLS, DNSSEC, and DKIM
Effective communication depends on the use of a common language.
REST, Representational State Transfer, in this style, the implementation of the client and the server are done independently without each knowing about the other. This means that the code on the client/server side can be changed at any time without affecting the other side.
REST-compliant systems, often called RESTful systems. It is said that RESTful systems are stateless. In the Client-Server architecture, stateless means the server does not need to know anything about what state the client is in and vice versa. HTTP fits well with the REST style: the client and the server communicate through sending "messages" to one another. Statelessness of REST means the server and the client must understand any message received, without seeing previous messages.
To be clear, REST is the way HTTP should be used. Today we only use a tiny bit of the HTTP protocol's methods – namely GET and POST. The REST way to do it is to use all of the protocol's methods. For example, REST dictates the usage of DELETE to erase a document (be it a file, state, etc.) behind a URI, whereas, with HTTP, you would misuse a GET or POST query like ...product/?delete_id=22.
CRUD refers to the four basic operations of storage management(direct manipulation of the contents of storage locations by users): create, read, update, and delete. CRUD operations are idempotent, meaning that multiple applications of the same operation have the same effect on a storage as a single application.
Data can be put in a location of a storage. The fundamental feature of a storage location is that it has a readable and updatable content (state). These read and update operations are the two basic operations on a storage and are known as the load–update pair (LUP).
Before a storage location can be read or updated, it needs to be available. A storage location can be made either available or unavailable for usage. These create and delete operations are the two other basic operations on a storage.
Almost all internet consumer-related software uses CRUD; you use it every time you ask an application to take your new data or modify the existing one.
The basic HTTP verbs corresponding to CRUD operations are:
- GET -- retrieve a specific resource (by id) or a collection of resources
- POST -- create a new resource
- PUT -- update a specific resource (by id)
- DELETE -- remove a specific resource by id