TCP/IP (Transmission Control Protocol / Internet Protocol) - Généralités - Le terme TCP/IP fait référence à un ensemble spécifique de protocoles, permettant à des ordinateurs de partager des ressources et d'échanger des informations dans un réseau. TCP/IP peut également être décrit comme un ensemble de protocoles de communications indépendants des constructeurs, supportant des fonctions de connexion d'égal à égal pour des réseaux locaux et des réseaux distants. Puisque TCP et IP sont deux des protocoles les plus connus dans cet ensemble, le terme de TCP/IP est devenu le nom usuel de la famille complète. |
TCP/IP (Transmission Control Protocol / Internet Protocol) - sur IBM AS/400 - Produit sous licence depuis la V1R20, le protocole TCP/IP est inclus dans l'OS/400 depuis la V3R10. Il permet à l'AS/400 de s'intégrer dans un réseau Internet et dans les réseaux privés utilisant ce protocole, pour communiquer avec d'autres systèmes, IBM ou non-IBM. Dans le monde IBM, TCP/IP est utilisable avec l'OS/400, VM, MVS, DOS et OS/2, AIX, et bien sur tous les UNIX et la famille Windows. Intégré à l'OS/400 V3R10, TCP/IP serait 8 fois plus rapide qu'auparavant. Ses performances et celles d'APPC sont maintenant comparables. |
TCP/IP (Transmission Control Protocol / Internet Protocol) L' OS/400 V3R10 contient : - l'ensemble du protocole TCP/IP et les outils de configuration - les applications suivantes, et leurs commandes CL : . NETSTAT (état du réseau) . PING (test des connexions) . SNMP Agent (administration du réseau) et les outils de configuration - la possibilité d'exécuter des applications APPC sur TCP/IP - la possibilité d'utiliser IP sur SNA avec les API sockets (y compris les applications écrites avec les API sockets : SMTP, FTP, LPR et LPD) - les APIs sockets C |
Les applications sont fournies gratuitement, mais séparément, dans le produit 57xx-TC1 ( TCP/IP - Connectivity Utilities/400 ) : - APIs Pascal : interface de programmation TCP et UDP - TELNET : fonction de passe-système, permettant à une station du réseau d'accéder aux applications de l'AS/400 - FTP : (File Transfer Protocol) protocole permettant le transfert de fichiers entre systèmes d'architectures différentes - SMTP : (Simple Mail Transfer Protocol) protocole d' échange de courriers électroniques - LPR/LPD : (Line Printer Requester / Line Printer Daemon) gestion des impressions dans le réseau Un produit sous licence payant était commercialisé séparément en V3R10 5798-TAA ( TCP/IP File Server Support pour OS/400 ): NFS. ==> NFS fait partie intégrante de l'OS/400 depuis la V3R7M0. |
TCP/IP : protocole réseau (d'origine UNIX) occupant les couches 3 et 4 du modèle ISO. ..................................... : : 7 Applications :...................................: : : 6 :...................................: : : 5 :...................................:------------------------------------ : TCP (et UDP) : 4 :...................................: TCP/IP : IP : 3 :...................................:------------------------------------ : : 2 :...................................: SUBNETWORK : : 1 :...................................: Modèle ISO à 7 couches. |
TCP/IP s'appuie donc sur un sous-réseau qui peut être : + liaisons haut débit WAN (ATM, DDI, Frame Relay, X25) + LAN (Token ring et Ethernet) + réseau commuté (RTC, RNIS) Pour ce dernier on parle de TCP/IP DIALUP, il y a alors mise en oeuvre de l'un des deux protocoles : SLIP (Serial Line IP) le plus ancien PPP (Point to point protocol) le plus récent, le plus sur. le lien avec la couche 2 est réalisé par ARP (Adress resolution protocol) qui envoit un message à l'ensemble du reseau (broadcats), en demandant si une station à l'adresse IP recherchée, puis stocke dans ces tables l'adresse de la carte (adresse MAC) de la station ayant répondue. |
Structure TCP/IP ( OfficeVision/400 ) (AS/400 en V3/V4) | SNADS Applications utilisateurs | FTP | | | NETSTAT SMTP LPR/LPD | SNMP | | NFS PING | (etc..) | | | | Telnet | | | | | | | | | | | v v v v v v v | | Sockets API ICF et CPI-C APIs Pascal | | | | sur APPC TCP et UDP Machine | | | | | | \ \ \ \ \|\ \|\ \ \|\ \ \|\ \ \ \ \ \ \ \ \ \ \|\ \ \ \ \ \ \ \ \|\ \ \ \ \ Interface | v | v v v | Transmission|Control Protocol (TCP) User Datagram Protocol (UDP) | | | +-------> +-----> Internet Protocol(IP) + ICMP | Interfaces Transport | | | | | | | SLIP/PPP X25 Ethernet Token Ring FR /ATM FDDI/SDDI RNIS (RTC) (CVP/CVC) |
Nous allons examiner chaque élément de la structure TCP/IP pour mieux comprendre sa fonction et étudier comment il est géré par l'AS/400. Tout d'abord, les protocoles Réseau : - IP avec ICMP puis les protocoles Transport : - TCP - UDP les APIs (Application Program Interfaces) : - Sockets APIs - APIs Pascal les protocoles d' Applications standards : - SNMP - TELNET - FTP - SMTP/POP3 - LPR/LPD - NETSTAT - PING - HTTP ... enfin, un protocole d Application spécifique : - NFS |
IP (Internet Protocol) Protocole utilisé au niveau 3 des couches OSI (Réseau). Ses fonctions principales sont : - gérer les datagrammes : . . fragmentation en segments et encapsulage en paquets pour transmission . ré-assemblage en réception avant transfert vers la couche supérieure - adresser les paquets (adresse Internet sur 32 octets) - re-router les paquets vers les destinations suivantes. IP n'envoie pas d'accusé de réception, ne gère pas les erreurs ni les retransmissions. Ceci est effectué par la couche supérieure (TCP). Intégré à IP : ICMP (Internet Control Message Protocol) est utilisé pour transporter les erreurs et des informations de trafic. |
TCP (Transmission Control Protocol) Protocole utilisé au niveau 4 des couches OSI (Transport), se situant au-dessus de IP. Sa tâche principale est de fournir un moyen de transport fiable à travers le réseau. Ses fonctions sont : - fournir un canal virtuel de communication bi-directionnel 'full-duplex' - gérer les données tranférées : en séquence, avec contrôle d'intégrité, envoi d'accusé de réception, et retransmission en cas d'erreur - utiliser un principe de recouvrement dans la transmission des fenêtres ('Sliding-Window'), pour améliorer l'efficacité - intégrer des données urgentes ('Urgent Data') à l'intérieur des blocs envoyés, avec une gestion de pointeur spécifique. L' application TELNET, par exemple, utilise ces 'Urgent Data'. |
UDP (User Datagram Protocol) Protocole utilisé au niveau 4 des couches OSI (Transport), se situant au-dessus de IP. Différent de TCP, UDP est plus léger. Ses fonctions sont : - addressage par numéro de ports, comme TCP - contrôle d'intégrité des données Il ne gère ni accusé de réception, ni aucune autre opération concernant la fiabilité de la transmission. Sa simplicité, toutefois, le rend particulièrement efficace et donc adapté pour des applications à haute vitesse (par exemple, la gestion de fichiers distribués via NFS). |
Ports et Sockets Après que Ip ait passé les données au protocole TCP ou UDP, ce dernier les transmet au processus d'application concerné. en APPC le client demande à "parler" à un pgm dont il fournit le nom (Transaction Program et fonction EVOKE) en IP, les programmes (on dit plutôt "services"), doivent être démarrés A L'AVANCE, et se déclarer à l'écoute sur un N° de canal (port) le client se connecte sur le serveur au "port mapper" (pgm système chargé de l'établissement des connexions) en lui demandant un dialogue avec le service à l'écoute sur le port 23 par exemple. si aucun service n'est actif sur le port 23, la connexion est refusée. sinon la connexion est établie. |
Les processus sont donc identifiés par un n° de port . le numéro de port source qui identifie le processus ayant envoyé les données, le numéro de port cible qui identifie le processus les recevant, sont inclus dans l'entête de chaque segment TCP (ou UDP). Les services recevant les données sont à l'écoute sur un n° de port figé , on parle de n° de port bien connu (well-know). Le client émet une demande sur ce n° de port, le serveur lui alloue alors un port dynamique (par opposition aux ports bien connus), en s'assurant que deux processus n'ont jamais de n° en double, et que l'attribution de port dynamiques commence au dessus des ports réservés (on peut les voir par WRKSRVTBLE) l'assemblage "adresses-ip-source|cible/port-source/port-cible" identifiant de manière unique une connexion est appellé SOCKET. On peut filtrer sur ces éléments adresse / port via Opération navigator |
APIs (Application Program Interfaces) L'architecture MPTN (MultiProtocol Transport Networking) permet aux CPI-C, ICF et Sockets d'utiliser à la fois TCP/IP et SNA. Sur l'AS/400, l'architecture MPTN est implémentée avec AnyNet support. AnyNet est une famille de produits permettant aux applications, écrites pour un type de protocole réseau, de s'exécuter sur un protocole réseau d'un autre type. AnyNet/400 est inclus dans l'OS/400 et fournit les supports suivants : APPC sur TCP/IP et Sockets sur SNA |
Les applications APPC sur TCP/IP pouvant utiliser AnyNet/400 sont : DRDA - DDM - SNADS - 5250 pass-through - applications utilisateurs Les applications Sockets sur SNA pouvant utiliser AnyNet/400 sont : SNMP - FTP - SMTP - LPR - LPD - applications utilisateurs Avec AnyNet support, APPC sur TCP/IP permet aux applications CPI-C ou ICF de s'exécuter sans modifications dans un réseau TCP/IP. Les applications de Client/Access/400 peuvent utiliser APPC sur TCP/IP pour s'exécuter avec TCP/IP (cas de C/A 3.1 ou C/A 95 avec Netsoft) Attention : Pour utiliser AnyNet/400, l'attribut de réseau ALWANYNET doit être à *YES. |
Sockets API Interfaces de programmation pouvant être utilisées dans des programmes applicatifs écrits en ILE C/400. Les sockets AS/400 sont compatibles avec les sockets BSD 4.3 (Berkeley Software Distributions). L'utilisation de sockets est une méthode de communication entre traitements échangeant des données, localement ou à travers des réseaux comparable aux CPI-C ou fichiers ICF sur AS/400. Relier des traitements avec les sockets, est la clé de la distribution de travaux entre clients et serveurs. Cette fonctionnalité permet d'écrire des applications directement sur les protocoles TCP, UDP et IP. L'implémentation Windows des sockets est nommée WINSOCKS |
NETSTAT (Network Status) La fonction NETSTAT fournit des informations sur l'état des interfaces réseau, des routes et des connexions actuelles. PING (Packet Internet Groper) La vérification des connexions TCP/IP, nommée également PING, teste les liaisons avec un système distant, en utilisant le protocole ICMP (Internet Control Message Protocol). Elle ne peut pas être utilisée pour vérifier des connexions IP sur SNA. |
SNMP (Simple Network Management Protocol) Protocole de gestion de réseaux qui semble s'imposer comme un standard de fait, pour l'échange d'informations d'administration de réseaux. Qu'est-ce que l'administration de réseaux? L'ISO et le CCITT en ont donné un modèle abstrait, décrivant cinq fonctionnalités : - la gestion des pannes ou erreurs - la gestion de la sécurité - la gestion des configurations - la gestion des performances - la gestion de la comptabilité L'ISO a établi un cadre, définissant la structure des informations de gestion : SMI (Structure of Management Information), comprenant un modèle de consignation (CMIS) et un protocole de transmission (CMIB). Ce modèle décrit comment les objets de gestion, attributs et variables, sont rangés dans une base de données, la MIB (Management Information Base). |
SNMP (Simple Network Management Protocol) SNMP est utilisé sur chaque noeud d'un réseau TCP/IP, administré par un gestionnaire SNMP. Sur AS/400, SNMP participe à l'administration du réseau en tant qu'AGENT. Il fournit le support pour l'échange de messages de gestion du réseau. Bien que n'étant pas normalisé par l'ISO, SNMP définit une MIB, ou Base des Informations relatives à l'administration de réseaux, selon les critères de l'ISO. Il autorise le gestionnaire SNMP à lire, éventuellement à modifier, les objets contenus dans sa MIB. Il rend disponible, pour le gestionnaire, les données de configuration, de performances et de gestion des erreurs. Sur AS/400, il journalise les échanges avec le gestionnaire SNMP dans le journal QSNMP de QUSRSYS. |
TELNET Protocole permettant à un système (le Client TELNET), d'utiliser les ressources d'un système distant (le Serveur TELNET), comme si la station Cliente était attachée localement au Serveur. TELNET sur AS/400 fournit les deux fonctions Client et Serveur. Dépendant du système Serveur sur lequel le Client se connecte, le mode d'émulation sera différent : 3270, 5250, VT100 ou VT220. Les fonctions disponibles dans la session TELNET dépendront du mode. Un utilisateur TELNET pourra démarrer : - une session TELNET dans une session TELNET - une session passthru dans une session TELNET - une session TELNET dans une session passthru |
FTP (File Transfer protocol) Fonction permettant à un utilisateur d'envoyer ou de recevoir des fichiers, à ou depuis des systèmes distants. FTP fournit également la possibilité de renommer, ajouter et supprimer des fichiers. Sur AS/400 FTP permet les deux modes Client et Serveur. Les fonctions disponibles - transfert de fichiers binaires "tel que" - création de librairies, de fichiers et de membres - soumission de commandes CL à distance - exécution de FTP en mode Batch (programme CL ou REXX) - envoi de documents en EBCDIC, ou traduits en ASCII - utilisation de tables ASCII et EBCDIC pour le "mappage" des données Avec la V3R70, nouvelle possibilité : - envoi et réception de tous fichiers IFS |
TFTP (Trivial FTP) Fonction permettant à un utilisateur d'envoyer ou de recevoir des fichiers, à ou depuis des systèmes distants. TFTP est une fonction trés allégée de FTP, elle a comme particularité de fonctionner en mode anonyme (pas de profil utilisateur, pas de mot de passe) on ne se connecte pas, on passe une commande par fichier à transférer TFTP est arrivé sur l'AS/400 (avec BOOTP) pour le support de la NetworkStation (le kernel de la NS est stocké sur l'AS) Les commandes 'Remote' de Berckley Rexec : soumission d'une commande à un serveur (signature obligatoire) Rsh : soumission d'une commande à un serveur (signature facultative) Rcp : Copie de fichier entre deux machines RUNRMTCDM est la partie cliente de REXEC sur l'AS/400, le serveur REXEC est supporté depuis la V4(les autres commandes ne sont pas supportées) |
SMTP (Simple Mail Transfer Protocol) Utilitaire d'envoi et de réception de messages. Comme TELNET et FTP, SMTP sur AS/400 gère les fonctions Client et Serveur. Sur AS/400 SMTP est couplé avec SNADS, pour échanger des messages avec des utilisateurs non-SMTP, sous forme de distributions (SNDDST) Cela signifie que les utilisateurs internet/intranet peuvent envoyer des messages à des utilisateurs AS/400 et inversement. le type et l'adresse de chaque utilisateur sont enregistrés dans la directory système (WRKDIRE puis F19) Il s'agit là d'une réelle fonction de passerelle (donc avec adaptation de la syntaxe des informations, le pont, lui, ne faisant que passer les informations d'un réseau vers un autre sans les adapter). |
POP3 (Post Office Protocol) Post Office Protocol DEPUIS la V3R70 - permet le stockage des messages destiné à un utilisateur (répertoire QTCPTMM/MAIL/nom-du-user) - gère la restitution des messages lors d'une demande du client. Cette fonctionnalité fait de l'AS/400 un VRAI serveur de messagerie internet/intranet, compatible avec des produits clients comme : + Windows Messaging (boite de réception de Windows 95) + Outlook + Netscape navigator + Eudora ... |
LPR (Line Printer Requester) et LPD (Line Printer Daemon) Permet aux utilisateurs d'envoyer un fichier spool et de l'imprimer sur tout système d'un réseau TCP/IP. LPR est l'émetteur, la partie client, du transfert de spool. LPD est le récepteur, la partie serveur, du transfert de spool. Depuis un AS/400, des spools peuvent être envoyés à des système AS/400 ou non-AS/400. En cas de transfert à un système non AS/400 c'est la fonction "Host Print Transform" intégrée à l'OS/400 qui fait la conversion - les commandes de transfert sont SNDTCPSPLF ou LPR. |
HTTP (Hypertext Protocol) ce qui fait aujourd'hui le succès d'INTERNET LE WEB (toile d'araignée) il s'agit de serveurs de documents multi-média contenants des liens hypertextes vers d'autres documents ou d'autres serveurs. ce sont ces liens hypertextes qui constituent la toile d'araigné mondiale (World Wide WEB ou WWW) Le serveur envoi au client une page contenantes du texte et des codes HTML , la mise en page est réalisée par le client. Le programme sur le client doit reconnaitre ce langage, on parle de WEB Browser ou d'explorateurs INTERNET. les plus connus sont NETSCAPE et Internet Explorer |
Pour le client : - cliquer sur un lien hypertexte établit une nouvelle connexion vers le serveur référencé. - remplir une zone de saisie ou utiliser un bouton rend la main au serveur. Celui-ci doit alors appeler un programme chargé de récuperer la saisie, de la traiter et de constituer dynamiquement la page HTML constituant le résultat. Le standard de récupération des données saisies est appellé CGI pour Common Gateway Interface. l'AS/400 est serveur WEB (depuis la V3R7) reconnait la norme CGI (en C, GAP ou COBOl) il intègre un produit IBM, Netdata , permettant d'incorporer des requêtes SQL dans vos pages HTML. |
Si vous souhaitez développer des applications sur le Net vous pouvez , --> implémenter une architecture trois tiers : 1/ un client banalisé (navigateur) 2/ un serveur WEB (IIS, APACHE, ...) 3/ un SGBD-R (pouvant être sur une troisième machine, donc) la question est de savoir comment lancer des traitements sur le serveur WEB a/ en utilisant une extension au serveur WEB, analysant les pages HTML contenant du code propriètaire(ASP/Microsfot, Php dans le monde "libre") b/ en ajoutant au serveur Web un serveur d'application capable de lancer des programmes JAVA sur le serveur (Servlet) et de gérer le résultat. Les Servlet communiquent avec la base de données via JDBC et génèrent du HTML en retour. le produit WEBSPHERE d'IBM se situe dans cette gamme. |
Depuis la V4R20/R30 l'OS/400 propose les standards IP suivants : - DNS l'AS/400 est serveur DNS, la configuration se fait via OP.Navigator Il s'agit de stocker la correspondance adrsse-ip/nom dans des fichiers sur le serveur et de restituer cette information aux clients DNS. - DHCP l'AS/400 est serveur DHCP, la configuration se fait via OP.Navigator Il s'agit de stocker la configuration des clients sur un serveur (adresse Ip à utiliser, adresse de passerelle, serveur DNS, ...) et d'envoyer ces éléme,nts aux clients lors du démarrage. - IpSec fonction d'entrée d'un FIREWALL, permettant d'établir des règles de sécurité pour TCP/IP. |
- DDM sur IP les protocoles DDm et DRDA sont utilisables sur IP - QFILESRV.400 l'AS/400 propose de voir les dossiers partagés des autres AS/400 dans cette arborescence. - QNTC l'AS/400 propose de voir les répertoires partagés des machines Netbios (Windows et Unix/Samba) du réseau local. - LDAP l'AS/400 implémente un annuaire LDAP (X.500) pouvant répliquer la directory système. - Pour terminer, la version la plus récente de Client Access (Express) ne fonctionne que sur IP. |