Examen PAPR (2) - SoC

Create interactive lessons using any digital content including wikis with our free
sister product TES Teach. Get it on the web or iPad! guest · Join | Help | Sign In.

Part of the document


Examen PAPR 2004/2005 Examen écrit de 2h mercredi 30 mars 2005 de 10 :00 à 12 :00.
Tous documents sont autorisés. Le barème est donné à titre indicatif. 1ère partie : Réseaux Question 1 (12 points): (Question de Cours)
a) Pourquoi a-t-on introduit l'adressage CIDR dans l'IP ?
b) Pourquoi doit on recalculer le CHKSUM d'en-tête au passage de chaque
routeur ?
c) Peut on utiliser le longuest Prefix match pour le multicast dans les
réseau IP?
d) A-t-on besoin d'algorithme de Weighted Fair Queueing dans un réseau ou
la taille des paquets est constante ?
e) Dans un tel réseau est-il nécessaire d'ajouter des mécanismes pour
garantir un délai minimal ?
f) Supposez que vous utiliser un pc classique comme routeur entre plusieurs
sous réseaux. Quel est le principal composant qui borne le débit en
paquets par seconde.
g) Pourquoi un Ordonnanceur work-conservative est il préférable ? Question 2 (8 points): (mécanismes de mesures de flots)
Les routeurs actuels effectuent aussi des opérations de mesures. En
particulier, des mesures sur les flots traversant un routeur sont
collectées. Dans cette question nous étudions ces mesures. Le terme flot
signifie un ensemble de paquets partageant certaines caractéristiques. En
particulier un flot TCP est défini comme l'ensemble des paquets ayant une
même adresse source (resp. adresse destination), ainsi que le même port
source (resp. port destination). Nous souhaitons mesurer les informations
suivantes sur les flots TCP : le nombre de flot à chaque instant, le volume
de chaque flot, la durée de chaque flot.
a) Décrivez une structure de données intégrant toute les informations à
stocker sur chaque flot afin de pouvoir extraire les mesures nécessaires.
Donnez une évaluation de la mémoire nécessaire pour stocker les
informations de N flots
b) Proposez une solution permettant de minimiser le nombre de comparaison à
effectuer à la réception de chaque paquet.
c) La mesure ajoute une charge supplémentaire au processeur du routeur.
Afin de réduire cette charge, la mesure est effectuée sur un échantillon
de paquet. La procédure généralement suivie consiste à effectuer la
mesure sur un paquet tout les N paquets successif. Proposez comme obtenir
les trois métriques nécessaire sur des paquets échantillonnés. Quelles
sont les métriques les plus fiables ? Pourquoi ? 2ème partie : Architecture des Processeurs Réseau Question 1 (5 points): (Rappel du Cours. Répondre en quelques phrases) a) Enumérer au moins deux applications qui ajoutent des données au début
d'un paquet et expliquer les conséquences pour la gestion de la mémoire sur
puce.
b) Comparer l'architecture système et le modèle de programmation du Power
NP avec ceux d'une NCPU proposé par ASIM. Expliquer notamment le rôle de
l'interconnect.
c) Identifier les principaux goulets d'étranglement d'un système de
traitement paquet purement logiciel (c'est à dire sur une architecture hôte
standard).
d) Quel est le principal support matériel d'une implémentation multi-
thread?
e) Quelles sont les fonctions essentielles de traitement de paquet. Quels
sont les supports fournis au niveau micro-architecture par les processeurs
de la gamme IBM PowerNP ? Question 2 (5 points) : (Gestion des données sur une plate-forme processeur
réseau à mémoire partagée) Une application de classification stocke de fur et à mesure des
informations sur des différent flux dans un tableau (une entrée par flux).
Chaque information est codée sur 8 bit. Il y a 4 informations différentes à
récupérer, chacune demande un accès du tableau en lecture (pour le lookup)
puis en écriture (pour la mettre à jour).Un banc mémoire a une taille de
1Kb.
a) L'information sur combien des flux peut-on accueillir sur un banc
mémoire ?
b) Le maximum des flux à gérer à un instant donné est de 500. Combien
faut-il de bancs mémoire pour accueillir de tableau?
c) Quels sont les conséquences de la distribution du tableau sur
plusieurs bancs mémoire sur le fonctionnement du système entier?
Nommez les principaux sources de contention.
d) Comment pourrait-on améliorer la performance d'une consultation du
tableau ?
e) Du quel matériel specialisé profiterait la même application si elle
serait traitée par le PowerNP ? Question 3 (3 points): (Rappel desTME 1+2) a) Expliquer brièvement le mécanisme de Push et Pull de Click.
b) Expliquer que fait la configuration Click suivante : InfiniteSource( \, 1, 5)
-> c::Classifier(12/86dd 20/3aff 54/87,
12/86dd 20/3aff 54/88,
12/86dd);
c[0] -> Print(c[0], 200) -> Discard;
c[2] -> Print(c[2], 200) -> Strip(14)
-> CheckIP6Header(3ffe:1ce1:2:0:200::ffff 3ffe:1ce1:2::ffff)
-> GetIP6Address(24)
-> rt :: LookupIP6Route(
3ffe:1ce1:2::2/128 ::0 0,
3ffe:1ce1:2:0:200::1/128 ::0 0,
3ffe:1ce1:2::/80 ::0 1,
3ffe:1ce1:2:0:200::/80 ::0 2,
0::ffff:0:0/96 ::0 3,
::/0 ::c0a8:1 4); nds :: IP6NDSolicitor(3ffe:1ce1:2::1, 00:e0:29:05:e5:6f); rt[1] -> Print(route1-ok, 200)
-> [0]nds; c[1] -> Print(c[1], 200) ->[1]nds;
nds[0] -> Print(after-IP6NDSolicitor-output0, 200)
-> Discard;
rt[0] -> Print(route0-ok, 200) -> Discard;
rt[2] -> Print(route2-ok, 200) -> Discard;
rt[3] -> Print(route3-ok, 200) -> Discard;
rt[4] -> Print(route4-ok, 200) -> Discard; La sortie sur écran affiche les lignes suivantes : //Print c[2] | 134 : 0000c043 71ef0090 27e0231f 86dd6000 00000050 11403ffe
1ce10002 00000200 c0fffe43 71ef3ffe 1ce10002 00000000 00000000 00010014
d6415544 50207061 636b6574 210a0400 00000100 00000100 00000000 00000080
04080080 04085353 00005353 00000500 00000010 00000100 00005453 000054e3
040854e3 0408d801 00001369 1369 //Print route1-ok | 120 : 60000000 00501140 3ffe1ce1 00020000 0200c0ff
fe4371ef 3ffe1ce1 00020000 00000000 00000001 0014d641 55445020 7061636b
6574210a 04000000 01000000 01000000 00000000 00800408 00800408 53530000
53530000 05000000 00100000 01000000 54530000 54e30408 54e30408 d8010000
13691369 //Print after-output0 | 86 : 3333ff00 000100e0 2905e56f 86dd6000 00000020
3aff3ffe 1ce10002 00000000 00000000 0001ff02 00000000 00000000 0001ff00
00018700 b0840000 00003ffe 1ce10002 00000000 00000000 00010101 00e02905
e56f Question 4 (7 points): (Rappel du cours et des TME3+4) a) Pourquoi a-t-on mis un wrapper MWMR entre l'interconnect et la Input
Engine/la Output Engine?
b) Est-il possible que le même descripteur revient dans la même banc
mémoire après traitement ? Dans la même FifoMWMR ? Justifier la réponse.
c) Combien de transactions VCI faut-il pour la reconstitution d'un paquet
de taille 280 par la OutputEngine ?
d) A quoi sert le champ TT (taille totale) du descripteur ? Peut-il être
écarté pour récupérer quelques bits ?
e) Dans l'application generic.c, à quoi servent les commandes
pthread_mutex_lock(&mut) ? Bon courage !