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)
	}
}