6 app-tcp

Olivier Bonaventure
Olivier BonaventureProfessor at Université catholique de Louvain (UCL) and co-founder at Tessares
Week 6 
Internet applications 
UDP and TCP
Agenda 
• Internet applications 
• DNS 
• Email 
• Web 
• UDP 
• TCP
DNS messages 
Each DNS request contains a number that will be returned in the 
response by the server to allow the client to match the request. 
32 bits 
Identification Flags 
12 bytes Number of questions 
Number of answers 
Number of authority Number of additional 
Questions 
(variable number of resource records) 
Answers 
(variable number of resource records) 
Authority 
(variable number of resource records) 
Additional information 
(variable number of resource records) 
lQuestion/Response 
lRecursive question or not 
lAuthoritative answer or not 
lPossible error
Examples 
• Wireshark packet traces 
• openDNS resovers 
• 8.8.8.8 
• 2001:4860:4860::8888
dig 
dig www.ietf.org @2001:4860:4860::8888 
; <<>> DiG 9.8.3-P1 <<>> www.ietf.org @2001:4860:4860::8888 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36945 
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 
;; QUESTION SECTION: 
;www.ietf.org. IN A 
;; ANSWER SECTION: 
www.ietf.org. 1441 IN CNAME www.ietf.org.cdn.cloudflare.net. 
www.ietf.org.cdn.cloudflare.net. 43 IN A 104.20.1.85 
www.ietf.org.cdn.cloudflare.net. 43 IN A 104.20.0.85 
;; Query time: 39 msec 
;; SERVER: 2001:4860:4860::8888#53(2001:4860:4860::8888) 
;; WHEN: Tue Oct 21 09:16:50 2014
dig 
• Packets exchanged 
sudo tcpdump -n -i en4 -vv udp port 53 
tcpdump: listening on en4, link-type EN10MB (Ethernet), capture size 262144 bytes 
09:16:50.749400 IP6 (flowlabel 0x8ea5d, hlim 64, next-header UDP (17) payload length: 38) 
2001:6a8:3080:2:2908:3cb4:bbb4:ae0e.56551 > 2001:4860:4860::8888.53: [bad udp cksum 0x602c 
-> 0x0ffa!] 36945+ A? www.ietf.org. (30) 
09:16:50.769351 IP6 (hlim 55, next-header UDP (17) payload length: 115) 
2001:4860:4860::8888.53 > 2001:6a8:3080:2:2908:3cb4:bbb4:ae0e.56551: [udp sum ok] 36945 q: 
A? www.ietf.org. 3/0/0 www.ietf.org. CNAME www.ietf.org.cdn.cloudflare.net., 
www.ietf.org.cdn.cloudflare.net. A 104.20.1.85, www.ietf.org.cdn.cloudflare.net. A 104.20.0.85 
(107)
wireshark
wireshark
DNS spoofing attack 
• What is this attack ? 
• How to counter it ?
Agenda 
• Internet applications 
• DNS 
• Email 
• Web 
• UDP 
• TCP
MIME 
• Multipurpose Internet Mail Extensions 
• Constraints 
• must remain compatible with old email servers 
• short US-ASCII Lines 
• must support non-English text 
• must support various formats 
• must allow to transmit audio, video, ..
MIME (2) 
• New header fields 
• MIME-Version: 
• version of MIME used to encode message 
• Content-Description: 
• comment describing the content of the message 
• Content-Type: 
• type of information inside message 
• Content-Transfer-Encoding: 
• how the message has been encoded 
• Content-Id: 
• unique identifier for the content
MIME: Content-Type 
• Content-Type : type/encoding 
• type of content 
• text, image, video, application 
• multipart 
• encoding of content 
• text/plain , text/html, image/gif, image/jpeg , 
audio/basic, video/mpeg, video/quicktime, 
application/octet-stream, application/postscript 
• multipart/alternative, multipart/mixed 
• attachment
Character sets 
l How to support rich character sets ? 
• Content-Type: text/plain; charset=us-ascii 
• Content-Type: text/plain; charset=iso-8859-1 
• Character set suitable for Western European 
languages, defined by ISO, 8 bits per character 
• Content-Type: text/plain; charset=unicode 
• Universal character set
Content encoding 
• How to encode non-text data ? 
• Base64 
• Base64 
• uses ASCII characters A...Z,a...z,0...9, "+" et "/" 
• A=0, B=1, C=2, ... +=62 et /=63 
• Each character is used to encode 6 bits 
• 24 bits from initial message -> 4 ASCII characters 
• Special character “=” used for padding
Multipart/mixed 
Date: Mon, 20 Sep 1999 16:33:16 +0200 
From: Nathaniel Borenstein <nsb@bellcore.com> 
To: Ned Freed <ned@innosoft.com> 
Subject: Test 
MIME-Version: 1.0 
Content-Type: multipart/mixed; boundary="simple boundary" 
preamble, to be ignored 
--simple boundary 
Content-Type: text/plain; charset=us-ascii 
partie 1 
--simple boundary 
Content-Type: text/plain; charset=us-ascii 
partie 2 
--simple boundary
Agenda 
• Internet applications 
• DNS 
• Email 
• Web 
• UDP 
• TCP
HTTP 
Client 
Server 
Request 
Method 
Header 
CRLF 
MIME Document 
Method 
GET 
lPOST 
l... 
Header contains additional information 
about request sent by client 
Response 
Status line 
Header 
CRLF 
MIME Document 
Header contains information about server 
and optional parameters specific to response 
Success or failure 
HTTP is a stateless protocol, server does not maintain any state from 
one request to another
HTTP/1.0 
• HTTP 1.0 - non-persistent connection 
Client Server 
CONNECT.request CONNECT.indication 
CONNECT.confirm 
CONNECT.response 
DATA.request(Request) 
DATA.ind(Request) 
DATA.req(Response) 
DATA.ind(Response) 
DISCONNECT.ind 
DISCONNECT.req 
DISCONNECT.req 
DISCONNECT.ind
HTTP : Methods 
• Methods 
• GET 
• method used to request a "document" stored on 
server 
• GET <document> HTTP/1.0 
• POST 
• method used to send a "document" to a 
server 
• document is part of the request and encoded as 
a MIME document
Request headers 
• Host: <name> 
• Name of the server where the document is stored 
• Authorization 
• allows to perform access control 
• If-Modified-Since: <date> 
• server will only send if more recent than date 
• Referer: <url> 
• URL visited by the client before this request 
• User-Agent: <agent> 
• client’s browser
HTTP : Status line 
• Format : Version_HTTP Code Comment 
• Success/Failure 
• 2xx : Success 
• Example : HTTP/1.0 200 OK 
• 3xx : Redirection 
• 4xx : Client-side error 
• 5xx : Server-side error
HTTP Response 
• Date 
• date of the document attached to response 
• Server 
• Name and version of http server used 
• Content-* 
• MIME header of the attached document
HTTP 1.1 
HTTP 1.0 
a single TCP connection is used to transmit 
a single document (html file, image,...) 
HTTP 1.1 
uses a single persistent TCP connection 
This TCP connection can be used for several 
requests and the corresponding responses 
the cost of establishing and releasing the TCP 
connection is amortised over multiple requests 
Although HTTP 1.1 uses a single TCP connection 
for multiple requests, HTTP 1.1 remains stateless
HTTP 1.1 
Client 
Server 
CONNECT.request CONNECT.indication 
CONNECT.confirm CONNECT.response 
DISCONNECT.ind 
HTTP/1.1 200 OK 
Keep-Alive: timeout=15, max=99 
Connection: Keep-Alive 
... 
DISCONNECT.req 
DISCONNECT.req 
DISCONNECT.ind 
GET / HTTP1.1 
Connection: Keep-Alive 
... HTTP/1.1 200 OK 
Keep-Alive: timeout=15, max=100 
Connection: Keep-Alive 
GET /images/logo.gif HTTP1.1 ... 
Connection: Keep-Alive 
...
HTTP Authentication 
Client 
Server 
HTTP/1.0 401 Authorization req 
WWW authenticate: machin 
... 
GET / HTTP1.1 
... 
Browser asks user/password to user 
HTTP/1.1 200 OK 
... 
GET / HTTP1.1 
Authorization: User-password 
... 
GET /images/t.gif HTTP1.1 
Authorization: User-password 
... 
Browser sends user/password in each request
HTTP Cookies 
Client 
Server 
HTTP/1.0 200 OK 
Set-Cookie: machin 
... 
GET / HTTP1.1 
... 
Browser saves cookie 
Normal response 
HTTP/1.1 200 OK 
... 
GET /doc HTTP1.1 
Cookie: machin 
... 
GET /images/t.gif HTTP1.1 
Cookie: machin 
... 
Browser sends cookie in all 
requests sent to server 
Response is function 
of URL and cookie
Examples 
• Wireshark packet traces 
• Google chrome network diagnostics
Example 
curl -v www.ietf.org 
* Rebuilt URL to: www.ietf.org/ 
* Hostname was NOT found in DNS cache 
* Trying 2400:cb00:2048:1::6814:155... 
* Connected to www.ietf.org (2400:cb00:2048:1::6814:155) port 80 (#0) 
> GET / HTTP/1.1 
> User-Agent: curl/7.38.0 
> Host: www.ietf.org 
> Accept: */* 
>
Example 
< HTTP/1.1 200 OK 
< Date: Tue, 21 Oct 2014 07:31:08 GMT 
< Content-Type: text/html 
< Transfer-Encoding: chunked 
< Connection: keep-alive 
< Set-Cookie: __cfduid=d90d850d78da8f53eb24ac0bed60aa2231413876667742; 
expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ietf.org; HttpOnly 
< Last-Modified: Fri, 10 Oct 2014 22:38:16 GMT 
< ETag: W/"8842406-4ac2-50519347abeda" 
< Vary: Accept-Encoding 
* Server cloudflare-nginx is not blacklisted 
< Server: cloudflare-nginx 
< CF-RAY: 17cbc0f5613b0c23-AMS 
< 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin 
template="/Templates/GeneralPage.dwt" codeOutsideHTMLIsLocked="false" -->
Chrome
Agenda 
• Internet applications 
• DNS 
• Email 
• Web 
• UDP 
• TCP
Transport layer 
Transport Segments Transport 
Network Network 
Network 
Datalink Datalink 
Datalink 
Physical Physical 
Physical 
• Objectives 
• Improve service provided to applications 
• Multiplexing
Network service 
Network Packets Network Packets 
Network 
Datalink Datalink 
Datalink 
Physical Physical 
Physical 
• Characteristics 
• Connectionless 
• Unreliable 
• Maximum packet size
UDP protocol 
32 bits 
Source Port Destination port 
Used to identify the 
application that sent this 
segment on sending host 
8 bytes UDP length UDP Checksum 
Payload 
Used to identify the 
application that will receive 
this segment on destination 
host 
Constraint 
Each UDP segment must 
fit inside a single IP packet 
Checksum computed over the entire 
UDP segment and part of the IP 
header to detect transmission errors. 
0 means that the sender did not 
compute a checksum.
UDP ports 
Request 
Client Server 
Source port : 1234 
Destination port: 5678 
Source port : 5678 
Destination port: 1234 
Response
UDP : limitations 
• Maximum length of UDP SDUs depends on 
maximum size of IP packets 
• Unreliable connectionless service 
• SDUs can get lost but transmission errors will 
be detected 
• UDP does not preserve ordering 
• UDP does not detect nor prevent duplication
Usage of UDP 
• Request-response applications 
• DNS, RPC, NFS, .. 
• Applications with short delay 
• Games 
• Multimedia transfer 
• Voice over IP 
• Video over IP
Agenda 
• Internet applications 
• DNS 
• Email 
• Web 
• UDP 
• TCP
TCP 
• Service provided 
• Connection-oriented 
• Reliable 
• No losses, no errors, no duplications 
• Bytestream
TCP port numbers 
Request 
Client : C Server : S 
Source Port : 1234 
Destination Port: 5678 
Source Port : 5678 
Destination Port: 1234 
Response 
Established TCP connections on client 
Local IP Remote IP Local Port Remote Port 
C S 1234 5678 
Established TCP connections on server 
Local IP Remote IP Local Port Remote Port 
S C 5678 1234
TCP segment 
32 bits 
Source port Destination port 
THL Reserved Flags 
Window 
Checksum Urgent pointer 
Payload 
20 bytes 
Sequence number 
Optional header extension 
Flags : 
used to indicate the function of a segment 
SYN : used during establishment 
FIN : used during connection release 
RST : used in case of problems 
ACK : if true, means that the Acknowledgement 
number inside the segment is valid 
Computed over the entire 
segment and part of the IP 
header 
Acknowledgement number 
Segment header length
Multiple connections 
Client: A 
Client : B 
Server : S 
TCP connections on server 
IP local IP remote Port local Port remote 
S A 80 1234 
S A 80 1235 
S B 80 1235 
TCP connections on host A 
IP local IP remote Port local Port remote 
A S 1234 80 
A S 1235 80 
TCP connections on host B 
IP local IP remote Port local Port remote 
B S 1235 80
Three-way handshake 
ACK(seq=x+1, ack=y+1) 
CONNECT.req 
CONNECT.ind 
SYN+ACK(ack=x+1,seq=y) 
CONNECT.resp 
Initial sequence number (x) 
CONNECT.conf 
Initial sequence number (y) 
SYN(seq=x) 
Connection established 
Connection established 
The sequence numbers of all 
segments A->B will start at x+1 
The sequence numbers of all 
segments B->A will start at y+1
Connection refused 
RST+ACK(ack=x+1,seq=0) 
DISCONNECT.req 
CONNECT.req 
DISCONNECT.ind 
CONNECT.ind 
SYN(seq=x) 
Connection refused 
A TCP entity should never send a RST segment 
upon reception of another RST segment
Reliable data transfer 
DATA.req ("abcd") 
DATA.ind("abcd") 
(seq=123,"abcd") 
DATA.req ("jkl") 
(seq=127,"efg") 
(seq=132,"jkl") 
DATA.req ("efg") 
(ack=127) 
(ack=135) 
DATA.ind("efghijkl") 
DATA.req ("hi") 
(seq=130,"hi")
Reliable data transfer 
(seq=123,"abcd") 
(seq=127,"ef") 
(seq=123,"abcd") 
(seq=127,"ef") 
(ack=123) 
Retransmission timer 
(ack=129) 
(ack=129) 
"abcdef" 
unnecessary 
retransmission 
Retransmission of all 
unacked segments 
“ef” placed in buffer
Fast retransmit 
(seq=120,"xyz") 
(seq=123,"abcd") 
(ack=123) 
(seq=129,"gh") 
(seq=131,"ij") 
(ack=123) 
First duplicate ack 
(ack=123) 
Second duplicate ack 
(ack=123) 
Third duplicate ack 
(seq=127,"ef") 
Out of sequence 
Out of sequence 
Out of sequence
Fast retransmit 
(seq=123,"abcd") 
(ack=123) 
(ack=123) 
(ack=123) 
(ack=123) 
(ack=133) 
(seq=123,"abcd") 
"abcdefghij" 
(seq=127,"ef") 
Out of sequence, in buffer 
(seq=129,"gh") 
Out of sequence, in buffer 
(seq=131,"ij") 
Out of sequence, in buffer
Flow control 
(seq=122,"abcd") 
(ack=126,rwin=0) 
Last_ack=122, swin=100, rwin=4 
To transmit : abcdefghijklm 
Last_ack=122, swin=96, rwin=0 
Last_ack=126, swin=100, rwin=0 (ack=126,rwin=2) 
(seq=126,"ef") 
(ack=128,rwin=20) 
Last_ack=126, swin=100, rwin=2 
Last_ack=126, swin=98, rwin=0 
Last_ack=128, swin=100, rwin=20 
Last_ack=128, swin=93, rwin=13 
(seq=128,"ghijklm") 
(ack=135,rwin=20) 
Last_ack=135, swin=100, rwin=20
Connection release 
FIN(seq=x) 
DISCONNECT.req (A-B) 
DISCONNECT.ind(A-B) 
ACK(ack=x+1) 
DISCONNECT.conf(A-B) 
ACK(ack=y+1) 
DISCONNECT.req(B-A) 
DISCONNECT.conf(A-B) 
outgoing connection closed 
DISCONNECT.ind(B-A) 
FIN(seq=y) 
Time WAIT 
Maintain state for this 
connection during twice MSL 
to be able to retransmit ACK 
if a segment is received from 
the other entity 
incoming connection closed 
incoming connection closed 
outgoing connection closed 
State can be removed 
Last sent data : x-1 
Last sent data : y-1
Abrupt release 
RST(seq=x) 
DISCONNECT.req (abrupt) 
DISCONNECT.ind(abrupt) 
Connection closed 
Connection closed 
State can be removed 
State can be removed 
Last sent data : x
1 of 52

Recommended

9 ipv6-routing by
9 ipv6-routing9 ipv6-routing
9 ipv6-routingOlivier Bonaventure
2.8K views45 slides
5 sharing-app by
5 sharing-app5 sharing-app
5 sharing-appOlivier Bonaventure
2.2K views57 slides
8 congestion-ipv6 by
8 congestion-ipv68 congestion-ipv6
8 congestion-ipv6Olivier Bonaventure
2K views40 slides
Part 5 : Sharing resources, security principles and protocols by
Part 5 : Sharing resources, security principles and protocolsPart 5 : Sharing resources, security principles and protocols
Part 5 : Sharing resources, security principles and protocolsOlivier Bonaventure
67 views76 slides
Part 9 : Congestion control and IPv6 by
Part 9 : Congestion control and IPv6Part 9 : Congestion control and IPv6
Part 9 : Congestion control and IPv6Olivier Bonaventure
124 views59 slides
Part 4 : reliable transport and sharing resources by
Part 4 : reliable transport and sharing resourcesPart 4 : reliable transport and sharing resources
Part 4 : reliable transport and sharing resourcesOlivier Bonaventure
70 views54 slides

More Related Content

What's hot

Part 7 : HTTP/2, UDP and TCP by
Part 7 : HTTP/2, UDP and TCPPart 7 : HTTP/2, UDP and TCP
Part 7 : HTTP/2, UDP and TCPOlivier Bonaventure
119 views89 slides
Surviving The Stump The Chump Interview Questions by
Surviving The Stump The Chump Interview QuestionsSurviving The Stump The Chump Interview Questions
Surviving The Stump The Chump Interview QuestionsDuane Bodle
1.1K views11 slides
10 routing-bgp by
10 routing-bgp10 routing-bgp
10 routing-bgpOlivier Bonaventure
2.1K views49 slides
Part 8 : TCP and Congestion control by
Part 8 : TCP and Congestion controlPart 8 : TCP and Congestion control
Part 8 : TCP and Congestion controlOlivier Bonaventure
107 views81 slides
Network interview questions by
Network interview questionsNetwork interview questions
Network interview questionsrajasekar1712
647 views3 slides
TCPLS presentation @ietf 109 by
TCPLS presentation @ietf 109TCPLS presentation @ietf 109
TCPLS presentation @ietf 109Olivier Bonaventure
125 views15 slides

What's hot(20)

Surviving The Stump The Chump Interview Questions by Duane Bodle
Surviving The Stump The Chump Interview QuestionsSurviving The Stump The Chump Interview Questions
Surviving The Stump The Chump Interview Questions
Duane Bodle1.1K views
Network interview questions by rajasekar1712
Network interview questionsNetwork interview questions
Network interview questions
rajasekar1712647 views
Computer Networking : Principles, Protocols and Practice - lesson 1 by Olivier Bonaventure
Computer Networking : Principles, Protocols and Practice - lesson 1Computer Networking : Principles, Protocols and Practice - lesson 1
Computer Networking : Principles, Protocols and Practice - lesson 1
Beyond TCP: The evolution of Internet transport protocols by Olivier Bonaventure
Beyond TCP: The evolution of Internet transport protocolsBeyond TCP: The evolution of Internet transport protocols
Beyond TCP: The evolution of Internet transport protocols
Olivier Bonaventure18.3K views
Part 2 : reliable transmission and building a network by Olivier Bonaventure
Part 2 : reliable transmission and building a networkPart 2 : reliable transmission and building a network
Part 2 : reliable transmission and building a network
Networking Fundamentals: Transport Protocols (TCP and UDP) by Andriy Berestovskyy
Networking Fundamentals: Transport Protocols (TCP and UDP)Networking Fundamentals: Transport Protocols (TCP and UDP)
Networking Fundamentals: Transport Protocols (TCP and UDP)

Viewers also liked

Beyond TCP: The evolution of Internet transport protocols by
Beyond TCP: The evolution of Internet transport protocolsBeyond TCP: The evolution of Internet transport protocols
Beyond TCP: The evolution of Internet transport protocolsOlivier Bonaventure
961 views141 slides
Internet innovation with Multipath TCP by
Internet innovation with Multipath TCPInternet innovation with Multipath TCP
Internet innovation with Multipath TCPOlivier Bonaventure
1.1K views21 slides
Some lessons learned developing OERs over a decade by
Some lessons learned developing OERs over a decadeSome lessons learned developing OERs over a decade
Some lessons learned developing OERs over a decadeOlivier Bonaventure
526 views22 slides
Implementing IPv6 Segment Routing in the Linux kernel by
Implementing IPv6 Segment Routing in the Linux kernelImplementing IPv6 Segment Routing in the Linux kernel
Implementing IPv6 Segment Routing in the Linux kernelOlivier Bonaventure
1.1K views27 slides
3 network-transport by
3 network-transport3 network-transport
3 network-transportOlivier Bonaventure
1.9K views52 slides
2 reliability-network by
2 reliability-network2 reliability-network
2 reliability-networkOlivier Bonaventure
2.8K views47 slides

Viewers also liked(6)

Similar to 6 app-tcp

Part 6 : Internet applications by
Part 6 : Internet applicationsPart 6 : Internet applications
Part 6 : Internet applicationsOlivier Bonaventure
67 views83 slides
Http2 in practice by
Http2 in practiceHttp2 in practice
Http2 in practicePatrick Meenan
2.9K views169 slides
Lec 7(HTTP Protocol) by
Lec 7(HTTP Protocol)Lec 7(HTTP Protocol)
Lec 7(HTTP Protocol)maamir farooq
479 views20 slides
HTTP/2 What's inside and Why by
HTTP/2 What's inside and WhyHTTP/2 What's inside and Why
HTTP/2 What's inside and WhyAdrian Cole
4.5K views50 slides
Juglouvain http revisited by
Juglouvain http revisitedJuglouvain http revisited
Juglouvain http revisitedmarctritschler
445 views51 slides
Http request&response by
Http request&responseHttp request&response
Http request&responseAswin Krishnamoorthy
1.3K views23 slides

Similar to 6 app-tcp(20)

HTTP/2 What's inside and Why by Adrian Cole
HTTP/2 What's inside and WhyHTTP/2 What's inside and Why
HTTP/2 What's inside and Why
Adrian Cole4.5K views
Web Performance Optimization with HTTP/3 by Brandon Kang
Web Performance Optimization with HTTP/3Web Performance Optimization with HTTP/3
Web Performance Optimization with HTTP/3
Brandon Kang184 views
Primer to Browser Netwroking by Shuya Osaki
Primer to Browser NetwrokingPrimer to Browser Netwroking
Primer to Browser Netwroking
Shuya Osaki474 views
Http request&response by Vignesh 15 MAR 2014 by Navaneethan Naveen
Http request&response by Vignesh 15 MAR 2014Http request&response by Vignesh 15 MAR 2014
Http request&response by Vignesh 15 MAR 2014
Navaneethan Naveen1.3K views
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost) by Ericom Software
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
WebSockets Everywhere: the Future Transport Protocol for Everything (Almost)
Ericom Software3.8K views
Apache web server installation/configuration, Virtual Hosting by webhostingguy
Apache web server installation/configuration, Virtual HostingApache web server installation/configuration, Virtual Hosting
Apache web server installation/configuration, Virtual Hosting
webhostingguy1.4K views
Konsep pembangunan tapak web & laman web by Ahmad Faizar
Konsep pembangunan tapak web & laman webKonsep pembangunan tapak web & laman web
Konsep pembangunan tapak web & laman web
Ahmad Faizar2.9K views
Help, my browser is leaking! Exploring XSLeaks attacks and defenses - Tom Van... by NoNameCon
Help, my browser is leaking! Exploring XSLeaks attacks and defenses - Tom Van...Help, my browser is leaking! Exploring XSLeaks attacks and defenses - Tom Van...
Help, my browser is leaking! Exploring XSLeaks attacks and defenses - Tom Van...
NoNameCon117 views
Using communication and messaging API in the HTML5 world - GIl Fink, sparXsys by Codemotion Tel Aviv
Using communication and messaging API in the HTML5 world - GIl Fink, sparXsysUsing communication and messaging API in the HTML5 world - GIl Fink, sparXsys
Using communication and messaging API in the HTML5 world - GIl Fink, sparXsys
CSU33012-I-microservices.pdf by Ricky Garg
CSU33012-I-microservices.pdfCSU33012-I-microservices.pdf
CSU33012-I-microservices.pdf
Ricky Garg7 views
Using Communication and Messaging API in the HTML5 World by Gil Fink
Using Communication and Messaging API in the HTML5 WorldUsing Communication and Messaging API in the HTML5 World
Using Communication and Messaging API in the HTML5 World
Gil Fink705 views
AWS re:Invent 2016: Making Every Packet Count (NET404) by Amazon Web Services
AWS re:Invent 2016: Making Every Packet Count (NET404)AWS re:Invent 2016: Making Every Packet Count (NET404)
AWS re:Invent 2016: Making Every Packet Count (NET404)
Amazon Web Services1.5K views

More from Olivier Bonaventure

Part3-reliable.pptx by
Part3-reliable.pptxPart3-reliable.pptx
Part3-reliable.pptxOlivier Bonaventure
10 views55 slides
Part10-router.pptx by
Part10-router.pptxPart10-router.pptx
Part10-router.pptxOlivier Bonaventure
10 views24 slides
Part1-Intro-Apps.pptx by
Part1-Intro-Apps.pptxPart1-Intro-Apps.pptx
Part1-Intro-Apps.pptxOlivier Bonaventure
21 views112 slides
Part9-congestion.pptx by
Part9-congestion.pptxPart9-congestion.pptx
Part9-congestion.pptxOlivier Bonaventure
13 views56 slides
Part2-Apps-Security.pptx by
Part2-Apps-Security.pptxPart2-Apps-Security.pptx
Part2-Apps-Security.pptxOlivier Bonaventure
14 views94 slides
Part11-lan.pptx by
Part11-lan.pptxPart11-lan.pptx
Part11-lan.pptxOlivier Bonaventure
8 views89 slides

More from Olivier Bonaventure(20)

A personal journey towards more reproducible networking research by Olivier Bonaventure
A personal journey towards more reproducible networking researchA personal journey towards more reproducible networking research
A personal journey towards more reproducible networking research
Part 10 : Routing in IP networks and interdomain routing with BGP by Olivier Bonaventure
Part 10 : Routing in IP networks and interdomain routing with BGPPart 10 : Routing in IP networks and interdomain routing with BGP
Part 10 : Routing in IP networks and interdomain routing with BGP
Part 3 : building a network and supporting applications by Olivier Bonaventure
Part 3 : building a network and supporting applicationsPart 3 : building a network and supporting applications
Part 3 : building a network and supporting applications

Recently uploaded

Activated sludge process .pdf by
Activated sludge process .pdfActivated sludge process .pdf
Activated sludge process .pdf8832RafiyaAltaf
9 views32 slides
DevOps to DevSecOps: Enhancing Software Security Throughout The Development L... by
DevOps to DevSecOps: Enhancing Software Security Throughout The Development L...DevOps to DevSecOps: Enhancing Software Security Throughout The Development L...
DevOps to DevSecOps: Enhancing Software Security Throughout The Development L...Anowar Hossain
12 views34 slides
Advances in micro milling: From tool fabrication to process outcomes by
Advances in micro milling: From tool fabrication to process outcomesAdvances in micro milling: From tool fabrication to process outcomes
Advances in micro milling: From tool fabrication to process outcomesShivendra Nandan
5 views18 slides
_MAKRIADI-FOTEINI_diploma thesis.pptx by
_MAKRIADI-FOTEINI_diploma thesis.pptx_MAKRIADI-FOTEINI_diploma thesis.pptx
_MAKRIADI-FOTEINI_diploma thesis.pptxfotinimakriadi
7 views32 slides
sam_software_eng_cv.pdf by
sam_software_eng_cv.pdfsam_software_eng_cv.pdf
sam_software_eng_cv.pdfsammyigbinovia
5 views5 slides

Recently uploaded(20)

DevOps to DevSecOps: Enhancing Software Security Throughout The Development L... by Anowar Hossain
DevOps to DevSecOps: Enhancing Software Security Throughout The Development L...DevOps to DevSecOps: Enhancing Software Security Throughout The Development L...
DevOps to DevSecOps: Enhancing Software Security Throughout The Development L...
Anowar Hossain12 views
Advances in micro milling: From tool fabrication to process outcomes by Shivendra Nandan
Advances in micro milling: From tool fabrication to process outcomesAdvances in micro milling: From tool fabrication to process outcomes
Advances in micro milling: From tool fabrication to process outcomes
_MAKRIADI-FOTEINI_diploma thesis.pptx by fotinimakriadi
_MAKRIADI-FOTEINI_diploma thesis.pptx_MAKRIADI-FOTEINI_diploma thesis.pptx
_MAKRIADI-FOTEINI_diploma thesis.pptx
fotinimakriadi7 views
Machine learning in drug supply chain management during disease outbreaks: a ... by IJECEIAES
Machine learning in drug supply chain management during disease outbreaks: a ...Machine learning in drug supply chain management during disease outbreaks: a ...
Machine learning in drug supply chain management during disease outbreaks: a ...
IJECEIAES12 views
Taking out the Trash (And the Recyclables]: RFID and the Handling of Municipa... by ijseajournal
Taking out the Trash (And the Recyclables]: RFID and the Handling of Municipa...Taking out the Trash (And the Recyclables]: RFID and the Handling of Municipa...
Taking out the Trash (And the Recyclables]: RFID and the Handling of Municipa...
ijseajournal5 views
Generative AI Models & Their Applications by SN
Generative AI Models & Their ApplicationsGenerative AI Models & Their Applications
Generative AI Models & Their Applications
SN6 views
A multi-microcontroller-based hardware for deploying Tiny machine learning mo... by IJECEIAES
A multi-microcontroller-based hardware for deploying Tiny machine learning mo...A multi-microcontroller-based hardware for deploying Tiny machine learning mo...
A multi-microcontroller-based hardware for deploying Tiny machine learning mo...
IJECEIAES13 views
Design of machine elements-UNIT 3.pptx by gopinathcreddy
Design of machine elements-UNIT 3.pptxDesign of machine elements-UNIT 3.pptx
Design of machine elements-UNIT 3.pptx
gopinathcreddy32 views
Literature review and Case study on Commercial Complex in Nepal, Durbar mall,... by AakashShakya12
Literature review and Case study on Commercial Complex in Nepal, Durbar mall,...Literature review and Case study on Commercial Complex in Nepal, Durbar mall,...
Literature review and Case study on Commercial Complex in Nepal, Durbar mall,...
AakashShakya1266 views
What is Whirling Hygrometer.pdf by IIT KHARAGPUR
What is Whirling Hygrometer.pdfWhat is Whirling Hygrometer.pdf
What is Whirling Hygrometer.pdf
IIT KHARAGPUR 11 views
Effect of deep chemical mixing columns on properties of surrounding soft clay... by AltinKaradagli
Effect of deep chemical mixing columns on properties of surrounding soft clay...Effect of deep chemical mixing columns on properties of surrounding soft clay...
Effect of deep chemical mixing columns on properties of surrounding soft clay...
AltinKaradagli6 views

6 app-tcp

  • 1. Week 6 Internet applications UDP and TCP
  • 2. Agenda • Internet applications • DNS • Email • Web • UDP • TCP
  • 3. DNS messages Each DNS request contains a number that will be returned in the response by the server to allow the client to match the request. 32 bits Identification Flags 12 bytes Number of questions Number of answers Number of authority Number of additional Questions (variable number of resource records) Answers (variable number of resource records) Authority (variable number of resource records) Additional information (variable number of resource records) lQuestion/Response lRecursive question or not lAuthoritative answer or not lPossible error
  • 4. Examples • Wireshark packet traces • openDNS resovers • 8.8.8.8 • 2001:4860:4860::8888
  • 5. dig dig www.ietf.org @2001:4860:4860::8888 ; <<>> DiG 9.8.3-P1 <<>> www.ietf.org @2001:4860:4860::8888 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36945 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.ietf.org. IN A ;; ANSWER SECTION: www.ietf.org. 1441 IN CNAME www.ietf.org.cdn.cloudflare.net. www.ietf.org.cdn.cloudflare.net. 43 IN A 104.20.1.85 www.ietf.org.cdn.cloudflare.net. 43 IN A 104.20.0.85 ;; Query time: 39 msec ;; SERVER: 2001:4860:4860::8888#53(2001:4860:4860::8888) ;; WHEN: Tue Oct 21 09:16:50 2014
  • 6. dig • Packets exchanged sudo tcpdump -n -i en4 -vv udp port 53 tcpdump: listening on en4, link-type EN10MB (Ethernet), capture size 262144 bytes 09:16:50.749400 IP6 (flowlabel 0x8ea5d, hlim 64, next-header UDP (17) payload length: 38) 2001:6a8:3080:2:2908:3cb4:bbb4:ae0e.56551 > 2001:4860:4860::8888.53: [bad udp cksum 0x602c -> 0x0ffa!] 36945+ A? www.ietf.org. (30) 09:16:50.769351 IP6 (hlim 55, next-header UDP (17) payload length: 115) 2001:4860:4860::8888.53 > 2001:6a8:3080:2:2908:3cb4:bbb4:ae0e.56551: [udp sum ok] 36945 q: A? www.ietf.org. 3/0/0 www.ietf.org. CNAME www.ietf.org.cdn.cloudflare.net., www.ietf.org.cdn.cloudflare.net. A 104.20.1.85, www.ietf.org.cdn.cloudflare.net. A 104.20.0.85 (107)
  • 9. DNS spoofing attack • What is this attack ? • How to counter it ?
  • 10. Agenda • Internet applications • DNS • Email • Web • UDP • TCP
  • 11. MIME • Multipurpose Internet Mail Extensions • Constraints • must remain compatible with old email servers • short US-ASCII Lines • must support non-English text • must support various formats • must allow to transmit audio, video, ..
  • 12. MIME (2) • New header fields • MIME-Version: • version of MIME used to encode message • Content-Description: • comment describing the content of the message • Content-Type: • type of information inside message • Content-Transfer-Encoding: • how the message has been encoded • Content-Id: • unique identifier for the content
  • 13. MIME: Content-Type • Content-Type : type/encoding • type of content • text, image, video, application • multipart • encoding of content • text/plain , text/html, image/gif, image/jpeg , audio/basic, video/mpeg, video/quicktime, application/octet-stream, application/postscript • multipart/alternative, multipart/mixed • attachment
  • 14. Character sets l How to support rich character sets ? • Content-Type: text/plain; charset=us-ascii • Content-Type: text/plain; charset=iso-8859-1 • Character set suitable for Western European languages, defined by ISO, 8 bits per character • Content-Type: text/plain; charset=unicode • Universal character set
  • 15. Content encoding • How to encode non-text data ? • Base64 • Base64 • uses ASCII characters A...Z,a...z,0...9, "+" et "/" • A=0, B=1, C=2, ... +=62 et /=63 • Each character is used to encode 6 bits • 24 bits from initial message -> 4 ASCII characters • Special character “=” used for padding
  • 16. Multipart/mixed Date: Mon, 20 Sep 1999 16:33:16 +0200 From: Nathaniel Borenstein <nsb@bellcore.com> To: Ned Freed <ned@innosoft.com> Subject: Test MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="simple boundary" preamble, to be ignored --simple boundary Content-Type: text/plain; charset=us-ascii partie 1 --simple boundary Content-Type: text/plain; charset=us-ascii partie 2 --simple boundary
  • 17. Agenda • Internet applications • DNS • Email • Web • UDP • TCP
  • 18. HTTP Client Server Request Method Header CRLF MIME Document Method GET lPOST l... Header contains additional information about request sent by client Response Status line Header CRLF MIME Document Header contains information about server and optional parameters specific to response Success or failure HTTP is a stateless protocol, server does not maintain any state from one request to another
  • 19. HTTP/1.0 • HTTP 1.0 - non-persistent connection Client Server CONNECT.request CONNECT.indication CONNECT.confirm CONNECT.response DATA.request(Request) DATA.ind(Request) DATA.req(Response) DATA.ind(Response) DISCONNECT.ind DISCONNECT.req DISCONNECT.req DISCONNECT.ind
  • 20. HTTP : Methods • Methods • GET • method used to request a "document" stored on server • GET <document> HTTP/1.0 • POST • method used to send a "document" to a server • document is part of the request and encoded as a MIME document
  • 21. Request headers • Host: <name> • Name of the server where the document is stored • Authorization • allows to perform access control • If-Modified-Since: <date> • server will only send if more recent than date • Referer: <url> • URL visited by the client before this request • User-Agent: <agent> • client’s browser
  • 22. HTTP : Status line • Format : Version_HTTP Code Comment • Success/Failure • 2xx : Success • Example : HTTP/1.0 200 OK • 3xx : Redirection • 4xx : Client-side error • 5xx : Server-side error
  • 23. HTTP Response • Date • date of the document attached to response • Server • Name and version of http server used • Content-* • MIME header of the attached document
  • 24. HTTP 1.1 HTTP 1.0 a single TCP connection is used to transmit a single document (html file, image,...) HTTP 1.1 uses a single persistent TCP connection This TCP connection can be used for several requests and the corresponding responses the cost of establishing and releasing the TCP connection is amortised over multiple requests Although HTTP 1.1 uses a single TCP connection for multiple requests, HTTP 1.1 remains stateless
  • 25. HTTP 1.1 Client Server CONNECT.request CONNECT.indication CONNECT.confirm CONNECT.response DISCONNECT.ind HTTP/1.1 200 OK Keep-Alive: timeout=15, max=99 Connection: Keep-Alive ... DISCONNECT.req DISCONNECT.req DISCONNECT.ind GET / HTTP1.1 Connection: Keep-Alive ... HTTP/1.1 200 OK Keep-Alive: timeout=15, max=100 Connection: Keep-Alive GET /images/logo.gif HTTP1.1 ... Connection: Keep-Alive ...
  • 26. HTTP Authentication Client Server HTTP/1.0 401 Authorization req WWW authenticate: machin ... GET / HTTP1.1 ... Browser asks user/password to user HTTP/1.1 200 OK ... GET / HTTP1.1 Authorization: User-password ... GET /images/t.gif HTTP1.1 Authorization: User-password ... Browser sends user/password in each request
  • 27. HTTP Cookies Client Server HTTP/1.0 200 OK Set-Cookie: machin ... GET / HTTP1.1 ... Browser saves cookie Normal response HTTP/1.1 200 OK ... GET /doc HTTP1.1 Cookie: machin ... GET /images/t.gif HTTP1.1 Cookie: machin ... Browser sends cookie in all requests sent to server Response is function of URL and cookie
  • 28. Examples • Wireshark packet traces • Google chrome network diagnostics
  • 29. Example curl -v www.ietf.org * Rebuilt URL to: www.ietf.org/ * Hostname was NOT found in DNS cache * Trying 2400:cb00:2048:1::6814:155... * Connected to www.ietf.org (2400:cb00:2048:1::6814:155) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.38.0 > Host: www.ietf.org > Accept: */* >
  • 30. Example < HTTP/1.1 200 OK < Date: Tue, 21 Oct 2014 07:31:08 GMT < Content-Type: text/html < Transfer-Encoding: chunked < Connection: keep-alive < Set-Cookie: __cfduid=d90d850d78da8f53eb24ac0bed60aa2231413876667742; expires=Mon, 23-Dec-2019 23:50:00 GMT; path=/; domain=.ietf.org; HttpOnly < Last-Modified: Fri, 10 Oct 2014 22:38:16 GMT < ETag: W/"8842406-4ac2-50519347abeda" < Vary: Accept-Encoding * Server cloudflare-nginx is not blacklisted < Server: cloudflare-nginx < CF-RAY: 17cbc0f5613b0c23-AMS < <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/GeneralPage.dwt" codeOutsideHTMLIsLocked="false" -->
  • 32. Agenda • Internet applications • DNS • Email • Web • UDP • TCP
  • 33. Transport layer Transport Segments Transport Network Network Network Datalink Datalink Datalink Physical Physical Physical • Objectives • Improve service provided to applications • Multiplexing
  • 34. Network service Network Packets Network Packets Network Datalink Datalink Datalink Physical Physical Physical • Characteristics • Connectionless • Unreliable • Maximum packet size
  • 35. UDP protocol 32 bits Source Port Destination port Used to identify the application that sent this segment on sending host 8 bytes UDP length UDP Checksum Payload Used to identify the application that will receive this segment on destination host Constraint Each UDP segment must fit inside a single IP packet Checksum computed over the entire UDP segment and part of the IP header to detect transmission errors. 0 means that the sender did not compute a checksum.
  • 36. UDP ports Request Client Server Source port : 1234 Destination port: 5678 Source port : 5678 Destination port: 1234 Response
  • 37. UDP : limitations • Maximum length of UDP SDUs depends on maximum size of IP packets • Unreliable connectionless service • SDUs can get lost but transmission errors will be detected • UDP does not preserve ordering • UDP does not detect nor prevent duplication
  • 38. Usage of UDP • Request-response applications • DNS, RPC, NFS, .. • Applications with short delay • Games • Multimedia transfer • Voice over IP • Video over IP
  • 39. Agenda • Internet applications • DNS • Email • Web • UDP • TCP
  • 40. TCP • Service provided • Connection-oriented • Reliable • No losses, no errors, no duplications • Bytestream
  • 41. TCP port numbers Request Client : C Server : S Source Port : 1234 Destination Port: 5678 Source Port : 5678 Destination Port: 1234 Response Established TCP connections on client Local IP Remote IP Local Port Remote Port C S 1234 5678 Established TCP connections on server Local IP Remote IP Local Port Remote Port S C 5678 1234
  • 42. TCP segment 32 bits Source port Destination port THL Reserved Flags Window Checksum Urgent pointer Payload 20 bytes Sequence number Optional header extension Flags : used to indicate the function of a segment SYN : used during establishment FIN : used during connection release RST : used in case of problems ACK : if true, means that the Acknowledgement number inside the segment is valid Computed over the entire segment and part of the IP header Acknowledgement number Segment header length
  • 43. Multiple connections Client: A Client : B Server : S TCP connections on server IP local IP remote Port local Port remote S A 80 1234 S A 80 1235 S B 80 1235 TCP connections on host A IP local IP remote Port local Port remote A S 1234 80 A S 1235 80 TCP connections on host B IP local IP remote Port local Port remote B S 1235 80
  • 44. Three-way handshake ACK(seq=x+1, ack=y+1) CONNECT.req CONNECT.ind SYN+ACK(ack=x+1,seq=y) CONNECT.resp Initial sequence number (x) CONNECT.conf Initial sequence number (y) SYN(seq=x) Connection established Connection established The sequence numbers of all segments A->B will start at x+1 The sequence numbers of all segments B->A will start at y+1
  • 45. Connection refused RST+ACK(ack=x+1,seq=0) DISCONNECT.req CONNECT.req DISCONNECT.ind CONNECT.ind SYN(seq=x) Connection refused A TCP entity should never send a RST segment upon reception of another RST segment
  • 46. Reliable data transfer DATA.req ("abcd") DATA.ind("abcd") (seq=123,"abcd") DATA.req ("jkl") (seq=127,"efg") (seq=132,"jkl") DATA.req ("efg") (ack=127) (ack=135) DATA.ind("efghijkl") DATA.req ("hi") (seq=130,"hi")
  • 47. Reliable data transfer (seq=123,"abcd") (seq=127,"ef") (seq=123,"abcd") (seq=127,"ef") (ack=123) Retransmission timer (ack=129) (ack=129) "abcdef" unnecessary retransmission Retransmission of all unacked segments “ef” placed in buffer
  • 48. Fast retransmit (seq=120,"xyz") (seq=123,"abcd") (ack=123) (seq=129,"gh") (seq=131,"ij") (ack=123) First duplicate ack (ack=123) Second duplicate ack (ack=123) Third duplicate ack (seq=127,"ef") Out of sequence Out of sequence Out of sequence
  • 49. Fast retransmit (seq=123,"abcd") (ack=123) (ack=123) (ack=123) (ack=123) (ack=133) (seq=123,"abcd") "abcdefghij" (seq=127,"ef") Out of sequence, in buffer (seq=129,"gh") Out of sequence, in buffer (seq=131,"ij") Out of sequence, in buffer
  • 50. Flow control (seq=122,"abcd") (ack=126,rwin=0) Last_ack=122, swin=100, rwin=4 To transmit : abcdefghijklm Last_ack=122, swin=96, rwin=0 Last_ack=126, swin=100, rwin=0 (ack=126,rwin=2) (seq=126,"ef") (ack=128,rwin=20) Last_ack=126, swin=100, rwin=2 Last_ack=126, swin=98, rwin=0 Last_ack=128, swin=100, rwin=20 Last_ack=128, swin=93, rwin=13 (seq=128,"ghijklm") (ack=135,rwin=20) Last_ack=135, swin=100, rwin=20
  • 51. Connection release FIN(seq=x) DISCONNECT.req (A-B) DISCONNECT.ind(A-B) ACK(ack=x+1) DISCONNECT.conf(A-B) ACK(ack=y+1) DISCONNECT.req(B-A) DISCONNECT.conf(A-B) outgoing connection closed DISCONNECT.ind(B-A) FIN(seq=y) Time WAIT Maintain state for this connection during twice MSL to be able to retransmit ACK if a segment is received from the other entity incoming connection closed incoming connection closed outgoing connection closed State can be removed Last sent data : x-1 Last sent data : y-1
  • 52. Abrupt release RST(seq=x) DISCONNECT.req (abrupt) DISCONNECT.ind(abrupt) Connection closed Connection closed State can be removed State can be removed Last sent data : x

Editor's Notes

  1. MIME was defined in N. Freed and N. Borenstein. Multipurpose internet mail extensions (MIME) part one: Format of internet message bodies. Request for Comments 2045, Internet Engineering Task Force, November 1996. N. Freed and N. Borenstein. Multipurpose internet mail extensions (MIME) part two: Media types. Request for Comments 2046, Internet Engineering Task Force, November 1996.
  2. Exemple de message MIME Received: from loriot.info.fundp.ac.be (loriot.info.fundp.ac.be [138.48.32.96]) by leibniz.info.fundp.ac.be (8.9.1/8.9.1) with SMTP id QAA19679; Mon, 20 Sep 1999 16:37:25 +0200 (MET DST) Message-Id: &amp;lt;3.0.5.32.19990920163316.00866340@info.fundp.ac.be&amp;gt; Date: Mon, 20 Sep 1999 16:33:16 +0200 To: pers-aca, pers-sci From: Gysele HENRARD &amp;lt;ghe@info.fundp.ac.be&amp;gt; Subject: listes Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=&amp;quot;=====================_937830796==_&amp;quot; --=====================_937830796==_ Content-Type: text/plain; charset=&amp;quot;iso-8859-1&amp;quot; Content-Transfer-Encoding: quoted-printable Bonjour, Voici des listes de 1M-1L, 2M-2L et ERASMUS mises =E0 jour ce lundi 20 septembre. Gyselle --=====================_937830796==_ Content-Type: application/octet-stream; name=&amp;quot;1M_99_00.xls&amp;quot;; x-mac-type=&amp;quot;584C5334&amp;quot;; x-mac-creator=&amp;quot;5843454C&amp;quot; ...
  3. HTTP 1.0 is defined in : T. Berners-Lee, R. Fielding, and H. Frystyk. Hypertext transfer protocol -- HTTP/1.0. Request for Comments 1945, Internet Engineering Task Force, May 1996.
  4. HTTP 1.1 is defined in : R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, and T. Berners-Lee. Hypertext transfer protocol -- HTTP/1.1. Request for Comments 2616, Internet Engineering Task Force, June 1999.
  5. The computation of the UDP checksum is defined in : R. Braden, D. Borman, C. Partridge, Computing the Internet Checksum, RFC1071, Septembre 1988
  6. UDP is mainly used for applications where either short messages are exchanged or losses or not a severe problem (either because they can be supported by the application or because they are used in LAN environment where there are almost no losses) Domain Name System, Network File System (NFS), Remote Procedure Call (RPC), jeux Multimedia (conversational) applications such as VoIP or VideooverIP often use UDP. In this case, UDP is often combined with RTP H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson.RTP: A Transport Protocol for Real-Time Applications. RFC1889, Jan 1996
  7. Urgent pointer is rarely used and will not be described. The THL is indicated in blocs of 32 bits. The TCP header may contain options, these will be discussed later.
  8. MSL in IP networks : 120 seconds
  9. Don’t forget that TCP’s acknowledgements are cumulative.
  10. See e.g. RFC2001 TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms. W. Stevens. January 1997.
  11. Some heavily loaded web servers, use abrupt release to close their connection to avoid maintaining state for 2*MSL seconds.