深圳科技网站建设,家装设计图纸,商丘做手机做网站,宁波网络开发目录
一、综述
1. TCP与UDP的概念
2. 特点
3. 区别
4. 对应的使用场景
二、补充
1. 基础概念
#xff08;1#xff09;面向连接
#xff08;2#xff09;可靠的
#xff08;3#xff09;字节流
2. 相关问题
#xff08;1#xff09;TCP 和 UDP 可以同时绑定…目录
一、综述
1. TCP与UDP的概念
2. 特点
3. 区别
4. 对应的使用场景
二、补充
1. 基础概念
1面向连接
2可靠的
3字节流
2. 相关问题
1TCP 和 UDP 可以同时绑定相同的端口吗
2多个 TCP 服务进程可以同时绑定同一个端口吗
3客户端的端口可以重复使用吗 一、综述 1. TCP与UDP的概念
TCP传输控制协议是一种面向连接的、可靠的、基于 字节流 的传输层通信协议。UDP用户数据报协议为应用程序 提供了一种 无需建立连接 就可以发送封装的 IP 数据包的方法。
2. 特点
TCP面向连接传输可靠传输形式为 字节流传输 效率慢所需 资源多。UDP无连接、传输不可靠、传输形式为 数据报文段传输 效率快所需 资源少。
3. 区别
是否面向连接TCP 是 面向连接的 传输UDP 是 无连接的 传输。是否是可靠传输TCP 是可靠的 传输服务在传递数据之前会有 三次握手来 建立连接在数据传递时有确认、窗口、重传、拥塞控制机制。UDP 是不可靠传输数据传递 不需要给出 任何确认且不保证数据 不丢失及 到达顺序。是否有状态TCP 传输是 有状态的它会去 记录自己发送消息的 状态 比如消息 是否发送了、是否被接收了 等等而 UDP 是无状态的。传输形式TCP 是 面向字节流的UDP 是 面向报文的。传输效率由于 TCP 传输的时候 多了连接、确认重传等 机制所以 TCP 的传输效率 要比 UDP 低。首部开销TCP 首部开销20~60字节比 UDP 首部开销 8 字节要大。是否提供广播或多播服务TCP 只支持 点对点 通信UDP 支持 一对一、一对多、多对一、多对多。
4. 对应的使用场景
TCP 常用于要求 通信数据 可靠场景如 网页浏览、文件传输、邮件传输、远程登录、数据库操作等。UDP 常用于要求 通信速度高场景如 域名转换、视频直播、实时游戏等。 二、补充
1. 基础概念
1面向连接 一定是「一对一」才能连接不能像 UDP 协议可以 一个主机 同时向多个主机 发送消息也就是 一对多是 无法做到的
2可靠的 无论的 网络链路中 出现了怎样的 链路变化TCP 都可以 保证一个报文 一定能够 到达 接收端
3字节流 用户消息 通过 TCP 协议传输 时消息可能会 被 操作系统「分组」成 多个的 TCP 报文如果 接收方的 程序如果 不知道「消息的边界」是无法 读出一个 有效的 用户消息的。并且 TCP 报文是「有序的」当「前一个」TCP 报文 没有收到的 时候即使 它先 收到了 后面的 TCP 报文那么也 不能扔给 应用层 去处理同时对「重复」的 TCP 报文 会自动丢弃。
2. 相关问题
1TCP 和 UDP 可以同时绑定相同的端口吗 可以。 TCP 和 UDP 传输协议在内核中是由 两个完全独立的 软件模块 实现的。当 主机 收到 数据包后可以在 IP 包头的「协议号」字段 知道 该数据包 是 TCP/UDP所以 可以 根据 这个信息 确定送给 哪个模块TCP/UDP处理送给 TCP/UDP 模块的 报文根 据「端口号」确定 送给 哪个应用程序 处理。 因此TCP/UDP 各自的端口号也相互独立互不影响。 2多个 TCP 服务进程可以同时绑定同一个端口吗 如果两个 TCP 服务进程 同时绑定的 IP 地址 和 端口都相同那么执行 bind时候 就会出错错误是 “Address already in use。 如果两个 TCP 服务进程 绑定的 端口 都相同而 IP 地址不同那么执行 bind不会出错。 3客户端的端口可以重复使用吗 在客户端执行 connect 函数的时候只要 客户端连接的 服务器 不是同一个内核 允许 端口重复使用。TCP 连接是由 四元组源 IP 地址源端口目的 IP 地址目的端口唯一 确认的那么 只要四元组中 其中一个 元素发生了 变化那么就 表示不同的 TCP 连接的。 所以如果 客户端 已使用端口 64992 与 服务端 A 建立了连接那么 客户端 要 与 服务端 B 建立连接还是可以 使用端口 64992 的因为 内核是 通过 四元组 信息来 定位一个 TCP 连接的并不会 因为 客户端的 端口号 相同而导致 连接冲突的 问题。