Communication Systems and Networks

Picture : Multipath TCP deployed on smartphones in Korea

In ICTEAM, a large variety of problems related to communication systems and networks are investigated. The different topics cover all the layers of communication systems going from the physical layer up to the application layer, including the MAC, network and transport layers. A few examples of particular activities are detailed below. Thanks to its expertise on such a large array of subjects, ICTEAM is able to undertake complex research projects dealing with very different aspects of communication systems.

Principal Investigators :

Olivier Bonaventure, Jean-Charles Delvenne, Christophe De Vleeschouwer, Denis Flandre, Raphaël Jungers, Jérôme Louveaux, Benoit Macq, Claude Oestges, Etienne Rivière, Ramin Sadre, Peter Van Roy, Luc Vandendorpe, Danielle Vanhoenacker-Janvier

Research Labs :

Cloud and Large Scale computing group, Image and Signal Processing Group (ISPGroup), IP Networking Lab, Programming Languages and Distributed Computing

Research Areas :

The research focuses on the physical layer and the MAC layer of modern wired and wireless communications systems. Transmitters, receivers and resource allocation are designed and optimized for OFDM(A) based systems, multi-antenna systems (MIMO, distributed MIMO, relay techniques) and multiuser systems. At the receiver side, both detection and estimation are considered. Iterative or turbo based techniques are receiving a lot of attention. Particular attention is paid to multicell wireless communications and sensor networks.

This researches focuses on ultra wide band (UWB) based localisation or positioning. Methods considered are time of arrival (TOA), time difference of arrival (TDOA) and angle of arrival (AOA). Bounds have been derived to assess the potential of UWB, understand the impact of multipath propagation and investigate the ambiguities. Practical estimators are proposed and their performance is investigated. A practical testbed has been developed and is being upgraded. An accuracy of a few millimeters has been achieved for indoor positioning over distances of about ten meters and with obstacles.

The DSL activity is investigating signal processing solutions, mainly at the physical layer, for improving the performance of communication on the telephone lines (digital subscriber lines). The current focus is on the mitigation of the crosstalk between lines, including pre-/post-cancellation techniques, adaptive crosstalk channel estimation, as well as dynamic spectrum management by means of centralized optimization.

The radio propagation activity aims at the measurement, characterization and modeling of multi-dimensional propagation channels for a range of wireless systems and networks: MIMO, WLAN/WPAN, body area networks, vehicular communication systems, etc. The facilities include a state-of-the art channel MIMO sounder, various network analyzers and antennas, as well a ray-tracing tool.

  • evaluation of link budget for satellite systems, deep-space missions, ...
  • generation of time series for the design of fade mitigation techniquespropagation modelling into collapsed buildings and harsh environments for radio-localization

We develop new protocols and mechanisms for the global Internet. Our main area of expertise are the network and transport layers of the TCP/IP stack. More specifically, we have proposed extensions to allow routing protocols (both intradomain and interdomain) to better handle link failures and have designed and evaluated various types of traffic engineering techniques. We also address the multihoming problem both from the network viewpoint and the endhost viewpoint. We carry both theoretical research and applied research by developing reference implementations of new protocols. We actively participate in the development of future Internet architecture proposals and contribute to standardisation within the Internet Engineering Task Force.

Image and video compression algorithms are investigated, including for stereo and multi-view contents. Visually pleasant and fluent video streaming or image browsing are implemented by adapting compression and forwarding mechanisms to network and terminal resources. This implies the rate-distortion optimization of image/video packet schedules, but also adaptive switching between multiple versions of the content. For low bandwidth wireless accesses, interactive streaming architectures are investigated to allow the end-user to control the trade-offs involved when reducing the spatial and temporal resolution of the streamed content.

Distributed systems are becoming ever larger and must handle problems of frequent faults, security issues, and management complexity.  We have built large-scale transactional storage systems based on techniques from self-organizing peer-to-peer networks.  We are developing design techniques for these systems based on ideas from complex systems theory.  Future work will focus on building practical programming platforms that provide cloud computing properties such as elasticity and that support large-scale applications using techniques from machine learning. 

