TCP、UDP和HTTP的区别

TCP/IP协议栈分为四层,包括应用层、传输层、网络层和数据链路层。HTTP属于应用层协议,依赖于TCP进行传输。TCP提供面向连接、可靠的、有序的数据传输,适合大量数据,但速度相对较慢;而UDP则是面向非连接、不可靠、无序的,适合快速传输少量数据。TCP建立连接需三次握手,HTTP基于TCP连接进行请求/响应交互。
摘要由CSDN通过智能技术生成

TCP/IP 协议栈主要分为四层: 应⽤层、传输层、⽹络层、数据链路层, 每层都有相应的协议

  • IP:⽹络层协议;(类似于⾼速公路)

  • TCP 和 UDP:传输层协议;(类似于卡⻋)

  • HTTP:应⽤层协议;(类似于货物)。HTTP(超⽂本传输协议)是利⽤ TCP 在两台
    电脑 (通常是 Web 服务器和客户端) 之间传输信息的协议。客户端使⽤ Web 浏览器
    发起 HTTP 请求给 Web 服务器,Web 服务器发送被请求的信息给客户端。
    其实重要的在 TCP 和 UDP,那它们有什么区别呢?

  • TCP(传输控制协议,Transmission Control Protocol):(类似打电话)
    ⾯向连接、传输可靠(保证数据正确性)、有序(保证数据顺序)、传输⼤量数据(流模
    ⼤⼚⾼级前端⼯程师⾯试题汇总 12
    式)、速度慢、对系统资源的要求多,程序结构较复杂,每⼀条 TCP 连接只能是点到点
    的,TCP ⾸部开销 20 字节。

  • UDP(⽤户数据报协议,User Data Protocol):(类似发短信)
    ⾯向⾮连接 、传输不可靠(可能丢包)、⽆序、传输少量数据(数据报模式)、速度
    快,对系统资源的要求少,程序结构较简单 , UDP ⽀持⼀对⼀,⼀对多,多对⼀和多对
    多的交互通信,UDP 的⾸部开销⼩,只有 8 个字节。

  • TCP 建⽴连接需要三次握⼿:

    • 第⼀次握⼿:客户端发送 syn 包 (seq=x) 到服务器,并进⼊ SYN_SEND 状态,等待
      服务器确认;
    • 第⼆次握⼿:服务器收到 syn 包,必须确认客户的 SYN(ack=x+1),同时⾃⼰也
      发送⼀个 SYN 包(seq=y),即 SYN+ACK 包,此时服务器进⼊ SYN_RECV 状
      态;
    • 第三次握⼿:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包
      ACK(ack=y+1),此包发送完毕,客户端和服务器进⼊ ESTABLISHED 状态,完成三
      次握⼿。

握⼿过程中传送的包⾥不包含数据,三次握⼿完毕后,客户端与服务器才正式开始传送数
据。理想状态下,TCP 连接⼀旦建⽴,在通信双⽅中的任何⼀⽅主动关闭连接之前,
TCP 连接都将被⼀直保持下去

  • 结论:
    HTTP 协议是建⽴在请求 / 响应模型上的。⾸先由客户建⽴⼀条与服务器的 TCP 链接,
    并发送⼀个请求到服务器,请求中包含请求⽅法、URI、协议版本以及相关的 MIME 样式
    的消息。服务器响应⼀个状态⾏,包含消息的协议版本、⼀个成功和失败码以及相关的
    MIME 式样的消息
    虽然 HTTP 本⾝是⼀个协议,但其最终还是基于 TCP 的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值