白话浅说TCP/UDP面向连接,面向无连接的区别

TCP是面向连接的
UDP是面向无连接的
就是这种关系了

TCP(Transmission Control Protocol,传输控制协议)

UDP(User Datagram Protocol,用户数据包协议)

当IP包通过路由将数据传输到目的地时,会根据TCP或UDP包头中的源端口和目的端口信息,请求和获取不同的应用。也就是说,不管TCP还是UDP,都含有网络服务必须的源端口和目的端口信息,以建立和实现网络传输服务。这时,你的疑问就来了:既然都用于传输,为何要搞两个不同的协议呢?这就需要从网络中不同服务的需求来谈起。

在网络中,有些服务,如HTTP、FTP等,对数据的可靠性要求较高,在使用这些服务时,必须保证数据包能够完整无误的送达;而另外一些服务,如DNS、即时聊天工具等,并不需要这么高的可靠性,高效率和实时性才是它们所关心的。根据这两种服务不同的需求,也就诞生了面向连接的TCP协议,以及面向无连接的UDP协议。

这里的连接(Connection)和无连接(Connectionless)是网络传输中常用的术语,它们的关系可以用一个形象地比喻来说明,就是打电话和写信。

打电话时,一个人首先必须拨号(发出连接请求),等待对方响应,接听电话(建立了连接)后,才能够相互传递信息。通话完成后,还需要挂断电话(断开连接),才算完成了整个通话过程。写信则不同,你只需填写好收信人的地址信息,然后将信投入邮局,就算完成了任务。此时,邮局会根据收信人的地址信息,将信件送达指定目的地。

时间: 2024-12-21 20:48:32

白话浅说TCP/UDP面向连接,面向无连接的区别的相关文章

网络协议中HTTP,TCP,UDP,Socket,WebSocket的优缺点/区别

先说一下网络的层级:由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层和应用层 1.TCP和UDP TCP:是面向连接的一种传输控制协议.属于传输层协议.TCP连接之后,客户端和服务器可以互相发送和接收消息,在客户端或者服务器没有主动断开之前,连接一直存在属于长连接. 优点:安全.传输数据无大小限制.准确可靠,先发先至 缺点:效率低,不能做离线任务.连接有耗时 UDP:是面向非连接的用户数据报协议.属于传输层协议.所谓的无连接就是在传输数据之前不需要交换信息,没有握手建立连接的过程

基于TCP/UDP的socket编程

基于TCP(面向连接)的socket编程服务器端顺序: 1. 创建套接字(socket) 2. 将套接字绑定到一个本地地址和端口上(bind) 3. 将套接字设为监听模式,准备接收客户请求(listen) 4. 等待客户请求的到来:当请求带来后,接受连接请求,返回一个新的对应于此次连接的套接字(accept) 5. 用返回的套接字和客户端进行通信(send/recv) 6. 返回,等待另一个客户请求 7. 关闭套接字(closesocket)客户端程序: 1. 创建套接字(socket) 2.

HTTP,FTP,TCP,UDP及SOCKET

一.TCP/IP协议简析TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层:网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议传输层:TCP协议与UDP协议应用层:FTP.HTTP.TELNET.SMTP.DNS等协议 HTTP是应用层协议,其传输都是被包装成TCP协议传输.可以用SOCKET实现HTTP.SOCKET是实现传输层协议的一种编程API,可以是TCP,也可以是UDP. 二.Socket连接与HTTP连接区别[Socket]由于通常情况下Socket

SOCKET, TCP/UDP, HTTP, FTP 浅析

SOCKET, TCP/UDP, HTTP, FTP (一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传输层:TCP协议与UDP协议 应用层:FTP.HTTP.TELNET.SMTP.DNS等协议   HTTP是应用层协议,其传输都是被包装成TCP协议传输.可以用SOCKET实现HTTP. SOCKET是实现传输层协议的一种编程API,可以是TCP

winsocket之TCP/UDP编程

一.概述: 本次练习的是TCP/UDP套接字编程,使用的是winsocket,对主要的库函数进行简绍,并实现了一个程序:实现服务器与客户端之间的通信,在服务器端实现记录用户名和密码,客服端可以实现用户名和密码的输入和查找,并且检查是否匹配.(参考  <<Visual C++网络编程>>) PS: 127.0.0.1是回路地址,用于在同一台机器上测试代码.端口号要大于1024. 二.基于TCP/UDP协议的套接字编程详解: 基于 TCP 的套接字编程的所有客户端和服务器端都是从调用s

[网络] SOCKET, TCP/UDP, HTTP, FTP

(一)TCP/UDP,SOCKET,HTTP,FTP简析 TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议 传输层:TCP协议与UDP协议 应用层:FTP.HTTP.TELNET.SMTP.DNS等协议 HTTP是应用层协议,其传输都是被包装成TCP协议传输.能够用SOCKET实现HTTP. SOCKET是实现传输层协议的一种编程API,能够是TCP.也能够是UDP. (二)Socket连接与HTTP连接差

TCP UDP之间的区别

UDP :面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息 优点 : UDP速度快.操作简单.要求系统资源较少,由于通讯不需要连接,可以实现广播发送 缺点 : UDP传送数据前并不与对方建立连接,对接收的数据也不发送确认信号,发送端不知道数据是否会正确接收,也不重复发送,不可靠. TCP : 是面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次挥手 优点: TCP 在数据传递时,有确认.窗口.重传.阻塞等控制机制,能保证数据正确性,较为可靠. 缺点: TCP 相对于 UDP 速

TCP/UDP客户端

Python 网络编程----模块socekt 在渗透测试的过程中,经常会遇到需要创建一个TCP客户端来连接服务器.发送垃圾数据.进行模糊测试活进行其他任务的情况. 简单的TCP客户端代码: #!/usr/bin/env python3.5#filename = TCP_client.py import socket target_host = "www.qq.com"target_port = 80 #建立一个socket对象 client = socket.socket(socke

TCP面向字节流和UDP面向报文的区别

TCP面向字节流 打个比方比喻TCP,你家里有个蓄水池,你可以里面倒水,蓄水池上有个龙头,你可以通过龙头将水池里的水放出来,然后用各种各样的容器装(杯子.矿泉水瓶.锅碗瓢盆)接水. 上面的例子中,往水池里倒几次水和接几次水是没有必然联系的,也就是说你可以只倒一次水,然后分10次接完.另外,水池里的水接多少就会少多少:往里面倒多少水,就会增加多少水,但是不能超过水池的容量,多出的水会溢出. 结合TCP的概念,水池就好比接收缓存,倒水就相当于发送数据,接水就相当于读取数据.好比你通过TCP连接给另一