Junior
Quelle est la différence entre les protocoles TCP et UDP?
sobes.tech IA
Réponse de l'IA
TCP : orienté connexion, garantit la livraison et l’ordre des paquets. UDP : sans établissement de connexion, ne garantit pas la livraison ni l’ordre, mais est plus rapide.
Principales différences :
| Caractéristique | TCP | UDP |
|---|---|---|
| Orientation | Avec établissement de connexion | Sans établissement de connexion |
| Fiabilité | Élevée (garantit la livraison) | Faible (ne garantit pas la livraison) |
| Ordre | Garanti | Non garanti |
| Contrôle de flux | Oui | Non |
| Contrôle d’erreurs | Oui (transmission et ordre) | Non (somme de contrôle de base) |
| Vitesse | Plus faible | Plus élevée |
| Utilisation | HTTP, FTP, SSH | DNS, DHCP, jeux en ligne, streaming |
Exemple de code pour envoyer des données via TCP en Go :
package main
import (
"net"
"log"
)
func main() {
conn, err := net.Dial("tcp", "localhost:8080") // Établir une connexion TCP
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Assurer la fermeture de la connexion
_, err = conn.Write([]byte("Hello, TCP!")) // Envoyer des données
if err != nil {
log.Fatal(err)
}
}
Exemple de code pour envoyer des données via UDP en Go :
package main
import (
"net"
"log"
)
func main() {
addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // Définir l’adresse UDP
if err != nil {
log.Fatal(err)
}
conn, err := net.DialUDP("udp", nil, addr) // Créer une "connexion" UDP (sans session)
if err != nil {
log.Fatal(err)
}
defer conn.Close() // Fermer la socket
_, err = conn.Write([]byte("Hello, UDP!")) // Envoyer des données
if err != nil {
log.Fatal(err)
}
}