Most recent publications

Below are listed the 10 most recent journal articles and conference papers produced in this research area. You also can access all publications by following this link : see all publications

--> -->
 
 
<type 'exceptions.IOError'>
Python 2.7.9: /usr/bin/python
Mon May 20 13:01:30 2019

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /var/www/sites/tools/export/export.py in ()
    106     tmp = urllib.urlopen(q)
    107     
=>  108     resp = eval( urllib.urlopen(q).read() )
    109     if ( resp['response']['numFound'] > 0 ):
    110         #print '<h/>%s (%d)</h2>' % (pubType[t].encode("utf-8"), \
resp undefined, builtin eval = <built-in function eval>, urllib = <module 'urllib' from '/usr/lib/python2.7/urllib.pyc'>, urllib.urlopen = <function urlopen>, q = 'https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', ).read undefined
 /usr/lib/python2.7/urllib.py in urlopen(url='https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None, proxies=None, context=None)
     85         opener = _urlopener
     86     if data is None:
=>   87         return opener.open(url)
     88     else:
     89         return opener.open(url, data)
opener = <urllib.FancyURLopener instance>, opener.open = <bound method FancyURLopener.open of <urllib.FancyURLopener instance>>, url = 'https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in open(self=<urllib.FancyURLopener instance>, fullurl='https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None)
    211         try:
    212             if data is None:
=>  213                 return getattr(self, name)(url)
    214             else:
    215                 return getattr(self, name)(url, data)
builtin getattr = <built-in function getattr>, self = <urllib.FancyURLopener instance>, name = 'open_https', url = '//dial.uclouvain.be/solr6/repository/select?&sta...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in open_https(self=<urllib.FancyURLopener instance>, url='//dial.uclouvain.be/solr6/repository/select?&sta...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None)
    441             if realhost: h.putheader('Host', realhost)
    442             for args in self.addheaders: h.putheader(*args)
=>  443             h.endheaders(data)
    444             errcode, errmsg, headers = h.getreply()
    445             fp = h.getfile()
h = <httplib.HTTPS instance>, h.endheaders = <bound method HTTPSConnection.endheaders of <httplib.HTTPSConnection instance>>, data = None
 /usr/lib/python2.7/httplib.py in endheaders(self=<httplib.HTTPSConnection instance>, message_body=None)
   1033         else:
   1034             raise CannotSendHeader()
=> 1035         self._send_output(message_body)
   1036 
   1037     def request(self, method, url, body=None, headers={}):
self = <httplib.HTTPSConnection instance>, self._send_output = <bound method HTTPSConnection._send_output of <httplib.HTTPSConnection instance>>, message_body = None
 /usr/lib/python2.7/httplib.py in _send_output(self=<httplib.HTTPSConnection instance>, message_body=None)
    877             msg += message_body
    878             message_body = None
=>  879         self.send(msg)
    880         if message_body is not None:
    881             #message_body was not a string (i.e. it is a file) and
self = <httplib.HTTPSConnection instance>, self.send = <bound method HTTPSConnection.send of <httplib.HTTPSConnection instance>>, msg = 'GET /solr6/repository/select?&start=0&rows=99999....uclouvain.be\r\nUser-Agent: Python-urllib/1.17\r\n\r\n'
 /usr/lib/python2.7/httplib.py in send(self=<httplib.HTTPSConnection instance>, data='GET /solr6/repository/select?&start=0&rows=99999....uclouvain.be\r\nUser-Agent: Python-urllib/1.17\r\n\r\n')
    839         if self.sock is None:
    840             if self.auto_open:
=>  841                 self.connect()
    842             else:
    843                 raise NotConnected()
self = <httplib.HTTPSConnection instance>, self.connect = <bound method HTTPSConnection.connect of <httplib.HTTPSConnection instance>>
 /usr/lib/python2.7/httplib.py in connect(self=<httplib.HTTPSConnection instance>)
   1248 
   1249             self.sock = self._context.wrap_socket(self.sock,
=> 1250                                                   server_hostname=server_hostname)
   1251 
   1252     __all__.append("HTTPSConnection")
