Sobes.tech
Middle

TCP/IP моделинин ташуу катмары (transport layer) жөнүндө айтып бер.

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 датаграммдин узундугу
    unsigned short checksum;       // Контроль суммасы
};