Teknologian jakaminen

python-verkkoohjelmointi-TCP/IP

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

linkkikerros

Kehyksen koostumus (järjestyksessä):

Kohde-MAC: 6B

Lähde MAC: 6B

Tyyppi: 2B

Tiedot: 46B-1500B

CRC: 4B

Niistä lähde MAC on isäntäverkkokortin osoite, tyyppi on lähdeverkkokerroksen tietotyyppi, ipv4 on 0800, arp on 0806, pppoe on 8864, 1qtag on 8100, ipv6 on 86dd

Python voi saada alkuperäisen mac-osoitteen uuid-moduulin kautta

Verkkokerros

Datagrammin rakenne

Otsikko: 20-60B, joista ensimmäiset 20B ovat pakollisia ja viimeiset 40B ovat valinnaisia.

Tiedot: 0-65516B

otsikkorakenne

Versio: 4 numeroa, ilmaisee ipv4 tai ipv6

ihl: 4 bittiä, ilmaisee otsikon pituuden, yksikkö on 4B, joten maksimi on 4x15=60B, mikä on täsmälleen otsikon enimmäispituus

ds: eriytetyt palvelut, 8 bittiä, kolme ensimmäistä bittiä osoittavat prioriteetin, seuraavat neljä bittiä ilmaisevat vähimmäisviiveen, maksimiläpäisykyvyn, korkeimman luotettavuuden ja vähimmäiskustannukset, viimeinen bitti on käyttämätön

Kokonaispituus: 16 bittiä, joka ilmaisee otsikon ja datan kokonaispituuden B:ssä.Huomaa, että linkkikerroksen datan pituus on 46-1500, kun verkkokerroksen datagrammi on pienempi kuin 46B, tiedot täytetään, kun se ylittää 1500.

Tunnistus: 16 bittiä, joka ilmaisee pirstoutuneen tiedon yksilöllisen tunnuksen

Lippu: 3 bittiä, korkein bitti on varattu bitti, toinen bitti ilmaisee, voidaanko se fragmentoida, 0 tarkoittaa, että se voi olla fragmentoitunut, 1 tarkoittaa, että sitä ei voi fragmentoida, viimeinen bitti osoittaa onko datagrammi pirstoutunut, 0 tarkoittaa, että ei pirstoutunut, ja se on viimeinen fragmentti, 1 tarkoittaa fragmenttia, ja sen jälkeen on fragmentteja

Fragmentin siirtymä: 13 bittiä, 8B

Elinikä, 8 bittiä, enintään 255, ilmaisee reitin hyppyjen enimmäismäärän

Protokolla: 8 bittiä, joka ilmaisee ip-datagrammityypin, kuten ICMP, IGMP, TCP, UDP jne.

Otsikon tarkistussumma: 16 bittiä

Lähteen IP-osoite ja kohde-IP-osoite, kumpikin 32 bittiä

Python voi saada verkkotiedot kahden moduulin psutil ja netifaces kautta. Netifacce2-versio on vanhentunut.

kuljetuskerros

udp

Ei ole takeita siitä, että tiedot ovat tavoitettavissa

Otsikko 8B: lähdeportti 2B, kohdeportti 2B, pituus 2B, tarkistussumma 2B

Tiedot 0-65527B

TCP

Kolmisuuntainen kättely yhteyden luomiseen, 4-suuntainen kättely yhteyden katkaisemiseen

Datagrammin rakenne

Ensimmäinen osa 20-60B

Tiedot 0-65535B

otsikkorakenne

Lähdeportti 16 bittiä

Kohdeportti 16 bittiä

Sarjanumero: 32 bittiä: Jokaisella datatavulla on järjestysnumero,Kun pow(2,32) on saavutettu, se alkaa 0:sta

Vahvistusnumero: 32 bittiä Vastaanottaja lähettää lähettäjälle seuraavan dataviestin ensimmäisen tavun järjestysnumeron. Jos lähettäjä lähettää esimerkiksi 0-999 tavua, vastaanottajan lähettämä vahvistusnumero on 1000.

Dataoffset: 4 bittiä, yksikköbitti 4B, samanlainen kuin ipv4-otsikon ihl

Varattu: 6 bittiä, yleensä 0

URG: 1 bitti, 1 ilmaisee kiireellisiä tietoja, kiireellinen osoitin on kelvollinen

ACK: 1 bitti, 1 tarkoittaa, että vahvistusnumerokenttä on kelvollinen

PSH: 1 bitti, 1 tarkoittaa, että viesti luodaan ja lähetetään välittömästi Vastaanottava pää luovuttaa sen välittömästi prosessille sen sijaan, että se laittaisi sen välimuistiin ja odottaisi välimuistin täyttymistä ennen lähettämistä.

RST: 1 bitti, se tarkoittaa, että nykyisessä yhteydessä on vakava ongelma. Xu Ao luo yhteyden uudelleen kieltäytyä avaamasta laittomia yhteyksiä.

SYN: 1 bitti, 1 osoittaa, että viesti on yhteyspyyntö tai yhteyden hyväksymisviesti

FIN: 1 bitti, 1 osoittaa, että tiedot on lähetetty ja yhteys on katkaistava.

Ikkuna: 16 bittiä, jonka vastaanottaja lähettää lähettäjälle ja ilmaisee seuraavan hyväksytyn viestin pituuden

Tarkistussumma: 16 bittiä

Kiireellinen osoitin: 16 bittiä Kun URG on 1, se osoittaa kiireellisen tiedon loppupaikan.

Python saa verkkotiedot