server_hostname = 'dial.uclouvain.be'
 /usr/lib/python2.7/ssl.py in wrap_socket(self=<ssl.SSLContext object>, sock=<socket._socketobject object>, server_side=False, do_handshake_on_connect=True, suppress_ragged_eofs=True, server_hostname='dial.uclouvain.be')
    348                          suppress_ragged_eofs=suppress_ragged_eofs,
    349                          server_hostname=server_hostname,
=>  350                          _context=self)
    351 
    352     def set_npn_protocols(self, npn_protocols):
_context undefined, self = <ssl.SSLContext object>
 /usr/lib/python2.7/ssl.py in __init__(self=<ssl.SSLSocket object>, sock=<socket._socketobject object>, keyfile=None, certfile=None, server_side=False, cert_reqs=0, ssl_version=2, ca_certs=None, do_handshake_on_connect=True, family=2, type=1, proto=0, fileno=None, suppress_ragged_eofs=True, npn_protocols=None, ciphers=None, server_hostname='dial.uclouvain.be', _context=<ssl.SSLContext object>)
    564                         # non-blocking
    565                         raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets")
=>  566                     self.do_handshake()
    567 
    568             except (OSError, ValueError):
self = <ssl.SSLSocket object>, self.do_handshake = <bound method SSLSocket.do_handshake of <ssl.SSLSocket object>>
 /usr/lib/python2.7/ssl.py in do_handshake(self=<ssl.SSLSocket object>, block=False)
    786             if timeout == 0.0 and block:
    787                 self.settimeout(None)
=>  788             self._sslobj.do_handshake()
    789         finally:
    790             self.settimeout(timeout)
self = <ssl.SSLSocket object>, self._sslobj = <_ssl._SSLSocket object>, self._sslobj.do_handshake = <built-in method do_handshake of _ssl._SSLSocket object>

<type 'exceptions.IOError'>: [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
      args = ('socket error', SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)'))
      errno = 'socket error'
      filename = None
      message = ''
      strerror = SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)')

--> -->
 
 
<type 'exceptions.IOError'>
Python 2.7.9: /usr/bin/python
Mon May 20 13:01:30 2019

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /var/www/sites/tools/export/export.py in ()
    104         t.encode("utf-8"))
    105 
=>  106     tmp = urllib.urlopen(q)
    107     
    108     resp = eval( urllib.urlopen(q).read() )
tmp undefined, urllib = <module 'urllib' from '/usr/lib/python2.7/urllib.pyc'>, urllib.urlopen = <function urlopen>, q = 'https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in urlopen(url='https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None, proxies=None, context=None)
     85         opener = _urlopener
     86     if data is None:
=>   87         return opener.open(url)
     88     else:
     89         return opener.open(url, data)
opener = <urllib.FancyURLopener instance>, opener.open = <bound method FancyURLopener.open of <urllib.FancyURLopener instance>>, url = 'https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in open(self=<urllib.FancyURLopener instance>, fullurl='https://dial.uclouvain.be/solr6/repository/selec...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None)
    211         try:
    212             if data is None:
=>  213                 return getattr(self, name)(url)
    214             else:
    215                 return getattr(self, name)(url, data)
builtin getattr = <built-in function getattr>, self = <urllib.FancyURLopener instance>, name = 'open_https', url = '//dial.uclouvain.be/solr6/repository/select?&sta...de%20p%C3%A9riodique%20%28Journal%20article%29%22'
 /usr/lib/python2.7/urllib.py in open_https(self=<urllib.FancyURLopener instance>, url='//dial.uclouvain.be/solr6/repository/select?&sta...de%20p%C3%A9riodique%20%28Journal%20article%29%22', data=None)
    441             if realhost: h.putheader('Host', realhost)
    442             for args in self.addheaders: h.putheader(*args)
=>  443             h.endheaders(data)
    444             errcode, errmsg, headers = h.getreply()
    445             fp = h.getfile()
