Cours 2
description
Transcript of Cours 2
![Page 1: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/1.jpg)
Cours 2
![Page 2: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/2.jpg)
M2-Internet Introduction 1-2
Tier-1 ISP: e.g., Sprint
…
to/from customers
peering
to/from backbone
….
………
POP: point-of-presence
H. Fauconnier
![Page 3: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/3.jpg)
M2-Internet Introduction 1-3
Internet structure: network of networks
“Tier-2” ISPs: smaller (often regional) ISPs Connect to one or more tier-1 ISPs, possibly other tier-2 ISPs
Tier 1 ISP
Tier 1 ISP
Tier 1 ISP
Tier-2 ISPTier-2 ISP
Tier-2 ISP Tier-2 ISP
Tier-2 ISP
Tier-2 ISP pays tier-1 ISP for connectivity to rest of Internet tier-2 ISP is customer oftier-1 provider
Tier-2 ISPs also peer privately with each other.
H. Fauconnier
![Page 4: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/4.jpg)
M2-Internet Introduction 1-4
Internet structure: network of networks
“Tier-3” ISPs and local ISPs last hop (“access”) network (closest to end systems)
Tier 1 ISP
Tier 1 ISP
Tier 1 ISP
Tier-2 ISPTier-2 ISP
Tier-2 ISP Tier-2 ISP
Tier-2 ISP
localISPlocal
ISPlocalISP
localISP
localISP Tier 3
ISP
localISP
localISP
localISP
Local and tier- 3 ISPs are customers ofhigher tier ISPsconnecting them to rest of Internet
H. Fauconnier
![Page 5: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/5.jpg)
M2-Internet Introduction 1-5
Internet structure: network of networks
a packet passes through many networks!
Tier 1 ISP
Tier 1 ISP
Tier 1 ISP
Tier-2 ISPTier-2 ISP
Tier-2 ISP Tier-2 ISP
Tier-2 ISP
localISPlocal
ISPlocalISP
localISP
localISP Tier 3
ISP
localISP
localISP
localISP
H. Fauconnier
![Page 6: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/6.jpg)
M2-Internet Introduction 1-6
Chapter 1: roadmap
1.1 What is the Internet?1.2 Network edge
end systems, access networks, links
1.3 Network core circuit switching, packet switching, network structure
1.4 Delay, loss and throughput in packet-switched networks
1.5 Protocol layers, service models1.6 Networks under attack: security1.7 History
H. Fauconnier
![Page 7: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/7.jpg)
M2-Internet Introduction 1-7
How do loss and delay occur?packets queue in router buffers packet arrival rate to link exceeds output link
capacity packets queue, wait for turn
A
B
packet being transmitted (delay)
packets queueing (delay)
free (available) buffers: arriving packets dropped (loss) if no free buffers
H. Fauconnier
![Page 8: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/8.jpg)
M2-Internet Introduction 1-8
Four sources of packet delay
1. nodal processing: check bit errors determine output link
A
B
propagation
transmission
nodalprocessing queueing
2. queueing time waiting at output
link for transmission depends on
congestion level of router
H. Fauconnier
![Page 9: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/9.jpg)
M2-Internet Introduction 1-9
Delay in packet-switched networks3. Transmission delay: R=link bandwidth
(bps) L=packet length (bits) time to send bits into
link = L/R
4. Propagation delay: d = length of physical
link s = propagation speed in
medium (~2x108 m/sec) propagation delay = d/s
A
B
propagation
transmission
nodalprocessing queueing
Note: s and R are very different quantities!
H. Fauconnier
![Page 10: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/10.jpg)
M2-Internet Introduction 1-10
Caravan analogy
cars “propagate” at 100 km/hr
toll booth takes 12 sec to service car (transmission time)
car~bit; caravan ~ packet Q: How long until caravan
is lined up before 2nd toll booth?
Time to “push” entire caravan through toll booth onto highway = 12*10 = 120 sec
Time for last car to propagate from 1st to 2nd toll both: 100km/(100km/hr)= 1 hr
A: 62 minutes
toll booth
toll booth
ten-car caravan
100 km
100 km
H. Fauconnier
![Page 11: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/11.jpg)
M2-Internet Introduction 1-11
Caravan analogy (more)
Cars now “propagate” at 1000 km/hr
Toll booth now takes 1 min to service a car
Q: Will cars arrive to 2nd booth before all cars serviced at 1st booth?
Yes! After 7 min, 1st car at 2nd booth and 3 cars still at 1st booth.
1st bit of packet can arrive at 2nd router before packet is fully transmitted at 1st router! See Ethernet applet at AWL
Web site
toll booth
toll booth
ten-car caravan
100 km
100 km
H. Fauconnier
![Page 12: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/12.jpg)
M2-Internet Introduction 1-12
Nodal delay
dproc = processing delay typically a few microsecs or less
dqueue = queuing delay depends on congestion
dtrans = transmission delay = L/R, significant for low-speed links
dprop = propagation delay a few microsecs to hundreds of msecs
proptransqueueprocnodal ddddd
H. Fauconnier
![Page 13: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/13.jpg)
M2-Internet Introduction 1-13
Queueing delay (revisited)
R=link bandwidth (bps) L=packet length (bits) a=average packet
arrival rate
traffic intensity = La/R
La/R ~ 0: average queueing delay small La/R -> 1: delays become large La/R > 1: more “work” arriving than can be serviced,
average delay infinite!
H. Fauconnier
![Page 14: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/14.jpg)
M2-Internet Introduction 1-14
“Real” Internet delays and routes What do “real” Internet delay & loss look like? Traceroute program: provides delay
measurement from source to router along end-end Internet path towards destination. For all i: sends three packets that will reach router i on path
towards destination router i will return packets to sender sender times interval between transmission and reply.
3 probes
3 probes
3 probes
H. Fauconnier
![Page 15: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/15.jpg)
M2-Internet Introduction 1-15
“Real” Internet delays and routes
1 cs-gw (128.119.240.254) 1 ms 1 ms 2 ms2 border1-rt-fa5-1-0.gw.umass.edu (128.119.3.145) 1 ms 1 ms 2 ms3 cht-vbns.gw.umass.edu (128.119.3.130) 6 ms 5 ms 5 ms4 jn1-at1-0-0-19.wor.vbns.net (204.147.132.129) 16 ms 11 ms 13 ms 5 jn1-so7-0-0-0.wae.vbns.net (204.147.136.136) 21 ms 18 ms 18 ms 6 abilene-vbns.abilene.ucaid.edu (198.32.11.9) 22 ms 18 ms 22 ms7 nycm-wash.abilene.ucaid.edu (198.32.8.46) 22 ms 22 ms 22 ms8 62.40.103.253 (62.40.103.253) 104 ms 109 ms 106 ms9 de2-1.de1.de.geant.net (62.40.96.129) 109 ms 102 ms 104 ms10 de.fr1.fr.geant.net (62.40.96.50) 113 ms 121 ms 114 ms11 renater-gw.fr1.fr.geant.net (62.40.103.54) 112 ms 114 ms 112 ms12 nio-n2.cssi.renater.fr (193.51.206.13) 111 ms 114 ms 116 ms13 nice.cssi.renater.fr (195.220.98.102) 123 ms 125 ms 124 ms14 r3t2-nice.cssi.renater.fr (195.220.98.110) 126 ms 126 ms 124 ms15 eurecom-valbonne.r3t2.ft.net (193.48.50.54) 135 ms 128 ms 133 ms16 194.214.211.25 (194.214.211.25) 126 ms 128 ms 126 ms17 * * *18 * * *19 fantasia.eurecom.fr (193.55.113.142) 132 ms 128 ms 136 ms
traceroute: gaia.cs.umass.edu to www.eurecom.fr
Three delay measurements from gaia.cs.umass.edu to cs-gw.cs.umass.edu
* means no response (probe lost, router not replying)
trans-oceaniclink
H. Fauconnier
![Page 16: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/16.jpg)
M2-Internet Introduction 1-16
Packet loss
queue (aka buffer) preceding link in buffer has finite capacity
packet arriving to full queue dropped (aka lost)
lost packet may be retransmitted by previous node, by source end system, or not at allA
B
packet being transmitted
packet arriving tofull buffer is lost
buffer (waiting area)
H. Fauconnier
![Page 17: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/17.jpg)
M2-Internet Introduction 1-17
Throughput
throughput: rate (bits/time unit) at which bits transferred between sender/receiver instantaneous: rate at given point in time average: rate over longer period of time
server, withfile of F bits
to send to client
link capacity
Rs bits/sec
link capacity
Rc bits/sec pipe that can carry
fluid at rate
Rs bits/sec)
pipe that can carryfluid at rate
Rc bits/sec)
server sends bits
(fluid) into pipe
H. Fauconnier
![Page 18: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/18.jpg)
M2-Internet Introduction 1-18
Throughput (more)
Rs < Rc What is average end-end throughput?
Rs bits/sec Rc bits/sec
Rs > Rc What is average end-end throughput?
Rs bits/sec Rc bits/sec
link on end-end path that constrains end-end throughput
bottleneck link
H. Fauconnier
![Page 19: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/19.jpg)
M2-Internet Introduction 1-19
Throughput: Internet scenario
10 connections (fairly) share backbone bottleneck link R
bits/sec
Rs
Rs
Rs
Rc
Rc
Rc
R
per-connection end-end throughput: min(Rc,Rs,R/10)
in practice: Rc or Rs is often bottleneck
H. Fauconnier
![Page 20: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/20.jpg)
M2-Internet Introduction 1-20
Chapter 1: roadmap
1.1 What is the Internet?1.2 Network edge
end systems, access networks, links
1.3 Network core circuit switching, packet switching, network structure
1.4 Delay, loss and throughput in packet-switched networks
1.5 Protocol layers, service models1.6 Networks under attack: security1.7 History
H. Fauconnier
![Page 21: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/21.jpg)
M2-Internet Introduction 1-21
Protocol “Layers”Networks are
complex! many “pieces”:
hosts routers links of various
media applications protocols hardware,
software
Question: Is there any hope of organizing structure of
network?
Or at least our discussion of networks?
H. Fauconnier
![Page 22: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/22.jpg)
M2-Internet Introduction 1-22
Organization of air travel
a series of steps
ticket (purchase)
baggage (check)
gates (load)
runway takeoff
airplane routing
ticket (complain)
baggage (claim)
gates (unload)
runway landing
airplane routing
airplane routing
H. Fauconnier
![Page 23: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/23.jpg)
M2-Internet Introduction 1-23
ticket (purchase)
baggage (check)
gates (load)
runway (takeoff)
airplane routing
departureairport
arrivalairport
intermediate air-trafficcontrol centers
airplane routing airplane routing
ticket (complain)
baggage (claim
gates (unload)
runway (land)
airplane routing
ticket
baggage
gate
takeoff/landing
airplane routing
Layering of airline functionality
Layers: each layer implements a service via its own internal-layer actions relying on services provided by layer below
H. Fauconnier
![Page 24: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/24.jpg)
M2-Internet Introduction 1-24
Why layering?
Dealing with complex systems: explicit structure allows identification,
relationship of complex system’s pieces layered reference model for discussion
modularization eases maintenance, updating of system change of implementation of layer’s service
transparent to rest of system e.g., change in gate procedure doesn’t
affect rest of system layering considered harmful?
H. Fauconnier
![Page 25: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/25.jpg)
M2-Internet Introduction 1-25
Internet protocol stack application: supporting network
applications FTP, SMTP, HTTP
transport: process-process data transfer TCP, UDP
network: routing of datagrams from source to destination IP, routing protocols
link: data transfer between neighboring network elements PPP, Ethernet
physical: bits “on the wire”
application
transport
network
link
physical
H. Fauconnier
![Page 26: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/26.jpg)
M2-Internet Introduction 1-26
ISO/OSI reference model presentation: allow applications
to interpret meaning of data, e.g., encryption, compression, machine-specific conventions
session: synchronization, checkpointing, recovery of data exchange
Internet stack “missing” these layers! these services, if needed, must
be implemented in application needed?
application
presentation
session
transport
network
link
physical
H. Fauconnier
![Page 27: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/27.jpg)
M2-Internet Introduction 1-27
source
application
transportnetwork
linkphysical
HtHn M
segment Ht
datagram
destination
application
transportnetwork
linkphysical
HtHnHl M
HtHn M
Ht M
M
networklink
physical
linkphysical
HtHnHl M
HtHn M
HtHn M
HtHnHl M
router
switch
Encapsulationmessage M
Ht M
Hn
frame
H. Fauconnier
![Page 28: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/28.jpg)
M2-Internet Introduction 1-28
Chapter 1: roadmap
1.1 What is the Internet?1.2 Network edge
end systems, access networks, links
1.3 Network core circuit switching, packet switching, network structure
1.4 Delay, loss and throughput in packet-switched networks
1.5 Protocol layers, service models1.6 Networks under attack: security1.7 History
H. Fauconnier
![Page 29: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/29.jpg)
M2-Internet Introduction 1-29
Network Security The field of network security is about:
how bad guys can attack computer networks how we can defend networks against attacks how to design architectures that are immune
to attacks Internet not originally designed with
(much) security in mind original vision: “a group of mutually trusting
users attached to a transparent network” Internet protocol designers playing “catch-
up” Security considerations in all layers!
H. Fauconnier
![Page 30: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/30.jpg)
M2-Internet Introduction 1-30
Bad guys can put malware into hosts via Internet Malware can get in host from a virus, worm, or
trojan horse.
Spyware malware can record keystrokes, web sites visited, upload info to collection site.
Infected host can be enrolled in a botnet, used for spam and DDoS attacks.
Malware is often self-replicating: from an infected host, seeks entry into other hosts
H. Fauconnier
![Page 31: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/31.jpg)
M2-Internet Introduction 1-31
Bad guys can put malware into hosts via Internet Trojan horse
Hidden part of some otherwise useful software
Today often on a Web page (Active-X, plugin)
Virus infection by receiving
object (e.g., e-mail attachment), actively executing
self-replicating: propagate itself to other hosts, users
Worm: infection by passively
receiving object that gets itself executed
self- replicating: propagates to other hosts, usersSapphire Worm: aggregate scans/sec
in first 5 minutes of outbreak (CAIDA, UWisc data)
H. Fauconnier
![Page 32: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/32.jpg)
M2-Internet Introduction 1-32
Bad guys can attack servers and network infrastructure
Denial of service (DoS): attackers make resources (server, bandwidth) unavailable to legitimate traffic by overwhelming resource with bogus traffic
1. select target
2. break into hosts around the network (see botnet)
3. send packets toward target from compromised hosts target
H. Fauconnier
![Page 33: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/33.jpg)
M2-Internet Introduction 1-33
The bad guys can sniff packetsPacket sniffing:
broadcast media (shared Ethernet, wireless) promiscuous network interface reads/records all packets
(e.g., including passwords!) passing by
A
B
C
src:B dest:A payload
Wireshark software used for end-of-chapter labs is a (free) packet-sniffer
H. Fauconnier
![Page 34: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/34.jpg)
M2-Internet Introduction 1-34
The bad guys can use false source addresses IP spoofing: send packet with false source
addressA
B
C
src:B dest:A payload
H. Fauconnier
![Page 35: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/35.jpg)
M2-Internet Introduction 1-35
The bad guys can record and playback
record-and-playback: sniff sensitive info (e.g., password), and use later password holder is that user from system point of
view
A
B
C
src:B dest:A user: B; password: foo
H. Fauconnier
![Page 36: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/36.jpg)
M2-Internet Introduction 1-36
Chapter 1: roadmap
1.1 What is the Internet?1.2 Network edge
end systems, access networks, links
1.3 Network core circuit switching, packet switching, network structure
1.4 Delay, loss and throughput in packet-switched networks
1.5 Protocol layers, service models1.6 Networks under attack: security1.7 History
H. Fauconnier
![Page 37: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/37.jpg)
M2-Internet Introduction 1-37
Internet History
1961: Kleinrock - queueing theory shows effectiveness of packet-switching
1964: Baran - packet-switching in military nets
1967: ARPAnet conceived by Advanced Research Projects Agency
1969: first ARPAnet node operational
1972: ARPAnet public
demonstration NCP (Network Control
Protocol) first host-host protocol
first e-mail program ARPAnet has 15 nodes
1961-1972: Early packet-switching principles
H. Fauconnier
![Page 38: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/38.jpg)
M2-Internet Introduction 1-38
Internet History
1970: ALOHAnet satellite network in Hawaii
1974: Cerf and Kahn - architecture for interconnecting networks
1976: Ethernet at Xerox PARC
ate70’s: proprietary architectures: DECnet, SNA, XNA
late 70’s: switching fixed length packets (ATM precursor)
1979: ARPAnet has 200 nodes
Cerf and Kahn’s internetworking principles: minimalism, autonomy -
no internal changes required to interconnect networks
best effort service model stateless routers decentralized control
define today’s Internet architecture
1972-1980: Internetworking, new and proprietary nets
H. Fauconnier
![Page 39: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/39.jpg)
M2-Internet Introduction 1-39
Internet History
1983: deployment of TCP/IP
1982: smtp e-mail protocol defined
1983: DNS defined for name-to-IP-address translation
1985: ftp protocol defined
1988: TCP congestion control
new national networks: Csnet, BITnet, NSFnet, Minitel
100,000 hosts connected to confederation of networks
1980-1990: new protocols, a proliferation of networks
H. Fauconnier
![Page 40: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/40.jpg)
M2-Internet Introduction 1-40
Internet History
Early 1990’s: ARPAnet decommissioned
1991: NSF lifts restrictions on commercial use of NSFnet (decommissioned, 1995)
early 1990s: Web hypertext [Bush 1945,
Nelson 1960’s] HTML, HTTP: Berners-Lee 1994: Mosaic, later
Netscape late 1990’s:
commercialization of the Web
Late 1990’s – 2000’s: more killer apps: instant
messaging, P2P file sharing
network security to forefront
est. 50 million host, 100 million+ users
backbone links running at Gbps
1990, 2000’s: commercialization, the Web, new apps
H. Fauconnier
![Page 41: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/41.jpg)
M2-Internet Introduction 1-41
Internet History
2007: ~500 million hosts Voice, Video over IP P2P applications: BitTorrent
(file sharing) Skype (VoIP), PPLive (video)
more applications: YouTube, gaming
wireless, mobility
H. Fauconnier
![Page 42: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/42.jpg)
Les standard internet
Internet Engineering Task Force (IETF) (ouvert) W3C (industriels fermé) RFC IETF:
Experimental Proposed standard Draft standard Standard Informational Historic
Niveau de recommandation Not recommended Limited use Elective Recommended required
H. Fauconnier M2-Internet Introduction 42
![Page 43: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/43.jpg)
Internet 2010
Introduction 1-43
![Page 44: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/44.jpg)
Internet 2010
Introduction 1-44
![Page 45: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/45.jpg)
Introduction 1-45
![Page 46: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/46.jpg)
Chapitre II
M2Internet et java
H. Fauconnier 1-46
M2-Internet Java
![Page 47: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/47.jpg)
Sommaire
Rappels java Entrées-sorties Thread
Rappels tcp-udp Socket tcp et SocketServer Socket udp compléments
H. Fauconnier M2-Internet Java 47
![Page 48: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/48.jpg)
Entrées-sorties java
Streams Output streams Input streams Filter streams Readers et writer
(non blocking I/O)
H. Fauconnier M2-Internet Java 48
![Page 49: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/49.jpg)
OuputStream
public abstract class OutputStream public abstract void write(int b) throws IOException public void write(byte[] data) throws IOException Public void write(byte[] data, int offset, int length)
throws IOException public void flush( ) throws IOException public void close( ) throws IOException
H. Fauconnier M2-Internet Java 49
![Page 50: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/50.jpg)
InputStream
public abstract class InputStream
public abstract int read( ) throws IOException public int read(byte[] input) throws IOException public int read(byte[] input, int offset, int length) throws
IOException public long skip(long n) throws IOException public int available( ) throws IOException public void close( ) throws IOException public void mark(int readAheadLimit) public void reset( ) throws IOException public boolean markSupported( )
H. Fauconnier M2-Internet Java 50
![Page 51: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/51.jpg)
Lecture:
int bytesRead=0;int bytesToRead=1024;byte[] input = new byte[bytesToRead];while (bytesRead < bytesToRead) { int result = in.read(input, bytesRead,
bytesToRead - bytesRead); if (result == -1) break; bytesRead += result;}
H. Fauconnier M2-Internet Java 51
![Page 52: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/52.jpg)
Filtres
Chainage des filtres:DataOutputStream dout = new
DataOutputStream(new BufferedOutputStream(new FileOutputStream ("data.txt")));
H. Fauconnier M2-Internet Java 52
![Page 53: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/53.jpg)
Filtres
Streams avec buffer BufferedInputStream BufferedOutputStream
PrintStream (System.out) PushbackInputStream Streams de données (lire et écrire des données java en
binaire) le codage est celui de java DataInputStream DataOutputStream
Streams avec compression Streams avec digest Streams cryptées
H. Fauconnier M2-Internet Java 53
![Page 54: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/54.jpg)
Attention
Une méthode comme println est dépendante de la plate-forme: Le séparateur de ligne est soit \n, soit \r,
soit \r\n Le codage par défaut des caractères dépend
de la plate-forme PrintStream capte les exceptions
H. Fauconnier M2-Internet Java 54
![Page 55: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/55.jpg)
Compression
public class DeflaterOutputStream extends FilterOutputStreampublic class InflaterInputStream extends FilterInputStreampublic class GZIPOutputStream extends DeflaterOutputStreampublic class GZIPInputStream extends InflaterInputStreampublic class ZipOutputStream extends DeflaterOutputStreampublic class ZipInputStream extends InflaterInputStream
H. Fauconnier M2-Internet Java 55
![Page 56: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/56.jpg)
décompresser une archive:
FileInputStream fin = new FileInputStream("shareware.zip");ZipInputStream zin = new ZipInputStream(fin);ZipEntry ze = null;int b = 0;while ((ze = zin.getNextEntry( )) != null) { FileOutputStream fout = new FileOutputStream(ze.getName( )); while ((b = zin.read( )) != -1) fout.write(b); zin.closeEntry( ); fout.flush( ); fout.close( );}zin.close( );
H. Fauconnier M2-Internet Java 56
![Page 57: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/57.jpg)
Décompresser un fichier
FileInputStream fin = new FileInputStream("allnames.gz");
GZIPInputStream gzin = new GZIPInputStream(fin);FileOutputStream fout = new
FileOutputStream("allnames");int b = 0;while ((b = gzin.read( )) != -1) fout.write(b);gzin.close( );out.flush( );out.close( );
H. Fauconnier M2-Internet Java 57
![Page 58: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/58.jpg)
digest
public class DigestOutputStream extends FilterOutputStream
public class DigestInputStream extends FilterInputStream
H. Fauconnier M2-Internet Java 58
![Page 59: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/59.jpg)
Digest exemple:
MessageDigest sha = MessageDigest.getInstance("SHA");DigestOutputStream dout = new DigestOutputStream(out, sha);byte[] buffer = new byte[128];while (true) { int bytesRead = in.read(buffer); if (bytesRead < 0) break; dout.write(buffer, 0, bytesRead);}dout.flush( );dout.close( );byte[] result = dout.getMessageDigest( ).digest( );
H. Fauconnier M2-Internet Java 59
![Page 60: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/60.jpg)
Cryptage décryptage
public CipherInputStream(InputStream in, Cipher c)
public CipherOutputStream(OutputStream out, Cipher c)
Exemplebyte[] desKeyData = "Monmotdepasse".getBytes( );DESKeySpec desKeySpec = new DESKeySpec(desKeyData);SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey desKey = keyFactory.generateSecret(desKeySpec);Cipher des = Cipher.getInstance("DES");des.init(Cipher.DECRYPT_MODE, desKey);CipherInputStream cin = new CipherInputStream(fin, des);
H. Fauconnier M2-Internet Java 60
![Page 61: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/61.jpg)
Exemple
String infile = "secrets.txt";
String outfile = "secrets.des";String password = "Un mot de passe"; try { FileInputStream fin = new FileInputStream(infile); FileOutputStream fout = new FileOutputStream(outfile); // register the provider that implements the algorithm Provider sunJce = new com.sun.crypto.provider.SunJCE( ); Security.addProvider(sunJce); char[] pbeKeyData = password.toCharArray( ); PBEKeySpec pbeKeySpec = new PBEKeySpec(pbeKeyData); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES"); SecretKey pbeKey = keyFactory.generateSecret(pbeKeySpec);
H. Fauconnier M2-Internet Java 61
![Page 62: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/62.jpg)
Exemple suite
// use Data Encryption Standard Cipher pbe = Cipher.getInstance("PBEWithMD5AndDES"); pbe.init(Cipher.ENCRYPT_MODE, pbeKey); CipherOutputStream cout = new CipherOutputStream(fout, pbe); byte[] input = new byte[64]; while (true) { int bytesRead = fin.read(input); if (bytesRead == -1) break; cout.write(input, 0, bytesRead); } cout.flush( ); cout.close( ); fin.close( );}catch (Exception ex) { System.err.println(ex);}
H. Fauconnier M2-Internet Java 62
![Page 63: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/63.jpg)
Readers et Writers
Hiérarchie de classe pour les caractères (avec encodage) au lieu d’octets.
Writer et Reader classes abstraites OutputStreamWriter InputStreamReader Filtres
• BufferedReader, BufferedWriter• LineNumberReader• PushbackReader• PrintReader
H. Fauconnier M2-Internet Java 63
![Page 64: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/64.jpg)
Reader et Writer
OutputStreamWriter reçoit des caractères, les convertit en octets suivant un certain codage
public OutputStreamWriter(OutputStream out, String encoding) throws UnsupportedEncodingException
public OutputStreamWriter(OutputStream out)
Exemple: OutputStreamWriter w = new
OutputStreamWriter( new FileOutputStream("russe.txt",
"Cp1251"));
H. Fauconnier M2-Internet Java 64
![Page 65: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/65.jpg)
Reader et Writer
InputStreamReader lit des octets et les convertit suivant un certain codage public InputStreamReader(InputStream in) public InputStreamReader(InputStream in, String encoding)
throws UnsupportedEncodingException public static String getMacCyrillicString(InputStream in) throws IOException { InputStreamReader r = new InputStreamReader(in, "MacCyrillic"); StringBuffer sb = new StringBuffer( ); int c; while ((c = r.read( )) != -1) sb.append((char) c); r.close( ); return sb.toString( ); }
H. Fauconnier M2-Internet Java 65
![Page 66: Cours 2](https://reader036.fdocuments.net/reader036/viewer/2022062803/568147ce550346895db50d23/html5/thumbnails/66.jpg)
Filtres
BufferedReader BufferedWriter LineNumberReader PushbackReader PrintWriter
H. Fauconnier M2-Internet Java 66