SlideShare a Scribd company logo
1 of 199
Download to read offline
A Very Brief Internet Tutorial (I)
Introduction
Wang Xiaolin
April 30, 2015
u wx672ster+net@gmail.com
1 / 197
What’s A Computer Network?
2 / 197
The History of Internet
1836: Telegraph
1858-1866: Transatlantic cable
1876: Telephone
1957: USSR launches Sputnik
1962-1968: Packet-switching networks developed
1969: Birth of Internet
1971: People communicate over a network
1972: Computers can connect more freely and
easily
1973: Global Networking becomes a reality
1974: Packets become mode of transfer
1976: Networking comes to many
1977: E-mail takes off, Internet becomes a reality
1979: News Groups born
1981: Things start to come together
3 / 197
1982: TCP/IP defines future communication
1983: Internet gets bigger
1984: Growth of Internet Continues
1986: Power of Internet Realised
1987: Commercialisation of Internet Born
1989: Large growth in Internet
1990: Expansion of Internet continues
1991: Modernisation Begins
1992: Multimedia changes the face of the Internet
1993: The WWW Revolution truly begins
1994: Commercialisation begins
1995: Commercialisation continues apace
1996: Microsoft enters
4 / 197
What’s The Internet?
What pops up in your mind if I say “Internet”?
5 / 197
What’s The Internet?
What pops up in your mind if I say “Internet”?
For me, the answer is...
and...
5 / 197
What’s The Internet?
What pops up in your mind if I say “Internet”?
For me, the answer is...
and...
TCP/IP
5 / 197
What’s The Internet?
▶ The network of networks.
▶ Tech view: TCP/IP
▶ App view:
6 / 197
Philosophy
Ten things Google has found to be true
1. Focus on the user and all else will follow.
2. It’s best to do one thing really, really well.
3. Fast is better than slow.
4. Democracy on the web works.
5. You don’t need to be at your desk to need an answer.
6. You can make money without doing evil.
7. There’s always more information out there.
8. The need for information crosses all borders.
9. You can be serious without a suit.
10. Great just isn’t good enough.
7 / 197
Philosophy
More about...
▶ Software Principles
▶ Google User Experience
▶ No pop-ups
▶ Security
8 / 197
Products
9 / 197
Choosing The Right Tools
vs.
10 / 197
Dangerous
11 / 197
Safe Surfing Advice
Take care of your identity and privacy
▶ Use a better browser, and keep it updated
▶ Use a spam filter for emailing
▶ Always use strong passwords
▶ Don’t give away too much personal information on blogs
and social networking sites
12 / 197
Safe Surfing Advice
Protect Your PC
▶ Get anti-virus software, anti-spyware software and a
firewall
▶ Keep your computer up to date
▶ Block spam emails
▶ Use an up to date web browser
▶ Make regular backups
▶ Encrypt your wireless network
13 / 197
Safe Surfing Advice
Avoid online rip-offs
▶ When you’re shopping online, look for clear signs that
you’re buying from a reputable company
▶ On an online auction site, learn how it works and learn to
pick good sellers
▶ Use safe ways to pay, such as PayPal or credit and debit
cards
▶ Use your common sense to avoid scams – if it sounds too
good to be true, it probably is
14 / 197
Homework
1. get a gmail account
2. recommend a good chrome extension to me via gmail
3. in google plus, share an interesting post to me
4. add your class timetable into google calendar, and then
share your calendar to me
5. in youtube, find a video you like and share it to me
15 / 197
A Very Brief Internet Tutorial (II)
How The Internet Works?
Wang Xiaolin
April 30, 2015
u wx672ster+net@gmail.com
16 / 197
Network Classification
▶ connection method: wired, wireless...
▶ topology
▶ scale
▶ network architecture: c/s, p2p...
17 / 197
Network Classification
Connection method
Wired:
Wireless:
18 / 197
Scale
PAN, LAN, CAN, MAN, WAN ...
19 / 197
Topology
Ring Mesh Star Fully Connected
BusTreeLine
20 / 197
Network Architecture
21 / 197
Basic Hardware Components
IP Router:
Link Bridge: Switch:
PHY NIC: Repeater: Hub:
22 / 197
TCP/IP
----------------------------
| network applications |
| |
|...  | / ..  | / ...|
| ----- ----- |
| |TCP| |UDP| |
| ----- ----- |
|  / |
| -------- |
| | IP | |
| ----- -*------ |
| |ARP| | |
| ----- | |
|  | |
| ------ |
| |ENET| |
| ---@-- |
----------|-----------------
|
----------------------o---------
Ethernet Cable
23 / 197
What’s TCP/IP?
A set of protocols designed for the Internet
Protocol — a rule, a treaty, an agreement ...
8 CHAPTER 1 • COMPUTER NETWORKS AND THE INTERNET
GET http://www.awl.com/kurose-ross
TCP connection request
Time Time
TCP connection reply
<file>
Hi
Got the time?
Time Time
Hi
2:00
Figure 1.2 A human protocol and a computer network protocol
24 / 197
TCP/IP Protocol Stack
Every networked computer has it inside
+--------------+ +-------------+ +-------------+
| Application | | | | |
+--------------+ | | | |
| Presentation | | Application | | Application |
+--------------+ | | | |
| Session | | | | |
+--------------+ +-------------+ +-------------+
| Transport | | Transport | | Transport |
+--------------+ +-------------+ +-------------+
| Network | | Network | | Network |
+--------------+ +-------------+ +-------------+
| Data Link | | Network | | Data Link |
+--------------+ | Interface | +-------------+
| Physical | | | | Physical |
+--------------+ +-------------+ +-------------+
ISO/OSI RM TCP/IP My Favor
25 / 197
Layered Design
software processes, hardware devices, or even human beings. In other words, it is
he peers that communicate by using the protocol to talk to each other.
Layer 5
Layer 4
Layer 3
Layer 2
Layer 1
Host 1
Layer 4/5 interface
Layer 3/4 interface
Layer 2/3 interface
Layer 1/2 interface
Layer 5 protocol
Layer 5
Layer 4
Layer 3
Layer 2
Layer 1
Host 2
Layer 4 protocol
Layer 3 protocol
Layer 2 protocol
Layer 1 protocol
Physical medium
Figure 1-13. Layers, protocols, and interfaces. 26 / 197
Services vs. Protocols
SEC. 1.4 REFERENCE MODELS 41
Layer k
Layer k + 1
Layer k - 1
Protocol
Service provided by layer k
Layer k
Layer k + 1
Layer k - 1
Figure 1-19. The relationship between a service and a protocol.
1.4 REFERENCE MODELS
Now that we have discussed layered networks in the abstract, it is time to look
at some examples. We will discuss two important network architectures: the OSI
reference model and the TCP/IP reference model. Although the protocols associ-
ated with the OSI model are not used any more, the model itself is actually quite
general and still valid, and the features discussed at each layer are still very im-
portant. The TCP/IP model has the opposite properties: the model itself is not of
much use but the protocols are widely used. For this reason we will look at both
Services Protocols
Layer to Layer Peer to Peer
A set of operations A set of rules
(listen, connect,
accept, receive,
send, disconnect)
(message format,
message meanings)
27 / 197
Layered Design Example
Taking an airplane trip
source host to destination host in the Internet. But this is not quite the analogy we
are after. We are looking for some structure in Figure 1.21. Looking at Figure 1.21,
we note that there is a ticketing function at each end; there is also a baggage func-
PTER 1 • COMPUTER NETWORKS AND THE INTERNET
Ticket (purchase)
Baggage (check)
Gates (load)
Runway takeoff
Airplane routing
Ticket (complain)
Baggage (claim)
Gates (unload)
Runway landing
Airplane routing
Airplane routing
Figure 1.21 Taking an airplane trip: actionsEach layer
1. has some functions
2. provides services to its upper layer
28 / 197
32 INTRODUCTION CHAP. 1
I like
rabbits
Location A
3
2
1
3
2
1
Location B
Message Philosopher
Translator
Secretary
Information
for the remote
translator
Information
for the remote
secretary
L: Dutch
Ik vind
konijnen
leuk
Fax #---
L: Dutch
Ik vind
konijnen
leuk
J'aime
bien les
lapins
L: Dutch
Ik vind
konijnen
leuk
Fax #---
L: Dutch
Ik vind
konijnen
leuk
Figure 1-14. The philosopher-translator-secretary architecture.
units, packets, prepending a layer 3 header to each packet. In this example, M is 29 / 197
Each protocol is completely independent of the
other ones
For example
▶ The translators (L2) can switch from Dutch to Finnish
without touching L1 or L3
▶ The secretaries (L1) can switch from email to telephone
without disturbing (or even informing) the other layers
30 / 197
TCP/IP Overview
Basic Structure
----------------------------
| network applications |
| |
|...  | / ..  | / ...|
| ----- ----- |
| |TCP| |UDP| |
| ----- ----- |
|  / |
| -------- |
| | IP | |
| ----- -*------ |
| |ARP| | |
| ----- | |
|  | |
| ------ |
| |ENET| |
| ---@-- |
----------|-----------------
|
----------------------o---------
Ethernet Cable
1. Where will an incoming Ethernet
frame go?
ARP: 0x0806
IP: 0x0800
2. Where will an incoming IP
packet go?
TCP: 0x06
UDP: 0x11
3. Where will an incoming
transport message (UDP
datagram, TCP segment) go?
HTTP FTP SSH SMTP
80 21/20 22 25
31 / 197
The Name Of A Unit Of Data
Application Message
TCP Segment
UDP Datagram
IP packet
Ethernet frame
+-------------+
| Application |
| message |
+-----------+-------------+
| Transport | Application |
| header | message |
+--------+-------------------------+
| IP | Transport |
| header | message |
+----------+----------------------------------+
| Ethernet | IP |
| header | packet |
+---------------------------------------------+
|<------------ Ethernet frame --------------->|
32 / 197
Ethernet
1. Frame format?
2. Address format?
3. Broadcast address?
4. CSMA/CD? (Please explain)
33 / 197
Ethernet Frame
0 1 2 3
+--------+--------+--------+--------+
| Dst Address |
+--------+--------+--------+--------+
| Dst Address | Src Address |
+--------+--------+--------+--------+
| Src Address |
+--------+--------+--------+--------+
| Length/Type | MAC Data ... |
+--------+--------+--------+--------+
| MAC Data ... |
| (46 - 1500 bytes) |
+--------+--------+--------+--------+
| FCS |
+--------+--------+--------+--------+
34 / 197
Ethernet References
J. Postel and J.K. Reynolds. Standard for the
transmission of IP datagrams over IEEE 802 networks.
RFC 1042 (INTERNET STANDARD). Internet Engineering
Task Force, Feb. 1988.
Wikipedia. Carrier sense multiple access with collision
detection — Wikipedia, The Free Encyclopedia.
[Online; accessed 11-March-2015]. 2015.
Wikipedia. Ethernet frame — Wikipedia, The Free
Encyclopedia. [Online; accessed 25-March-2015].
2015.
Wikipedia. Ethernet — Wikipedia, The Free
Encyclopedia. [Online; accessed 21-February-2015].
2015.
35 / 197
ARP
ARP Looking up the ARP table to find the destination
MAC address.
Example ARP table
IP address Ethernet address
223.1.2.1 08-00-39-00-2F-C3
223.1.2.3 08-00-5A-21-A7-22
223.1.2.4 08-00-10-99-AC-54
36 / 197
Where does the ARP table come from?
Example ARP Request
Sender IP Address 223.1.2.1
Sender Enet Address 08-00-39-00-2F-C3
Target IP Address 223.1.2.2
Target Enet Address FF-FF-FF-FF-FF-FF
Example ARP Response
Sender IP Address 223.1.2.2
Sender Enet Address 08-00-28-00-38-A9
Target IP Address 223.1.2.1
Target Enet Address 08-00-39-00-2F-C3
37 / 197
The updated table
IP address Ethernet address
223.1.2.1 08-00-39-00-2F-C3
223.1.2.2 08-00-28-00-38-A9
223.1.2.3 08-00-5A-21-A7-22
223.1.2.4 08-00-10-99-AC-54
38 / 197
ARP References
D. Plummer. Ethernet Address Resolution Protocol: Or
Converting Network Protocol Addresses to 48.bit
Ethernet Address for Transmission on Ethernet
Hardware. RFC 826 (INTERNET STANDARD). Updated
by RFCs 5227, 5494. Internet Engineering Task Force,
Nov. 1982.
Wikipedia. Address Resolution Protocol — Wikipedia,
The Free Encyclopedia. [Online; accessed
21-February-2015]. 2015.
39 / 197
IP
Router
----------------------------
| network applications |
| |
|...  | / ..  | / ...|
| ----- ----- |
| |TCP| |UDP| |
| ----- ----- |
|  / |
| -------- |
| | IP | |
| ----- -*------ |
| |ARP| | |
| ----- | |
|  | |
| ------ |
| |ENET| |
| ---@-- |
----------|-----------------
|
----------------------o---------
Ethernet Cable
----------------------------
| network applications |
| |
|...  | / ..  | / ...|
| ----- ----- |
| |TCP| |UDP| |
| ----- ----- |
|  / |
| -------- |
| | IP | |
| ----- -*----*- ----- |
| |ARP| | | |ARP| |
| ----- | | ----- |
|  | | / |
| ------ ------ |
| |ENET| |ENET| |
| ---@-- ---@-- |
----------|-------|---------
| |
| ---o--------------
| Ethernet Cable 2
---------------o---
Ethernet Cable 1
Routing Find a route in the route table.
40 / 197
Direct Routing—IP is overhead
A B C
| | |
--o------o------o--
Ethernet 1
IP network "development"
Addresses in an Ethernet frame for an IP packet
from A to B
address source destination
IP header A B
Ethernet header A B
41 / 197
Indirect Routing
A B C ----D---- E F G
| | | | | | | | |
--o------o------o------o- | -o------o------o------o--
Ethernet 1 | Ethernet 2
IP network "development" | IP network "accounting"
|
|
| H I J
| | | |
--o-----o------o------o--
Ethernet 3
IP network "factory"
----------------------------
| network applications |
| |
|...  | / ..  | / ...|
| ----- ----- |
| |TCP| |UDP| |
| ----- ----- |
|  / |
| -------- |
| | IP | |
| ----- -*----*- ----- |
| |ARP| | | |ARP| |
| ----- | | ----- |
|  | | / |
| ------ ------ |
| |ENET| |ENET| |
| ---@-- ---@-- |
----------|-------|---------
| |
| ---o--------------
| Ethernet Cable 2
---------------o---
Ethernet Cable 1
42 / 197
Addresses in an Ethernet frame for an IP packet
from A to E (before D)
address source destination
IP header A E
Ethernet header A D
Addresses in an Ethernet frame for an IP packet
from A to E (after D)
address source destination
IP header A E
Ethernet header D E
A B C ----D---- E F G
| | | | | | | | |
--o------o------o------o- | -o------o------o------o--
Ethernet 1 | Ethernet 2
IP network "development" | IP network "accounting"
43 / 197
IP Module Routing Rules
1. For an outgoing IP packet, entering IP from an upper
layer, IP must decide
▶ whether to send the IP packet directly or indirectly, and
▶ IP must choose a lower network interface.
These choices are made by consulting the route table.
2. For an incoming IP packet, entering IP from a lower
interface, IP must decide
▶ whether to forward the IP packet or pass it to an upper
layer.
▶ If the IP packet is being forwarded, it is treated as an
outgoing IP packet.
3. When an incoming IP packet arrives it is never forwarded
back out through the same network interface.
----------------------------
| network applications |
| |
|...  | / ..  | / ...|
| ----- ----- |
| |TCP| |UDP| |
| ----- ----- |
|  / |
| -------- |
| | IP | |
| ----- -*----*- ----- |
| |ARP| | | |ARP| |
| ----- | | ----- |
|  | | / |
| ------ ------ |
| |ENET| |ENET| |
| ---@-- ---@-- |
----------|-------|---------
| |
| ---o--------------
| Ethernet Cable 2
---------------o---
Ethernet Cable 1 44 / 197
IP Address
Address classes
+-+------------+--------------+--------------+--------------+
A: |0| NET <-7-> | LOCAL ADDRESS <-24-> |
+-+------------+--------------+--------------+--------------+
+---+----------+--------------+--------------+--------------+
B: |1 0| NET <-14-> | LOCAL ADDRESS <-16-> |
+---+----------+--------------+--------------+--------------+
+-----+--------+--------------+--------------+--------------+
C: |1 1 0| NET <-21-> | LOCAL ADDRESS|
+-----+--------+--------------+--------------+--------------+
+-----+--------+--------------+--------------+--------------+
D: |1 1 1| Reserved |
+-----+--------+--------------+--------------+--------------+
45 / 197
Special IP Addresses
▶ A value of zero in the network field means this network.
(source only)
▶ A value of zero in the host field means network address.
▶ 127.x.x.x are loopback address.
▶ 255.255.255.255 is boardcast address.
▶ Private address:
▶ 10.x.x.x
▶ 172.16.x.x∼172.31.x.x
▶ 192.168.x.x
▶ CIDR—Classless Inter-Domain Routing—An IP addressing
scheme that replaces the older system based on classes
A, B and C.
46 / 197
Names
People refer to computers by names, not numbers.
/etc/hosts
127.0.0.1 localhost
202.203.132.245 cs3.swfc.edu.cn cs3
/etc/networks
localnet 202.203.132.192
47 / 197
IP Route Table
Example IP Route Table
wx672@cisd-ftp:~$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
localnet * 255.255.255.192 U 0 0 0 eth0
192.168.128.0 * 255.255.252.0 U 0 0 0 eth0
default 202.203.132.254 0.0.0.0 UG 0 0 0 eth0
∼$ man route
48 / 197
Direct Routing Details
223.1.2.1 223.1.2.2
--------- ---------
| alpha | | beta |
| 1 | | 1 |
--------- ---------
| |
--------o---------------o-
Ethernet 1
IP network "development"
223.1.2.0
The route table inside alpha (simplified)
network flag router interface
development direct 1
49 / 197
Direct Scenario
Alpha is sending an IP packet to beta...Please describe.
50 / 197
Indirect Routing Details
223.1.4.1
223.1.3.1
223.1.2.1 223.1.2.4 223.1.3.2
--------- --------- ---------
| alpha | | delta | |epsilon|
| 1 | |1 2 3| | 1 |
--------- --------- ---------
| | | | |
--------o---------------o- | -o----------------o--------
Ethernet 1 | Ethernet 2
IP network "Development" | IP network "accounting"
223.1.2 | 223.1.3
|
| --------
| | iota |
| | 1 | 223.1.4.2
| --------
| |
--o--------o--------
Ethernet 3
IP network "factory"
223.1.4
----------------------------
| network applications |
| |
|...  | / ..  | / ...|
| ----- ----- |
| |TCP| |UDP| |
| ----- ----- |
|  / |
| -------- |
| | IP | |
| ----- -*----*- ----- |
| |ARP| | | |ARP| |
| ----- | | ----- |
|  | | / |
| ------ ------ |
| |ENET| |ENET| |
| ---@-- ---@-- |
----------|-------|---------
| |
| ---o--------------
| Ethernet Cable 2
---------------o---
Ethernet Cable 1
51 / 197
Indirect Routing Details
The route table inside alpha
network flag router interface
223.1.2 direct 1
223.1.3 indirect 223.1.2.4 1
223.1.4 indirect 223.1.2.4 1
The route table inside delta
network flag router interface
223.1.2 direct 1
223.1.3 direct 3
223.1.4 direct 2
52 / 197
Indirect Scenario
Alpha is sending an IP packet to epsilon...Please describe.
223.1.4.1
223.1.3.1
223.1.2.1 223.1.2.4 223.1.3.2
--------- --------- ---------
| alpha | | delta | |epsilon|
| 1 | |1 2 3| | 1 |
--------- --------- ---------
| | | | |
--------o---------------o- | -o----------------o--------
Ethernet 1 | Ethernet 2
IP network "Development" | IP network "accounting"
223.1.2 | 223.1.3
|
| --------
| | iota |
| | 1 | 223.1.4.2
| --------
| |
--o--------o--------
Ethernet 3
IP network "factory"
223.1.4
----------------------------
| network applications |
| |
|...  | / ..  | / ...|
| ----- ----- |
| |TCP| |UDP| |
| ----- ----- |
|  / |
| -------- |
| | IP | |
| ----- -*----*- ----- |
| |ARP| | | |ARP| |
| ----- | | ----- |
|  | | / |
| ------ ------ |
| |ENET| |ENET| |
| ---@-- ---@-- |
----------|-------|---------
| |
| ---o--------------
| Ethernet Cable 2
---------------o---
Ethernet Cable 1
53 / 197
Managing The Routes
▶ Manually maintained by administrator
▶ ICMP can report some routing problems
▶ For larger networks, routing protocols are used.
54 / 197
IP Packet
0 1 2 3
|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|
|Version| IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options (variable) | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
55 / 197
IP References
J. Postel. Internet Protocol. RFC 791 (INTERNET
STANDARD). Updated by RFCs 1349, 2474, 6864.
Internet Engineering Task Force, Sept. 1981.
Wikipedia. Internet Protocol — Wikipedia, The Free
Encyclopedia. [Online; accessed 21-February-2015].
2015.
Wikipedia. IP address — Wikipedia, The Free
Encyclopedia. [Online; accessed 13-March-2015].
2015.
Wikipedia. IPv4 header checksum — Wikipedia, The
Free Encyclopedia. [Online; accessed 20-March-2015].
2015.
56 / 197
Subnetting
57 / 197
Why Subnetting?
▶ use of different physical media (such as Ethernet, FDDI,
WAN, etc.)
▶ preservation of address space
▶ security
▶ The most common reason is to control network traffic
▶ In an Ethernet, there are collisions and the resulting
retransmissions.
58 / 197
+-----------------------+----------------------+
| Network Prefix | Host Number |
+-----------------------+----------------------+
+--------------------------------+-------------+
| Network Prefix | Subnet | Host Number |
+--------------------------------+-------------+
Subnet mask is a bitmask used to identify the network and
node parts of the address.
Default Subnet Masks
Class A 255.0.0.0 11111111.0.0.0
Class B 255.255.0.0 11111111.11111111.0.0
Class C 255.255.255.0 11111111.11111111.11111111.0
59 / 197
2n
− 2
Example
IP address:
11001010.11001011.10000100.11110001 202.203.132.241
Subnet mask:
11111111.11111111.11111111.11000000 255.255.255.192
▶ There are 22
− 2 = 2 subnets
▶ Each subnet has 26
− 2 = 62 nodes
▶ Subtract 2? All “0”s and all “1”s. (this is the old story)
60 / 197
Subnet Calculator
subnetcalc — a free IP subnet calculator
Try:
∼$ subnetcalc 202.203.132.244/26
61 / 197
Subnetting References
T. Pummill and B. Manning. Variable Length Subnet
Table For IPv4. RFC 1878 (Historic). Internet
Engineering Task Force, Dec. 1995.
Y. Rekhter et al. Address Allocation for Private
Internets. RFC 1918 (Best Current Practice). Updated
by RFC 6761. Internet Engineering Task Force, Feb.
1996.
Wikipedia. IPv4 subnetting reference — Wikipedia, The
Free Encyclopedia. [Online; accessed 25-March-2015].
2015.
Wikipedia. Private network — Wikipedia, The Free
Encyclopedia. [Online; accessed 25-March-2015].
2015.
Wikipedia. Subnetwork — Wikipedia, The Free
Encyclopedia. [Online; accessed 21-February-2015].
2015.
62 / 197
CIDR
63 / 197
CIDR—Classless Inter-Domain Routing
CIDR An IP addressing scheme that replaces the older
system based on classes A, B and C.
64 / 197
Why CIDR?
With a new network being connected to the Internet every 30
minutes the Internet was faced with two critical problems:
▶ Running out of IP addresses
▶ Running out of capacity in the global routing tables
65 / 197
Running out of IP addresses
Using the old addressing scheme, the Internet could support:
▶ 126 Class A networks that could include up to
16,777,214 hosts each
▶ Plus 65,000 Class B networks that could include up to
65,534 hosts each
▶ Plus over 2 million Class C networks that could include
up to 254 hosts each
only 3% of the assigned addresses were actually being used.
66 / 197
Global Routing Tables At Capacity
▶ As the number of networks on the Internet increased, so
did the number of routes.
▶ A few years back it was forecasted that the global
backbone Internet routers were fast approaching their
limit on the number of routes they could support.
▶ Even using the latest router technology, the maximum
theoretical routing table size is approximately 60,000
routing table entries.
▶ If nothing was done the global routing tables would have
reached capacity by mid-1994 and all Internet growth
would be halted.
67 / 197
How Were These Problems Solved?
Two solutions were developed and adopted by the global
Internet community:
▶ Restructuring IP address assignments to increase
efficiency
▶ Hierarchical routing aggregation to minimize route table
entries
68 / 197
Restructuring IP Address Assignments
Instead of being limited to network identifiers (or ”prefixes”)
of 8, 16 or 24 bits, CIDR currently uses prefixes anywhere
from 13 to 27 bits.
/27 1/8 of a Class C 32 hosts
/26 1/4 of a Class C 64 hosts
/25 1/2 of a Class C 128 hosts
/24 1 Class C 256 hosts
/16 256 Class C 65,536 hosts
(= 1 Class B)
/13 2,408 Class C 524,288 hosts
69 / 197
Hierarchical Routing Aggregation To Minimize
Routing Table Entries
Route Aggregation a single high-level route entry can
represent many lower-level routes in the global
routing tables. Similar to the telephone network.
70 / 197
User Impacts
▶ The Internet is currently a mixture of both ”CIDR-ized”
addresses and old Class A, B and C addresses.
▶ Almost all new routers support CIDR and the Internet
authorities strongly encourage all users to implement
the CIDR addressing scheme.
71 / 197
CIDR References
V. Fuller and T. Li. Classless Inter-domain Routing
(CIDR): The Internet Address Assignment and
Aggregation Plan. RFC 4632 (Best Current Practice).
Internet Engineering Task Force, Aug. 2006.
Wikipedia. Classless Inter-Domain Routing —
Wikipedia, The Free Encyclopedia. [Online; accessed
21-February-2015]. 2015.
72 / 197
IPv6
73 / 197
Why IPv6?
No enough addresses!
Kidding? We have:
▶ 232
address space
▶ NAT
▶ CIDR
No kidding. All gone.
▶ IANA: 31 January 2011
▶ Asia-Pacific: 15 April 2011
▶ Europe: 14 September 2012
▶ Latin America: 10 June 2014
So, we need a larger address space (2128
)
0
20
40
60
80
100
120
140
160
1996 1998 2000 2002 2004 2006 2008 2010 2012 2014
/8
Date
Free /8
IANA
RIR pool + IANA
74 / 197
Why such a high number of bits?
For a larger address space
▶ Think about mobile phones, cars (inside devices),
toasters, refrigerators, light switches, and so on…
Why not higher?
▶ More bits « bigger header « more overhead
▶ max MTU on Ethernet is 1500 octets
min MTU header length overhead
(octets) (octets)
IPv4 576 20-60 3.4%
IPv6 1280 40 3.8%
75 / 197
Why not IPv5?
4: is already used for IPv4
5: is reserved for the Stream Protocol (STP, RFC 1819 /
Internet Stream Protocol Version 2) (which never really
made it to the public)
6: The next free number. Hence IPv6 was born!
76 / 197
More than a larger address space (2128
)
▶ Simplified header makes routing faster
▶ End-to-end connectivity
▶ Auto-configuration
▶ No broadcast
▶ Anycast
▶ Mobility — same IP address everywhere
▶ Network-layer security
▶ Extensibility
▶ and more ...
77 / 197
IPv6 Header
0 1 2 3
|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|
|Version| Traffic Class | Flow Label |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Payload Length | Next Header | Hop Limit |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Source Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ +
| |
+ Destination Address +
| |
+ +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
78 / 197
IPv6 Extension Header
+---------------+------------------------
| IPv6 header |
| | TCP header + data
| Next Header = |
| TCP |
+---------------+------------------------
+---------------+----------------+------------------------
| IPv6 header | Routing header |
| | | TCP header + data
| Next Header = | Next Header = |
| Routing | TCP |
+---------------+----------------+------------------------
+---------------+----------------+-----------------+-----------------
| IPv6 header | Routing header | Fragment header |
| | | | fragment of TCP
| Next Header = | Next Header = | Next Header = | header + data
| Routing | Fragment | TCP |
+---------------+----------------+-----------------+-----------------
79 / 197
IPv6 Addresses
A real life address
3ffe:ffff:0100:f101:0210:a4ff:fee3:9566
« 3ffe:ffff:100:f101:210:a4ff:fee3:9566
More simplifications
3ffe:ffff:100:f101:0:0:0:1
« 3ffe:ffff:100:f101::1
The biggest simplification
IPv6 localhost address
0000:0000:0000:0000:0000:0000:0000:0001 « ::1
80 / 197
Address types
Global unicast addresses begin with [23]xxx
e.g. 2001:db8:85a3::8a2e:370:7334
Unique local addresses begin with fc00::/7
e.g. fdf8:f53b:82e4::53
▶ similiar to private IPs in IPv4
Link local addresses begin with fe80::/64
e.g. fe80::62d8:19ff:fece:44f6/64
▶ similiar to 169.254.0.0/16
Localhost address ::1
▶ Similiar to IPv4 with its “127.0.0.1”
Multicast addresses begin with ffxy::/8
e.g. ff01::2
Unspecified address ::
▶ Like “any” or “0.0.0.0” in IPv4
Link
local
Unique
local
Global
unicast
81 / 197
Anycast addresses
Unicast Multicast Broadcast Anycast
1-to-1 1-to-n 1-to-all 1-to-1
n
Anycast
▶ is assigned to more than one interface
▶ a packet sent to an anycast address is routed to the
”nearest” interface having that address
▶ is allocated from the unicast address space
82 / 197
IPv6 References
S. Deering and R. Hinden. Internet Protocol, Version 6
(IPv6) Specification. RFC 2460 (Draft Standard).
Updated by RFCs 5095, 5722, 5871, 6437, 6564, 6935,
6946, 7045, 7112. Internet Engineering Task Force,
Dec. 1998.
R. Hinden and S. Deering. IP Version 6 Addressing
Architecture. RFC 4291 (Draft Standard). Updated by
RFCs 5952, 6052, 7136, 7346, 7371. Internet
Engineering Task Force, Feb. 2006.
Wikipedia. IPv6 address — Wikipedia, The Free
Encyclopedia. [Online; accessed 13-March-2015].
2015.
Wikipedia. IPv6 packet — Wikipedia, The Free
Encyclopedia. [Online; accessed 15-March-2015].
2015.
Wikipedia. IPv6 — Wikipedia, The Free Encyclopedia.
[Online; accessed 21-February-2015]. 2015.
83 / 197
NAT & Packet Filtering
84 / 197
Network Address Translation (NAT)
40.30.20.10
192.168.1.1
192.168.1.4
192.168.1.3
192.168.1.2
Internet
12.13.14.15
Src IP Src Port NAT Router IP Port
192.168.1.2 3456 12.13.14.15 1
192.168.1.3 6789 12.13.14.15 2
192.168.1.3 8910 12.13.14.15 3
192.168.1.4 3750 12.13.14.15 4
85 / 197
What’s A Packet Filter?
A packet filter is a piece of software which looks at the header
of packets as they pass through, and decides the
fate of the entire packet. It might decide to
▶ DROP the packet (i.e., discard the packet as if
it had never received it),
▶ ACCEPT the packet (i.e., let the packet go
through), or
▶ something more complicated.
86 / 197
Packet Filter Under Linux
iptables talks to the kernel and tells it what packets to
filter.
The iptables tool inserts/deletes rules from the kernel’s
packet filtering table.
87 / 197
Quick Start
Debian/Ubuntu users can do:
stud@debian:~$ sudo apt-get install iptables
stud@debian:~$
stud@debian:~$ sudo iptables -A INPUT -s 147.8.212.123 -p all -j DROP
stud@debian:~$
stud@debian:~$ sudo iptables -D INPUT -s 147.8.212.123 -p all -j DROP
stud@debian:~$
stud@debian:~$ man iptables
stud@debian:~$
stud@debian:~$ google-chrome http://www.netfilter.org/documentation/
stud@debian:~$
88 / 197
Terminology
Filter table is in the kernel, contains chains.
Chains a.k.a. firewall chains, are lists of filtering rules.
The three kernel built-in chains are called INPUT,
OUTPUT, and FORWARD.
Rules Each rule says:
if the packet header looks like this
then here’s what to do with the packet
89 / 197
How Chains Work?
FORWARD
Routing
Decision
INPUT
Local Process
OUTPUT
Local Process
Incoming Outgoing
90 / 197
Using iptables
To manage whole chains:
1. Create a new chain (-N).
2. Delete an empty chain (-X).
3. Change the policy for a built-in chain. (-P).
4. List the rules in a chain (-L).
5. Flush the rules out of a chain (-F).
6. Zero the packet and byte counters on all rules in a chain
(-Z).
To manipulate rules inside a chain:
1. Append a new rule to a chain (-A).
2. Insert a new rule at some position in a chain (-I).
3. Replace a rule at some position in a chain (-R).
4. Delete a rule at some position in a chain, or the first that
matches (-D).
91 / 197
Examples
stud@debian:~$ ping -c 1 127.0.0.1
stud@debian:~$
stud@debian:~$ sudo iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
stud@debian:~$
stud@debian:~$ ping -c 1 127.0.0.1
stud@debian:~$
stud@debian:~$ sudo iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP
stud@debian:~$
stud@debian:~$ sudo iptables -A INPUT -s ! 127.0.0.1 -p all -j DROP
stud@debian:~$
stud@debian:~$ sudo iptables -A INPUT -s 192.168.1.0/24 -p all -j DROP
stud@debian:~$
92 / 197
More Examples
~$ # Syn-flood protection:
~$ sudo iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
~$
~$ # Furtive port scanner:
~$ sudo iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
~$
~$ # Ping of death:
~$ sudo iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
~$
93 / 197
Networking Devices
94 / 197
+-------------+
| |
| |
| Application |
| |
| |
+-------------+
| Transport |
+-------------+
| Network | Routers
+-------------+
| Data Link | Bridges/Switches
+-------------+
| Physical | Repeaters/Hubs
+-------------+
95 / 197
Repeater, Hub
Repeater connects network segments at the physical
layer.
Hub a multi-port repeater
▶ simple, cheap
▶ Repeaters/Hubs do NOT isolate collision domains.
▶ 100m maximum
96 / 197
Bridge, Switch
Bridge connects multiple network segments at the data
link layer (layer 2)
Switch a multi-port bridge
Transparent bridging
Uses a forwarding database to send frames across network
segments
▶ Learning
▶ Flooding
▶ Forwarding
▶ Filtering
▶ Aging
97 / 197
Redundancy Eliminating the single point of failure
A
CB
SegmentA
Segment B
Segment C
98 / 197
Broadcast storm Resulting in potentially severe network
congestion
A
CB
SegmentA
Segment B
Segment CNode B
Node A
99 / 197
Spanning Tree Protocol (STP) is a network protocol that
ensures a loop-free topology for any bridged
Ethernet local area network.
100 / 197
Router
Router connects two or more logical
subnets at the network layer
(layer 3)
Routing is to find a route in the route
table
----------------------------
| network applications |
| |
|...  | / ..  | / ...|
| ----- ----- |
| |TCP| |UDP| |
| ----- ----- |
|  / |
| -------- |
| | IP | |
| ----- -*----*- ----- |
| |ARP| | | |ARP| |
| ----- | | ----- |
|  | | / |
| ------ ------ |
| |ENET| |ENET| |
| ---@-- ---@-- |
----------|-------|---------
| |
| ---o--------------
| Ethernet Cable 2
---------------o---
Ethernet Cable 1
101 / 197
Bridging vs. Routing
Bridging Routing
L2 L3
MAC addr.(local) IP addr.(global)
intranet internet
Forwarding DB Routing table
relearn, flooding more efficient
▶ to put multiple segments into one bridged network, or
▶ to divide it into different networks interconnected by
routers
102 / 197
More About Networking Devices
Wikipedia. LAN switching — Wikipedia, The Free
Encyclopedia. [Online; accessed 23-March-2015].
2015.
Wikipedia. Network switch — Wikipedia, The Free
Encyclopedia. [Online; accessed 21-February-2015].
2015.
Wikipedia. Router (computing) — Wikipedia, The Free
Encyclopedia. [Online; accessed 21-February-2015].
2015.
Wikipedia. Routing table — Wikipedia, The Free
Encyclopedia. [Online; accessed 21-February-2015].
2015.
103 / 197
Transport Protocols
TCP & UDP
Wang Xiaolin
April 30, 2015
u wx672ster+net@gmail.com
104 / 197
¤ vs.
u
Circuit switching
guaranteed
performance
fast transfers (once
circuit is established)
wastes bandwidth if
traffic is “bursty”
connection setup adds
delay
recovery from failure is
slow
Packet switching
no guaranteed
performance
header overhead per
packet
queues and queuing
delay
efficient use of
bandwidth
no connection setup
can “route around
trouble”
105 / 197
IP: host «« host
TCP/UDP: process «« process
IP provides unreliable service
Best-effort delivery service doesn’t guarantee
? segment delivery
? orderly delivery of segments
? the integrity of the data in the segments
TCP provides reliable data transfer
Reliable means correctly and orderly.
correctness — acknowledgement, checksum
order — sequence numbers
packet lost — timers
flow control — sliding window
congestion control
106 / 197
A TCP Connection
wx672@cs3:~$ netstat -at | grep http | grep ESTAB
tcp 0 0 cs3.swfu.edu.cn:http 220.163.96.3:47179 ESTABLISHED
address port address port
socket socket
a pair of sockets form a TCP connection
Port numbers
port range 0 ∼ 65535
well-known ports 0 ∼ 1023
FTP 20/21 SSH 22 Telnet 23
SMTP 25 DNS 53 DHCP 67/68
HTTP 80 POP3 110 HTTPS 443
IMAP4 143
107 / 197
TCP Header
0 1 2 3
|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|
| Source Port | Destination Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Acknowledgment Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Data | | | |N|C|E|U|A|P|R|S|F| |
| Offset|0|0|0| |W|C|R|C|S|S|Y|I| Window |
| | | | |S|R|E|G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Urgent Pointer |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options | Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
108 / 197
Establishing a TCP Connection
SEC. 6.5 THE INTERNET TRANSPORT PROTOCOLS: TCP 561Time
Host 1 Host 2
SYN (SEQ = y, ACK = x + 1)
SYN (SEQ = x)
(SEQ = x + 1, ACK = y + 1)
Host 1 Host 2
SYN (SEQ = y, ACK = x + 1)
SYN (SEQ = x)
SYN (SEQ = y)
SYN (SEQ = x , ACK = y + 1)
(a) (b)
Figure 6-37. (a) TCP connection establishment in the normal case. (b) Simul-
taneous connection establishment on both sides.
In the event that two hosts simultaneously attempt to establish a connection
between the same two sockets, the sequence of events is as illustrated in Fig. 6-109 / 197
Closing a TCP Connection
110 / 197
tcpdump output
∼$ tcpdump -S -i lo
12:47:09.106903 IP localhost.37831 > localhost.3333:
Flags [S], seq 2485057335, win 32792, ..., length 0
12:47:09.106923 IP localhost.3333 > localhost.37831:
Flags [S.], seq 2476477986, ack 2485057336, win 32768, ..., length 0
12:47:09.106936 IP localhost.37831 > localhost.3333:
Flags [.], ack 2476477987, win 257, ..., length 0
12:47:26.963149 IP localhost.37831 > localhost.3333:
Flags [F.], seq 2485057336, ack 2476477987, win 257, ..., length 0
12:47:26.963244 IP localhost.3333 > localhost.37831:
Flags [F.], seq 2476477987, ack 2485057337, win 256, ..., length 0
12:47:26.963264 IP localhost.37831 > localhost.3333:
Flags [.], ack 2476477988, win 257, ..., length 0
111 / 197
State Transition Diagram
CLOSED
LISTEN
SYN_RCVD SYN_SENT
ESTABLISHED
FIN_WAIT_1
CLOSE_WAIT
FIN_WAIT_2
CLOSING
TIME_WAIT
LAST_ACK
data transfer state
starting point
2MSL timeout
passive open
active open
simultaneous close
appl: passive open
send: <nothing>
appl:activeopen
send:SYN
appl: send
data
send: SYN
recv: SYN;
send: SYN, ACK
recv: RST
timeout
send: RST
recv: SYN
send: SYN, ACK
simultaneous open
recv: SYN
, A
CK
send: A
CK
appl: close
send: FIN
recv: ACK
send: <nothing>
recv: FIN
send: ACK
recv: ACK
send: <nothing>
recv: FIN
, A
CK
send: A
CK
recv: A
CK
send: <nothing>
appl: close
send: FIN
recv: FIN
send: ACK
recv: FIN
send: ACK
appl: close
send: FIN
appl: close
or timeout
recv: ACK
send: <nothing>
active close
passive close
normal transitions for client
normal transitions for server
appl: state transitions taken when application issues operation
recv: state transitions taken when segment received
send: what is sent for this transition
netstat
∼$ netstat -nta
∼$ netstat -ntap
∼$ netstat -ntape
∼$ netstat -ntap | grep
ESTAB
∼$ netstat -nlp | grep :80
∼$ netstat -nr
∼$ netstat -ie
∼$ man netstat
113 / 197
Sliding Window
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Send first 8 segments
Receive first 3 acknowledgements
Send next 3 segments
The sliding window serves several purposes:
▶ it guarantees the reliable delivery of data
▶ it ensures that the data is delivered in order
▶ it enforces flow control between the sender and the
receiver.
114 / 197
Application
does a 2-KB
write
Application
does a 2-KB
write
Application
reads 2 KB
Sender is
blocked
Sender may
send up to 2-KB
Receiver’s
buffer
0 4 KB
2 KB
2 KB
Empty
Full
2 KB SEQ = 0
2 KB SEQ = 2048
1 KB SEQ = 4096
ACK = 2048 WIN = 2048
ACK = 4096 WIN = 0
ACK = 4096 WIN = 2048
2 KB1 KB
Sender Receiver
115 / 197
116 / 197
Packet Lost?
Go-Back-N
send pkt0
send pkt1
send pkt2
send pkt3
(wait)
rcv ACK0
send pkt4
rcv ACK1
send pkt5
send pkt2
send pkt3
send pkt4
send pkt5
pkt2 timeout
rcv pkt0
send ACK0
rcv pkt1
send ACK1
rcv pkt3, discard
send ACK1
rcv pkt4, discard
send ACK1
rcv pkt5, discard
send ACK1
rcv pkt2, deliver
send ACK2
rcv pkt3, deliver
send ACK3
X
(loss)
117 / 197
ACK lost?
the retransmitted segment.
Time Time
Host A Host B
Timeout
Seq=92, 8 bytes data
Seq=92, 8 bytes data
ACK=100
ACK=100
X
(loss)
118 / 197
Time Time
Host A Host B
Seq=92 timeout interval
Seq=92, 8 bytes data
Seq=100, 20 bytes data
ACK=100
ACK=120
X
(loss)
Selective-repeat
3.4 • PRINCIPLES OF RELIABLE DATA TRANSFER 225
send_base nextseqnum
Window size
N
Key:
Key:
Already
ACK’d
Sent, not
yet ACK’d
Usable,
not yet sent
Not usable
Out of order
(buffered) but
already ACK’d
Expected, not
yet received
Acceptable
(within
window)
Not usable
a. Sender view of sequence numbers
b. Receiver view of sequence numbers
rcv_base
Window size
N
Figure 3.23 Selective-repeat (SR) sender and receiver views of
sequence-number space
120 / 197
pkt0 rcvd, delivered, ACK0 sent
0 1 2 3 4 5 6 7 8 9
pkt1 rcvd, delivered, ACK1 sent
0 1 2 3 4 5 6 7 8 9
pkt3 rcvd, buffered, ACK3 sent
0 1 2 3 4 5 6 7 8 9
pkt4 rcvd, buffered, ACK4 sent
0 1 2 3 4 5 6 7 8 9
pkt5 rcvd; buffered, ACK5 sent
0 1 2 3 4 5 6 7 8 9
pkt2 rcvd, pkt2,pkt3,pkt4,pkt5
delivered, ACK2 sent
0 1 2 3 4 5 6 7 8 9
pkt0 sent
0 1 2 3 4 5 6 7 8 9
pkt1 sent
0 1 2 3 4 5 6 7 8 9
pkt2 sent
0 1 2 3 4 5 6 7 8 9
pkt3 sent, window full
0 1 2 3 4 5 6 7 8 9
ACK0 rcvd, pkt4 sent
0 1 2 3 4 5 6 7 8 9
ACK1 rcvd, pkt5 sent
0 1 2 3 4 5 6 7 8 9
pkt2 TIMEOUT, pkt2
resent
0 1 2 3 4 5 6 7 8 9
ACK3 rcvd, nothing sent
0 1 2 3 4 5 6 7 8 9
X
(loss)
Sender Receiver
UDP Datagram
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| Source | Destination |
| Port | Port |
+--------+--------+--------+--------+
| | |
| Length | Checksum |
+--------+--------+--------+--------+
|
| data octets ...
+---------------- ...
122 / 197
TCP/UDP References
J. Postel. Transmission Control Protocol. RFC 793
(INTERNET STANDARD). Updated by RFCs 1122, 3168,
6093, 6528. Internet Engineering Task Force, Sept.
1981.
J. Postel. User Datagram Protocol. RFC 768 (INTERNET
STANDARD). Internet Engineering Task Force, Aug.
1980.
Wikipedia. Checksum — Wikipedia, The Free
Encyclopedia. [Online; accessed 24-February-2015].
2015.
Wikipedia. Transmission Control Protocol — Wikipedia,
The Free Encyclopedia. [Online; accessed
21-February-2015]. 2015.
Wikipedia. User Datagram Protocol — Wikipedia, The
Free Encyclopedia. [Online; accessed
21-February-2015]. 2015.
123 / 197
Socket Programming
124 / 197
UDPClient.py I
1 from socket import *
2 serverName = 'hostname'
3 serverPort = 12000
4 clientSocket = socket(AF_INET, SOCK_DGRAM)
5 message = raw_input('Input lowercase sentence:')
6 clientSocket.sendto(message,(serverName, serverPort))
7 modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
8 print modifiedMessage
9 clientSocket.close()
socket(AF_INET, SOCK_DGRAM)
▶ AF_INET: using IPv4
▶ SOCK_DGRAM: UDP socket
▶ clientPort will be generated automatically
125 / 197
UDPClient.py II
clientSocket.sendto(message,(serverName,
serverPort))
1. attaches both the destination address (serverName,
serverPort) and the source address (clientIP,
clientPort) to the message
2. send the message
modifiedMessage, serverAddress =
clientSocket.recvfrom(2048)
1. puts the received message data into modifiedMessage
2. puts the source address (IP, Port) into serverAddress
▶ 2048: buffer size
126 / 197
UDPServer.py
1 from socket import *
2 serverPort = 12000
3 serverSocket = socket(AF_INET, SOCK_DGRAM)
4 serverSocket.bind(('', serverPort))
5 print "The server is ready to receive"
6 while 1:
7 message, clientAddress = serverSocket.recvfrom(2048)
8 modifiedMessage = message.upper()
9 serverSocket.sendto(modifiedMessage, clientAddress)
serverSocket.bind(('', serverPort))
▶ explicitly assigns 12000 to the server’s socket
127 / 197
TCP Sockets
Two Sockets at the Server
PTER 2 • APPLICATION LAYER
Client process Server process
Client
socket
Welcoming
socket
Three-way handshake
Connection
socket
bytes
bytes
Figure 2.29 The TCPServer process has two sockets 128 / 197
TCPClient.py
1 from socket import *
2 serverName = 'servername'
3 serverPort = 12000
4 clientSocket = socket(AF_INET, SOCK_STREAM)
5 clientSocket.connect((serverName,serverPort))
6 sentence = raw_input('Input lowercase sentence:')
7 clientSocket.send(sentence)
8 modifiedSentence = clientSocket.recv(1024)
9 print 'From Server:', modifiedSentence
10 clientSocket.close()
▶ SOCK_STREAM: TCP socket
▶ connect(): initiate the TCP connection (3-way handshake)
▶ send(): send out sentence through the client’s socket. No
destination address needs to be specified
129 / 197
TCPServer.py
1 from socket import *
2 serverPort = 12000
3 serverSocket = socket(AF_INET,SOCK_STREAM)
4 serverSocket.bind(('',serverPort))
5 serverSocket.listen(1)
6 print 'The server is ready to receive'
7 while 1:
8 connectionSocket, addr = serverSocket.accept()
9 sentence = connectionSocket.recv(1024)
10 capitalizedSentence = sentence.upper()
11 connectionSocket.send(capitalizedSentence)
12 connectionSocket.close()
▶ serverSocket: the welcoming socket
▶ connectionSocket: a socket dedicated to this particular
client
▶ listen(backlog): the server listens for connection
requests.
▶ backlog: how many non-accept()-ed connections are
allowed to be queueing
▶ accept(): whenever a connection request coming,
creates a new connectionSocket (handshaking is done
here)
130 / 197
Socket References
B. Hall. Beej’s Guide to Network Programming: Using
Internet Sockets. 2012.
Wikipedia. Network socket — Wikipedia, The Free
Encyclopedia. [Online; accessed 23-February-2015].
2015.
131 / 197
Application Layer Protocols
Wang Xiaolin
April 30, 2015
u wx672ster+net@gmail.com
132 / 197
HTTP
133 / 197
Apache HTTP Server
HTTP Request
(URL + Verb)
HTTP Response
(Status code + Message body)
134 / 197
HTTP Request
URL
http://en.wikipedia.org/w/index.php?title=Hello&oldid=636846770
protocol
host
resource path
query
~$ curl -v cs2.swfu.edu.cn/index.html
* Connected to cs2.swfu.edu.cn (202.203.132.242) port 80
> GET /index.html HTTP/1.1
> User-Agent: curl/7.38.0
> Host: cs2.swfu.edu.cn
> Accept: */*
>
Request line
Empty line
}
Header lines
Verbs
GET POST PUT PATCH
HEAD OPTIONS DELETE TRACE CONNECT
135 / 197
HTTP Response
< HTTP/1.1 200 OK
< Date: Thu, 15 Jan 2015 08:18:50 GMT
< Server: Apache/2.4.10 (Debian)
< Last-Modified: Tue, 02 Sep 2014 03:49:24 GMT
< ETag: "1fd-5020d015e5e4a"
< Accept-Ranges: bytes
< Content-Length: 509
< Vary: Accept-Encoding
< Content-Type: text/html
<
<html>
<head>
<title>Hello, world!</title>
</head>
<body>
<h1>Hello, world!</h1>
</body>
</html>
* Connection #0 to host cs2.swfu.edu.cn left intact
Status line
Header lines



Empty line
Data



136 / 197
Status Codes
1xx Informational Messages
e.g. 104 Connection Reset by Peer
2xx Successful
e.g. 200 OK
3xx Redirection
e.g. 301 Moved Permanently
4xx Client Error
e.g. 404 Not Found
5xx Server Error
e.g. 500 Internal Server Error
137 / 197
HTTP Transaction
Non-persistent — separate TCP connection
DNS Lookup Connect Send Wait Load
DNS Server Web Server
DNSquery
IPaddress
SYN
SYN,ACK
ACK
HTTPrequest
HTTP
response
1
stsegment2
ndsegment
PSH
ACK
3
rdsegment
HTTP_Continue
FIN
138 / 197
Persistent — same TCP connection
DNS Lookup Connect Send Wait Load Send Wait Load
DNS Server Web Server
Request I Request II
DNSquery
IPaddress
SYN
SYN,ACK
ACK
HTTPrequest
HTTP
response
139 / 197
Stateless Protocol
A HTTP server maintains no information about the clients.
Advantages
▶ Simplifies server design
▶ Save server resources (RAM...)
▶ Serve more users
Disadvantages
▶ Missing information
140 / 197
Keeping User State With Cookies
2.2 • THE WEB AND HTTP 109
Client host Server host
usual http request msg
usual http response
Set-cookie: 1678
usual http request msg
cookie: 1678
usual http response msg
usual http request msg
cookie: 1678
usual http response msg
Time
One week later
ebay: 8734
Server creates
ID 1678 for user
Time
Cookie file
Key:
amazon: 1678
ebay: 8734
amazon: 1678
ebay: 8734
Cookie-specific
action
access
access
entry in backend
database
Cookie-specific
action
Figure 2.10 Keeping user state with cookies 141 / 197
HTTP/2
Quoted from http://http2.github.io/faq/
▶ is binary, instead of textual
▶ is fully multiplexed, instead of ordered and blocking
▶ can therefore use one connection for parallelism
▶ uses header compression to reduce overhead
▶ allows servers to “push”responses proactively into client
caches
Feb 2015 (Planned) Publish HTTP/2 as an RFC
Try it: chrome://flags/#enable-spdy4
142 / 197
HTML
1 <html>
2 <head>
3 <title>Hello, world!</title>
4 </head>
5 <body>
6 <H1>Hello, world!</H1>
7 </body>
8 </html>
143 / 197
144 / 197
HTTP References I
R. Fielding, Y. Lafon, and J. Reschke. Hypertext Transfer
Protocol (HTTP/1.1): Range Requests. RFC 7233
(Proposed Standard). Internet Engineering Task Force,
June 2014.
R. Fielding, M. Nottingham, and J. Reschke. Hypertext
Transfer Protocol (HTTP/1.1): Caching. RFC 7234
(Proposed Standard). Internet Engineering Task Force,
June 2014.
R. Fielding and J. Reschke. Hypertext Transfer Protocol
(HTTP/1.1): Authentication. RFC 7235 (Proposed
Standard). Internet Engineering Task Force, June 2014.
R. Fielding and J. Reschke. Hypertext Transfer Protocol
(HTTP/1.1): Conditional Requests. RFC 7232 (Proposed
Standard). Internet Engineering Task Force, June 2014.
145 / 197
HTTP References II
R. Fielding and J. Reschke. Hypertext Transfer Protocol
(HTTP/1.1): Message Syntax and Routing. RFC 7230
(Proposed Standard). Internet Engineering Task Force,
June 2014.
R. Fielding and J. Reschke. Hypertext Transfer Protocol
(HTTP/1.1): Semantics and Content. RFC 7231
(Proposed Standard). Internet Engineering Task Force,
June 2014.
R. Fielding et al. Hypertext Transfer Protocol –
HTTP/1.1. RFC 2616 (Draft Standard). Obsoleted by
RFCs 7230, 7231, 7232, 7233, 7234, 7235, updated by
RFCs 2817, 5785, 6266, 6585. Internet Engineering
Task Force, June 1999.
Wikipedia. HTML — Wikipedia, The Free Encyclopedia.
[Online; accessed 21-February-2015]. 2015.
146 / 197
HTTP References III
Wikipedia. HTTP cookie — Wikipedia, The Free
Encyclopedia. [Online; accessed 22-February-2015].
2015.
Wikipedia. HTTP/2 — Wikipedia, The Free Encyclopedia.
[Online; accessed 21-February-2015]. 2015.
Wikipedia. Hypertext Transfer Protocol — Wikipedia,
The Free Encyclopedia. [Online; accessed
21-February-2015]. 2015.
Wikipedia. LAMP (software bundle) — Wikipedia, The
Free Encyclopedia. [Online; accessed
21-February-2015]. 2015.
Wikipedia. Stateless protocol — Wikipedia, The Free
Encyclopedia. [Online; accessed 21-February-2015].
2015.
147 / 197
Domain Name System
148 / 197
Names and Addresses
RFC 791, page 7:
A name indicates what we seek.
An address indicates where it is.
A route indicates how to get there.
▶ A name (hostname) can be assigned to any device that
has an IP address.
▶ The network software doesn’t require names, but they do
make it easier for humans to use the network.
149 / 197
$ ssh username@cs3.swfu.edu.cn
SSH
TCP
resolver
cs3.swfu.edu.cn
establish connection
with IP address
cs3.swfu.edu.cn
202.203.132.245
▶ Resolver is normally part of the application
▶ The TCP/IP protocols within the kernel know nothing
about the DNS
150 / 197
Typical Configuration
Local Host | Foreign
|
+---------+ +----------+ | +--------+
| | user queries | |queries | | |
| User |-------------->| |---------|->|Foreign |
| Program | | Resolver | | | Name |
| |<--------------| |<--------|--| Server |
| | user responses| |responses| | |
+---------+ +----------+ | +--------+
| A |
cache additions | | references |
V | |
+----------+ |
| cache | |
+----------+ |
151 / 197
The DNS Name Space Is Hierarchical
The domain hierarchy is similar to the UNIX
filesystem
int mil n e t com edu gov org us uk cn jp de ...
google yale mit whitehouse wikipedia com gov edu n e t org ...
mail calendar maps docs reader plus ocw swfc ynu kmust pku tsinghua ...
lib jwc cs2 cs3 ...
▶ Organizational: com, edu, gov, mil, net, org, int
▶ Geographic: cn, us, uk, jp, de, etc.
152 / 197
Translating Names Into Addresses
Two common ways:
Host table The old way. /etc/hosts
DNS A distributed database system — Domain Name
Service (DNS)
153 / 197
The Host Table
/etc/hosts
127.0.0.1 localhost
202.203.132.245 cs3.swfu.edu.cn cs3
202.203.132.242 cs2.swfu.edu.cn cs2
It’s still widely used, because:
▶ The important hosts on the local network
▶ In case DNS is not running
▶ NIS host database
▶ Local intranet
154 / 197
All hosts connected to the Internet should use
DNS
The old host table system is inadequate for the
global Internet for two reasons:
1. inability to scale
2. lack of an automated update process.
Old story
Prior to adopting DNS, the Network Information Center (NIC)
maintained a large table of Internet hosts called the NIC host
table. Hosts included in the table were called registered
hosts, and the NIC placed hostnames and addresses into this
file for all sites on the Internet.
155 / 197
Domain Name System
▶ Scales well
▶ Doesn’t rely on a single large table
▶ Distributed database system that doesn’t bog down as the
database grows
DNS currently provides information on approximately
16,000,000 hosts, while less than 10,000 are listed in the
host table.
▶ Guarantees that new host information will be
disseminated to the rest of the network as it is needed
156 / 197
DNS softwares
DNS
resolver
DNS
server
DNS query
DNS response
The resolver asks the questions.
The name server answers the questions.
157 / 197
With DNS, information is automatically
disseminated, and only to those who are
interested.
▶ If a DNS server receives a request for information about
a host for which it has no information, it passes on the
request to an authoritative server.
An authoritative server is any server responsible for
maintaining accurate information about the
domain being queried.
▶ When the authoritative server answers, the local server
saves (caches) the answer for future use.
▶ The next time the local server receives a request for this
information, it answers the request itself.
158 / 197
Resource Records
What’s associated with a domain name?
Type Meaning Value
A IP address of a host 32-bit integer
NS Name Server Name of a server for this
domain
MX Mail eXchange Priority, domain willing to
accept email
HINFO Host INFOrmation CPU and OS in ASCII
CNAME Canonical NAME Domain name
PTR PoinTeR Alias for an IP address
When a resolver gives a domain name to DNS, what it gets
back are the resource records associated with that name.
159 / 197
Resource Records Example
wx672@cs2:~$ host -a mirrors.ustc.edu.cn
Trying "mirrors.ustc.edu.cn"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4421
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 2, ADDITIONAL: 4
;; QUESTION SECTION:
;mirrors.ustc.edu.cn. IN ANY
;; ANSWER SECTION:
mirrors.ustc.edu.cn. 600 IN AAAA 2001:da8:d800:95::110
mirrors.ustc.edu.cn. 600 IN A 202.38.95.110
mirrors.ustc.edu.cn. 594 IN NS f1g1ns2.dnspod.net.
mirrors.ustc.edu.cn. 594 IN NS f1g1ns1.dnspod.net.
;; AUTHORITY SECTION:
mirrors.ustc.edu.cn. 594 IN NS f1g1ns1.dnspod.net.
mirrors.ustc.edu.cn. 594 IN NS f1g1ns2.dnspod.net.
;; ADDITIONAL SECTION:
f1g1ns1.dnspod.net. 33536 IN A 111.30.132.180
f1g1ns1.dnspod.net. 33536 IN A 113.108.80.138
f1g1ns2.dnspod.net. 33536 IN A 101.226.30.224
f1g1ns2.dnspod.net. 33536 IN A 112.90.82.194
Received 323 bytes from 202.203.132.100#53 in 6598 ms
160 / 197
Recursive Query
flits.cs.vu.nl wants to know the IP address of
linda.cs.yale.edu
Originator
VU CS
name server
Yale
name server
Yale CS
name server
Edu
name server
cs.vu.nl edu-server.net yale.edu cs.yale.eduflits.cs.vu.nl
1
8
2
7
3
6
4
5
Fig. 7-5. How a resolver looks up a remote name in eight steps.
161 / 197
Non-recursive Query
The remote server tells the local server who to ask
next
Local
DNS server
(dns.swfu.edu.cn)
almond.nuts.com
Root DNS server
(dns.edu.cn)
pack.plant.nuts.com
sale.plant.nuts.com
plant.nuts.com NS pack.plant.nuts.com
sale.plant.nuts.com
nuts.com NS almond.nuts.com
sale.plant.nuts.com
sale.plant.nuts.com A 172.16.6.4
162 / 197
DNS Message Format
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ DNS
| ID | message
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +------------+
|QR| Opcode |AA|TC|RD|RA| Z | RCODE | | Header |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +------------+
| QDCOUNT | | Question |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +------------+
| ANCOUNT | | Answer |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +------------+
| NSCOUNT | | Authority |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +------------+
| ARCOUNT | | Additional |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +------------+
163 / 197
wx672@debian:~$ host -a cs2.swfu.edu.cn
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22237
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;cs2.swfu.edu.cn. IN ANY
;; ANSWER SECTION:
cs2.swfu.edu.cn. 3600 IN A 202.203.132.242
Received 49 bytes from 127.0.0.1#53 in 1161 ms
Flags
qr: Query-Response
0: query
1: response
rd: Recursion Desired
ra: Recursion Available
164 / 197
tcpdump
wx672@debian:~$ host -a cs2.swfu.edu.cn
wx672@debian:~$ sudo tcpdump -i wlan0 -n port 53
09:30:29.860901 IP 192.168.1.109.34075 > 114.114.115.115.53:
34035+ ANY? cs2.swfu.edu.cn. (33)
09:30:29.979390 IP 114.114.115.115.53 > 192.168.1.109.34075:
34035 1/0/0 A 202.203.132.242 (49)
34035 – id
+ – rd=1
ANY? – query type
33/49 – UDP payload length
1/0/0 – 1 answer RR; 0 authority RR; 0 additional RR.
A – IPv4 address
165 / 197
Name Servers
The three main categories of name servers are:
Primary server: gets its information from a disk file
▶ It has complete information about its domain
and its response is always accurate.
Secondary server: obtains all the information from the
primary
▶ It’s a backup server
Caching-only server: it just remembers the answers to
previous lookups in case the same lookup is
performed again.
166 / 197
DNS References
P.V. Mockapetris. Domain names - concepts and
facilities. RFC 1034 (INTERNET STANDARD). Updated
by RFCs 1101, 1183, 1348, 1876, 1982, 2065, 2181,
2308, 2535, 4033, 4034, 4035, 4343, 4035, 4592,
5936. Internet Engineering Task Force, Nov. 1987.
P.V. Mockapetris. Domain names - implementation and
specification. RFC 1035 (INTERNET STANDARD).
Updated by RFCs 1101, 1183, 1348, 1876, 1982, 1995,
1996, 2065, 2136, 2181, 2137, 2308, 2535, 2673,
2845, 3425, 3658, 4033, 4034, 4035, 4343, 5936,
5966, 6604. Internet Engineering Task Force, Nov.
1987.
Wikipedia. Domain Name System — Wikipedia, The
Free Encyclopedia. [Online; accessed 23-April-2015].
2015.
167 / 197
Mail Services
168 / 197
E-mail Protocols
Proprietary protocols:
Microsoft: Outlook client ⇐⇒ Exchange server
IBM: Notes client ⇐⇒ Domino server
Open standards:
SMTP: Simple Mail Transfer Protocol, RFC2821
POP3: Post Office Protocol, RFC1939
MIME: Multipurpose Internet Mail Extensions, RFC2045,
RFC2046, RFC2047, RFC2048, RFC2049
IMAP4: Interactive Mail Access Protocol, RFC3501
169 / 197
SMTP Transports A Mail Object
A Mail Object
a mail
object
a mail
envelope
mail
content
an orig_addr
rcpt_addrs
...
headers
body
orig-date
from
to
...
170 / 197
A Physical Mail
Immanuel Kant (Dr.)
K¨onigsberg, Prussia
German
March 1, 2015
Dr. Whoever
Department of Unknown,
University of Whatever,
London, SE18 3AB
UK
Dear Dr. Whoever,
As any dedicated reader can clearly see, the Ideal of practical reason is a rep-
resentation of, as far as I know, the things in themselves; as I have shown else-
where, the phenomena should only be used as a canon for our understanding.
The paralogisms of practical reason are what first give rise to the architectonic
of practical reason. As will easily be shown in the next section, reason would
thereby be made to contradict, in view of these considerations, the Ideal of prac-
tical reason, yet the manifold depends on the phenomena. Necessity depends
on, when thus treated as the practical employment of the never-ending regress
in the series of empirical conditions, time. Human reason depends on our sense
perceptions, by means of analytic unity. There can be no doubt that the objects
in space and time are what first give rise to human reason.
Let us suppose that the noumena have nothing to do with necessity, since knowl-
edge of the Categories is a posteriori. Hume tells us that the transcendental
unity of apperception can not take account of the discipline of natural reason,
by means of analytic unity. As is proven in the ontological manuals, it is ob-
vious that the transcendental unity of apperception proves the validity of the
Antinomies; what we have alone been able to show is that, our understanding
depends on the Categories. It remains a mystery why the Ideal stands in need
of reason. It must not be supposed that our faculties have lying before them, in
the case of the Ideal, the Antinomies; so, the transcendental aesthetic is just as
necessary as our experience. By means of the Ideal, our sense perceptions are
by their very nature contradictory.
Yours sincerely,
Immanuel Kant
171 / 197
The SMTP Basic Structure
+------+ +------+ +------+
| User |<-->| | SMTP | |
+------+ | SMTP |Commands/Replies| SMTP |
+------+ |Client|<-------------->|Server| +------+
| File |<-->| | and Mail | |<-->| File |
|System| | | | | |System|
+------+ +------+ +------+ +------+
▶ TCP, port 25
172 / 197
Unix File System
ROOT
bin boot dev etc home var
grub passwd staff stud mail
wx672 101152001
dir
file
101152001
173 / 197
SMTP Commands
wx672@cs3:~$ nc localhost 25
220 cs3.swfu.edu.cn ESMTP Exim 4.72 Sun, 16 Oct 2011 22:29:29 +0800
help
214-Commands supported:
214 AUTH HELO EHLO MAIL RCPT DATA NOOP QUIT RSET HELP
▶ More commands can be available, depending on your
SMTP server configuration.
174 / 197
A Simple Protocol
A SMTP Session
wx672@debian:~$ nc cs3.swfc.edu.cn smtp
220 cs3.swfu.edu.cn ESMTP Exim 4.72
Sun, 16 Oct 2011 22:18:22 +0800
helo debian
250 cs3.swfc.edu.cn Hello debian [192.168.128.5]
mail from:<wx672@debian>
250 OK
rcpt to:<wx672@cs3.swfc.edu.cn>
250 Accepted
data
354 Enter message, ending with "." on a line by itself
Hello, there!
.
250 OK id=1DMJra-0007IR-01
quit
221 cs3.swfc.edu.cn closing connection
wx672@debian:~$
175 / 197
Post Office Protocol v3
POP2 port 109
POP3 port 110
The POP protocols verify the user’s
login name and password, and move
the user’s mail from the server to the
user’s local mail reader.
A POP3 Session
$ nc cs3 110
+OK Dovecot ready.
user wx672
+OK
pass topsecrete
+OK Logged in.
stat
+OK 3 459
retr 1
+OK 146 octets
The full text of message 1
dele 1
+OK message # 1 deleted
retr 2
+OK 155 octets
The full text of message 2
dele 2
+OK message # 2 deleted
retr 3
+OK 158 octets
The full text of message 3
dele 3
+OK message # 3 deleted
quit
+OK Logging out.
176 / 197
IMAP — Internet Message Access Protocol
▶ port 143
Advantages over POP3
▶ Both connected and disconnected modes of operation
▶ Multiple clients can simultaneously connect to the same
mailbox
▶ Access to MIME parts of messages and partial fetch
▶ Message state information kept on the server
▶ Multiple mailboxes on the server
▶ Server-side searches
▶ A built-in extension mechanism
177 / 197
An IMAP session
$ nc cs3 143
* OK Dovecot ready.
a001 login wx672 topsecrete
a001 OK Logged in.
a002 select inbox
* FLAGS (/Answered /Flagged /Deleted /Seen /Draft)
* OK [PERMANENTFLAGS (/Answered /Flagged /Deleted /Seen /Dra
* 15 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1174505444] UIDs valid
* OK [UIDNEXT 184] Predicted next UID
a002 OK [READ-WRITE] Select completed.
a004 fetch 1 full
* 1 FETCH (FLAGS (/Seen) INTERNALDATE "16-Oct-2011 22:40:55
a004 OK Fetch completed.
a006 fetch 1 body[text]
* 1 FETCH (BODY[TEXT] 55
hello ,there!
) 178 / 197
Disadvantages of IMAP
▶ IMAP is a very heavy and complicated protocol
▶ IMAP generally results in higher server loads than POP3
▶ Server-side searches can potentially use lots of server
resources when searching massive mailboxes
179 / 197
Multipurpose Internet Mail Extensions
▶ SMTP supports only 7-bit ASCII characters.
▶ MIME standard defines mechanisms for emailing other
kinds of information, e.g.
▶ text in languages other than English,
▶ files containing images, sounds, movies,
▶ computer programs
▶ HTTP/MIME
180 / 197
A Typical Mail Header
Received: from 20030704041 by cs2.swfc.edu.cn with local (Exim 4.50)
id 1GSusu-0001D0-NT
for wx672@cs2.swfc.edu.cn; Thu, 28 Sep 2006 20:21:00 +0800
Date: Thu, 28 Sep 2006 20:21:00 +0800
To: WANG Xiaolin <wx672@cs2.swfc.edu.cn>
Subject: ipv6
Message-ID: <20060928122100.GA4498@cs2.swfc.edu.cn>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
User-Agent: Mutt/1.5.9i
From: 20030704041@cs2.swfc.edu.cn
X-SA-Exim-Connect-IP: <locally generated>
X-SA-Exim-Rcpt-To: wx672@cs2.swfc.edu.cn
X-SA-Exim-Mail-From: 20030704041@cs2.swfc.edu.cn
X-SA-Exim-Scanned: No (on cs2.swfc.edu.cn); SAEximRunCond expanded to false
X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on cs2.swfc.edu.cn
X-Spam-Level: *
X-Spam-Status: No, score=1.0 required=5.0 tests=ALL_TRUSTED,AWL,FROM_ALL_NUMS,
FROM_ENDS_IN_NUMS,FROM_STARTS_WITH_NUMS,NO_REAL_NAME autolearn=no
version=3.0.3
Status: RO
Content-Length: 240
Lines: 3
X-UID: 351
X-Keywords:
181 / 197
Spam
Spam: ▶ Any kind of un-wanted email messages.
▶ The action of sending such kinds of
messages to usenet newsgroups, mailing
lists, or any other individuals.
▶ by year 2000, 7% of Internet mails were spam;
▶ by year 2004, 60% were spam.
▶ Bill Gates receives nearly 4 million emails a day – most of
which are spam.
182 / 197
How Spam Works?
1. Collecting Email Addresses (Sniffing, Web Registration,
Mailing List and Newsgroup, etc.)
2. Open Relay — an SMTP server configured in such a way
that it allows anyone on the Internet to relay (i.e. send)
email through it.
3. Open Proxy — a proxy which is misconfigured to allow
access to anyone on the internet.
183 / 197
Relayed Mail Scenario
wx672@cs2:~$ nc wx672.3322.org smtp
220 wx672.3322.org ESMTP Exim 4.50
Tue, 03 Oct 2006 10:13:04 +0800
ehlo cs2.swfc.edu.cn
250-wx672.3322.org Hello cs2.swfc.edu.cn
[202.203.132.242]
250-SIZE 52428800
250-PIPELINING
250 HELP
mail from:<wx672@cs2.swfc.edu.cn>
250 OK
rcpt to:<@wx672.3322.org:wx672@yahoo.com>
250 Accepted
data
354 Enter message, ending with "." on a line by itself
Hello, this is a message to wx672@yahoo.com
relayed by the smtp server at wx672.3322.org
.
250 OK id=1DSQRt-0000jC-T0
quit
221 wx672.3322.org closing connection
184 / 197
Common Technologies Of Anti-Spams
▶ DNSBL — DNS-based Blackhole List
▶ Bayesian Filtering:
P(spam|words) =
P(words|spam)P(spam)
P(words)
▶ Greylisting — ”normal” MTAs should attempt retries if
given an appropriate temporary failure code for a
delivery attempt.
185 / 197
Mail References I
M. Crispin. INTERNET MESSAGE ACCESS PROTOCOL -
VERSION 4rev1. RFC 3501 (Proposed Standard).
Updated by RFCs 4466, 4469, 4551, 5032, 5182, 5738,
6186, 6858. Internet Engineering Task Force, Mar.
2003.
N. Freed and N. Borenstein. Multipurpose Internet Mail
Extensions (MIME) Part One: Format of Internet
Message Bodies. RFC 2045 (Draft Standard). Updated
by RFCs 2184, 2231, 5335, 6532. Internet Engineering
Task Force, Nov. 1996.
J. Klensin. Simple Mail Transfer Protocol. RFC 2821
(Proposed Standard). Obsoleted by RFC 5321, updated
by RFC 5336. Internet Engineering Task Force, Apr.
2001.
186 / 197
Mail References II
J. Myers and M. Rose. Post Office Protocol - Version 3.
RFC 1939 (INTERNET STANDARD). Updated by RFCs
1957, 2449, 6186. Internet Engineering Task Force,
May 1996.
Wikipedia. Internet Message Access Protocol —
Wikipedia, The Free Encyclopedia. [Online; accessed
21-February-2015]. 2015.
Wikipedia. MIME — Wikipedia, The Free Encyclopedia.
[Online; accessed 21-February-2015]. 2015.
Wikipedia. Post Office Protocol — Wikipedia, The Free
Encyclopedia. [Online; accessed 21-February-2015].
2015.
Wikipedia. Simple Mail Transfer Protocol — Wikipedia,
The Free Encyclopedia. [Online; accessed
21-February-2015]. 2015.
187 / 197
FTP
188 / 197
+-----------+
|+---------+|
|| User || +------+
||Interface|<--->| User |
|+----^----+| +------+
+--------+ | | |
|+------+| FTP Commands |+----V----+|
||Server|<---------------->| User ||
|| PI || FTP Replies || PI ||
|+--^---+| |+----^----+|
| | | | | |
+------+ |+--V---+| Data |+----V----+| +------+
| File |<--->|Server|<---------------->| User |<--->| File |
|System| || DTP || Connection || DTP || |System|
+------+ |+------+| |+---------+| +------+
+--------+ +-----------+
Server-FTP USER-FTP
189 / 197
An Active FTP Session
Control session
wx672@cs3:~$ nc cs2 ftp
220 (vsFTPd 2.0.5)
user wx672
331 Please specify the password.
pass secret
230 Login successful.
port 202,203,132,244,100,0
200 PORT command successful. Consider using PASV.
nlst
150 Here comes the directory listing.
226 Directory send OK.
quit
221 Goodbye.
To see FTP data session:
▶ wx672@cs3:∼$ nc -l 25600
100 × 256 + 0 = 25600
190 / 197
A Passive FTP Session
Control session
wx672@cs3:~$ nc cs2 ftp
220 (vsFTPd 2.0.5)
user wx672
331 Please specify the password.
pass secret
230 Login successful.
pasv
227 Entering Passive Mode (202,203,132,242,36,5)
list
150 Here comes the directory listing.
quit
221 Goodbye.
To see FTP data session:
▶ wx672@cs3:∼$ nc cs2 9221
36 × 256 + 5 = 9221
191 / 197
Active FTP vs. Passive FTP
In active mode: Server initiates data connection to client’s
data port.
In passive mode: Client initiates data connection to random
port specified by server.
192 / 197
Why Passive Mode?
Active mode doesn’t work with firewall
192.168.1.3
40.30.20.10
FTP Command
port 192,168,1,3,100,0
Internet
12.13.14.15192.168.1.1
NAT Table
Sourrc NAT Router
IP:Port IP:Port
192.168.1.3:8910 12.13.14.15:7
FTP
Ethernet
IP
TCP
Ethernet
IP
FTP
Ethernet
IP
TCP
FTP Command
port 192,168,1,3,100,0
IP Header
Src IP:192.168.1.3
FTP Command
port 192,168,1,3,100,0
IP Header
Src IP:12.13.14.15
FTP Command
SYN 192,168,1,3,100,0
IP Header
Dst IP:192.168.1.3
FTP Active Mode
193 / 197
FTP References
S. Bellovin. Firewall-Friendly FTP. RFC 1579
(Informational). Internet Engineering Task Force, Feb.
1994.
J. Postel and J. Reynolds. File Transfer Protocol. RFC
959 (INTERNET STANDARD). Updated by RFCs 2228,
2640, 2773, 3659, 5797, 7151. Internet Engineering
Task Force, Oct. 1985.
Wikipedia. File Transfer Protocol — Wikipedia, The Free
Encyclopedia. [Online; accessed 21-February-2015].
2015.
194 / 197
Peer-to-Peer Applications
195 / 197
BitTorrent
Tracker
Trading chunks
Peer
Obtain
list of
peers
Alice
196 / 197
P2P References
Bram Cohen. The BitTorrent Protocol Specification,
Version 11031. Jan. 10, 2008.
Wikipedia. BitTorrent — Wikipedia, The Free
Encyclopedia. [Online; accessed 22-February-2015].
2015.
197 / 197

More Related Content

Viewers also liked

Work Mrferlazo
Work MrferlazoWork Mrferlazo
Work MrferlazoRudyRuano
 
Operating Systems (slides)
Operating Systems (slides)Operating Systems (slides)
Operating Systems (slides)wx672
 
Centurion Marketing Overview
Centurion Marketing OverviewCenturion Marketing Overview
Centurion Marketing Overviewmarkoverbye
 
Componente Terrestre Manta - Manaos
Componente Terrestre Manta - ManaosComponente Terrestre Manta - Manaos
Componente Terrestre Manta - ManaosFernando Holguin
 
Philanthropy of Community: Tools for Transforming Giving
Philanthropy of Community: Tools for Transforming GivingPhilanthropy of Community: Tools for Transforming Giving
Philanthropy of Community: Tools for Transforming GivingNCGives
 
We Stand By Youth Docx
We Stand By Youth DocxWe Stand By Youth Docx
We Stand By Youth DocxNona Beicu
 
Hidraulika I Pneumatika 1. Pr
Hidraulika I Pneumatika 1. PrHidraulika I Pneumatika 1. Pr
Hidraulika I Pneumatika 1. Prmurat
 
Scholastic Graphic Novel Teachers Guide
Scholastic Graphic Novel Teachers GuideScholastic Graphic Novel Teachers Guide
Scholastic Graphic Novel Teachers Guidetomato321
 

Viewers also liked (10)

De Paul University Slide Share
De Paul University Slide ShareDe Paul University Slide Share
De Paul University Slide Share
 
Work Mrferlazo
Work MrferlazoWork Mrferlazo
Work Mrferlazo
 
Operating Systems (slides)
Operating Systems (slides)Operating Systems (slides)
Operating Systems (slides)
 
Centurion Marketing Overview
Centurion Marketing OverviewCenturion Marketing Overview
Centurion Marketing Overview
 
Componente Terrestre Manta - Manaos
Componente Terrestre Manta - ManaosComponente Terrestre Manta - Manaos
Componente Terrestre Manta - Manaos
 
Philanthropy of Community: Tools for Transforming Giving
Philanthropy of Community: Tools for Transforming GivingPhilanthropy of Community: Tools for Transforming Giving
Philanthropy of Community: Tools for Transforming Giving
 
We Stand By Youth Docx
We Stand By Youth DocxWe Stand By Youth Docx
We Stand By Youth Docx
 
Hidraulika I Pneumatika 1. Pr
Hidraulika I Pneumatika 1. PrHidraulika I Pneumatika 1. Pr
Hidraulika I Pneumatika 1. Pr
 
The Spoils System (andrew jackson)
The Spoils System (andrew jackson)The Spoils System (andrew jackson)
The Spoils System (andrew jackson)
 
Scholastic Graphic Novel Teachers Guide
Scholastic Graphic Novel Teachers GuideScholastic Graphic Novel Teachers Guide
Scholastic Graphic Novel Teachers Guide
 

Similar to Network Basics (slides)

Network Design For Alliance Française de Dhaka
Network Design For Alliance Française de DhakaNetwork Design For Alliance Française de Dhaka
Network Design For Alliance Française de DhakaMD. Naimur Rahman
 
Significance
SignificanceSignificance
SignificanceJulie May
 
1.- Networking Models, Devices.pdf
1.- Networking Models, Devices.pdf1.- Networking Models, Devices.pdf
1.- Networking Models, Devices.pdfOpositorGonzalez1
 
Mobile system overview
Mobile system overviewMobile system overview
Mobile system overviewJack Zheng
 
IRJET- Electronic Notice Board Remotely Operated using Android Phone
IRJET-  	  Electronic Notice Board Remotely Operated using Android PhoneIRJET-  	  Electronic Notice Board Remotely Operated using Android Phone
IRJET- Electronic Notice Board Remotely Operated using Android PhoneIRJET Journal
 
2017 conferencia-uets-mobilecongress l&mp;m
2017 conferencia-uets-mobilecongress l&mp;m2017 conferencia-uets-mobilecongress l&mp;m
2017 conferencia-uets-mobilecongress l&mp;mArgelich Networks
 
Copy of laudon-traver_ec17_ppt_ch03_accessible.pptx
Copy of laudon-traver_ec17_ppt_ch03_accessible.pptxCopy of laudon-traver_ec17_ppt_ch03_accessible.pptx
Copy of laudon-traver_ec17_ppt_ch03_accessible.pptxramidhavsclas
 
UETS – Universal Ethernet Telecommunications Services
UETS – Universal Ethernet Telecommunications ServicesUETS – Universal Ethernet Telecommunications Services
UETS – Universal Ethernet Telecommunications ServicesAgustin Argelich Casals
 
3G Wireless Access, Abstract
3G Wireless Access, Abstract3G Wireless Access, Abstract
3G Wireless Access, AbstractVictoria Burke
 
The infracstructure of information technology in e-commerce
The infracstructure of information technology in e-commerceThe infracstructure of information technology in e-commerce
The infracstructure of information technology in e-commercelynnb22406
 
Design and Implementation of a Low Cost and Resilient Wireless Network for Fi...
Design and Implementation of a Low Cost and Resilient Wireless Network for Fi...Design and Implementation of a Low Cost and Resilient Wireless Network for Fi...
Design and Implementation of a Low Cost and Resilient Wireless Network for Fi...Glenn McKnight
 
PST SC015 Chapter 3 Internet Technology (I) 2017/2018
PST SC015 Chapter 3 Internet Technology (I)  2017/2018PST SC015 Chapter 3 Internet Technology (I)  2017/2018
PST SC015 Chapter 3 Internet Technology (I) 2017/2018Fizaril Amzari Omar
 
Introduction to computer networks ppt download
Introduction to computer networks   ppt downloadIntroduction to computer networks   ppt download
Introduction to computer networks ppt downloadzanetorserwaah
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA Aiman Hud
 
COMPUTER NETWORKS NOTES usefull for computer and elctronics students
COMPUTER NETWORKS NOTES usefull for computer and elctronics studentsCOMPUTER NETWORKS NOTES usefull for computer and elctronics students
COMPUTER NETWORKS NOTES usefull for computer and elctronics studentsGorra Narsimhulu
 
B03504008012
B03504008012B03504008012
B03504008012theijes
 

Similar to Network Basics (slides) (20)

Network Design For Alliance Française de Dhaka
Network Design For Alliance Française de DhakaNetwork Design For Alliance Française de Dhaka
Network Design For Alliance Française de Dhaka
 
Significance
SignificanceSignificance
Significance
 
1.- Networking Models, Devices.pdf
1.- Networking Models, Devices.pdf1.- Networking Models, Devices.pdf
1.- Networking Models, Devices.pdf
 
Mobile system overview
Mobile system overviewMobile system overview
Mobile system overview
 
IRJET- Electronic Notice Board Remotely Operated using Android Phone
IRJET-  	  Electronic Notice Board Remotely Operated using Android PhoneIRJET-  	  Electronic Notice Board Remotely Operated using Android Phone
IRJET- Electronic Notice Board Remotely Operated using Android Phone
 
2017 conferencia-uets-mobilecongress l&mp;m
2017 conferencia-uets-mobilecongress l&mp;m2017 conferencia-uets-mobilecongress l&mp;m
2017 conferencia-uets-mobilecongress l&mp;m
 
Copy of laudon-traver_ec17_ppt_ch03_accessible.pptx
Copy of laudon-traver_ec17_ppt_ch03_accessible.pptxCopy of laudon-traver_ec17_ppt_ch03_accessible.pptx
Copy of laudon-traver_ec17_ppt_ch03_accessible.pptx
 
UETS – Universal Ethernet Telecommunications Services
UETS – Universal Ethernet Telecommunications ServicesUETS – Universal Ethernet Telecommunications Services
UETS – Universal Ethernet Telecommunications Services
 
Final project report
Final project reportFinal project report
Final project report
 
Kumar cscl final
Kumar cscl finalKumar cscl final
Kumar cscl final
 
3G Wireless Access, Abstract
3G Wireless Access, Abstract3G Wireless Access, Abstract
3G Wireless Access, Abstract
 
The infracstructure of information technology in e-commerce
The infracstructure of information technology in e-commerceThe infracstructure of information technology in e-commerce
The infracstructure of information technology in e-commerce
 
Design and Implementation of a Low Cost and Resilient Wireless Network for Fi...
Design and Implementation of a Low Cost and Resilient Wireless Network for Fi...Design and Implementation of a Low Cost and Resilient Wireless Network for Fi...
Design and Implementation of a Low Cost and Resilient Wireless Network for Fi...
 
PST SC015 Chapter 3 Internet Technology (I) 2017/2018
PST SC015 Chapter 3 Internet Technology (I)  2017/2018PST SC015 Chapter 3 Internet Technology (I)  2017/2018
PST SC015 Chapter 3 Internet Technology (I) 2017/2018
 
Introduction to computer networks ppt download
Introduction to computer networks   ppt downloadIntroduction to computer networks   ppt download
Introduction to computer networks ppt download
 
POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA POLITEKNIK MALAYSIA
POLITEKNIK MALAYSIA
 
COMPUTER NETWORKS NOTES.pdf
COMPUTER NETWORKS NOTES.pdfCOMPUTER NETWORKS NOTES.pdf
COMPUTER NETWORKS NOTES.pdf
 
COMPUTER NETWORKS NOTES usefull for computer and elctronics students
COMPUTER NETWORKS NOTES usefull for computer and elctronics studentsCOMPUTER NETWORKS NOTES usefull for computer and elctronics students
COMPUTER NETWORKS NOTES usefull for computer and elctronics students
 
B03504008012
B03504008012B03504008012
B03504008012
 
Ie20303week1
Ie20303week1Ie20303week1
Ie20303week1
 

Recently uploaded

microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfUmakantAnnand
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 

Recently uploaded (20)

microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
 
Staff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSDStaff of Color (SOC) Retention Efforts DDSD
Staff of Color (SOC) Retention Efforts DDSD
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 

Network Basics (slides)

  • 1. A Very Brief Internet Tutorial (I) Introduction Wang Xiaolin April 30, 2015 u wx672ster+net@gmail.com 1 / 197
  • 2. What’s A Computer Network? 2 / 197
  • 3. The History of Internet 1836: Telegraph 1858-1866: Transatlantic cable 1876: Telephone 1957: USSR launches Sputnik 1962-1968: Packet-switching networks developed 1969: Birth of Internet 1971: People communicate over a network 1972: Computers can connect more freely and easily 1973: Global Networking becomes a reality 1974: Packets become mode of transfer 1976: Networking comes to many 1977: E-mail takes off, Internet becomes a reality 1979: News Groups born 1981: Things start to come together 3 / 197
  • 4. 1982: TCP/IP defines future communication 1983: Internet gets bigger 1984: Growth of Internet Continues 1986: Power of Internet Realised 1987: Commercialisation of Internet Born 1989: Large growth in Internet 1990: Expansion of Internet continues 1991: Modernisation Begins 1992: Multimedia changes the face of the Internet 1993: The WWW Revolution truly begins 1994: Commercialisation begins 1995: Commercialisation continues apace 1996: Microsoft enters 4 / 197
  • 5. What’s The Internet? What pops up in your mind if I say “Internet”? 5 / 197
  • 6. What’s The Internet? What pops up in your mind if I say “Internet”? For me, the answer is... and... 5 / 197
  • 7. What’s The Internet? What pops up in your mind if I say “Internet”? For me, the answer is... and... TCP/IP 5 / 197
  • 8. What’s The Internet? ▶ The network of networks. ▶ Tech view: TCP/IP ▶ App view: 6 / 197
  • 9. Philosophy Ten things Google has found to be true 1. Focus on the user and all else will follow. 2. It’s best to do one thing really, really well. 3. Fast is better than slow. 4. Democracy on the web works. 5. You don’t need to be at your desk to need an answer. 6. You can make money without doing evil. 7. There’s always more information out there. 8. The need for information crosses all borders. 9. You can be serious without a suit. 10. Great just isn’t good enough. 7 / 197
  • 10. Philosophy More about... ▶ Software Principles ▶ Google User Experience ▶ No pop-ups ▶ Security 8 / 197
  • 12. Choosing The Right Tools vs. 10 / 197
  • 14. Safe Surfing Advice Take care of your identity and privacy ▶ Use a better browser, and keep it updated ▶ Use a spam filter for emailing ▶ Always use strong passwords ▶ Don’t give away too much personal information on blogs and social networking sites 12 / 197
  • 15. Safe Surfing Advice Protect Your PC ▶ Get anti-virus software, anti-spyware software and a firewall ▶ Keep your computer up to date ▶ Block spam emails ▶ Use an up to date web browser ▶ Make regular backups ▶ Encrypt your wireless network 13 / 197
  • 16. Safe Surfing Advice Avoid online rip-offs ▶ When you’re shopping online, look for clear signs that you’re buying from a reputable company ▶ On an online auction site, learn how it works and learn to pick good sellers ▶ Use safe ways to pay, such as PayPal or credit and debit cards ▶ Use your common sense to avoid scams – if it sounds too good to be true, it probably is 14 / 197
  • 17. Homework 1. get a gmail account 2. recommend a good chrome extension to me via gmail 3. in google plus, share an interesting post to me 4. add your class timetable into google calendar, and then share your calendar to me 5. in youtube, find a video you like and share it to me 15 / 197
  • 18. A Very Brief Internet Tutorial (II) How The Internet Works? Wang Xiaolin April 30, 2015 u wx672ster+net@gmail.com 16 / 197
  • 19. Network Classification ▶ connection method: wired, wireless... ▶ topology ▶ scale ▶ network architecture: c/s, p2p... 17 / 197
  • 21. Scale PAN, LAN, CAN, MAN, WAN ... 19 / 197
  • 22. Topology Ring Mesh Star Fully Connected BusTreeLine 20 / 197
  • 24. Basic Hardware Components IP Router: Link Bridge: Switch: PHY NIC: Repeater: Hub: 22 / 197
  • 25. TCP/IP ---------------------------- | network applications | | | |... | / .. | / ...| | ----- ----- | | |TCP| |UDP| | | ----- ----- | | / | | -------- | | | IP | | | ----- -*------ | | |ARP| | | | ----- | | | | | | ------ | | |ENET| | | ---@-- | ----------|----------------- | ----------------------o--------- Ethernet Cable 23 / 197
  • 26. What’s TCP/IP? A set of protocols designed for the Internet Protocol — a rule, a treaty, an agreement ... 8 CHAPTER 1 • COMPUTER NETWORKS AND THE INTERNET GET http://www.awl.com/kurose-ross TCP connection request Time Time TCP connection reply <file> Hi Got the time? Time Time Hi 2:00 Figure 1.2 A human protocol and a computer network protocol 24 / 197
  • 27. TCP/IP Protocol Stack Every networked computer has it inside +--------------+ +-------------+ +-------------+ | Application | | | | | +--------------+ | | | | | Presentation | | Application | | Application | +--------------+ | | | | | Session | | | | | +--------------+ +-------------+ +-------------+ | Transport | | Transport | | Transport | +--------------+ +-------------+ +-------------+ | Network | | Network | | Network | +--------------+ +-------------+ +-------------+ | Data Link | | Network | | Data Link | +--------------+ | Interface | +-------------+ | Physical | | | | Physical | +--------------+ +-------------+ +-------------+ ISO/OSI RM TCP/IP My Favor 25 / 197
  • 28. Layered Design software processes, hardware devices, or even human beings. In other words, it is he peers that communicate by using the protocol to talk to each other. Layer 5 Layer 4 Layer 3 Layer 2 Layer 1 Host 1 Layer 4/5 interface Layer 3/4 interface Layer 2/3 interface Layer 1/2 interface Layer 5 protocol Layer 5 Layer 4 Layer 3 Layer 2 Layer 1 Host 2 Layer 4 protocol Layer 3 protocol Layer 2 protocol Layer 1 protocol Physical medium Figure 1-13. Layers, protocols, and interfaces. 26 / 197
  • 29. Services vs. Protocols SEC. 1.4 REFERENCE MODELS 41 Layer k Layer k + 1 Layer k - 1 Protocol Service provided by layer k Layer k Layer k + 1 Layer k - 1 Figure 1-19. The relationship between a service and a protocol. 1.4 REFERENCE MODELS Now that we have discussed layered networks in the abstract, it is time to look at some examples. We will discuss two important network architectures: the OSI reference model and the TCP/IP reference model. Although the protocols associ- ated with the OSI model are not used any more, the model itself is actually quite general and still valid, and the features discussed at each layer are still very im- portant. The TCP/IP model has the opposite properties: the model itself is not of much use but the protocols are widely used. For this reason we will look at both Services Protocols Layer to Layer Peer to Peer A set of operations A set of rules (listen, connect, accept, receive, send, disconnect) (message format, message meanings) 27 / 197
  • 30. Layered Design Example Taking an airplane trip source host to destination host in the Internet. But this is not quite the analogy we are after. We are looking for some structure in Figure 1.21. Looking at Figure 1.21, we note that there is a ticketing function at each end; there is also a baggage func- PTER 1 • COMPUTER NETWORKS AND THE INTERNET Ticket (purchase) Baggage (check) Gates (load) Runway takeoff Airplane routing Ticket (complain) Baggage (claim) Gates (unload) Runway landing Airplane routing Airplane routing Figure 1.21 Taking an airplane trip: actionsEach layer 1. has some functions 2. provides services to its upper layer 28 / 197
  • 31. 32 INTRODUCTION CHAP. 1 I like rabbits Location A 3 2 1 3 2 1 Location B Message Philosopher Translator Secretary Information for the remote translator Information for the remote secretary L: Dutch Ik vind konijnen leuk Fax #--- L: Dutch Ik vind konijnen leuk J'aime bien les lapins L: Dutch Ik vind konijnen leuk Fax #--- L: Dutch Ik vind konijnen leuk Figure 1-14. The philosopher-translator-secretary architecture. units, packets, prepending a layer 3 header to each packet. In this example, M is 29 / 197
  • 32. Each protocol is completely independent of the other ones For example ▶ The translators (L2) can switch from Dutch to Finnish without touching L1 or L3 ▶ The secretaries (L1) can switch from email to telephone without disturbing (or even informing) the other layers 30 / 197
  • 33. TCP/IP Overview Basic Structure ---------------------------- | network applications | | | |... | / .. | / ...| | ----- ----- | | |TCP| |UDP| | | ----- ----- | | / | | -------- | | | IP | | | ----- -*------ | | |ARP| | | | ----- | | | | | | ------ | | |ENET| | | ---@-- | ----------|----------------- | ----------------------o--------- Ethernet Cable 1. Where will an incoming Ethernet frame go? ARP: 0x0806 IP: 0x0800 2. Where will an incoming IP packet go? TCP: 0x06 UDP: 0x11 3. Where will an incoming transport message (UDP datagram, TCP segment) go? HTTP FTP SSH SMTP 80 21/20 22 25 31 / 197
  • 34. The Name Of A Unit Of Data Application Message TCP Segment UDP Datagram IP packet Ethernet frame +-------------+ | Application | | message | +-----------+-------------+ | Transport | Application | | header | message | +--------+-------------------------+ | IP | Transport | | header | message | +----------+----------------------------------+ | Ethernet | IP | | header | packet | +---------------------------------------------+ |<------------ Ethernet frame --------------->| 32 / 197
  • 35. Ethernet 1. Frame format? 2. Address format? 3. Broadcast address? 4. CSMA/CD? (Please explain) 33 / 197
  • 36. Ethernet Frame 0 1 2 3 +--------+--------+--------+--------+ | Dst Address | +--------+--------+--------+--------+ | Dst Address | Src Address | +--------+--------+--------+--------+ | Src Address | +--------+--------+--------+--------+ | Length/Type | MAC Data ... | +--------+--------+--------+--------+ | MAC Data ... | | (46 - 1500 bytes) | +--------+--------+--------+--------+ | FCS | +--------+--------+--------+--------+ 34 / 197
  • 37. Ethernet References J. Postel and J.K. Reynolds. Standard for the transmission of IP datagrams over IEEE 802 networks. RFC 1042 (INTERNET STANDARD). Internet Engineering Task Force, Feb. 1988. Wikipedia. Carrier sense multiple access with collision detection — Wikipedia, The Free Encyclopedia. [Online; accessed 11-March-2015]. 2015. Wikipedia. Ethernet frame — Wikipedia, The Free Encyclopedia. [Online; accessed 25-March-2015]. 2015. Wikipedia. Ethernet — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. 35 / 197
  • 38. ARP ARP Looking up the ARP table to find the destination MAC address. Example ARP table IP address Ethernet address 223.1.2.1 08-00-39-00-2F-C3 223.1.2.3 08-00-5A-21-A7-22 223.1.2.4 08-00-10-99-AC-54 36 / 197
  • 39. Where does the ARP table come from? Example ARP Request Sender IP Address 223.1.2.1 Sender Enet Address 08-00-39-00-2F-C3 Target IP Address 223.1.2.2 Target Enet Address FF-FF-FF-FF-FF-FF Example ARP Response Sender IP Address 223.1.2.2 Sender Enet Address 08-00-28-00-38-A9 Target IP Address 223.1.2.1 Target Enet Address 08-00-39-00-2F-C3 37 / 197
  • 40. The updated table IP address Ethernet address 223.1.2.1 08-00-39-00-2F-C3 223.1.2.2 08-00-28-00-38-A9 223.1.2.3 08-00-5A-21-A7-22 223.1.2.4 08-00-10-99-AC-54 38 / 197
  • 41. ARP References D. Plummer. Ethernet Address Resolution Protocol: Or Converting Network Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware. RFC 826 (INTERNET STANDARD). Updated by RFCs 5227, 5494. Internet Engineering Task Force, Nov. 1982. Wikipedia. Address Resolution Protocol — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. 39 / 197
  • 42. IP Router ---------------------------- | network applications | | | |... | / .. | / ...| | ----- ----- | | |TCP| |UDP| | | ----- ----- | | / | | -------- | | | IP | | | ----- -*------ | | |ARP| | | | ----- | | | | | | ------ | | |ENET| | | ---@-- | ----------|----------------- | ----------------------o--------- Ethernet Cable ---------------------------- | network applications | | | |... | / .. | / ...| | ----- ----- | | |TCP| |UDP| | | ----- ----- | | / | | -------- | | | IP | | | ----- -*----*- ----- | | |ARP| | | |ARP| | | ----- | | ----- | | | | / | | ------ ------ | | |ENET| |ENET| | | ---@-- ---@-- | ----------|-------|--------- | | | ---o-------------- | Ethernet Cable 2 ---------------o--- Ethernet Cable 1 Routing Find a route in the route table. 40 / 197
  • 43. Direct Routing—IP is overhead A B C | | | --o------o------o-- Ethernet 1 IP network "development" Addresses in an Ethernet frame for an IP packet from A to B address source destination IP header A B Ethernet header A B 41 / 197
  • 44. Indirect Routing A B C ----D---- E F G | | | | | | | | | --o------o------o------o- | -o------o------o------o-- Ethernet 1 | Ethernet 2 IP network "development" | IP network "accounting" | | | H I J | | | | --o-----o------o------o-- Ethernet 3 IP network "factory" ---------------------------- | network applications | | | |... | / .. | / ...| | ----- ----- | | |TCP| |UDP| | | ----- ----- | | / | | -------- | | | IP | | | ----- -*----*- ----- | | |ARP| | | |ARP| | | ----- | | ----- | | | | / | | ------ ------ | | |ENET| |ENET| | | ---@-- ---@-- | ----------|-------|--------- | | | ---o-------------- | Ethernet Cable 2 ---------------o--- Ethernet Cable 1 42 / 197
  • 45. Addresses in an Ethernet frame for an IP packet from A to E (before D) address source destination IP header A E Ethernet header A D Addresses in an Ethernet frame for an IP packet from A to E (after D) address source destination IP header A E Ethernet header D E A B C ----D---- E F G | | | | | | | | | --o------o------o------o- | -o------o------o------o-- Ethernet 1 | Ethernet 2 IP network "development" | IP network "accounting" 43 / 197
  • 46. IP Module Routing Rules 1. For an outgoing IP packet, entering IP from an upper layer, IP must decide ▶ whether to send the IP packet directly or indirectly, and ▶ IP must choose a lower network interface. These choices are made by consulting the route table. 2. For an incoming IP packet, entering IP from a lower interface, IP must decide ▶ whether to forward the IP packet or pass it to an upper layer. ▶ If the IP packet is being forwarded, it is treated as an outgoing IP packet. 3. When an incoming IP packet arrives it is never forwarded back out through the same network interface. ---------------------------- | network applications | | | |... | / .. | / ...| | ----- ----- | | |TCP| |UDP| | | ----- ----- | | / | | -------- | | | IP | | | ----- -*----*- ----- | | |ARP| | | |ARP| | | ----- | | ----- | | | | / | | ------ ------ | | |ENET| |ENET| | | ---@-- ---@-- | ----------|-------|--------- | | | ---o-------------- | Ethernet Cable 2 ---------------o--- Ethernet Cable 1 44 / 197
  • 47. IP Address Address classes +-+------------+--------------+--------------+--------------+ A: |0| NET <-7-> | LOCAL ADDRESS <-24-> | +-+------------+--------------+--------------+--------------+ +---+----------+--------------+--------------+--------------+ B: |1 0| NET <-14-> | LOCAL ADDRESS <-16-> | +---+----------+--------------+--------------+--------------+ +-----+--------+--------------+--------------+--------------+ C: |1 1 0| NET <-21-> | LOCAL ADDRESS| +-----+--------+--------------+--------------+--------------+ +-----+--------+--------------+--------------+--------------+ D: |1 1 1| Reserved | +-----+--------+--------------+--------------+--------------+ 45 / 197
  • 48. Special IP Addresses ▶ A value of zero in the network field means this network. (source only) ▶ A value of zero in the host field means network address. ▶ 127.x.x.x are loopback address. ▶ 255.255.255.255 is boardcast address. ▶ Private address: ▶ 10.x.x.x ▶ 172.16.x.x∼172.31.x.x ▶ 192.168.x.x ▶ CIDR—Classless Inter-Domain Routing—An IP addressing scheme that replaces the older system based on classes A, B and C. 46 / 197
  • 49. Names People refer to computers by names, not numbers. /etc/hosts 127.0.0.1 localhost 202.203.132.245 cs3.swfc.edu.cn cs3 /etc/networks localnet 202.203.132.192 47 / 197
  • 50. IP Route Table Example IP Route Table wx672@cisd-ftp:~$ route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface localnet * 255.255.255.192 U 0 0 0 eth0 192.168.128.0 * 255.255.252.0 U 0 0 0 eth0 default 202.203.132.254 0.0.0.0 UG 0 0 0 eth0 ∼$ man route 48 / 197
  • 51. Direct Routing Details 223.1.2.1 223.1.2.2 --------- --------- | alpha | | beta | | 1 | | 1 | --------- --------- | | --------o---------------o- Ethernet 1 IP network "development" 223.1.2.0 The route table inside alpha (simplified) network flag router interface development direct 1 49 / 197
  • 52. Direct Scenario Alpha is sending an IP packet to beta...Please describe. 50 / 197
  • 53. Indirect Routing Details 223.1.4.1 223.1.3.1 223.1.2.1 223.1.2.4 223.1.3.2 --------- --------- --------- | alpha | | delta | |epsilon| | 1 | |1 2 3| | 1 | --------- --------- --------- | | | | | --------o---------------o- | -o----------------o-------- Ethernet 1 | Ethernet 2 IP network "Development" | IP network "accounting" 223.1.2 | 223.1.3 | | -------- | | iota | | | 1 | 223.1.4.2 | -------- | | --o--------o-------- Ethernet 3 IP network "factory" 223.1.4 ---------------------------- | network applications | | | |... | / .. | / ...| | ----- ----- | | |TCP| |UDP| | | ----- ----- | | / | | -------- | | | IP | | | ----- -*----*- ----- | | |ARP| | | |ARP| | | ----- | | ----- | | | | / | | ------ ------ | | |ENET| |ENET| | | ---@-- ---@-- | ----------|-------|--------- | | | ---o-------------- | Ethernet Cable 2 ---------------o--- Ethernet Cable 1 51 / 197
  • 54. Indirect Routing Details The route table inside alpha network flag router interface 223.1.2 direct 1 223.1.3 indirect 223.1.2.4 1 223.1.4 indirect 223.1.2.4 1 The route table inside delta network flag router interface 223.1.2 direct 1 223.1.3 direct 3 223.1.4 direct 2 52 / 197
  • 55. Indirect Scenario Alpha is sending an IP packet to epsilon...Please describe. 223.1.4.1 223.1.3.1 223.1.2.1 223.1.2.4 223.1.3.2 --------- --------- --------- | alpha | | delta | |epsilon| | 1 | |1 2 3| | 1 | --------- --------- --------- | | | | | --------o---------------o- | -o----------------o-------- Ethernet 1 | Ethernet 2 IP network "Development" | IP network "accounting" 223.1.2 | 223.1.3 | | -------- | | iota | | | 1 | 223.1.4.2 | -------- | | --o--------o-------- Ethernet 3 IP network "factory" 223.1.4 ---------------------------- | network applications | | | |... | / .. | / ...| | ----- ----- | | |TCP| |UDP| | | ----- ----- | | / | | -------- | | | IP | | | ----- -*----*- ----- | | |ARP| | | |ARP| | | ----- | | ----- | | | | / | | ------ ------ | | |ENET| |ENET| | | ---@-- ---@-- | ----------|-------|--------- | | | ---o-------------- | Ethernet Cable 2 ---------------o--- Ethernet Cable 1 53 / 197
  • 56. Managing The Routes ▶ Manually maintained by administrator ▶ ICMP can report some routing problems ▶ For larger networks, routing protocols are used. 54 / 197
  • 57. IP Packet 0 1 2 3 |-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-| |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options (variable) | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 55 / 197
  • 58. IP References J. Postel. Internet Protocol. RFC 791 (INTERNET STANDARD). Updated by RFCs 1349, 2474, 6864. Internet Engineering Task Force, Sept. 1981. Wikipedia. Internet Protocol — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. Wikipedia. IP address — Wikipedia, The Free Encyclopedia. [Online; accessed 13-March-2015]. 2015. Wikipedia. IPv4 header checksum — Wikipedia, The Free Encyclopedia. [Online; accessed 20-March-2015]. 2015. 56 / 197
  • 60. Why Subnetting? ▶ use of different physical media (such as Ethernet, FDDI, WAN, etc.) ▶ preservation of address space ▶ security ▶ The most common reason is to control network traffic ▶ In an Ethernet, there are collisions and the resulting retransmissions. 58 / 197
  • 61. +-----------------------+----------------------+ | Network Prefix | Host Number | +-----------------------+----------------------+ +--------------------------------+-------------+ | Network Prefix | Subnet | Host Number | +--------------------------------+-------------+ Subnet mask is a bitmask used to identify the network and node parts of the address. Default Subnet Masks Class A 255.0.0.0 11111111.0.0.0 Class B 255.255.0.0 11111111.11111111.0.0 Class C 255.255.255.0 11111111.11111111.11111111.0 59 / 197
  • 62. 2n − 2 Example IP address: 11001010.11001011.10000100.11110001 202.203.132.241 Subnet mask: 11111111.11111111.11111111.11000000 255.255.255.192 ▶ There are 22 − 2 = 2 subnets ▶ Each subnet has 26 − 2 = 62 nodes ▶ Subtract 2? All “0”s and all “1”s. (this is the old story) 60 / 197
  • 63. Subnet Calculator subnetcalc — a free IP subnet calculator Try: ∼$ subnetcalc 202.203.132.244/26 61 / 197
  • 64. Subnetting References T. Pummill and B. Manning. Variable Length Subnet Table For IPv4. RFC 1878 (Historic). Internet Engineering Task Force, Dec. 1995. Y. Rekhter et al. Address Allocation for Private Internets. RFC 1918 (Best Current Practice). Updated by RFC 6761. Internet Engineering Task Force, Feb. 1996. Wikipedia. IPv4 subnetting reference — Wikipedia, The Free Encyclopedia. [Online; accessed 25-March-2015]. 2015. Wikipedia. Private network — Wikipedia, The Free Encyclopedia. [Online; accessed 25-March-2015]. 2015. Wikipedia. Subnetwork — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. 62 / 197
  • 66. CIDR—Classless Inter-Domain Routing CIDR An IP addressing scheme that replaces the older system based on classes A, B and C. 64 / 197
  • 67. Why CIDR? With a new network being connected to the Internet every 30 minutes the Internet was faced with two critical problems: ▶ Running out of IP addresses ▶ Running out of capacity in the global routing tables 65 / 197
  • 68. Running out of IP addresses Using the old addressing scheme, the Internet could support: ▶ 126 Class A networks that could include up to 16,777,214 hosts each ▶ Plus 65,000 Class B networks that could include up to 65,534 hosts each ▶ Plus over 2 million Class C networks that could include up to 254 hosts each only 3% of the assigned addresses were actually being used. 66 / 197
  • 69. Global Routing Tables At Capacity ▶ As the number of networks on the Internet increased, so did the number of routes. ▶ A few years back it was forecasted that the global backbone Internet routers were fast approaching their limit on the number of routes they could support. ▶ Even using the latest router technology, the maximum theoretical routing table size is approximately 60,000 routing table entries. ▶ If nothing was done the global routing tables would have reached capacity by mid-1994 and all Internet growth would be halted. 67 / 197
  • 70. How Were These Problems Solved? Two solutions were developed and adopted by the global Internet community: ▶ Restructuring IP address assignments to increase efficiency ▶ Hierarchical routing aggregation to minimize route table entries 68 / 197
  • 71. Restructuring IP Address Assignments Instead of being limited to network identifiers (or ”prefixes”) of 8, 16 or 24 bits, CIDR currently uses prefixes anywhere from 13 to 27 bits. /27 1/8 of a Class C 32 hosts /26 1/4 of a Class C 64 hosts /25 1/2 of a Class C 128 hosts /24 1 Class C 256 hosts /16 256 Class C 65,536 hosts (= 1 Class B) /13 2,408 Class C 524,288 hosts 69 / 197
  • 72. Hierarchical Routing Aggregation To Minimize Routing Table Entries Route Aggregation a single high-level route entry can represent many lower-level routes in the global routing tables. Similar to the telephone network. 70 / 197
  • 73. User Impacts ▶ The Internet is currently a mixture of both ”CIDR-ized” addresses and old Class A, B and C addresses. ▶ Almost all new routers support CIDR and the Internet authorities strongly encourage all users to implement the CIDR addressing scheme. 71 / 197
  • 74. CIDR References V. Fuller and T. Li. Classless Inter-domain Routing (CIDR): The Internet Address Assignment and Aggregation Plan. RFC 4632 (Best Current Practice). Internet Engineering Task Force, Aug. 2006. Wikipedia. Classless Inter-Domain Routing — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. 72 / 197
  • 76. Why IPv6? No enough addresses! Kidding? We have: ▶ 232 address space ▶ NAT ▶ CIDR No kidding. All gone. ▶ IANA: 31 January 2011 ▶ Asia-Pacific: 15 April 2011 ▶ Europe: 14 September 2012 ▶ Latin America: 10 June 2014 So, we need a larger address space (2128 ) 0 20 40 60 80 100 120 140 160 1996 1998 2000 2002 2004 2006 2008 2010 2012 2014 /8 Date Free /8 IANA RIR pool + IANA 74 / 197
  • 77. Why such a high number of bits? For a larger address space ▶ Think about mobile phones, cars (inside devices), toasters, refrigerators, light switches, and so on… Why not higher? ▶ More bits « bigger header « more overhead ▶ max MTU on Ethernet is 1500 octets min MTU header length overhead (octets) (octets) IPv4 576 20-60 3.4% IPv6 1280 40 3.8% 75 / 197
  • 78. Why not IPv5? 4: is already used for IPv4 5: is reserved for the Stream Protocol (STP, RFC 1819 / Internet Stream Protocol Version 2) (which never really made it to the public) 6: The next free number. Hence IPv6 was born! 76 / 197
  • 79. More than a larger address space (2128 ) ▶ Simplified header makes routing faster ▶ End-to-end connectivity ▶ Auto-configuration ▶ No broadcast ▶ Anycast ▶ Mobility — same IP address everywhere ▶ Network-layer security ▶ Extensibility ▶ and more ... 77 / 197
  • 80. IPv6 Header 0 1 2 3 |-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-| |Version| Traffic Class | Flow Label | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length | Next Header | Hop Limit | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Source Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Destination Address + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 78 / 197
  • 81. IPv6 Extension Header +---------------+------------------------ | IPv6 header | | | TCP header + data | Next Header = | | TCP | +---------------+------------------------ +---------------+----------------+------------------------ | IPv6 header | Routing header | | | | TCP header + data | Next Header = | Next Header = | | Routing | TCP | +---------------+----------------+------------------------ +---------------+----------------+-----------------+----------------- | IPv6 header | Routing header | Fragment header | | | | | fragment of TCP | Next Header = | Next Header = | Next Header = | header + data | Routing | Fragment | TCP | +---------------+----------------+-----------------+----------------- 79 / 197
  • 82. IPv6 Addresses A real life address 3ffe:ffff:0100:f101:0210:a4ff:fee3:9566 « 3ffe:ffff:100:f101:210:a4ff:fee3:9566 More simplifications 3ffe:ffff:100:f101:0:0:0:1 « 3ffe:ffff:100:f101::1 The biggest simplification IPv6 localhost address 0000:0000:0000:0000:0000:0000:0000:0001 « ::1 80 / 197
  • 83. Address types Global unicast addresses begin with [23]xxx e.g. 2001:db8:85a3::8a2e:370:7334 Unique local addresses begin with fc00::/7 e.g. fdf8:f53b:82e4::53 ▶ similiar to private IPs in IPv4 Link local addresses begin with fe80::/64 e.g. fe80::62d8:19ff:fece:44f6/64 ▶ similiar to 169.254.0.0/16 Localhost address ::1 ▶ Similiar to IPv4 with its “127.0.0.1” Multicast addresses begin with ffxy::/8 e.g. ff01::2 Unspecified address :: ▶ Like “any” or “0.0.0.0” in IPv4 Link local Unique local Global unicast 81 / 197
  • 84. Anycast addresses Unicast Multicast Broadcast Anycast 1-to-1 1-to-n 1-to-all 1-to-1 n Anycast ▶ is assigned to more than one interface ▶ a packet sent to an anycast address is routed to the ”nearest” interface having that address ▶ is allocated from the unicast address space 82 / 197
  • 85. IPv6 References S. Deering and R. Hinden. Internet Protocol, Version 6 (IPv6) Specification. RFC 2460 (Draft Standard). Updated by RFCs 5095, 5722, 5871, 6437, 6564, 6935, 6946, 7045, 7112. Internet Engineering Task Force, Dec. 1998. R. Hinden and S. Deering. IP Version 6 Addressing Architecture. RFC 4291 (Draft Standard). Updated by RFCs 5952, 6052, 7136, 7346, 7371. Internet Engineering Task Force, Feb. 2006. Wikipedia. IPv6 address — Wikipedia, The Free Encyclopedia. [Online; accessed 13-March-2015]. 2015. Wikipedia. IPv6 packet — Wikipedia, The Free Encyclopedia. [Online; accessed 15-March-2015]. 2015. Wikipedia. IPv6 — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. 83 / 197
  • 86. NAT & Packet Filtering 84 / 197
  • 87. Network Address Translation (NAT) 40.30.20.10 192.168.1.1 192.168.1.4 192.168.1.3 192.168.1.2 Internet 12.13.14.15 Src IP Src Port NAT Router IP Port 192.168.1.2 3456 12.13.14.15 1 192.168.1.3 6789 12.13.14.15 2 192.168.1.3 8910 12.13.14.15 3 192.168.1.4 3750 12.13.14.15 4 85 / 197
  • 88. What’s A Packet Filter? A packet filter is a piece of software which looks at the header of packets as they pass through, and decides the fate of the entire packet. It might decide to ▶ DROP the packet (i.e., discard the packet as if it had never received it), ▶ ACCEPT the packet (i.e., let the packet go through), or ▶ something more complicated. 86 / 197
  • 89. Packet Filter Under Linux iptables talks to the kernel and tells it what packets to filter. The iptables tool inserts/deletes rules from the kernel’s packet filtering table. 87 / 197
  • 90. Quick Start Debian/Ubuntu users can do: stud@debian:~$ sudo apt-get install iptables stud@debian:~$ stud@debian:~$ sudo iptables -A INPUT -s 147.8.212.123 -p all -j DROP stud@debian:~$ stud@debian:~$ sudo iptables -D INPUT -s 147.8.212.123 -p all -j DROP stud@debian:~$ stud@debian:~$ man iptables stud@debian:~$ stud@debian:~$ google-chrome http://www.netfilter.org/documentation/ stud@debian:~$ 88 / 197
  • 91. Terminology Filter table is in the kernel, contains chains. Chains a.k.a. firewall chains, are lists of filtering rules. The three kernel built-in chains are called INPUT, OUTPUT, and FORWARD. Rules Each rule says: if the packet header looks like this then here’s what to do with the packet 89 / 197
  • 92. How Chains Work? FORWARD Routing Decision INPUT Local Process OUTPUT Local Process Incoming Outgoing 90 / 197
  • 93. Using iptables To manage whole chains: 1. Create a new chain (-N). 2. Delete an empty chain (-X). 3. Change the policy for a built-in chain. (-P). 4. List the rules in a chain (-L). 5. Flush the rules out of a chain (-F). 6. Zero the packet and byte counters on all rules in a chain (-Z). To manipulate rules inside a chain: 1. Append a new rule to a chain (-A). 2. Insert a new rule at some position in a chain (-I). 3. Replace a rule at some position in a chain (-R). 4. Delete a rule at some position in a chain, or the first that matches (-D). 91 / 197
  • 94. Examples stud@debian:~$ ping -c 1 127.0.0.1 stud@debian:~$ stud@debian:~$ sudo iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP stud@debian:~$ stud@debian:~$ ping -c 1 127.0.0.1 stud@debian:~$ stud@debian:~$ sudo iptables -D INPUT -s 127.0.0.1 -p icmp -j DROP stud@debian:~$ stud@debian:~$ sudo iptables -A INPUT -s ! 127.0.0.1 -p all -j DROP stud@debian:~$ stud@debian:~$ sudo iptables -A INPUT -s 192.168.1.0/24 -p all -j DROP stud@debian:~$ 92 / 197
  • 95. More Examples ~$ # Syn-flood protection: ~$ sudo iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT ~$ ~$ # Furtive port scanner: ~$ sudo iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT ~$ ~$ # Ping of death: ~$ sudo iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT ~$ 93 / 197
  • 97. +-------------+ | | | | | Application | | | | | +-------------+ | Transport | +-------------+ | Network | Routers +-------------+ | Data Link | Bridges/Switches +-------------+ | Physical | Repeaters/Hubs +-------------+ 95 / 197
  • 98. Repeater, Hub Repeater connects network segments at the physical layer. Hub a multi-port repeater ▶ simple, cheap ▶ Repeaters/Hubs do NOT isolate collision domains. ▶ 100m maximum 96 / 197
  • 99. Bridge, Switch Bridge connects multiple network segments at the data link layer (layer 2) Switch a multi-port bridge Transparent bridging Uses a forwarding database to send frames across network segments ▶ Learning ▶ Flooding ▶ Forwarding ▶ Filtering ▶ Aging 97 / 197
  • 100. Redundancy Eliminating the single point of failure A CB SegmentA Segment B Segment C 98 / 197
  • 101. Broadcast storm Resulting in potentially severe network congestion A CB SegmentA Segment B Segment CNode B Node A 99 / 197
  • 102. Spanning Tree Protocol (STP) is a network protocol that ensures a loop-free topology for any bridged Ethernet local area network. 100 / 197
  • 103. Router Router connects two or more logical subnets at the network layer (layer 3) Routing is to find a route in the route table ---------------------------- | network applications | | | |... | / .. | / ...| | ----- ----- | | |TCP| |UDP| | | ----- ----- | | / | | -------- | | | IP | | | ----- -*----*- ----- | | |ARP| | | |ARP| | | ----- | | ----- | | | | / | | ------ ------ | | |ENET| |ENET| | | ---@-- ---@-- | ----------|-------|--------- | | | ---o-------------- | Ethernet Cable 2 ---------------o--- Ethernet Cable 1 101 / 197
  • 104. Bridging vs. Routing Bridging Routing L2 L3 MAC addr.(local) IP addr.(global) intranet internet Forwarding DB Routing table relearn, flooding more efficient ▶ to put multiple segments into one bridged network, or ▶ to divide it into different networks interconnected by routers 102 / 197
  • 105. More About Networking Devices Wikipedia. LAN switching — Wikipedia, The Free Encyclopedia. [Online; accessed 23-March-2015]. 2015. Wikipedia. Network switch — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. Wikipedia. Router (computing) — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. Wikipedia. Routing table — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. 103 / 197
  • 106. Transport Protocols TCP & UDP Wang Xiaolin April 30, 2015 u wx672ster+net@gmail.com 104 / 197
  • 107. ¤ vs. u Circuit switching guaranteed performance fast transfers (once circuit is established) wastes bandwidth if traffic is “bursty” connection setup adds delay recovery from failure is slow Packet switching no guaranteed performance header overhead per packet queues and queuing delay efficient use of bandwidth no connection setup can “route around trouble” 105 / 197
  • 108. IP: host «« host TCP/UDP: process «« process IP provides unreliable service Best-effort delivery service doesn’t guarantee ? segment delivery ? orderly delivery of segments ? the integrity of the data in the segments TCP provides reliable data transfer Reliable means correctly and orderly. correctness — acknowledgement, checksum order — sequence numbers packet lost — timers flow control — sliding window congestion control 106 / 197
  • 109. A TCP Connection wx672@cs3:~$ netstat -at | grep http | grep ESTAB tcp 0 0 cs3.swfu.edu.cn:http 220.163.96.3:47179 ESTABLISHED address port address port socket socket a pair of sockets form a TCP connection Port numbers port range 0 ∼ 65535 well-known ports 0 ∼ 1023 FTP 20/21 SSH 22 Telnet 23 SMTP 25 DNS 53 DHCP 67/68 HTTP 80 POP3 110 HTTPS 443 IMAP4 143 107 / 197
  • 110. TCP Header 0 1 2 3 |-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-| | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | | | |N|C|E|U|A|P|R|S|F| | | Offset|0|0|0| |W|C|R|C|S|S|Y|I| Window | | | | | |S|R|E|G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 108 / 197
  • 111. Establishing a TCP Connection SEC. 6.5 THE INTERNET TRANSPORT PROTOCOLS: TCP 561Time Host 1 Host 2 SYN (SEQ = y, ACK = x + 1) SYN (SEQ = x) (SEQ = x + 1, ACK = y + 1) Host 1 Host 2 SYN (SEQ = y, ACK = x + 1) SYN (SEQ = x) SYN (SEQ = y) SYN (SEQ = x , ACK = y + 1) (a) (b) Figure 6-37. (a) TCP connection establishment in the normal case. (b) Simul- taneous connection establishment on both sides. In the event that two hosts simultaneously attempt to establish a connection between the same two sockets, the sequence of events is as illustrated in Fig. 6-109 / 197
  • 112. Closing a TCP Connection 110 / 197
  • 113. tcpdump output ∼$ tcpdump -S -i lo 12:47:09.106903 IP localhost.37831 > localhost.3333: Flags [S], seq 2485057335, win 32792, ..., length 0 12:47:09.106923 IP localhost.3333 > localhost.37831: Flags [S.], seq 2476477986, ack 2485057336, win 32768, ..., length 0 12:47:09.106936 IP localhost.37831 > localhost.3333: Flags [.], ack 2476477987, win 257, ..., length 0 12:47:26.963149 IP localhost.37831 > localhost.3333: Flags [F.], seq 2485057336, ack 2476477987, win 257, ..., length 0 12:47:26.963244 IP localhost.3333 > localhost.37831: Flags [F.], seq 2476477987, ack 2485057337, win 256, ..., length 0 12:47:26.963264 IP localhost.37831 > localhost.3333: Flags [.], ack 2476477988, win 257, ..., length 0 111 / 197
  • 114. State Transition Diagram CLOSED LISTEN SYN_RCVD SYN_SENT ESTABLISHED FIN_WAIT_1 CLOSE_WAIT FIN_WAIT_2 CLOSING TIME_WAIT LAST_ACK data transfer state starting point 2MSL timeout passive open active open simultaneous close appl: passive open send: <nothing> appl:activeopen send:SYN appl: send data send: SYN recv: SYN; send: SYN, ACK recv: RST timeout send: RST recv: SYN send: SYN, ACK simultaneous open recv: SYN , A CK send: A CK appl: close send: FIN recv: ACK send: <nothing> recv: FIN send: ACK recv: ACK send: <nothing> recv: FIN , A CK send: A CK recv: A CK send: <nothing> appl: close send: FIN recv: FIN send: ACK recv: FIN send: ACK appl: close send: FIN appl: close or timeout recv: ACK send: <nothing> active close passive close normal transitions for client normal transitions for server appl: state transitions taken when application issues operation recv: state transitions taken when segment received send: what is sent for this transition
  • 115. netstat ∼$ netstat -nta ∼$ netstat -ntap ∼$ netstat -ntape ∼$ netstat -ntap | grep ESTAB ∼$ netstat -nlp | grep :80 ∼$ netstat -nr ∼$ netstat -ie ∼$ man netstat 113 / 197
  • 116. Sliding Window 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Send first 8 segments Receive first 3 acknowledgements Send next 3 segments The sliding window serves several purposes: ▶ it guarantees the reliable delivery of data ▶ it ensures that the data is delivered in order ▶ it enforces flow control between the sender and the receiver. 114 / 197
  • 117. Application does a 2-KB write Application does a 2-KB write Application reads 2 KB Sender is blocked Sender may send up to 2-KB Receiver’s buffer 0 4 KB 2 KB 2 KB Empty Full 2 KB SEQ = 0 2 KB SEQ = 2048 1 KB SEQ = 4096 ACK = 2048 WIN = 2048 ACK = 4096 WIN = 0 ACK = 4096 WIN = 2048 2 KB1 KB Sender Receiver 115 / 197
  • 119. Packet Lost? Go-Back-N send pkt0 send pkt1 send pkt2 send pkt3 (wait) rcv ACK0 send pkt4 rcv ACK1 send pkt5 send pkt2 send pkt3 send pkt4 send pkt5 pkt2 timeout rcv pkt0 send ACK0 rcv pkt1 send ACK1 rcv pkt3, discard send ACK1 rcv pkt4, discard send ACK1 rcv pkt5, discard send ACK1 rcv pkt2, deliver send ACK2 rcv pkt3, deliver send ACK3 X (loss) 117 / 197
  • 120. ACK lost? the retransmitted segment. Time Time Host A Host B Timeout Seq=92, 8 bytes data Seq=92, 8 bytes data ACK=100 ACK=100 X (loss) 118 / 197
  • 121. Time Time Host A Host B Seq=92 timeout interval Seq=92, 8 bytes data Seq=100, 20 bytes data ACK=100 ACK=120 X (loss)
  • 122. Selective-repeat 3.4 • PRINCIPLES OF RELIABLE DATA TRANSFER 225 send_base nextseqnum Window size N Key: Key: Already ACK’d Sent, not yet ACK’d Usable, not yet sent Not usable Out of order (buffered) but already ACK’d Expected, not yet received Acceptable (within window) Not usable a. Sender view of sequence numbers b. Receiver view of sequence numbers rcv_base Window size N Figure 3.23 Selective-repeat (SR) sender and receiver views of sequence-number space 120 / 197
  • 123. pkt0 rcvd, delivered, ACK0 sent 0 1 2 3 4 5 6 7 8 9 pkt1 rcvd, delivered, ACK1 sent 0 1 2 3 4 5 6 7 8 9 pkt3 rcvd, buffered, ACK3 sent 0 1 2 3 4 5 6 7 8 9 pkt4 rcvd, buffered, ACK4 sent 0 1 2 3 4 5 6 7 8 9 pkt5 rcvd; buffered, ACK5 sent 0 1 2 3 4 5 6 7 8 9 pkt2 rcvd, pkt2,pkt3,pkt4,pkt5 delivered, ACK2 sent 0 1 2 3 4 5 6 7 8 9 pkt0 sent 0 1 2 3 4 5 6 7 8 9 pkt1 sent 0 1 2 3 4 5 6 7 8 9 pkt2 sent 0 1 2 3 4 5 6 7 8 9 pkt3 sent, window full 0 1 2 3 4 5 6 7 8 9 ACK0 rcvd, pkt4 sent 0 1 2 3 4 5 6 7 8 9 ACK1 rcvd, pkt5 sent 0 1 2 3 4 5 6 7 8 9 pkt2 TIMEOUT, pkt2 resent 0 1 2 3 4 5 6 7 8 9 ACK3 rcvd, nothing sent 0 1 2 3 4 5 6 7 8 9 X (loss) Sender Receiver
  • 124. UDP Datagram 0 7 8 15 16 23 24 31 +--------+--------+--------+--------+ | Source | Destination | | Port | Port | +--------+--------+--------+--------+ | | | | Length | Checksum | +--------+--------+--------+--------+ | | data octets ... +---------------- ... 122 / 197
  • 125. TCP/UDP References J. Postel. Transmission Control Protocol. RFC 793 (INTERNET STANDARD). Updated by RFCs 1122, 3168, 6093, 6528. Internet Engineering Task Force, Sept. 1981. J. Postel. User Datagram Protocol. RFC 768 (INTERNET STANDARD). Internet Engineering Task Force, Aug. 1980. Wikipedia. Checksum — Wikipedia, The Free Encyclopedia. [Online; accessed 24-February-2015]. 2015. Wikipedia. Transmission Control Protocol — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. Wikipedia. User Datagram Protocol — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. 123 / 197
  • 127. UDPClient.py I 1 from socket import * 2 serverName = 'hostname' 3 serverPort = 12000 4 clientSocket = socket(AF_INET, SOCK_DGRAM) 5 message = raw_input('Input lowercase sentence:') 6 clientSocket.sendto(message,(serverName, serverPort)) 7 modifiedMessage, serverAddress = clientSocket.recvfrom(2048) 8 print modifiedMessage 9 clientSocket.close() socket(AF_INET, SOCK_DGRAM) ▶ AF_INET: using IPv4 ▶ SOCK_DGRAM: UDP socket ▶ clientPort will be generated automatically 125 / 197
  • 128. UDPClient.py II clientSocket.sendto(message,(serverName, serverPort)) 1. attaches both the destination address (serverName, serverPort) and the source address (clientIP, clientPort) to the message 2. send the message modifiedMessage, serverAddress = clientSocket.recvfrom(2048) 1. puts the received message data into modifiedMessage 2. puts the source address (IP, Port) into serverAddress ▶ 2048: buffer size 126 / 197
  • 129. UDPServer.py 1 from socket import * 2 serverPort = 12000 3 serverSocket = socket(AF_INET, SOCK_DGRAM) 4 serverSocket.bind(('', serverPort)) 5 print "The server is ready to receive" 6 while 1: 7 message, clientAddress = serverSocket.recvfrom(2048) 8 modifiedMessage = message.upper() 9 serverSocket.sendto(modifiedMessage, clientAddress) serverSocket.bind(('', serverPort)) ▶ explicitly assigns 12000 to the server’s socket 127 / 197
  • 130. TCP Sockets Two Sockets at the Server PTER 2 • APPLICATION LAYER Client process Server process Client socket Welcoming socket Three-way handshake Connection socket bytes bytes Figure 2.29 The TCPServer process has two sockets 128 / 197
  • 131. TCPClient.py 1 from socket import * 2 serverName = 'servername' 3 serverPort = 12000 4 clientSocket = socket(AF_INET, SOCK_STREAM) 5 clientSocket.connect((serverName,serverPort)) 6 sentence = raw_input('Input lowercase sentence:') 7 clientSocket.send(sentence) 8 modifiedSentence = clientSocket.recv(1024) 9 print 'From Server:', modifiedSentence 10 clientSocket.close() ▶ SOCK_STREAM: TCP socket ▶ connect(): initiate the TCP connection (3-way handshake) ▶ send(): send out sentence through the client’s socket. No destination address needs to be specified 129 / 197
  • 132. TCPServer.py 1 from socket import * 2 serverPort = 12000 3 serverSocket = socket(AF_INET,SOCK_STREAM) 4 serverSocket.bind(('',serverPort)) 5 serverSocket.listen(1) 6 print 'The server is ready to receive' 7 while 1: 8 connectionSocket, addr = serverSocket.accept() 9 sentence = connectionSocket.recv(1024) 10 capitalizedSentence = sentence.upper() 11 connectionSocket.send(capitalizedSentence) 12 connectionSocket.close() ▶ serverSocket: the welcoming socket ▶ connectionSocket: a socket dedicated to this particular client ▶ listen(backlog): the server listens for connection requests. ▶ backlog: how many non-accept()-ed connections are allowed to be queueing ▶ accept(): whenever a connection request coming, creates a new connectionSocket (handshaking is done here) 130 / 197
  • 133. Socket References B. Hall. Beej’s Guide to Network Programming: Using Internet Sockets. 2012. Wikipedia. Network socket — Wikipedia, The Free Encyclopedia. [Online; accessed 23-February-2015]. 2015. 131 / 197
  • 134. Application Layer Protocols Wang Xiaolin April 30, 2015 u wx672ster+net@gmail.com 132 / 197
  • 136. Apache HTTP Server HTTP Request (URL + Verb) HTTP Response (Status code + Message body) 134 / 197
  • 137. HTTP Request URL http://en.wikipedia.org/w/index.php?title=Hello&oldid=636846770 protocol host resource path query ~$ curl -v cs2.swfu.edu.cn/index.html * Connected to cs2.swfu.edu.cn (202.203.132.242) port 80 > GET /index.html HTTP/1.1 > User-Agent: curl/7.38.0 > Host: cs2.swfu.edu.cn > Accept: */* > Request line Empty line } Header lines Verbs GET POST PUT PATCH HEAD OPTIONS DELETE TRACE CONNECT 135 / 197
  • 138. HTTP Response < HTTP/1.1 200 OK < Date: Thu, 15 Jan 2015 08:18:50 GMT < Server: Apache/2.4.10 (Debian) < Last-Modified: Tue, 02 Sep 2014 03:49:24 GMT < ETag: "1fd-5020d015e5e4a" < Accept-Ranges: bytes < Content-Length: 509 < Vary: Accept-Encoding < Content-Type: text/html < <html> <head> <title>Hello, world!</title> </head> <body> <h1>Hello, world!</h1> </body> </html> * Connection #0 to host cs2.swfu.edu.cn left intact Status line Header lines    Empty line Data    136 / 197
  • 139. Status Codes 1xx Informational Messages e.g. 104 Connection Reset by Peer 2xx Successful e.g. 200 OK 3xx Redirection e.g. 301 Moved Permanently 4xx Client Error e.g. 404 Not Found 5xx Server Error e.g. 500 Internal Server Error 137 / 197
  • 140. HTTP Transaction Non-persistent — separate TCP connection DNS Lookup Connect Send Wait Load DNS Server Web Server DNSquery IPaddress SYN SYN,ACK ACK HTTPrequest HTTP response 1 stsegment2 ndsegment PSH ACK 3 rdsegment HTTP_Continue FIN 138 / 197
  • 141. Persistent — same TCP connection DNS Lookup Connect Send Wait Load Send Wait Load DNS Server Web Server Request I Request II DNSquery IPaddress SYN SYN,ACK ACK HTTPrequest HTTP response 139 / 197
  • 142. Stateless Protocol A HTTP server maintains no information about the clients. Advantages ▶ Simplifies server design ▶ Save server resources (RAM...) ▶ Serve more users Disadvantages ▶ Missing information 140 / 197
  • 143. Keeping User State With Cookies 2.2 • THE WEB AND HTTP 109 Client host Server host usual http request msg usual http response Set-cookie: 1678 usual http request msg cookie: 1678 usual http response msg usual http request msg cookie: 1678 usual http response msg Time One week later ebay: 8734 Server creates ID 1678 for user Time Cookie file Key: amazon: 1678 ebay: 8734 amazon: 1678 ebay: 8734 Cookie-specific action access access entry in backend database Cookie-specific action Figure 2.10 Keeping user state with cookies 141 / 197
  • 144. HTTP/2 Quoted from http://http2.github.io/faq/ ▶ is binary, instead of textual ▶ is fully multiplexed, instead of ordered and blocking ▶ can therefore use one connection for parallelism ▶ uses header compression to reduce overhead ▶ allows servers to “push”responses proactively into client caches Feb 2015 (Planned) Publish HTTP/2 as an RFC Try it: chrome://flags/#enable-spdy4 142 / 197
  • 145. HTML 1 <html> 2 <head> 3 <title>Hello, world!</title> 4 </head> 5 <body> 6 <H1>Hello, world!</H1> 7 </body> 8 </html> 143 / 197
  • 147. HTTP References I R. Fielding, Y. Lafon, and J. Reschke. Hypertext Transfer Protocol (HTTP/1.1): Range Requests. RFC 7233 (Proposed Standard). Internet Engineering Task Force, June 2014. R. Fielding, M. Nottingham, and J. Reschke. Hypertext Transfer Protocol (HTTP/1.1): Caching. RFC 7234 (Proposed Standard). Internet Engineering Task Force, June 2014. R. Fielding and J. Reschke. Hypertext Transfer Protocol (HTTP/1.1): Authentication. RFC 7235 (Proposed Standard). Internet Engineering Task Force, June 2014. R. Fielding and J. Reschke. Hypertext Transfer Protocol (HTTP/1.1): Conditional Requests. RFC 7232 (Proposed Standard). Internet Engineering Task Force, June 2014. 145 / 197
  • 148. HTTP References II R. Fielding and J. Reschke. Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing. RFC 7230 (Proposed Standard). Internet Engineering Task Force, June 2014. R. Fielding and J. Reschke. Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. RFC 7231 (Proposed Standard). Internet Engineering Task Force, June 2014. R. Fielding et al. Hypertext Transfer Protocol – HTTP/1.1. RFC 2616 (Draft Standard). Obsoleted by RFCs 7230, 7231, 7232, 7233, 7234, 7235, updated by RFCs 2817, 5785, 6266, 6585. Internet Engineering Task Force, June 1999. Wikipedia. HTML — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. 146 / 197
  • 149. HTTP References III Wikipedia. HTTP cookie — Wikipedia, The Free Encyclopedia. [Online; accessed 22-February-2015]. 2015. Wikipedia. HTTP/2 — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. Wikipedia. Hypertext Transfer Protocol — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. Wikipedia. LAMP (software bundle) — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. Wikipedia. Stateless protocol — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. 147 / 197
  • 151. Names and Addresses RFC 791, page 7: A name indicates what we seek. An address indicates where it is. A route indicates how to get there. ▶ A name (hostname) can be assigned to any device that has an IP address. ▶ The network software doesn’t require names, but they do make it easier for humans to use the network. 149 / 197
  • 152. $ ssh username@cs3.swfu.edu.cn SSH TCP resolver cs3.swfu.edu.cn establish connection with IP address cs3.swfu.edu.cn 202.203.132.245 ▶ Resolver is normally part of the application ▶ The TCP/IP protocols within the kernel know nothing about the DNS 150 / 197
  • 153. Typical Configuration Local Host | Foreign | +---------+ +----------+ | +--------+ | | user queries | |queries | | | | User |-------------->| |---------|->|Foreign | | Program | | Resolver | | | Name | | |<--------------| |<--------|--| Server | | | user responses| |responses| | | +---------+ +----------+ | +--------+ | A | cache additions | | references | V | | +----------+ | | cache | | +----------+ | 151 / 197
  • 154. The DNS Name Space Is Hierarchical The domain hierarchy is similar to the UNIX filesystem int mil n e t com edu gov org us uk cn jp de ... google yale mit whitehouse wikipedia com gov edu n e t org ... mail calendar maps docs reader plus ocw swfc ynu kmust pku tsinghua ... lib jwc cs2 cs3 ... ▶ Organizational: com, edu, gov, mil, net, org, int ▶ Geographic: cn, us, uk, jp, de, etc. 152 / 197
  • 155. Translating Names Into Addresses Two common ways: Host table The old way. /etc/hosts DNS A distributed database system — Domain Name Service (DNS) 153 / 197
  • 156. The Host Table /etc/hosts 127.0.0.1 localhost 202.203.132.245 cs3.swfu.edu.cn cs3 202.203.132.242 cs2.swfu.edu.cn cs2 It’s still widely used, because: ▶ The important hosts on the local network ▶ In case DNS is not running ▶ NIS host database ▶ Local intranet 154 / 197
  • 157. All hosts connected to the Internet should use DNS The old host table system is inadequate for the global Internet for two reasons: 1. inability to scale 2. lack of an automated update process. Old story Prior to adopting DNS, the Network Information Center (NIC) maintained a large table of Internet hosts called the NIC host table. Hosts included in the table were called registered hosts, and the NIC placed hostnames and addresses into this file for all sites on the Internet. 155 / 197
  • 158. Domain Name System ▶ Scales well ▶ Doesn’t rely on a single large table ▶ Distributed database system that doesn’t bog down as the database grows DNS currently provides information on approximately 16,000,000 hosts, while less than 10,000 are listed in the host table. ▶ Guarantees that new host information will be disseminated to the rest of the network as it is needed 156 / 197
  • 159. DNS softwares DNS resolver DNS server DNS query DNS response The resolver asks the questions. The name server answers the questions. 157 / 197
  • 160. With DNS, information is automatically disseminated, and only to those who are interested. ▶ If a DNS server receives a request for information about a host for which it has no information, it passes on the request to an authoritative server. An authoritative server is any server responsible for maintaining accurate information about the domain being queried. ▶ When the authoritative server answers, the local server saves (caches) the answer for future use. ▶ The next time the local server receives a request for this information, it answers the request itself. 158 / 197
  • 161. Resource Records What’s associated with a domain name? Type Meaning Value A IP address of a host 32-bit integer NS Name Server Name of a server for this domain MX Mail eXchange Priority, domain willing to accept email HINFO Host INFOrmation CPU and OS in ASCII CNAME Canonical NAME Domain name PTR PoinTeR Alias for an IP address When a resolver gives a domain name to DNS, what it gets back are the resource records associated with that name. 159 / 197
  • 162. Resource Records Example wx672@cs2:~$ host -a mirrors.ustc.edu.cn Trying "mirrors.ustc.edu.cn" ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4421 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 2, ADDITIONAL: 4 ;; QUESTION SECTION: ;mirrors.ustc.edu.cn. IN ANY ;; ANSWER SECTION: mirrors.ustc.edu.cn. 600 IN AAAA 2001:da8:d800:95::110 mirrors.ustc.edu.cn. 600 IN A 202.38.95.110 mirrors.ustc.edu.cn. 594 IN NS f1g1ns2.dnspod.net. mirrors.ustc.edu.cn. 594 IN NS f1g1ns1.dnspod.net. ;; AUTHORITY SECTION: mirrors.ustc.edu.cn. 594 IN NS f1g1ns1.dnspod.net. mirrors.ustc.edu.cn. 594 IN NS f1g1ns2.dnspod.net. ;; ADDITIONAL SECTION: f1g1ns1.dnspod.net. 33536 IN A 111.30.132.180 f1g1ns1.dnspod.net. 33536 IN A 113.108.80.138 f1g1ns2.dnspod.net. 33536 IN A 101.226.30.224 f1g1ns2.dnspod.net. 33536 IN A 112.90.82.194 Received 323 bytes from 202.203.132.100#53 in 6598 ms 160 / 197
  • 163. Recursive Query flits.cs.vu.nl wants to know the IP address of linda.cs.yale.edu Originator VU CS name server Yale name server Yale CS name server Edu name server cs.vu.nl edu-server.net yale.edu cs.yale.eduflits.cs.vu.nl 1 8 2 7 3 6 4 5 Fig. 7-5. How a resolver looks up a remote name in eight steps. 161 / 197
  • 164. Non-recursive Query The remote server tells the local server who to ask next Local DNS server (dns.swfu.edu.cn) almond.nuts.com Root DNS server (dns.edu.cn) pack.plant.nuts.com sale.plant.nuts.com plant.nuts.com NS pack.plant.nuts.com sale.plant.nuts.com nuts.com NS almond.nuts.com sale.plant.nuts.com sale.plant.nuts.com A 172.16.6.4 162 / 197
  • 165. DNS Message Format 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ DNS | ID | message +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +------------+ |QR| Opcode |AA|TC|RD|RA| Z | RCODE | | Header | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +------------+ | QDCOUNT | | Question | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +------------+ | ANCOUNT | | Answer | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +------------+ | NSCOUNT | | Authority | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +------------+ | ARCOUNT | | Additional | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ +------------+ 163 / 197
  • 166. wx672@debian:~$ host -a cs2.swfu.edu.cn ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22237 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;cs2.swfu.edu.cn. IN ANY ;; ANSWER SECTION: cs2.swfu.edu.cn. 3600 IN A 202.203.132.242 Received 49 bytes from 127.0.0.1#53 in 1161 ms Flags qr: Query-Response 0: query 1: response rd: Recursion Desired ra: Recursion Available 164 / 197
  • 167. tcpdump wx672@debian:~$ host -a cs2.swfu.edu.cn wx672@debian:~$ sudo tcpdump -i wlan0 -n port 53 09:30:29.860901 IP 192.168.1.109.34075 > 114.114.115.115.53: 34035+ ANY? cs2.swfu.edu.cn. (33) 09:30:29.979390 IP 114.114.115.115.53 > 192.168.1.109.34075: 34035 1/0/0 A 202.203.132.242 (49) 34035 – id + – rd=1 ANY? – query type 33/49 – UDP payload length 1/0/0 – 1 answer RR; 0 authority RR; 0 additional RR. A – IPv4 address 165 / 197
  • 168. Name Servers The three main categories of name servers are: Primary server: gets its information from a disk file ▶ It has complete information about its domain and its response is always accurate. Secondary server: obtains all the information from the primary ▶ It’s a backup server Caching-only server: it just remembers the answers to previous lookups in case the same lookup is performed again. 166 / 197
  • 169. DNS References P.V. Mockapetris. Domain names - concepts and facilities. RFC 1034 (INTERNET STANDARD). Updated by RFCs 1101, 1183, 1348, 1876, 1982, 2065, 2181, 2308, 2535, 4033, 4034, 4035, 4343, 4035, 4592, 5936. Internet Engineering Task Force, Nov. 1987. P.V. Mockapetris. Domain names - implementation and specification. RFC 1035 (INTERNET STANDARD). Updated by RFCs 1101, 1183, 1348, 1876, 1982, 1995, 1996, 2065, 2136, 2181, 2137, 2308, 2535, 2673, 2845, 3425, 3658, 4033, 4034, 4035, 4343, 5936, 5966, 6604. Internet Engineering Task Force, Nov. 1987. Wikipedia. Domain Name System — Wikipedia, The Free Encyclopedia. [Online; accessed 23-April-2015]. 2015. 167 / 197
  • 171. E-mail Protocols Proprietary protocols: Microsoft: Outlook client ⇐⇒ Exchange server IBM: Notes client ⇐⇒ Domino server Open standards: SMTP: Simple Mail Transfer Protocol, RFC2821 POP3: Post Office Protocol, RFC1939 MIME: Multipurpose Internet Mail Extensions, RFC2045, RFC2046, RFC2047, RFC2048, RFC2049 IMAP4: Interactive Mail Access Protocol, RFC3501 169 / 197
  • 172. SMTP Transports A Mail Object A Mail Object a mail object a mail envelope mail content an orig_addr rcpt_addrs ... headers body orig-date from to ... 170 / 197
  • 173. A Physical Mail Immanuel Kant (Dr.) K¨onigsberg, Prussia German March 1, 2015 Dr. Whoever Department of Unknown, University of Whatever, London, SE18 3AB UK Dear Dr. Whoever, As any dedicated reader can clearly see, the Ideal of practical reason is a rep- resentation of, as far as I know, the things in themselves; as I have shown else- where, the phenomena should only be used as a canon for our understanding. The paralogisms of practical reason are what first give rise to the architectonic of practical reason. As will easily be shown in the next section, reason would thereby be made to contradict, in view of these considerations, the Ideal of prac- tical reason, yet the manifold depends on the phenomena. Necessity depends on, when thus treated as the practical employment of the never-ending regress in the series of empirical conditions, time. Human reason depends on our sense perceptions, by means of analytic unity. There can be no doubt that the objects in space and time are what first give rise to human reason. Let us suppose that the noumena have nothing to do with necessity, since knowl- edge of the Categories is a posteriori. Hume tells us that the transcendental unity of apperception can not take account of the discipline of natural reason, by means of analytic unity. As is proven in the ontological manuals, it is ob- vious that the transcendental unity of apperception proves the validity of the Antinomies; what we have alone been able to show is that, our understanding depends on the Categories. It remains a mystery why the Ideal stands in need of reason. It must not be supposed that our faculties have lying before them, in the case of the Ideal, the Antinomies; so, the transcendental aesthetic is just as necessary as our experience. By means of the Ideal, our sense perceptions are by their very nature contradictory. Yours sincerely, Immanuel Kant 171 / 197
  • 174. The SMTP Basic Structure +------+ +------+ +------+ | User |<-->| | SMTP | | +------+ | SMTP |Commands/Replies| SMTP | +------+ |Client|<-------------->|Server| +------+ | File |<-->| | and Mail | |<-->| File | |System| | | | | |System| +------+ +------+ +------+ +------+ ▶ TCP, port 25 172 / 197
  • 175. Unix File System ROOT bin boot dev etc home var grub passwd staff stud mail wx672 101152001 dir file 101152001 173 / 197
  • 176. SMTP Commands wx672@cs3:~$ nc localhost 25 220 cs3.swfu.edu.cn ESMTP Exim 4.72 Sun, 16 Oct 2011 22:29:29 +0800 help 214-Commands supported: 214 AUTH HELO EHLO MAIL RCPT DATA NOOP QUIT RSET HELP ▶ More commands can be available, depending on your SMTP server configuration. 174 / 197
  • 177. A Simple Protocol A SMTP Session wx672@debian:~$ nc cs3.swfc.edu.cn smtp 220 cs3.swfu.edu.cn ESMTP Exim 4.72 Sun, 16 Oct 2011 22:18:22 +0800 helo debian 250 cs3.swfc.edu.cn Hello debian [192.168.128.5] mail from:<wx672@debian> 250 OK rcpt to:<wx672@cs3.swfc.edu.cn> 250 Accepted data 354 Enter message, ending with "." on a line by itself Hello, there! . 250 OK id=1DMJra-0007IR-01 quit 221 cs3.swfc.edu.cn closing connection wx672@debian:~$ 175 / 197
  • 178. Post Office Protocol v3 POP2 port 109 POP3 port 110 The POP protocols verify the user’s login name and password, and move the user’s mail from the server to the user’s local mail reader. A POP3 Session $ nc cs3 110 +OK Dovecot ready. user wx672 +OK pass topsecrete +OK Logged in. stat +OK 3 459 retr 1 +OK 146 octets The full text of message 1 dele 1 +OK message # 1 deleted retr 2 +OK 155 octets The full text of message 2 dele 2 +OK message # 2 deleted retr 3 +OK 158 octets The full text of message 3 dele 3 +OK message # 3 deleted quit +OK Logging out. 176 / 197
  • 179. IMAP — Internet Message Access Protocol ▶ port 143 Advantages over POP3 ▶ Both connected and disconnected modes of operation ▶ Multiple clients can simultaneously connect to the same mailbox ▶ Access to MIME parts of messages and partial fetch ▶ Message state information kept on the server ▶ Multiple mailboxes on the server ▶ Server-side searches ▶ A built-in extension mechanism 177 / 197
  • 180. An IMAP session $ nc cs3 143 * OK Dovecot ready. a001 login wx672 topsecrete a001 OK Logged in. a002 select inbox * FLAGS (/Answered /Flagged /Deleted /Seen /Draft) * OK [PERMANENTFLAGS (/Answered /Flagged /Deleted /Seen /Dra * 15 EXISTS * 0 RECENT * OK [UIDVALIDITY 1174505444] UIDs valid * OK [UIDNEXT 184] Predicted next UID a002 OK [READ-WRITE] Select completed. a004 fetch 1 full * 1 FETCH (FLAGS (/Seen) INTERNALDATE "16-Oct-2011 22:40:55 a004 OK Fetch completed. a006 fetch 1 body[text] * 1 FETCH (BODY[TEXT] 55 hello ,there! ) 178 / 197
  • 181. Disadvantages of IMAP ▶ IMAP is a very heavy and complicated protocol ▶ IMAP generally results in higher server loads than POP3 ▶ Server-side searches can potentially use lots of server resources when searching massive mailboxes 179 / 197
  • 182. Multipurpose Internet Mail Extensions ▶ SMTP supports only 7-bit ASCII characters. ▶ MIME standard defines mechanisms for emailing other kinds of information, e.g. ▶ text in languages other than English, ▶ files containing images, sounds, movies, ▶ computer programs ▶ HTTP/MIME 180 / 197
  • 183. A Typical Mail Header Received: from 20030704041 by cs2.swfc.edu.cn with local (Exim 4.50) id 1GSusu-0001D0-NT for wx672@cs2.swfc.edu.cn; Thu, 28 Sep 2006 20:21:00 +0800 Date: Thu, 28 Sep 2006 20:21:00 +0800 To: WANG Xiaolin <wx672@cs2.swfc.edu.cn> Subject: ipv6 Message-ID: <20060928122100.GA4498@cs2.swfc.edu.cn> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.9i From: 20030704041@cs2.swfc.edu.cn X-SA-Exim-Connect-IP: <locally generated> X-SA-Exim-Rcpt-To: wx672@cs2.swfc.edu.cn X-SA-Exim-Mail-From: 20030704041@cs2.swfc.edu.cn X-SA-Exim-Scanned: No (on cs2.swfc.edu.cn); SAEximRunCond expanded to false X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on cs2.swfc.edu.cn X-Spam-Level: * X-Spam-Status: No, score=1.0 required=5.0 tests=ALL_TRUSTED,AWL,FROM_ALL_NUMS, FROM_ENDS_IN_NUMS,FROM_STARTS_WITH_NUMS,NO_REAL_NAME autolearn=no version=3.0.3 Status: RO Content-Length: 240 Lines: 3 X-UID: 351 X-Keywords: 181 / 197
  • 184. Spam Spam: ▶ Any kind of un-wanted email messages. ▶ The action of sending such kinds of messages to usenet newsgroups, mailing lists, or any other individuals. ▶ by year 2000, 7% of Internet mails were spam; ▶ by year 2004, 60% were spam. ▶ Bill Gates receives nearly 4 million emails a day – most of which are spam. 182 / 197
  • 185. How Spam Works? 1. Collecting Email Addresses (Sniffing, Web Registration, Mailing List and Newsgroup, etc.) 2. Open Relay — an SMTP server configured in such a way that it allows anyone on the Internet to relay (i.e. send) email through it. 3. Open Proxy — a proxy which is misconfigured to allow access to anyone on the internet. 183 / 197
  • 186. Relayed Mail Scenario wx672@cs2:~$ nc wx672.3322.org smtp 220 wx672.3322.org ESMTP Exim 4.50 Tue, 03 Oct 2006 10:13:04 +0800 ehlo cs2.swfc.edu.cn 250-wx672.3322.org Hello cs2.swfc.edu.cn [202.203.132.242] 250-SIZE 52428800 250-PIPELINING 250 HELP mail from:<wx672@cs2.swfc.edu.cn> 250 OK rcpt to:<@wx672.3322.org:wx672@yahoo.com> 250 Accepted data 354 Enter message, ending with "." on a line by itself Hello, this is a message to wx672@yahoo.com relayed by the smtp server at wx672.3322.org . 250 OK id=1DSQRt-0000jC-T0 quit 221 wx672.3322.org closing connection 184 / 197
  • 187. Common Technologies Of Anti-Spams ▶ DNSBL — DNS-based Blackhole List ▶ Bayesian Filtering: P(spam|words) = P(words|spam)P(spam) P(words) ▶ Greylisting — ”normal” MTAs should attempt retries if given an appropriate temporary failure code for a delivery attempt. 185 / 197
  • 188. Mail References I M. Crispin. INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1. RFC 3501 (Proposed Standard). Updated by RFCs 4466, 4469, 4551, 5032, 5182, 5738, 6186, 6858. Internet Engineering Task Force, Mar. 2003. N. Freed and N. Borenstein. Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies. RFC 2045 (Draft Standard). Updated by RFCs 2184, 2231, 5335, 6532. Internet Engineering Task Force, Nov. 1996. J. Klensin. Simple Mail Transfer Protocol. RFC 2821 (Proposed Standard). Obsoleted by RFC 5321, updated by RFC 5336. Internet Engineering Task Force, Apr. 2001. 186 / 197
  • 189. Mail References II J. Myers and M. Rose. Post Office Protocol - Version 3. RFC 1939 (INTERNET STANDARD). Updated by RFCs 1957, 2449, 6186. Internet Engineering Task Force, May 1996. Wikipedia. Internet Message Access Protocol — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. Wikipedia. MIME — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. Wikipedia. Post Office Protocol — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. Wikipedia. Simple Mail Transfer Protocol — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. 187 / 197
  • 191. +-----------+ |+---------+| || User || +------+ ||Interface|<--->| User | |+----^----+| +------+ +--------+ | | | |+------+| FTP Commands |+----V----+| ||Server|<---------------->| User || || PI || FTP Replies || PI || |+--^---+| |+----^----+| | | | | | | +------+ |+--V---+| Data |+----V----+| +------+ | File |<--->|Server|<---------------->| User |<--->| File | |System| || DTP || Connection || DTP || |System| +------+ |+------+| |+---------+| +------+ +--------+ +-----------+ Server-FTP USER-FTP 189 / 197
  • 192. An Active FTP Session Control session wx672@cs3:~$ nc cs2 ftp 220 (vsFTPd 2.0.5) user wx672 331 Please specify the password. pass secret 230 Login successful. port 202,203,132,244,100,0 200 PORT command successful. Consider using PASV. nlst 150 Here comes the directory listing. 226 Directory send OK. quit 221 Goodbye. To see FTP data session: ▶ wx672@cs3:∼$ nc -l 25600 100 × 256 + 0 = 25600 190 / 197
  • 193. A Passive FTP Session Control session wx672@cs3:~$ nc cs2 ftp 220 (vsFTPd 2.0.5) user wx672 331 Please specify the password. pass secret 230 Login successful. pasv 227 Entering Passive Mode (202,203,132,242,36,5) list 150 Here comes the directory listing. quit 221 Goodbye. To see FTP data session: ▶ wx672@cs3:∼$ nc cs2 9221 36 × 256 + 5 = 9221 191 / 197
  • 194. Active FTP vs. Passive FTP In active mode: Server initiates data connection to client’s data port. In passive mode: Client initiates data connection to random port specified by server. 192 / 197
  • 195. Why Passive Mode? Active mode doesn’t work with firewall 192.168.1.3 40.30.20.10 FTP Command port 192,168,1,3,100,0 Internet 12.13.14.15192.168.1.1 NAT Table Sourrc NAT Router IP:Port IP:Port 192.168.1.3:8910 12.13.14.15:7 FTP Ethernet IP TCP Ethernet IP FTP Ethernet IP TCP FTP Command port 192,168,1,3,100,0 IP Header Src IP:192.168.1.3 FTP Command port 192,168,1,3,100,0 IP Header Src IP:12.13.14.15 FTP Command SYN 192,168,1,3,100,0 IP Header Dst IP:192.168.1.3 FTP Active Mode 193 / 197
  • 196. FTP References S. Bellovin. Firewall-Friendly FTP. RFC 1579 (Informational). Internet Engineering Task Force, Feb. 1994. J. Postel and J. Reynolds. File Transfer Protocol. RFC 959 (INTERNET STANDARD). Updated by RFCs 2228, 2640, 2773, 3659, 5797, 7151. Internet Engineering Task Force, Oct. 1985. Wikipedia. File Transfer Protocol — Wikipedia, The Free Encyclopedia. [Online; accessed 21-February-2015]. 2015. 194 / 197
  • 199. P2P References Bram Cohen. The BitTorrent Protocol Specification, Version 11031. Jan. 10, 2008. Wikipedia. BitTorrent — Wikipedia, The Free Encyclopedia. [Online; accessed 22-February-2015]. 2015. 197 / 197