- Förklara IP-adress, port och socket.
- Jämföra TCP, UDP, client–server och peer-to-peer.
- Observera trafik och felsöka systematiskt.
En adress är bara halva vägen
I 192.168.1.50:5000 är IP-adressen 192.168.1.50 och porten 5000. Flera tjänster kan köras på samma dator eftersom de använder olika portar. TCP och UDP har separata portutrymmen.
En socket är ett programmeringsgränssnitt och en ändpunkt för att sända och ta emot data. Du väljer adressfamilj och sockettyp när den skapas.
IPv4 + TCP → AF_INET + SOCK_STREAM
IPv4 + UDP → AF_INET + SOCK_DGRAMTCP eller UDP?
TCP upprättar en anslutning, levererar bytes i ordning och skickar om förlorade data. Applikationen måste själv definiera meddelandegränser, exempelvis med en längdprefix eller radavslut. Ett send motsvarar inte säkert ett receive.
UDP bevarar datagramgränser men garanterar varken leverans eller ordning. Det kan passa när låg overhead är viktig och viss förlust tolereras. Valet beror på vad applikationen behöver.
TCP: connect → send / receive → close
UDP: sendto → datagram → recvfromVem pratar med vem?
I client–server lyssnar servern på en känd port och klienten initierar kontakten. En central tjänst ger tydliga regler men blir också ett beroende.
I peer-to-peer kommunicerar jämbördiga noder direkt och kan både skicka och ta emot. Upptäckt och samordning blir ofta mer komplicerade. MQTT frikopplar producenter och konsumenter genom brokern, som i stället blir det centrala beroendet.
Gör trafiken synlig
Wireshark låter dig studera adresser, portar, protokoll och TCP-flaggor i fångad trafik. Okrypterad testtrafik kan också visa innehållet. Fånga i ditt eget labbnät och välj det gränssnitt som trafiken använder.
Om kommunikationen fallerar: kontrollera protokoll, IP eller värdnamn, port, lyssnande process och brandvägg. Undersök en del i taget.
tcp.port == 5000
udp.port == 5001Prova själv
Ta med ämnet in i ditt eget IoT-case. Dokumentera vad du upptäcker.
- Bygg en lokal TCP-klient och server med en uttrycklig meddelandegräns.
- Fånga trafiken i Wireshark och identifiera källport och destinationsport.
- Skicka samma data med UDP. Jämför uppkoppling och meddelandegränser.
- Testa fel port och stoppad server. Dokumentera symtom, hypotes och resultat i Git.
Testa dina kunskaper
Stanna upp en stund. Vad har fastnat?
Fortsätt vara nyfiken
Originalmaterial och utvalda källor för dig som vill gå djupare.
Föreläsningsbilder · Ämne 2Joakim Englund · Systementor AB · PDF på svenskaSkicka och ta emot data med socketsMicrosoft Learn · EngelskaIntroduktion till WiresharkWireshark · EngelskaEtt steg närmare helheten.
Markera ämnet när du känner dig redo.