├── .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 | image-20200531212326401 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 cableimage-20200531225656715 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*) image-20200531230514651 image-20200531230815225 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, image-20200531232449663 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 image-20200531234141940 (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 | - image-20200531234641561 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 image-20200601221842126 image-20200601223501596 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 | image-20200601224707342 *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 messageimage-20200601225905306 197 | - receive the ARP response containing the MAC addressimage-20200601225905306 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 image-20200601233914469 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 | - image-20200601234409267 228 | - image-20200601234515359 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 | - image-20200602142354277 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 | - image-20200602142820473 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 | - image-20200602194527202 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 image-20200602201130107 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 image-20200602201900738 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 | - image-20200602205823543 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 | - image-20200602210939472 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 | - image-20200602210939472 the router recognizes the ip as its own, and responses with its MAC address 359 | - image-20200602211055747 Computer 1 open an ephemeral port for browser 360 | - image-20200602211143403 construct tcp segment 361 | - image-20200602212225357 contruct ip datagram 362 | - image-20200602211247761 contruct ethernet frame 363 | - image-20200602211412026 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 image-20200604001505152 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 image-20200604001800418 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. image-20200604141129061 455 | - DHCPOFFER - the DHCP server will exam its configuration and decide which ip address to return , and broadcast a offer message image-20200604141317969 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 image-20200604142033889 458 | - DHCP server responses with an ack message image-20200604142144420 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) image-20200604143226760 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 | - image-20200604150925771 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 | - image-20200604152114251 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 | - image-20200604153739114 image-20200604154436619 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 | - image-20200604154757675 502 | - the web proxy server could get the web from web server and cache it to increase performance 503 | - image-20200604154936808 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. image-20200605123400423 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 image-20200605131459736 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 image-20200605131513482 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 | - image-20200605134018232 559 | - use multiple data link layer protocols 560 | 561 | #### Point-to-Point VPNs 562 | 563 | - image-20200605134525635 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 | - image-20200605135217104 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 | - image-20200605140907316 598 | 599 | - Mesh networks - hybrid of above two 600 | 601 | - image-20200605141001183 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 image-20200605141846761 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 | - image-20200606150007627 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 | - image-20200606212452998 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 --------------------------------------------------------------------------------