Sobes.tech
Middle

Дар бораи қабати нақлиёт (transport layer) модели TCP/IP нақл кун.

sobes.tech AI

Ҷавоб аз AI

Қабати интиқолии TCP/IP пайвастиро байни равандҳое, ки дар ҳостҳои гуногун оғоз шудаанд, таъмин мекунад. вазифаҳои асосӣ:

  • Шенасоии барномаҳо/равандҳо дар ҳост (аз тариқи портҳо).
  • Таҳия кардани хидматҳои интиқоли маълумот:
    • интиқоли боэътимод, ба тартиб даровардашуда (TCP).
    • интиқоли номуайян, бе кафолат (UDP).

Ду протоколи асосӣ:

  • Transmission Control Protocol (TCP):
    • Ба пайвастагиҳо нигаронида шудааст.
    • Дастгирии расонидани пакетҳо, нигоҳ доштани тартиб, назорати ҷараён ва идоракунии боришро кафолат медиҳад.
    • Барои барномаҳое, ки интиқоли боэътимодро талаб мекунанд (HTTP, FTP, SMTP), истифода мешавад.
  • User Datagram Protocol (UDP):
    • Бе пайваст.
    • Расонидани кафолат дода намешавад, тартиб ё назорати ҷараён.
    • Камтар дер, барои барномаҳои вақтсанҷ, ки дар он каме гумшавии маълумот иҷозат дода мешавад (DNS, VoIP, видеои ҷараёнӣ).

Сегментҳои TCP дорои майдонҳо барои: портҳои манбаъ/мақсад, рақамҳои тартиб, рақамҳои тасдиқ, рамзҳо (SYN, ACK, FIN), ҳисобкунии назоратӣ мебошанд.

Датаграмҳои UDP дорои майдонҳо барои: портҳои манбаъ/мақсад, дарозӣ ва ҳисобкунии назоратӣ мебошанд.

Портҳо (ports): рақамҳои 16-бит, ки барои мултиплекс ва демултиплекс кардани маълумот байни равандҳо истифода мешаванд.

  • Well-known ports (0-1023): барои хидматҳои стандартӣ (80 барои HTTP, 443 барои HTTPS, 22 барои SSH) захира шудаанд.
  • Registered ports (1024-49151): барои барномаҳои хусусӣ, ки дар IANA сабт шудаанд.
  • Dynamic/Private ports (49152-65535): барои пайвастагиҳои содиротӣ аз ҷониби мизоҷон истифода мешаванд.

Масалан, барқарор кардани пайвасти TCP (Three-way Handshake):

  1. Мизоҷ сегментро бо рамзи SYN ва рақами оғозии тартибӣ мефиристад.
  2. Сервер SYN-ро мегирад, бо сегменте бо рамзҳои SYN ва ACK, рақами оғозии худро ва рақами тасдиқро, ки баробар ба client_seq + 1, ҷавоб медиҳад.
  3. Мизоҷ SYN+ACK-ро мегирад, бо сегменте бо рамзи ACK ва рақами тасдиқ, ки баробар ба server_seq + 1, ҷавоб медиҳад. Пайвастаги барқарор мешавад.
// Намунаи сохтори сарлавҳаи TCP (одамсозишуда)
struct tcp_header {
    unsigned short src_port;       // Порт манбаъ
    unsigned short dest_port;      // Порт мақсад
    unsigned int   seq_num;        // Рақами тартиб
    unsigned int   ack_num;        // Рақами тасдиқ
    unsigned short flags;          // Рамзҳо (SYN, ACK, FIN ва ғайра)
    // майдонҳои дигар...
};
// Намунаи сохтори сарлавҳаи UDP (одамсозишуда)
struct udp_header {
    unsigned short src_port;       // Порт манбаъ
    unsigned short dest_port;      // Порт мақсад
    unsigned short length;         // Дарозии UDP datagram
    unsigned short checksum;       // Ҳисобкунии назоратӣ
};