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