h = <httplib.HTTPS instance>, h.endheaders = <bound method HTTPSConnection.endheaders of <httplib.HTTPSConnection instance>>, data = None
 /usr/lib/python2.7/httplib.py in endheaders(self=<httplib.HTTPSConnection instance>, message_body=None)
   1033         else:
   1034             raise CannotSendHeader()
=> 1035         self._send_output(message_body)
   1036 
   1037     def request(self, method, url, body=None, headers={}):
self = <httplib.HTTPSConnection instance>, self._send_output = <bound method HTTPSConnection._send_output of <httplib.HTTPSConnection instance>>, message_body = None
 /usr/lib/python2.7/httplib.py in _send_output(self=<httplib.HTTPSConnection instance>, message_body=None)
    877             msg += message_body
    878             message_body = None
=>  879         self.send(msg)
    880         if message_body is not None:
    881             #message_body was not a string (i.e. it is a file) and
self = <httplib.HTTPSConnection instance>, self.send = <bound method HTTPSConnection.send of <httplib.HTTPSConnection instance>>, msg = 'GET /solr6/repository/select?&start=0&rows=99999....uclouvain.be\r\nUser-Agent: Python-urllib/1.17\r\n\r\n'
 /usr/lib/python2.7/httplib.py in send(self=<httplib.HTTPSConnection instance>, data='GET /solr6/repository/select?&start=0&rows=99999....uclouvain.be\r\nUser-Agent: Python-urllib/1.17\r\n\r\n')
    839         if self.sock is None:
    840             if self.auto_open:
=>  841                 self.connect()
    842             else:
    843                 raise NotConnected()
self = <httplib.HTTPSConnection instance>, self.connect = <bound method HTTPSConnection.connect of <httplib.HTTPSConnection instance>>
 /usr/lib/python2.7/httplib.py in connect(self=<httplib.HTTPSConnection instance>)
   1248 
   1249             self.sock = self._context.wrap_socket(self.sock,
=> 1250                                                   server_hostname=server_hostname)
   1251 
   1252     __all__.append("HTTPSConnection")
server_hostname = 'dial.uclouvain.be'
 /usr/lib/python2.7/ssl.py in wrap_socket(self=<ssl.SSLContext object>, sock=<socket._socketobject object>, server_side=False, do_handshake_on_connect=True, suppress_ragged_eofs=True, server_hostname='dial.uclouvain.be')
    348                          suppress_ragged_eofs=suppress_ragged_eofs,
    349                          server_hostname=server_hostname,
=>  350                          _context=self)
    351 
    352     def set_npn_protocols(self, npn_protocols):
_context undefined, self = <ssl.SSLContext object>
 /usr/lib/python2.7/ssl.py in __init__(self=<ssl.SSLSocket object>, sock=<socket._socketobject object>, keyfile=None, certfile=None, server_side=False, cert_reqs=0, ssl_version=2, ca_certs=None, do_handshake_on_connect=True, family=2, type=1, proto=0, fileno=None, suppress_ragged_eofs=True, npn_protocols=None, ciphers=None, server_hostname='dial.uclouvain.be', _context=<ssl.SSLContext object>)
    564                         # non-blocking
    565                         raise ValueError("do_handshake_on_connect should not be specified for non-blocking sockets")
=>  566                     self.do_handshake()
    567 
    568             except (OSError, ValueError):
self = <ssl.SSLSocket object>, self.do_handshake = <bound method SSLSocket.do_handshake of <ssl.SSLSocket object>>
 /usr/lib/python2.7/ssl.py in do_handshake(self=<ssl.SSLSocket object>, block=False)
    786             if timeout == 0.0 and block:
    787                 self.settimeout(None)
=>  788             self._sslobj.do_handshake()
    789         finally:
    790             self.settimeout(timeout)
self = <ssl.SSLSocket object>, self._sslobj = <_ssl._SSLSocket object>, self._sslobj.do_handshake = <built-in method do_handshake of _ssl._SSLSocket object>

<type 'exceptions.IOError'>: [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
      args = ('socket error', SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)'))
      errno = 'socket error'
      filename = None
      message = ''
      strerror = SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)')