psutil voi saada joitain verkkotilastoja. Menetelmä net_io_counters kerää koko koneen verkkotilastoja oletuksena. Parametrin pernic=True syöttäminen kerää tilastot jokaisesta verkkokortista erikseen.

Sovelluskerros

http

HTTP on oletusarvoisesti tilaton viestintä, ja tilallisia palveluita voidaan suorittaa evästeiden avulla.

http-portti on yleensä 80

Viestin rakenne

Pyyntöviesti: menetelmä, URL-osoite, versio, muut otsikkokentät, viestin entiteetti (valinnainen)

Vastausviesti: versio, tilakoodi, lause, muut otsikkokentät, viestin entiteetti (valinnainen)

Menetelmät: On 8 tyyppiä, hanki, lähetä, pää, laita, poista, vaihtoehto, yhdistä, jäljitä

Versio: http versionumero

Muut otsikkokentät: kuten Cache-Control, Accept-Encoding jne.

Viestikokonaisuus: ei pituusrajoitusta, voi olla 0

Tilakoodi: 404, kolme numeroa.1xx osoittaa, että palvelin on vastaanottanut pyynnön, 2xx osoittaa, että palvelin hyväksyy asiakaspyynnön, 3xx osoittaa, että palvelin uudelleenohjaa asiakaspyynnön, 4xx osoittaa, että asiakaspyyntö on virheellinen ja 5xx osoittaa, että palvelimessa on ongelma. .

Lause: Kommentoi tilakoodia Esimerkiksi 202-palautuskoodia vastaava lause on Hyväksy ja 404-palautuskoodia vastaava lauseke on Ei.

https

http:llä ei ole turvatakuuta, ja se voidaan siepata. Se käyttää SSL:ää tai TLS:ää datapakettien salaamiseen ja lähettää ne sitten TCP:n kautta443

Symmetristä salausta ja epäsymmetristä salausta käytetään yleensä viestien salaukseen ja epäsymmetristä salausta.

Pyyntöprosessi

Kun asiakas pyytää, se lähettää palvelimelle tukemansa salaussäännöt.

Palvelin yhdistää asiakkaan salaussääntöihin perustuvan joukon salaus- ja hajautusalgoritmeja ja palauttaa sen asiakkaalle digitaalisena varmenteena yhdessä omien identiteettitietojensa kanssa.

Asiakas tarkistaa palvelinvarmenteen oikeellisuuden, luo satunnaislukusalasanan sen välittämisen jälkeen ja salaa satunnaislukusalasanan palvelimen julkisella avaimella.Asiakas laskee lähetettävän viestin tiivisteen, salaa lähetettävän viestin ja viestin hajautusarvon satunnaislukusalasanalla ja lopuksi salaa palvelimen julkisen avaimen satunnaislukusalasanalla ja viesti ja viesti salataan satunnaisen numeron salasanan kanssa tiivistetään yhteen

Asiakastietojen vastaanottamisen jälkeen palvelin purkaa satunnaislukusalasanan salauksen omalla yksityisellä avaimellaan, sitten käyttää satunnaislukusalasanaa viestin salauksen ja viestin hajautusarvon purkamiseen ja vertaa salausta purettua hash-arvoa vastaanotetun viestin hajautusarvoon. nähdäksesi onko se johdonmukainen. Jos ne ovat yhdenmukaisia, yhteys asiakkaan ja palvelimen välille muodostetaan. Tämän jälkeen molemmat osapuolet käyttävät satunnaislukusalasanoita tietojen salaamiseen ja salauksen purkamiseen.Jos myöhemmän tiedonsiirron aikana tapahtuu virhe tai hash on epäjohdonmukainen, yhteys katkeaa automaattisesti.

ftp

dns

snmp

snmp yksinkertainen sähköpostin siirtoprotokolla, jota käytetään postin siirtämiseen lähdeosoitteesta kohdeosoitteeseen, portti on yleensä 25

Se on yleisesti käytetty sähköpostin lähetysprotokolla Sähköpostin lähettämisen jälkeen sähköposti lähetetään snmp-palvelimelle.

pop3

Vastaanottajaa käytetään vastaanottamaan sähköpostit, jotka muut käyttäjät lähettävät itselleen omalta palvelimeltaan. Portti on yleensä 110.

pop3 on offline-protokolla Kun käyttäjä kirjautuu sisään, sähköpostit ladataan paikalliselle alueelle kerralla.

imap on online-postin vastaanottoprotokolla, joka korjaa pop3:n offline-ongelman. Se on tällä hetkellä yleisimmin käytetty sähköpostin vastaanottoprotokolla.

dhcp

Kun asiakas, jossa on dhcp, muodostaa yhteyden verkkoon, lähettää dhcp:n löytämisviestin. Jos tiettyjen sääntöjen mukaisesti lähetysten määrä on rajoitettu, dhcp epäonnistuu.

Saatuaan viestin palvelin valitsee IP:n käytettävissä olevasta osoitevarastosta, lähettää dhcp-tarjousviestin yleislähetysmuodossa ja palauttaa IP-osoitteen asiakkaalle.

Kun asiakas vastaanottaa dhcp-palvelimen määrittämän IP-osoitteen, se lähettää arp-pyynnön nähdäkseen, onko IP varattu, asiakas lähettää dhcp-hylkäysraportin dhcp-palvelimelle, jos se on varattu. se lähettää dhcp-pyynnön palvelimelle saatuaan sen, palvelin lähettää asiakkaalle dhcp-vahvistuksen. Tässä vaiheessa dhcp-palveluprosessi päättyy.

Dhcp-palvelinportti on yleensä 67 ja dhcp-asiakasportti yleensä 68. dhcp käyttää udp-tietoliikennettä.