12.2. TCP 与 UDP

发布于 2023-05-18 12:34:52 字数 1332 浏览 45 评论 0

UDP 是用户数据报协议,是一个简单的面向数据报的运输层协议。

  1. 网络层:IP 协议、ICMP 协议、ARP 协议、RARP 协议和 BOOTP 协议;
  2. 传输层:TCP 协议与 UDP 协议;
  3. 应用层:FTP、HTTP、TELNET、SMTP、DNS 等协议;
    TCP是传输控制协议,提供的是面向连接、可靠的字节流服务。

TCP 和 UDP 的区别:

  • TCP 面向连接的运输层协议,UDP 无连接
  • TCP 是可靠交付,UDP 是尽最大努力交付
  • TCP 面向字节流,UDP 面向报文
  • TCP 是点对点连接的,UDP 一对一,一对多,多对多都可以
  • TCP 适合用于网页,邮件等,UDP 适合用于视频,语音广播等
    HTTP 是应用层协议,其传输都是被包装成 TCP 协议传输。可以用 SOCKET 实现 HTTP。

Socket 是一组接口,可以实现 TCP,也可以实现 UDP。在设计模式中,Socket其实就是一个门面模式,它把复杂的 TCP/UDP 协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让 Socket 去组织数据,以符合指定的协议。

  1. TCP 传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个 TCP 连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。 理想状态下,TCP 连接一旦建立,在通信双方中的任何一方主动关闭连接前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开 TCP 连接的请求。
  2. UDP 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议。UDP 不提供可靠性,它只是把应用程序传给IP层的数据包发送出去,但是并不能保证它们能到达目的地。由于 UDP 在传输数据包前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
  3. TCP 连接的三次握手:要了解 TCP,一定要知道 "三次握手,四次拜拜"所谓的三次握手,就是发送数据前必须建立的连接叫三次握手,握手完了才开始发的,这也就是面向连接的意思。
  4. 第一次握手:客户端发送 syn 包(syn=j)到服务器,并进入 SYN_SEND 状态,等待服务器确认;
  5. 第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=j+1),同时自己也发送一个 SYN 包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
  6. 第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包 ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

短叹

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

金兰素衣

文章 0 评论 0

ゃ人海孤独症

文章 0 评论 0

一枫情书

文章 0 评论 0

清晰传感

文章 0 评论 0

mb_XvqQsWhl

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文