Recent changes
Login
În kernel, pentru a realiza sockeți pentru diverse protocoale:
folosim o structură generică și schimbăm pointeri la funcții
implementăm funcții și tipuri de date pentru fiecare protocl în parte
în kernel nu există distincție între protocoale
folosim clase generice și moștenire
[1]
(1)
O reprezentare în kernel a unui socket BSD este dată de
struct_sk_buff
}
struct_sock
}
struct_socket
}
struct_file
}
[3]
(1)
În cazul creării unui socket în user-space, în kernel se va executa la un moment dat funcția
sock_create_kern
}
sock_create
}
sk_create
}
sk_create_kern
}
[2]
(1)
Informații despre starea unei conexiuni sunt menținute în
struct_socket
}
struct_sock
}
struct_sockaddr_in
}
struct_sk_connection
}
[2]
(1)
Înainte de trimiterea unui număr trebuie folosită
htonl
}
ntohl
}
sendmsg
}
send_int
}
[1]
(1)
Pentru a realiza utilitare precum
iptables
} trebuie să folosim neapărat
struct_nf_hook_ops
}
struct_module
}
struct_sk_buff
}
struct_socket
}
[1]
(1)
Modelul de dezvoltare Windows pentru rețea este de tipul
peer to peer
client - provider
client - server
monolitic
[2]
(1)
Echivalența corectă Linux-Windows este
struct_sock
} -
ipheader
}
packetfilterextensionptr
} -
nf_hook_fn
}
nf_hook_ops
} -
iobuilddevicecontrolrequest
}
struct_iphdr
} -
ipheader
}
[4]
(1)
Structura
struct_udphdr
} conține informații despre porturi. Structuri
struct_iphdr
} conține informații despre adresa MAC
adevărat, adevărat
fals, adevărat
adevărat, fals
fals, fals
[3]
(1)
Nu este corect apelul
sock_create_kern_pf_inet_sock_dgram_ipproto_udp_sock
}
sock_create_kern_pf_inet_sock_stream_ipproto_tcp_sock
}
sock_ops-_release_sock
}
sock_init_data_sock_sk_str
}
[4]
(1)
Anunțuri
Calendar
Hall of SO2
Împărțire ore laborator
Karma Awards
SO2 Need to Know
Orar
Reguli generale și notare
Send your first patch to Linux kernel
Resurse
Catalog
Discord
Documentație
Feed RSS
Listă de discuții
Mașina virtuală
Sală de laborator
Trimitere teme
Cursuri
Cursul 1 - Introducere
Test Cursul 1
Cursul 2 - Apeluri de sistem
Test Cursul 2
Cursul 3 - Procese
Test Cursul 3
Cursul 4 - Întreruperi
Test Cursul 4
Cursul 5 - Sincronizare
Test Cursul 5
Cursul 6 - Kernel debugging
Test Cursul 6
Cursul 7 - Adresarea memoriei
Test Cursul 7
Cursul 8 - Gestiunea memoriei
Test Cursul 8
Cursul 9 - Gestiunea fișierelor
Test Cursul 9
Cursul 10 - Gestiunea rețelei
Test Cursul 10
Cursul 11 - Virtualizare
Test Cursul 11
Curs Extra - Linux assembly
Curs Extra - Modelul de dezvoltare Linux
Teme
Git. Indicații folosire GitLab
Indicații generale teme
Temă exemplu - Hello World
so2/laboratoare/quiz/quiz_lab11.txt · Last modified: 2013/02/10 02:10 (external edit)
Old revisions
Media Manager
Back to top