java socketsse.inf.ethz.ch/old/teaching/2008-s/0284/slides/lecture_8.pdfgip). ip) sksock • sockets...
TRANSCRIPT
![Page 1: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/1.jpg)
Java SAndrei Vancea -
SocketsApril 17th, 2008
![Page 2: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/2.jpg)
ConneConneDisconnecDisconnec• Connected mode: p
packets arrive all, iPhone)
• Disconnected modDisconnected modall, some packets mnot guaranteed (e gnot guaranteed (e.g
2
ected /ected / ted Modested Modespath chosen and n correct order (e.g.
e: path not chosen fore: path not chosen for may be missing, order g IP)g. IP)
2
![Page 3: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/3.jpg)
S kSock
• Sockets are used tpotentially distributpotentially distribut
• Sockets can be TC
• The combination ofport number (RFCport number (RFC
3
k t ?kets?
to have two processes, ted, interactted, interact
CP/IP or UDP/IP
f an IP address and a 793)793)
3
![Page 4: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/4.jpg)
Java SJa a S• In java.net package
• java.net.Socket – c
• java.net.ServerSoc
• Implements serveImplements serve
• Waits for request
• javax.net.ssl.SSLSjavax net ssl SSLSjavax.net.ssl.SSLS
• Secured sockets
4
SocketsSoc etse
client socket
cket
er socketser sockets
ts from clients
ocket, erverSocketerverSocket
4
![Page 5: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/5.jpg)
J SJava S• java.net.DatagramS
• socket for sendindatagram packetsdatagram packets
• java.net.MulticastS
• useful for sendingmulticast packetsmulticast packets
5
S k tSocketsSocket
g and receiving s (UDP)s (UDP)
ocket
g and receiving IP ss
5
![Page 6: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/6.jpg)
TCTC
• R li bl t d• Reliable stream de
• Guarantees to delivGuarantees to delivsent from one host duplication or losingduplication or losing
• Uses positive acknguarantee reliability
6
CPCP
li ilivery service
ver a stream of dataver a stream of data to another without g datag data
owledgment o f fy of packet transfers
6
![Page 7: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/7.jpg)
TCServer
socket()
bind()
li t ()listen()
acceptaccept
read()
write()()
close()
7
CPClientClient
k t()socket()
connect()connect()
write()
read()()
close()
7
![Page 8: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/8.jpg)
TCTC• how to create a show to create a s
int sockfd, portno, n;struct sockaddr_in serv_addr;t t h t t *struct hostent *server;
char buffer[256];if (argc < 3) {
fprintf(stderr "usage %s hostname port\n" argv[0]);fprintf(stderr, usage %s hostname port\n , argv[0]);exit(0);
}portno = atoi(argv[2]);sockfd = socket(AF INET SOCK STREAM 0);sockfd socket(AF_INET, SOCK_STREAM, 0);if (sockfd < 0)
error("ERROR opening socket");server = gethostbyname(argv[1]);if (server == NULL) {( ) {
fprintf(stderr,"ERROR, no such host\n");exit(0);
}
8
CPCPsocket???socket???
8
![Page 9: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/9.jpg)
TCTC• how to create a show to create a s
bzero((char *) &serv_addr, sizeof(serv_addr));serv addr.sin family = AF INET;serv_addr.sin_family AF_INET;bcopy((char *)server->h_addr,
(char *)&serv_addr.sin_addr.s_addr,server->h_length);
serv addr sin port = htons(portno);serv_addr.sin_port = htons(portno);if (connect(sockfd,&serv_addr,sizeof(serv_addr))
error("ERROR connecting");
9
CPCPsocket??? (WTH?)socket??? (WTH?)
< 0)
9
![Page 10: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/10.jpg)
TCP Server
socket()
bind()
li t ()
new ServerSocket(…)
listen()
acceptacceptServerSocket.accept()
read()
write()
Socket.getInputStream(),Socket.getOutputStream()
()
close()Socket.close()
11
- JavaClientClient
k t()socket()
connect()
new Socket(…)
connect()
write()
read()
Socket.getInputStream()Socket.getOutputStream()
()
close() Socket.close()
00
![Page 11: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/11.jpg)
TCTC• in Java:
1
CPCP
1
![Page 12: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/12.jpg)
SSoc
12
k tcket
2
![Page 13: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/13.jpg)
M th dMethods
• l ()• close()
• getInputStream()getInputStream()
• getOutputStream()
• setSoTimeout()
• S Ti ()• getSoTimeout()
1
t ks to know
3
![Page 14: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/14.jpg)
S SServerS
• Let’s forget the C eLet s forget the C e
• client/server.
• Binds to a port.
14
S k tSocket
example... ;)example... ;)
4
![Page 15: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/15.jpg)
EExam
1
lmple
5
![Page 16: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/16.jpg)
S SServerS
1
S k tSocket
6
![Page 17: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/17.jpg)
M th dMethods
• close()
• accept()
• setSoTimeout()setSoTimeout()
• getSoTimeout()g ()
1
t ks to know
7
![Page 18: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/18.jpg)
EExam
• Telnet?
1
lmple
8
![Page 19: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/19.jpg)
S k tI tSocketInter
1
t (1/3)ractor (1/3)
9
![Page 20: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/20.jpg)
S k tI tSocketInter
2
t (2/3)ractor (2/3)
0
![Page 21: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/21.jpg)
3)(3
/3to
r (er
actIn
teck
etS
oc
21
![Page 22: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/22.jpg)
ver)
Ser
ve
(Sm
ple
Exa
mE
222
![Page 23: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/23.jpg)
Secure SocSecure Soc• Add a layer of secuy
the underlying netw
• I t it P t ti• Integrity Protectio
• Protects againsotects aga smessages by a
• A th ti ti• Authentication
• ConfidentialityConfidentiality
• SSL encrypts dbetween client
2
ckets (SSL)ckets (SSL)urity protections over y pwork transport protocol
on
st modification of st od cat o oan active wiretapper
data being sent and server 3
![Page 24: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/24.jpg)
SSLSSSLS
All constructor are protectpSSLSocketFactory is useSSLSocket instances
24
SSLSocket instances
S k tSocket
eded for constructing
4
![Page 25: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/25.jpg)
M th dMethods
• startHandshake()
2
t ks to know
5
![Page 26: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/26.jpg)
lem
plE
xaE
26
![Page 27: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/27.jpg)
UDUD• User Datagram Pro
• Does not guarantee
• D t• Datagrams may arrappear duplicated,
• Faster and more efthat do not need guthat do not need gu
2
DPDPotocol
e reliability or ordering
i t f drive out of order, or go missing
fficient, for applications uaranteed deliveryuaranteed delivery
7
![Page 28: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/28.jpg)
D tDatagram
2
S k tmSockets
8
![Page 29: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/29.jpg)
M th dMethods
• close()
• connect(...)
• send(DatagramPacsend(DatagramPac
• receive(DatagramP( g
2
t ks to know
cket)cket)
Packet))
9
![Page 30: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/30.jpg)
EExam
• Echo server/client
3
lmple
0
![Page 31: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/31.jpg)
ver)
Ser
ve
(Sm
ple
Exa
mE
31
![Page 32: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/32.jpg)
nt)
Clie
nle
(Cam
plE
xaE
322
![Page 33: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/33.jpg)
M lti tMulticast
• Used for sending amulticast packet
• A MulticastSocket iwith additional capawith additional capa"groups" of other minternetinternet.
3
t S k tt Sockets
nd receiving IP
is a DatagramSocket, abilities for joiningabilities for joining
multicast hosts on the
3
![Page 34: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/34.jpg)
M lti tMulticast• A multicast group is
D IP (224.0.0.0 to 2address and by a snumber
• When one sends aWhen one sends a multicast group, allto that host and porto that host and pormessage
34
t S k tt Socketss specified by a class 239.255.255.255) standard UDP port
message to amessage to a l subscribing recipients rt receive thert receive the
4
![Page 35: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/35.jpg)
M ltiMulticas
3
tS k tstSocket
5
![Page 36: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/36.jpg)
M th dMethods
• joinGroup
• leaveGroupleaveGroup
3
t ks to know
6
![Page 37: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/37.jpg)
ple
amp
Exa
37
![Page 38: Java Socketsse.inf.ethz.ch/old/teaching/2008-S/0284/Slides/Lecture_8.pdfgIP). IP) SkSock • Sockets are used ... lient socket ket er socketser sockets s from clients ocket, erverSocket](https://reader031.vdocument.in/reader031/viewer/2022021915/5cd62c5b88c993ea4e8ccac9/html5/thumbnails/38.jpg)
W tWant m
• How would you maserver?
• How would you maHow would you maserver?
3
?more?
ake a small Web
ake a small FTPake a small FTP
8