Sobes.tech
Junior

რა არის TCP და UDP პროტოკოლების განსხვავება?

sobes.tech AI

პასუხი AI-სგან

TCP - კავშირზე ორიენტირებული, გარანტირებულია პაკეტების მიწოდება და სია. UDP - კავშირის დამყარების გარეშე, არ გპირდებათ მიწოდებას და სია, მაგრამ უფრო სწრაფია:

ძირითადი განსხვავებები:

ნიშანი TCP UDP
ორიენტაცია კავშირის დამყარებით კავშირის გარეშე
საიმედოობა მაღალი (მიწოდების გარანტია) დაბალი (მიწოდების გარანტია არაა)
სია გარანტირებული არ გპირდებათ
ნაკადის მართვა არსებობს არა
შეცდომების კონტროლი არსებობს (ტრანსფერი და სია კონტროლი) არა (ძირითადი შემოწმების თანხა)
სიჩქარე დაბალი მაღალი
გამოყენება HTTP, FTP, SSH DNS, DHCP, ონლაინ თამაშები, სტრიმინგი

კოდის მაგალითი TCP-ით მონაცემების გაგზავნისთვის Go-ში:

package main

import (
	"net"
	"log"
)

func main() {
	conn, err := net.Dial("tcp", "localhost:8080") // TCP კავშირის დამყარება
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close() // კავშირის დახურვა

	_, err = conn.Write([]byte("Hello, TCP!")) // მონაცემების გაგზავნა
	if err != nil {
		log.Fatal(err)
	}
}

UDP-ით მონაცემების გაგზავნისთვის Go-ში:

package main

import (
	"net"
	"log"
)

func main() {
	addr, err := net.ResolveUDPAddr("udp", "localhost:8081") // UDP მისამართის განსაზღვრა
	if err != nil {
		log.Fatal(err)
	}

	conn, err := net.DialUDP("udp", nil, addr) // UDP "კავშირი" (სესიის დამყარება არაა)
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close() // სოკეტის დახურვა

	_, err = conn.Write([]byte("Hello, UDP!")) // მონაცემების გაგზავნა
	if err != nil {
		log.Fatal(err)
	}
}