套接字 - 面向连接TCP和无连接UDP
客户端 / 服务端架构
- 什么是客户端 / 服务端架构
- 服务器是一个软件或硬件,用于向一个或多个客户端(客户)提供所需要的服务
- 服务器存在的唯一目的就是等待客户的请求,给这些客户服务,然后再等待其他的请求
套接字: 通信端点
-
通信端点
- 让服务器能监听请求
-
什么是套接字
- 套接字是一种具有通信端点概念的计算机网络数据结构
- 网络化的应用程序在开始任何通讯之前都必须要创建套接字
-
套接字的类型
- 面向连接的套接字,即在通信之前一定要建立一条连接,也被称为"虚电路"或"流套接字"
面向连接与无连接
-
面向连接
-
在通信之前一定要建立一条连接,也被称为"虚电路"或"流套接字"
-
特点:
- 面向连接的通信方式提供了顺序的、可靠的、不会重复的数据传输,而且也不会被加上数据边界。
- 这也意味着每一个要发送的信息,可能会被拆分成多份,每一份都会不多不少的正确的到达目的地,然后被重新按顺序拼装起来,传给正在等待的应用程序
-
这种连接方式主要协议是传输控制协议(即TCP)。要创建TCP套接字就得在创建的时候指定套接字类型的SOCK_STREAM
-
TCP套接字采用SOCK_STREAM这个名字,表示它作为流套接字的特点
-
由于这些套接字使用网际协议(IP)来查找网络中的主机,所以这样形成的整个系统,一般有两个协议组成(TCP / IP),即 TCP / IP
-
-
无连接
-
与虚电路完全相反的数据报型的无连接套接字
-
特点:
- 无需建立连接就可以进行通讯
- 数据报会保留数据边界,意味着数据是整个发送的,不会像面向连接的协议那样先拆分成小块
-
缺点:
- 数据到达的顺序、可靠性及不重复性无法保证,甚至可能会丢失
-
优点:
- 由于面向连接需要提供一些保证,以及要维持虚电路连接,这些都是很重的额外负担
- 数据报没有这些负担,所以它更"便宜"。通常能提供更好的性能,更适合某些应用场合
-
实现这种连接的主要协议是用户数据报协议(即UDP)。
-
创建UDP套接字需要指定套接字类型为SOCK_DGRAM
-
由于UDP套接字使用的是网际协议来查找网络中的主机,所以这样形成的整个系统,一般有两个协议组成(UDP / IP),即 UDP / IP
-
标签:UDP,IP,TCP,面向,接字,连接 来源: https://www.cnblogs.com/gxfaxe/p/15202441.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。