C# 网络知识总结

本文围绕SOCKET、TCP、UDP展开示意学习。介绍了SOCKET定义,包括流、数据报、原始套接字。阐述TCP面向连接、可靠等特点,涉及三次握手、四次握手及同步异步工作方式。对比UDP无连接、不可靠特性,分析二者区别,指出UDP速度快、有消息边界、可一对多传输等优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

示意学习

http 

tcp

udp

socket

定义,区别,优点

 

SOCKET

  • 称为套接字,TCP/IP基本单元,不同主机双向通信的端点,既保存IP地址和端口,也保持通信协议。 

1

  • 流套接字:面向连接的TCP通信
  • 数据报套接字:无连接的UDP通信
  • 原始套接字:IP数据包的通信

端口:

  • 端口号识别不同的进程。

TCP:

  • 面向连接的,基于字节流,可靠的通信协议。

三次握手:通过三个报文段完成类似电话呼叫的连接建立过程 

  • 客户端发送syn报文到服务器端,发送序号为x。
  • 服务器端收到报文,向客户端发送syn报文,发送序号x+1,并置发送序号为y。
  • 客户端受到确认报文后,发送确认信号y+1,并置发送序号为z。至此客户端和服务器端建立连接。

传输数据

  • 双方建立TCP连接,连接方都能发送和接收数据。
  • tcp协议负责把数据按格式和长度发送并接受后组装。
  • TCP传输数据时,数据是以字节流的形式进行传输的。

连接的终止:建立连接需要三次握手,而终止连接要经过四次握手,这是由TCP的半关闭(half-close)造成的。 

TCP最主要的特点如下

  1. 是面向连接的协议。
  2. 端到端的通信。TCP连接只能有两个端点。
  3. 高可靠性。通过TCP连接传送的数据,能保证数据无差错、不丢失、不重复地准确到达接收方,并且保证各数据到达的顺序与其发出的顺序相同。
  4. 全双工方式传输。
  5.  数据以字节流的方式传输。
  6. 传输的数据无消息边界。

 同步与异步:

同步工作方式是指利用TCP编写的程序执行到监听语句时,在未完成工作前不再继续往下执行,线程处于阻塞状态,
异步工作方式:程序执行到监听收语句时,不论工作是否完成,都会继续往下执行。

UDP是面向数据报的无连接的不可靠协议。

“无连接”是指通信前不必与对方先建立连接。UDP虽然不能保证数据传输的可靠性,但传输效率较高

UDP与TCP的区别
(1) UDP可靠性不如TCP
TCP包含了专门的传递保证机制要经历三次握手。UDP并不提供数据传送的保证机制。如果出现数据报的丢失,并不做出任何检测。
(2) UDP不能保证有序传输
UDP不能确保数据的发送和接收顺序。对于突发性的数据报,有可能会乱序。

UDP的优势

(1)UDP速度比TCP快
由于UDP不需要先建立连接,传输确认,因此传输速度比TCP快得多。(适合网络音频播放、视频点播和网络会议等)
(2) UDP有消息边界
发送方UDP对应用程序交下来的报文,在添加首部后就向下直接交付给IP层。既不拆分,也不合并,而是保留这些报文的边界。使用UDP不需要考虑消息边界问题,这样使得UDP编程相比TCP,在对接收到的数据的处理方面要方便的多。在程序员看来,UDP套接字使用比TCP简单。UDP的这一特征也说明了它是一种面向报文的传输协议。
(3) UDP可以一对多传输
由于传输数据不建立连接,也就不需要维护连接状态(包括收发状态等),因此一台服务器可以同时向多个客户端传输相同的消息。利用UDP可以使用广播或组播的方式同时向子网上的所有客户进程发送消息。

速度快是UDP的首要优势

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值