├── .gitignore
├── README.md
├── computer-networking.md
└── computer-networking
└── images
├── image-20200531212326401.png
├── image-20200531225656715.png
├── image-20200531230514651.png
├── image-20200531230705130.png
├── image-20200531230815225.png
├── image-20200531232449663.png
├── image-20200531234141940.png
├── image-20200531234641561.png
├── image-20200601221842126.png
├── image-20200601223501596.png
├── image-20200601224707342.png
├── image-20200601225905306.png
├── image-20200601225928657.png
├── image-20200601230056108.png
├── image-20200601233914469.png
├── image-20200601234409267.png
├── image-20200601234506899.png
├── image-20200601234515359.png
├── image-20200602142354277.png
├── image-20200602142820473.png
├── image-20200602194527202.png
├── image-20200602201130107.png
├── image-20200602201900738.png
├── image-20200602205823543.png
├── image-20200602210939472.png
├── image-20200602210958991.png
├── image-20200602211055747.png
├── image-20200602211143403.png
├── image-20200602211247761.png
├── image-20200602211305656.png
├── image-20200602211412026.png
├── image-20200602212225357.png
├── image-20200604001505152.png
├── image-20200604001800418.png
├── image-20200604141129061.png
├── image-20200604141317969.png
├── image-20200604142033889.png
├── image-20200604142144420.png
├── image-20200604143226760.png
├── image-20200604150925771.png
├── image-20200604152114251.png
├── image-20200604153739114.png
├── image-20200604154436619.png
├── image-20200604154757675.png
├── image-20200604154936808.png
├── image-20200605123400423.png
├── image-20200605131459736.png
├── image-20200605131513482.png
├── image-20200605134018232.png
├── image-20200605134525635.png
├── image-20200605135217104.png
├── image-20200605140907316.png
├── image-20200605141001183.png
├── image-20200605141636286.png
├── image-20200605141846761.png
├── image-20200606150007627.png
└── image-20200606212452998.png
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | - [Computer Networking](./computer-networking.md#computer-networking)
2 | + [TCP/IP Five-Layer Network Model](./computer-networking.md#tcp-ip-five-layer-network-model)
3 | + [The Basics of Networking Devices](./computer-networking.md#the-basics-of-networking-devices)
4 | - [Cables](./computer-networking.md#cables)
5 | - [Hubs and Switches](./computer-networking.md#hubs-and-switches)
6 | - [Routers](./computer-networking.md#routers)
7 | - [Servers and Clients](./computer-networking.md#servers-and-clients)
8 | + [The Physical Layer](./computer-networking.md#the-physical-layer)
9 | - [Moving Bits Across the Wire](./computer-networking.md#moving-bits-across-the-wire)
10 | - [Twisted Pair Cabling and Duplexing](./computer-networking.md#twisted-pair-cabling-and-duplexing)
11 | - [Network Ports and Patch Panels](./computer-networking.md#network-ports-and-patch-panels)
12 | + [The Data Link Layer](./computer-networking.md#the-data-link-layer)
13 | - [Ethernet and MAC Address](./computer-networking.md#ethernet-and-mac-address)
14 | - [Unicast, Multicast, and BroadCast](./computer-networking.md#unicast--multicast--and-broadcast)
15 | - [Dissecting an Ethernet Frame](./computer-networking.md#dissecting-an-ethernet-frame)
16 | + [The Network Layer](./computer-networking.md#the-network-layer)
17 | - [IP Adress](./computer-networking.md#ip-adress)
18 | - [IP Datagrams and Encapsulation](./computer-networking.md#ip-datagrams-and-encapsulation)
19 | - [IP Address Classes](./computer-networking.md#ip-address-classes)
20 | - [Address Resolution Protocol - ARP](./computer-networking.md#address-resolution-protocol---arp)
21 | + [Subnetting](./computer-networking.md#subnetting)
22 | - [Subnetting](./computer-networking.md#subnetting-1)
23 | - [Subnet Masks](./computer-networking.md#subnet-masks)
24 | - [CIDR - Classes Inter-Domain Routing](./computer-networking.md#cidr---classes-inter-domain-routing)
25 | + [Routing](./computer-networking.md#routing)
26 | - [Basic Routing Concepts](./computer-networking.md#basic-routing-concepts)
27 | - [Routing Tables](./computer-networking.md#routing-tables)
28 | - [Interior Gateway Protocols](./computer-networking.md#interior-gateway-protocols)
29 | - [Exterior Gateway Protocols](./computer-networking.md#exterior-gateway-protocols)
30 | - [Non-Routable Address Space](./computer-networking.md#non-routable-address-space)
31 | + [The Transport Layer](./computer-networking.md#the-transport-layer)
32 | - [Transport Layer](./computer-networking.md#transport-layer)
33 | - [Dissection of a TCP Segment](./computer-networking.md#dissection-of-a-tcp-segment)
34 | - [TCP Control Flags and the Three-way Handshake](./computer-networking.md#tcp-control-flags-and-the-three-way-handshake)
35 | * [close connection: Four-Way Handshake ](./computer-networking.md#close-connection--four-way-handshake)
36 |
37 | - [TCP Socket States](./computer-networking.md#tcp-socket-states)
38 | - [Connection-oriented and Connectionless Protocols](./computer-networking.md#connection-oriented-and-connectionless-protocols)
39 | - [Firewalls](./computer-networking.md#firewalls)
40 | + [The Application Layer](./computer-networking.md#the-application-layer)
41 | - [The Application Layer and the OSI Model](./computer-networking.md#the-application-layer-and-the-osi-model)
42 | - [All the Layer Working in Union](./computer-networking.md#all-the-layer-working-in-union)
43 | + [Name Resolution](./computer-networking.md#name-resolution)
44 | - [Why do we need DNS?](./computer-networking.md#why-do-we-need-dns-)
45 | - [The Many Steps of Name Resolution](./computer-networking.md#the-many-steps-of-name-resolution)
46 | - [DNS and UDP](./computer-networking.md#dns-and-udp)
47 | + [Name Resolution in Practice](./computer-networking.md#name-resolution-in-practice)
48 | - [Resource Record Types](./computer-networking.md#resource-record-types)
49 | - [Anatomy of a Domain Name](./computer-networking.md#anatomy-of-a-domain-name)
50 | - [DNS Zones](./computer-networking.md#dns-zones)
51 | + [Dynamic Host Configuration Protocol](./computer-networking.md#dynamic-host-configuration-protocol)
52 | - [Overview of DHCP](./computer-networking.md#overview-of-dhcp)
53 | - [DHCP in Action](./computer-networking.md#dhcp-in-action)
54 | + [Network Address Translation](./computer-networking.md#network-address-translation)
55 | - [Basics of NAT](./computer-networking.md#basics-of-nat)
56 | - [NAT and the Transport Layer](./computer-networking.md#nat-and-the-transport-layer)
57 | - [NAT, Non-Routable Address Space and the Limits of IPv4](./computer-networking.md#nat--non-routable-address-space-and-the-limits-of-ipv4)
58 | + [VPNs and Proxies](./computer-networking.md#vpns-and-proxies)
59 | - [Virtual Private Networks](./computer-networking.md#virtual-private-networks)
60 | - [Proxy Services](./computer-networking.md#proxy-services)
61 | + [POTS and Dial-up](./computer-networking.md#pots-and-dial-up)
62 | + [Broadband Connections](./computer-networking.md#broadband-connections)
63 | - [What is broadband?](./computer-networking.md#what-is-broadband-)
64 | - [T-Carrier Technologies](./computer-networking.md#t-carrier-technologies)
65 | - [Digital Subscriber Line](./computer-networking.md#digital-subscriber-line)
66 | - [Cable Broadband](./computer-networking.md#cable-broadband)
67 | - [Fiber Connections](./computer-networking.md#fiber-connections)
68 | + [WANs](./computer-networking.md#wans)
69 | - [Wide Area Network Technologies](./computer-networking.md#wide-area-network-technologies)
70 | - [Point-to-Point VPNs](./computer-networking.md#point-to-point-vpns)
71 | + [Wireless Networking](./computer-networking.md#wireless-networking)
72 | - [Introduction](./computer-networking.md#introduction)
73 | - [Wireless Network Configuration](./computer-networking.md#wireless-network-configuration)
74 | - [Wireless Channels](./computer-networking.md#wireless-channels)
75 | - [Wireless Security](./computer-networking.md#wireless-security)
76 | - [Cellular Networking](./computer-networking.md#cellular-networking)
77 | + [Verifying Connectivity](./computer-networking.md#verifying-connectivity)
78 | - [Ping: Internet Control Message Protocol](./computer-networking.md#ping--internet-control-message-protocol)
79 | - [Traceroute](./computer-networking.md#traceroute)
80 | - [Testing Port Connectivity](./computer-networking.md#testing-port-connectivity)
81 | + [Digging into DNS](./computer-networking.md#digging-into-dns)
82 | - [Name Resolution Tools](./computer-networking.md#name-resolution-tools)
83 | - [Public DNS Servers](./computer-networking.md#public-dns-servers)
84 | - [DNS Registration and Expiration](./computer-networking.md#dns-registration-and-expiration)
85 | - [Hosts Files](./computer-networking.md#hosts-files)
86 | + [The Cloud](./computer-networking.md#the-cloud)
87 | - [What is The Cloud?](./computer-networking.md#what-is-the-cloud-)
88 | - [Everything as a Service](./computer-networking.md#everything-as-a-service)
89 | - [Cloud Storage](./computer-networking.md#cloud-storage)
90 | + [IPv6](./computer-networking.md#ipv6)
91 | - [IPv6 Addressing and Subnetting](./computer-networking.md#ipv6-addressing-and-subnetting)
92 | - [IPv6 Headers](./computer-networking.md#ipv6-headers)
93 | - [IPv6 and IPv4 Harmony](./computer-networking.md#ipv6-and-ipv4-harmony)
94 |
95 | Table of contents generated with markdown-toc
--------------------------------------------------------------------------------
/computer-networking.md:
--------------------------------------------------------------------------------
1 | # Computer Networking
2 |
3 | > How computers communicate with each other - A course ([The bits and bytes of computer networking - coursera](https://www.coursera.org/learn/computer-networking/home/welcome)) note
4 |
5 | ### TCP/IP Five-Layer Network Model
6 |
7 |
8 |
9 | - Physical layer
10 | - represent the physical devices that interconnect computers
11 | - specifications for cable, sending signals
12 | - Data Link
13 | - defining a common way of interpreting these signals so network devices can communicate
14 | - protocol: Ethernet - getting data to node on the same network or link
15 | - Network
16 | - allow different devices to communicate with each other through devices known as routers
17 | - get data across networks, links
18 | - IP
19 | - Transport
20 | - sorts out which client or server to send or receive data
21 | - TCP - reliable, UDP - not reliable
22 | - Application
23 | - application specific protocols
24 |
25 | ### The Basics of Networking Devices
26 |
27 | #### Cables
28 |
29 | - copper
30 | - electrical voltages - 0/1
31 | - Cat5, Cat5e, Cat6 - how twisted pairs are arranged inside them can affect how quickly data can be sent and how resistant these signals are to outside interference.
32 | - Crosstalk - when an electrical pulse on one wire is accidentally detected on another wire.
33 | - cat5e, cat6 - more strict specifications to reduce crosstalk
34 | - cat6 - more reliable and faster, but shorter distance
35 | - fiber
36 | - pulses of light - 0/1
37 | - resistant to electronmagnetic interference, faster, but fragile
38 |
39 | #### Hubs and Switches
40 |
41 | - single network - LAN
42 |
43 | - hub - ```a physical layer device``` that allows for connections from many computers at once
44 | - broadcast
45 | - collision domain - a network segment where only one device can communicate at a time because electrical pulses will interfere with each other
46 | - switch - `a data link layer device` that allows for connections from many computers at once
47 | - only send data to intended system
48 |
49 | #### Routers
50 |
51 | - a device that forward data between independent networks
52 | - `a network layer device`
53 | - home/office LAN - ISP (core router) - internet
54 | - BGP(*Border Gateway Protocol*) - routers share data with each other via this protocol, which lets them learn about most optimal paths to forward traffic
55 |
56 | #### Servers and Clients
57 |
58 | - nodes - devices that can communicate with each other
59 | - server - provide data (a node or an applicaiton inside a node)
60 | - client - receive data
61 | - a node can be a server or a client or both, eg. email server is a server but also a client to DNS server
62 |
63 | ### The Physical Layer
64 |
65 | #### Moving Bits Across the Wire
66 |
67 | - sending 0/1 bits
68 | - modulation / line coding - a way of varying the voltage of this charge moving across the cable
69 |
70 | #### Twisted Pair Cabling and Duplexing
71 |
72 | - pairs of twisted copper wires
73 | - cat 6 - standard 4 twisted pair per jacket
74 | - duplex communication - information can flow in both directions across the cable
75 | - reserving some pairs for one direction and some pairs for another
76 | - full-duplex - simultanneous bidirectional communicaiton
77 | - half-duplex - take turns
78 | - simplex - unidirectinoal
79 |
80 | #### Network Ports and Patch Panels
81 |
82 | - most common - RJ-45 (*Registered jack 45*)
83 | - Network ports - are generally directly attached to the devices that make up a computer network
84 | - Patch Panel - a device that only has many network ports
85 |
86 |
87 |
88 | ### The Data Link Layer
89 |
90 | > Abstract away the need for any other layers to care about the physical layer and what hardware is in use
91 |
92 | #### Ethernet and MAC Address
93 |
94 | - CSMA/CD - used to determine when the communications channels are clear, and when a device is free to transmit data
95 | - a node can send data if it detects no devices are sending data
96 | - wait random intervals if more than one devices are sending data, which resulted in a collision
97 | - MAC (`media access control`) address
98 | - global unique identifier attached to an individual network interface
99 | - 48-bit number - 6 groupings of 2 hex
100 | - two sections - OUI + Vendor Assigned,
101 | - Ethernet uses MAC to specify sender and receiver
102 |
103 | #### Unicast, Multicast, and BroadCast
104 |
105 | - a `unicast` transmission is alwasy meant for just one receiving address
106 | - if th least significant bit in the first octet of a destination address is set to zero, it means that ethernet frame is intended for only the destination address
107 | - e.g. 00:01:44:55:66:77 -> `00` which is `0000 0000`, the rightmost bit is `0`
108 | - `multicast` - send to all devices BUT will be accpeted or discarded by each device depending on criteria from their own MAC address, eg. networks interfaces can be configured to accept a list of configured multicast addresses
109 | - if th least significant bit in the first octet of a destination address is set to one, it means that ethernet frame is intended for only the destination address
110 | - e.g. 01:00:CC:CC:DD:DD -> `01` is the first octet, convert it to binary `0000 0001` the rightmost bit is 1
111 | - `broadcast` - send to every single device on a LAN
112 | - ip broadcast address
(reverse mask = ~subnet mask)
113 | - broadcast mac address: FF:FF:FF:FF:FF:FF
114 |
115 | #### Dissecting an Ethernet Frame
116 |
117 | - `data packet` : an all-encompassing term that represents any single set of binary data being sent across a network link
118 | - ethernet frames - data packet at ethernet level
119 | -
120 | - Preamble
121 | - first 7 bytes - act as a buffer between frames and can also be used to synchronize the internal clock the network interfaces use
122 | - last byte - SFD - start frame delimiter - signal to a reveving device that the preamble is over and actual frame contents will now follow
123 | - Destination MAC address
124 | - Source MAC address
125 | - EtherType field
126 | - VLAN (`Virtual LAN`) Tag
127 | - a technique that lets you have multiple logical LANs operating on the same physical equipment
128 | - indicate that the frame itself is a VLAN frame
129 | - will only be delivered out of a switch that configured to relay that specific tag
130 | - Ether-type - 16 bits long and used to describe the protocol of the contents of the frame
131 | - Payload
132 | - actual data - 46 to 1500 bytes long
133 | - all data from upper layers
134 | - Frame Check Sequence - a 4 byte number that represents a checksum value for the entire frame
135 | - CRC(`Cyclical Redundancy Check`)
136 |
137 | ### The Network Layer
138 |
139 | > Allow data to cross many networks facilitating communications over great distances
140 |
141 | #### IP Adress
142 |
143 | - 32 bit - 4 octet
144 | - belong to networks not attached to devices
145 | - DHCP - Dynamic Host Configuration Protocol - aumatically assign ip address
146 |
147 | #### IP Datagrams and Encapsulation
148 |
149 | - IP header datagram
150 | - Version - what version of internet protocol, e.g. IPv4
151 | - Header Length - lenght of the header
152 | - almost always 20 bytes for IPv4
153 | - 20 bytes is the min length for a ip header
154 | - Service Type - details about quality of service, Qos
155 | - Total Length - total length the IP datagram
156 | - Identification - group message together
157 | - max size of a single datagram is 2^16 - 1 = 65535 bytes
158 | - large amount of data will be divided into smaller packets to fit in the max size
159 | - packets with the same identification will be identified by the receiver as a part of the same transmission
160 | - Flags
161 | - to indicate if the datagram is fragmented or not
162 | - Fragmentation - talking a single IP datagram and splitting it up into several smaller datagrams
163 | - Fragment offset - help to put all fragments back together
164 | - TTL - time to live - how many router hops a datagram can traverse before it's thrown away
165 | - Protocol - transport layer protocol
166 | - Header Checksum
167 | - Source IP Address
168 | - Dest IP - Address
169 | - Options - set special characteristics for datagrams primarily used for testing purposes
170 | - Padding - a series of zeros
171 |
172 | #### IP Address Classes
173 |
174 |
*class c ends with 223* not 224
175 |
176 | - Class A
177 | - first octet is the network ID, and last three are used for host ID
178 | - starts with 0
179 | - Class B
180 | - first two octet are network ID
181 | - starts with 10
182 | - Class C
183 | - first 2 octet are network ID
184 | - starts with 110
185 | - Class D
186 | - starts with 1110
187 | - used for multicasting
188 | - Class E
189 | - unassigned
190 | - testing
191 |
192 | #### Address Resolution Protocol - ARP
193 |
194 | - discover the hardware address of a node with a certain IP address
195 | - look at the local ARP table
196 | - if not found, send broadcast ARP message
197 | - receive the ARP response containing the MAC address
198 |
199 | ### Subnetting
200 |
201 | #### Subnetting
202 |
203 | - A gateway router - entry / exit of a network
204 | - split a large network into smaller ones
205 |
206 | #### Subnet Masks
207 |
208 | - subnet ID - part of host ID
209 | - 32 bits
210 | - 9.100.100.100 - 0000 1001 0110 0100 0110 0100 0110 0100 - IP address
211 | - 255.255.255.0 - 1111 1111 1111 1111 1111 1111 0000 0000 - subnet mask - a subnet of 256 ip addresses, but normally 254 (1-254) hosts, as 0 is not used, and 255 is reserved for broadcast
212 | - another notation, 9.100.100.100/24 - 24 means all first 24 bits are used as a 'network ID (Class A network ID + sub network ID)' - which indicates that the submask should have all first 24 bits of 1s and left are 0s
213 | - a subnet mask: all `1s` tells use what part we can ignore to compute a host ID, follows all `0s`tell us what to keep
214 | - (class network + sub network) network ID = (IP) & (Subnet mask)
215 |
216 | #### CIDR - Classes Inter-Domain Routing
217 |
218 | - Demarcation point - to describe where one network or system ends and another one begins
219 | - CIDR notation: 9.100.100.100/24
220 | - more flexiable network sizes
221 |
222 | ### Routing
223 |
224 | #### Basic Routing Concepts
225 |
226 | - router - a device with two network interfaces (because it connects with two networks) that forward traffic depending on the destination address
227 | -
228 | -
229 | - A node network A 192.169.1.100 sends packet to node B 10.0.0.10
230 | 1. source MAC: MAC A , destination MAC: MAC of router, send packet to router
231 | 2. router look at the routing table, decrement the TTL
232 | 3. soruce MAC: MAC of router, destination MAC: MAC B, send packet to B
233 |
234 | #### Routing Tables
235 |
236 | - destination network - CIDR or IP with subnet masks
237 | - Next hop - next router ip or state no additional hops needed
238 | - Total hops - shortest path
239 | - Interface - which interface to go out
240 |
241 | #### Interior Gateway Protocols
242 |
243 | - routers share information within a single autonomous system
244 | - autonomous system: a collection of networks that all fall under the control of a single network operator
245 | - distance-vector protocol
246 | - a router sends its routing table to every neighbouring router
247 | -
248 | - at the beginning, a path for A to X is 1-2-3-4
249 | - B shares its routing table to A
250 | - A finds out from B to X is 2 hops away, it's still shorter adding the path from A to B
251 | - A adjust its path to X, A -> B -> 1-> 2
252 | - cons: react slowly to the changes of networks far away itself
253 | - link state routing protocol
254 | -
255 | - each router shares its info of each of its interface
256 | - information about each router is propagated to every other router in the autonomous system
257 | - each router runs complicated algorithms to determine the best path
258 |
259 | #### Exterior Gateway Protocols
260 |
261 | - IANA (`Internet Assigned Numbers Authority`): A non-profit organization that helps manage things like IP address allocation
262 | - also response for ASN (`Autonomous System Number`) allocation
263 | - ASN: 32 bits - IBM: AS19604 - 9.0.0.0/8
264 | - core routers(ISP) update ASN to find Autonomous system
265 |
266 | #### Non-Routable Address Space
267 |
268 | - RFC (`Request for Comments`)
269 | - Exterior Gateway Protocols will not route those addresses, but Interior Gateway Protocols can route those address so they can be used within an autonomous system
270 | - 10.0.0.0/8
271 | - 172.16.0.0/12
272 | - 192.168.0.0/16
273 |
274 | ### The Transport Layer
275 |
276 | > Allow traffic to be directed to specific network applications
277 |
278 | #### Transport Layer
279 |
280 | - multiplexing - nodes on the network have the ability to direct traffic toward many different receiving services.
281 | - demultiplexing - take traffic that's all aimed at the same node and delivering it to the proper receiving service.
282 | - port - 16-bit number that used to direct traffic to specific services running on a netwroked computer
283 | - socket address/socket number - ip:port e.g. 10.0.0.100:80
284 |
285 | #### Dissection of a TCP Segment
286 |
287 | - TCP segment = TCP header + data section(payload from appication layer)
288 | -
289 | - Source Port - a high numbered port chosen from a special section of ports known as ephemeral ports
290 | - Destination Port
291 | - Sequence number - used to keep track of where in a sequence of TCP segments this one is expected to be
292 | - Acknowledgement number - the number of next expected segment
293 | - Header length - length of this tcp header so the receiving ends knows where the payloads start
294 | - measured in 32-bit multiples
295 | - e.g. the value is 7(0111), the length of header is 7 * 32 / 8 = 28 bytes
296 | - Control flags
297 | - Window - specifies the range of sequence numbers that might be sent before an acknowledgement is required
298 | - Checksum
299 | - Urgent - used in conjunction with one of the tcp control flags to point out particular segments that might be more important than others
300 | - Options - sometimes used for more complicated protocols
301 | - Padding
302 |
303 | #### TCP Control Flags and the Three-way Handshake
304 |
305 | - URG(urgent) - A value of `1` here indicates that the segment is considered urgent and the urgent pointer field more has data about this
306 | - ACK(acknowledgement) - A value of `1` in this field means that the acknowledgement number field should be examined
307 | - PSH(push) - The transmitting device want s the receiving device to push currently-buffered data to the application on the receiving end as soon as possible
308 | - RST(reset) - one of the sides in a tcp connection hasn't been able to properly recover from a series of missing or malformed segment
309 | - SYN - it's used when first establishing a tcp connection and makes sure the receiving end knows to examine the sequence number field
310 | - FIN(finish) - `1`means transmitting computer doesn't have any more data to send and the connection can be closed.
311 | - establish conection: Three-Way Handshake
312 | - A sends SYN (seq = x)
313 | - B receives SYN (seq = x) and responses ACK and SYN (seq = y, ack = x + 1)
314 | - A receives and sends ACK(ack=y+1)
315 | - close connection: Four-Way Handshake
316 | -
317 |
318 | #### TCP Socket States
319 |
320 | - a socket is the instaniation of an endpoint in a potential TCP connection
321 | - LISTEN - a TCP socket is ready and listening for incoming connections (server side)
322 | - SYN-SENT - a synchronized request has been sent, but the connection hasn't been established yet (client side)
323 | - SYN-RECEIVED - a socket previously in a LISTEN state has received a synchronization request and sent a SYN/ACK back (server side)
324 | - ESTABLISHED - The TCP connection is in working order and both side are free to send each other data (both sides)
325 | - FIN_WAIT - a FIN has been sent, but the corresponding ACK from the other end hasn't been received yet (both sides)
326 | - CLOSE_WAIT - the connection has been closed at the TCP layer, but that the application that opened the socket hasn't released its hold on the socket yet
327 | - CLOSED - connecton fully terminated
328 | - socket state definitions can vary from system to system
329 |
330 | #### Connection-oriented and Connectionless Protocols
331 |
332 | - connection-oriented
333 | - tcp
334 | - reliable, but having overhead of establishment, ackownledgement of data segments and tire down of the connection
335 | - connectionless
336 | - UDP
337 | - streaming videos
338 | - doesn't resent lost data, doesn't ensure sequence
339 |
340 | #### Firewalls
341 |
342 | - most commonly used at Transportation Layer, could be used at other layers
343 | - blocking or allowing traffic through certain ports
344 |
345 | ### The Application Layer
346 |
347 | > Allows applications to communicate in a way they understand
348 |
349 | #### The Application Layer and the OSI Model
350 |
351 | -
352 | - Session Layer - facilitating the communication between actual applications and the transport layer
353 | - Presentation Layer - responsible for making sure that the unencapsulated applicaiton layer data is able to be understood by the application in question
354 |
355 | #### All the Layer Working in Union
356 |
357 | -
computer 1 find out the destination is not in its network, it tries to reach the gateway router A, which it has been configured with(it knows the ip of the gateway), but faild to find the mac (needed to contruct the ethernet frame) on local ARP table, so it broadcasts a ARP request
358 | -
the router recognizes the ip as its own, and responses with its MAC address
359 | -
Computer 1 open an ephemeral port for browser
360 | -
construct tcp segment
361 | -
contruct ip datagram
362 | -
contruct ethernet frame
363 | -
sends out as modulaiton of 0/1 to physical link, the switches will ensure it gets sent out of the interface that the router A connectd to
364 |
365 | ### Name Resolution
366 |
367 | #### Why do we need DNS?
368 |
369 | - Domain Name System(DNS) - a gloabl and highly distributed network service that resolves strings of letters into IP addresses for you
370 | - Domain Name - something that can be resolved by DNS
371 | - www.google.com
372 | - the actual ip could change - distributed servers
373 |
374 | #### The Many Steps of Name Resolution
375 |
376 | - Five primary types of DNS servers
377 | 1. Caching name servers - store domain name lookups for a certain amount of time (TTL)
378 | 2. Recursive name servers - store domain name lookups for a certain amout of time, full recursive DNS lookup then could cache it.
379 | 1. contact a root named server, there are 13 total root name servers which are responsible for directing queries toward the appropriate TLD name server.
380 | 1. root name servers are distributed globe via anycast
381 | 2. Anycast: a technique that's used to route traffic to different destination depending on factors like location, congestion, or link health
382 | 2. a root name server will response with a TLD name server
383 | 3. TLD server with a redirect
384 | 4. lookup autoritative name servers
385 | 3. Root name servers
386 | 4. TLD (top level domain, such as .com) name servers
387 | 5. Authoritative name servers
388 |
389 | #### DNS and UDP
390 |
391 | - DNS is great example of an application layer service that uses UDP for the tranport layer intead of TCP
392 | - assuming using tcp
44 packets need to be sent.
393 | - 11 = establishment(3 way handshake) + request + ack of request + response + ack of response + tiredown (4)
394 | - using UDP
395 | - in case of error recovery, the dns resolver will ask again if it didn't get any response
396 | - if a response is too large to fit in a UDP datagram, a tcp connection will be established.
397 |
398 | ### Name Resolution in Practice
399 |
400 | #### Resource Record Types
401 |
402 | - `A record` - used to point a certain domain name at a certain IPv4 IP address
403 | - DNS round robin - blance traffic across multiple IPs (implemented with multiple `A record`) bound with a domain name
404 | - e.g. 4 `A record` for `microsoft.com` : `10.1.1.1` `10.1.1.2` `10.1.1.3` `10.1.1.4`
405 | - first computer that performs a lookup will receive all four IPs (in case a connection fails) in order of 1, 2, 3, 4
406 | - next computer that ... will all receive 4 IPs but in order of 2, 3, 4, 1
407 | - `AAAA record` - IPv6 address
408 | - `CNAME` - redirect traffic from one domain to another
409 | - `MX` - mail exchange
410 | - `SRV` - service record
411 | - `TXT` - text record
412 |
413 | #### Anatomy of a Domain Name
414 |
415 | - www.google.com
416 | - Top Level Domain(TLD) - `.com` - ICANN ( the Internet Corporation for Assigned Names and Numbers)
417 | - Domains - `google` - used to demarcate where control moves from a TLD name server to an authoritative
418 | - it costs money to register a domain
419 | - subdomain - `www` - sub domain can be freely chosen or assigned by the one who controls a registered domain
420 | - Fully qualified domain name (FQDN) = TLD + domain + subdomain
421 | - each section can only be up to `63` character, and FQDN is limited to` 255 `characters
422 | - DNS can technically support up to `127` levels of domain in total for a single fully qualified domain name
423 | - a.b.c.d.e.f.c.d.google.com
424 |
425 | #### DNS Zones
426 |
427 | - an authoritative name server is actually responsible for a specific DNS zone
428 | - allow for easy control over multiple levels of domain
429 | - eg. root servers covering the root zone, a TLD server convers its specific TLD zone
430 | - zones don't overlap
431 | - zone file - simple configuration files that declare all resource records for a particular zone
432 | - Start of authority(SOA) records - declares the zone and the name of the name server that is authoritative for it
433 | - NS records - indicate other name servers that might also be responsible for this zone
434 | - Reverse lookup zone files - let DNS resolvers ask for an IP AND GET THE FQDN associated with it returned
435 |
436 | ### Dynamic Host Configuration Protocol
437 |
438 | #### Overview of DHCP
439 |
440 | - every computer on a TCP/IP based network needs
441 | - IP address + subnet mask + primary Gateway + Name server
442 | - An application layer protocol that automates the configuration process of hosts on a network
443 | - while it's important to have a static IP for some devices like the gateway router in your network, it doesn't matter which ip your client devices have as long as they have a unique one
444 | - Dynamic allocation - A range of IP address is set aside for client devices and one oof these IPs is issued to these devices when they request one
445 | - the DHCP server will try to keep track of which ip is assigned to which device in order to assign the same ip to the same device each time if possible
446 | - Automatic allocation - a range of IP addresses is set aside for assignment purposes
447 | - Fixed allocation - requires a manually specified list of MAC address and their corresponding IPs
448 | - for security - only devices have bee configured on the DHCP server with a ip address will have access to the network
449 | - Network time protocol (NTP) servers - used to keep all computers on a network synchronized in time
450 |
451 | #### DHCP in Action
452 |
453 | - DHCP discovery - the process by which a client configured to use DHCP attempts to get network configuration information
454 | - DHCP client broadcast (from UDP port 68) a DHCP discovery message to the network - DHCP server listens on UDP port 67.
455 | - DHCPOFFER - the DHCP server will exam its configuration and decide which ip address to return , and broadcast a offer message
456 | - the intended client will recognized this message because the DHCPOFFER message will specify the MAC address of the client
457 | - the DHCP client selects one server and broadcasts a request message
458 | - DHCP server responses with an ack message
459 | - the client can now use the configuration information(ip, subnet mask, gateway ip, dns server, lease time) presented by the server to configure its network layer
460 | - [addtional reference](https://www.netmanias.com/en/post/techdocs/5998/dhcp-network-protocol/understanding-the-basic-operations-of-dhcp)
461 |
462 |
463 |
464 | ### Network Address Translation
465 |
466 | #### Basics of NAT
467 |
468 | - a technology that allows a gateway, usually a router or firewall, to rewrite the source IP of an outgoing IP datagram while retaining the original IP in order to rewrite it into the response
469 | -
470 |
471 | #### NAT and the Transport Layer
472 |
473 | - Port preservation - a technique where the source port chosen by a client is the same port used by the router
474 | -
if two devices on the network chose the same port, the rotuer normally chooses a random unused port
475 | - Port forwarding - a technique where specific destination ports can be configured to always be delivered to specific nodes
476 |
477 | #### NAT, Non-Routable Address Space and the Limits of IPv4
478 |
479 | - five regional internet registers (RIPs)
480 | - AFRINIC - Africa
481 | - ARIN - Unite States, Canada, parts of the Caribbean
482 | - APNIC - Asia, Austrillia, New Zealand and Pacific Island nations
483 | - LACNIC - central and south America and remaining part of Caribbean
484 | - RIPE - Europe, Russia, middle east and portions of middle Asia
485 | - workaround of IPv4 exhaustion
486 |
487 | ### VPNs and Proxies
488 |
489 | #### Virtual Private Networks
490 |
491 | - a technology that allows for the extension of a private or local network to hosts that might not be on that local network
492 | -
493 | - a VPN tunnel is established with a VPN client to the intended network
494 | - the client will be seen as a virtual interface with a IP that match the address space of the intended network
495 | - most VPN use the payload of tranport layer to carray the entire set of encrypted packets
496 |
497 | #### Proxy Services
498 |
499 | - a server that acts on behalf of a client in order to access another service
500 | - e.g. gateway
501 | -
502 | - the web proxy server could get the web from web server and cache it to increase performance
503 | -
504 | - this proxy can filter the request
505 | - Reverse proxy - a service that might appear to be a single server to external clients, but actually represents many servers living behind it
506 |
507 | ### POTS and Dial-up
508 |
509 | - POTS - Plain old telephone services
510 | - Dial-up.
511 | - modem - modulator / demodulator
512 | - Baud rate - A measurement of how many bits can be passed across a phone line in a second
513 |
514 | ### Broadband Connections
515 |
516 | #### What is broadband?
517 |
518 | - any connectivity technology that isn't dial-up internet
519 | - T-carrier - originally invented by AT&T in order to transmit multiple phone calls over a single link
520 |
521 | #### T-Carrier Technologies
522 |
523 | - T1
524 | - up to 24 simultaneous phone calls per twisted pairs of copper wire
525 | - each phone call channel was capable of transmitting data at 64 kb per second => each line 1.544 mb per second
526 | - T3
527 | - multiplexing 28 T1 line to achieve a throughtput of 44.736 mbps
528 |
529 | #### Digital Subscriber Line
530 |
531 | - point to point
532 | - DSL
533 | - operating at a frequency range that didn't interfere with normal phone calls
534 | - allowed for normal phone calls and data transfer to occur at the same time on the same line
535 | - ADSL - asymmetric digital subsriber line - different speed for outbound and inbound data
536 | - SDSL - symmetric - same upload and download speed - up cap 1.544mbps (T1)
537 | - HDSL - high bit-rate DSL - above 1.544mbps
538 |
539 | #### Cable Broadband
540 |
541 | - starts with cable television
542 | - shared bandwith technology
543 | - Cable modem termination system(CMTS) - connections lots of different cable connections to an ISPs core network
544 |
545 | #### Fiber Connections
546 |
547 | - FTTX - Fiber to the X
548 | - FTTN - Fiber to the neighbour
549 | - FTTB - Fiber to the building / business / basement
550 | - FTTH - Fiber to the Home
551 | - Optical Network Terminator (ONT) - converts data from protocols the fiber network can understand to those that more traditional, twisted-pair copper networks can understand
552 |
553 | ### WANs
554 |
555 | #### Wide Area Network Technologies
556 |
557 | - Acts like a single network, but spans across multiple physical locations
558 | -
559 | - use multiple data link layer protocols
560 |
561 | #### Point-to-Point VPNs
562 |
563 | -
564 | - the VPN tuneling logic is handle by network devices at either side so the users don't all have to establish their own connections.
565 |
566 | ### Wireless Networking
567 |
568 | #### Introduction
569 |
570 | - IEEE802.11 family - WiFi
571 | - Frequency band - a certain section of the radio spectrum that's been agreed upon to be used for certain communications
572 | - both physical and data link layer
573 | - different versions operate bacially the same at data link layer but varies at physical layer, such as different modulation, different transmission bit rates, different frequency bands
574 | - Wireless access point - a device that bridges the wireless and wired portions of a network
575 | - A 802.11 frame
576 | -
577 | - Frame Control - 16 bits, contains a number of sub-fields that describe frame itself, e.g. the version of 802.11
578 | - Duration / ID - how long the frame is
579 | - Address 1 - normal source address - MAC address of sending device - 48 bits
580 | - Address 2 - intended destination on the network
581 | - Address 3 - receiver address - MAC address of the access point that should receive the frame
582 | - Sequence Control - 16 bits - sequence number used to keep track of ordering the frames
583 | - Address 4 - transmitter address - MAC address of whatever has just transmitted the frame
584 | - Data payload
585 | - FCS
586 |
587 | #### Wireless Network Configuration
588 |
589 | - Ad-hoc network - all node speak directly to each other
590 |
591 | - no network supporting infrastructure
592 | - all nodes help pass along messages
593 | - use case, warehouse, disaster situation
594 |
595 | - WLANS (Wireless LANs) - bridge wireless and wired network
596 |
597 | -
598 |
599 | - Mesh networks - hybrid of above two
600 |
601 | -
602 |
603 |
604 |
605 |
606 |
607 | #### Wireless Channels
608 |
609 | - individual, smaller section of the overall frequency band used by a wireless network
610 | - 2.4 G
611 | - normally access points perform congestion analysis, and dynamically change their channels
612 | - overlapping channels - collision domains
613 |
614 | #### Wireless Security
615 |
616 | - Wired Equivalent Privacy (WEP) - An encryption technology that provides a very low level of privacy
617 | - use 40 bits key to encrypt the data
618 | - WPA - WiFi protected access
619 | - 128 bits key
620 | - WPA2
621 | - 256 bits key
622 | - MAC filtering - you configure your access points to only allow for connections from a specific set of MAC addresses belonging to devices you trust
623 |
624 | #### Cellular Networking
625 |
626 | - longer distance
627 | - each cell is assigned a specific frequency band for use and neighboring cells are set up to use bands that don't overlap
628 |
629 | ### Verifying Connectivity
630 |
631 | #### Ping: Internet Control Message Protocol
632 |
633 | - ICMP - internet control message protocol - mainly used by router or remote hosts to communicate while transmission has failed back to the origin of the transmission.
634 | - network layer
635 | -
636 | - Type - 8 bits - type of delivered message, e.g. destination unreachable or time exceeded
637 | - Code - 8 bits - more specific reason - e.g. destionation network unreachable or destination prot unreachable
638 | - Checksum
639 | - Rest of the header - 32 bits - used by some of th specific types/codes to send more data
640 | - Data section - contains entire IP header and first eight bytes of the data payload section of th eoffending packet.
641 | - Ping - send a special type of ICMP message called an Echo Request
642 | - if the destination is up and running and able to communication on the network, it'll send back an ICMP Echo Reply message type
643 |
644 | #### Traceroute
645 |
646 | - a utility that lets you discover the path between two nodes, and gives you information about each hop along the way
647 | - traceroute sends packets with different ttl(start with 1 and increment it until reach the destination)
648 | - mtr / pathping
649 |
650 | #### Testing Port Connectivity
651 |
652 | - netcat (`nc`) - mac/linux, Test-NetConnection (``) - windows
653 |
654 | ### Digging into DNS
655 |
656 | #### Name Resolution Tools
657 |
658 | - nslookup
659 |
660 | #### Public DNS Servers
661 |
662 | - public Level 3 DNS servers - 4.2.2.1 to 4.2.2.6
663 | - google - 8.8.8.8, 8.8.4.4
664 |
665 | #### DNS Registration and Expiration
666 |
667 | -
668 |
669 | #### Hosts Files
670 |
671 | - the orginal way that numbered network addresses were corelated with words was through hosts files
672 | - a flat file that contains, on each line, a network address followed by the host name it can be referred to as
673 | - loopback address - a way of sending network traffic to itself
674 | - 127.0.0.1
675 | - hostfile example 127.0.0.1 localhost
676 | - IPv6 - `::1`
677 |
678 | ### The Cloud
679 |
680 | #### What is The Cloud?
681 |
682 | - cloud computing - a technological approach where computing resources are provisioned in a shareable way, so that lots of users get what they need, when they need it
683 | - Virtualization - a single physical machine, called a host, could run many individual virtual instances, called guests
684 | - hypervisor - a piece of software that run and manages virtual machines, while also offering these guests a virtual operating platform that's indistinguishable from actual hardware
685 |
686 | #### Everything as a Service
687 |
688 | - X as a service
689 | - IaaS - Infrastructure as a service - provide hardware, network for customers
690 | - PssS - Platform as a Service - a subset of cloud computing where a platform(like a web server) is provided for customers to run their services
691 | - SaaS - Software as a Service - licensing the use of software to others while keeping that software centrally hosted and managed
692 |
693 | #### Cloud Storage
694 |
695 | - provide customers with storage to probably along with services, such as security, accessibility, flexibility
696 |
697 | ### IPv6
698 |
699 | #### IPv6 Addressing and Subnetting
700 |
701 | - 128 bits - 2001:0db8:0000:0000:0000:ff00:0012:3456
702 | - shortening rules
703 | - you can remove any leading zeros from a group - 2001:0db8:0:0:0:ff00:0012:345
704 | - any number of consecutive groups composed of just zeros can be replaces with two colons - 2001:0db8::ff00:0012:345
705 | - some reserved ranges
706 | - ::1 - loopback address (localhost)
707 | - 2001:0db8 - documentation/education
708 | - FF00:: - multicast - addressing groups of hosts all at once
709 | - FF80:: - link-local unicast - allow for local network segment communicaitons and are configured based upon a host's MAC address.
710 | - similar subneeting technique of IPv6
711 |
712 | #### IPv6 Headers
713 |
714 | -
715 | - version - 4 bits - version of ip
716 | - class - 8 bits - traffic class - type of traffic contained within the IP datagram and allows for different classes of traffic to receive different priorities.
717 | - flow label - 20 bits - used in conjunction with traffic class for routers to decide the
718 | - playload length - 16 bits - length of data payload
719 | - next header - 8 bits - what kinds of header is immediately after current one
720 | - hop limit - 8 bits - TTL
721 |
722 | #### IPv6 and IPv4 Harmony
723 |
724 | - IPv4 mapped address space
725 | - 0:0:0:0:0:fffff: - e.g. 192.168.1.1 = ::fffff:d1ad:35a7
726 | - IPv6 tunnels - Servers take incoming IPv6 traffic and encapsulate it within traditional IPv4 datagram
727 | - used for IPv6 datagram to be delivered across IPv4 internet space - encapsulation / decapsulation
728 | - IPV6 tunnel broker - companies that provide IPv6 tunneling endpoints for you so you don't have to introduce additional equipment to your network
729 |
730 |
731 |
732 |
733 |
734 |
--------------------------------------------------------------------------------
/computer-networking/images/image-20200531212326401.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200531212326401.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200531225656715.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200531225656715.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200531230514651.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200531230514651.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200531230705130.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200531230705130.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200531230815225.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200531230815225.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200531232449663.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200531232449663.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200531234141940.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200531234141940.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200531234641561.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200531234641561.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200601221842126.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200601221842126.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200601223501596.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200601223501596.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200601224707342.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200601224707342.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200601225905306.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200601225905306.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200601225928657.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200601225928657.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200601230056108.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200601230056108.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200601233914469.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200601233914469.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200601234409267.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200601234409267.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200601234506899.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200601234506899.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200601234515359.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200601234515359.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602142354277.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602142354277.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602142820473.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602142820473.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602194527202.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602194527202.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602201130107.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602201130107.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602201900738.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602201900738.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602205823543.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602205823543.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602210939472.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602210939472.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602210958991.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602210958991.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602211055747.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602211055747.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602211143403.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602211143403.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602211247761.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602211247761.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602211305656.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602211305656.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602211412026.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602211412026.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200602212225357.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200602212225357.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200604001505152.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200604001505152.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200604001800418.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200604001800418.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200604141129061.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200604141129061.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200604141317969.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200604141317969.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200604142033889.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200604142033889.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200604142144420.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200604142144420.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200604143226760.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200604143226760.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200604150925771.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200604150925771.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200604152114251.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200604152114251.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200604153739114.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200604153739114.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200604154436619.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200604154436619.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200604154757675.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200604154757675.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200604154936808.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200604154936808.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200605123400423.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200605123400423.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200605131459736.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200605131459736.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200605131513482.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200605131513482.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200605134018232.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200605134018232.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200605134525635.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200605134525635.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200605135217104.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200605135217104.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200605140907316.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200605140907316.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200605141001183.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200605141001183.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200605141636286.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200605141636286.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200605141846761.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200605141846761.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200606150007627.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200606150007627.png
--------------------------------------------------------------------------------
/computer-networking/images/image-20200606212452998.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rlongying/computer-networking-notes/b5ac4dc3222f4bac8334d82e61952a39946c3d00/computer-networking/images/image-20200606212452998.png
--------------------------------------------------------------------------------