TCP、UDP 和 HTTP 的区别

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

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

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

    • HTTP:应⽤层协议;(类似于货物)。HTTP(超⽂本传输协议)是利⽤ TCP 在两台
      电脑 ( 通常是 Web 服务器和客户端 ) 之间传输信息的协议。客户端使⽤ Web 浏览器
      发起 HTTP 请求给 Web 服务器, Web 服务器发送被请求的信息给客户端。
      其实重要的在 TCP 和 UDP,那它们有什么区别呢?
      TCP (传输控制协议, Transmission Control Protocol ): ( 类似打电话 )
      ⾯向连接、传输可靠(保证数据正确性)、有序(保证数据顺序)、传输⼤量数据(流模
      式)、速度慢、对系统资源的要求多,程序结构较复杂,每⼀条 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 的

相关推荐
小羊没烦恼!7 小时前
T-SQL查询进阶--理解SQL SERVER中的分区表
服务器·开发语言·前端·javascript·html
YumiProxy12 小时前
流媒体区域内容访问:代理IP的技术原理、检测机制与稳定性优化
服务器·网络·网络协议·tcp/ip·ip
yeflx14 小时前
Ubuntu22.04下通过Wireshark抓取相机IP
tcp/ip·测试工具·wireshark
木子n115 小时前
车载以太网与SOME/IP服务化通信实战-05.UDP 还是 TCP:连接管理与超时账、队头阻塞的 200 ms 罚单与 198 节点重连风暴
单片机·tcp/ip·udp·车载以太网·some/ip
ShineWinsu15 小时前
对于JavaScript:初识JavaScript以及输入输出
java·开发语言·前端·javascript·css·面试·html
青瓦梦滋15 小时前
【在线五子棋对战】游戏匹配模块
网络·c++·网络协议·http·https
码银16 小时前
【web】基于HTML/CSS,JavaScript + Three.js做3D流程图
前端·css·html
Novproxy_Z16 小时前
爬虫任务被拦截:区分 IP 封禁、设备封禁、账号封禁
爬虫·网络协议·tcp/ip
隐擎fox17 小时前
解密 BGP Anycast 边缘路由与跨国链路质量检测:多租户网络出口的低时延与防丢包架构实战
网络·python·网络协议·tcp/ip·网络安全·架构·tcpdump
闲云自留地17 小时前
从零造一台 Ubuntu 24.04:虚拟机、装系统、配 IP 到 root 远程登录一篇通
数据库·tcp/ip·ubuntu