博客
关于我
TCP协议的介绍,三次握手,四次挥手。UDP协议介绍,TCPUDP常见的应用层协议及端口号
阅读量:302 次
发布时间:2019-03-03

本文共 1294 字,大约阅读时间需要 4 分钟。

TCP协议与UDP协议详解

TCP协议介绍

TCP(传输控制协议)是一种面向连接的、可靠的数据传输协议。它的核心目标是确保数据能够可靠、顺序地从一台设备传输到另一台设备。与UDP不同,TCP提供数据包的可靠传输,这意味着如果数据包在传输过程中丢失或被错误处理,TCP会自动重新传输这些数据。

TCP报文段

TCP报文段是数据传输的基本单位,由多个字节组成。每个报文段都包含以下字段:

  • 序号:发送端为每个字节进行编号,便于接收端正确重组。
  • 确认号:用于确认发送端的信息。
  • 窗口大小:表示本地可接收数据段的数量。
  • 同步序号位(SYN):用于建立连接时设置为1。
  • 确认序号位(ACK):当该位为1时,表示确认发送方的数据。
  • 终止位(FIN):当TCP断开连接时设置为1。
  • 重传位(RST):当数据需要重传时设置为1。
  • 推断位(PSH):用于处理意外断开或拒绝连接的情况。

TCP的三次握手

TCP连接的建立需要经过三次握手:

  • 第一次握手:客户端发送一个带有SYN标志位的数据包,SYN值为X。
  • 第二次握手:服务器收到SYN后,发送一个带有SYN-ACK标志位的数据包,SYN值为Y。
  • 第三次握手:客户端收到SYN-ACK后,发送一个带有ACK和SYN标志位的数据包,ACK值为Y+1。
  • 通过这三次握手,客户端与服务器端建立了一个可靠的连接。

    TCP的四次挥手

    断开TCP连接需要四次握手:

  • 第一次挥手:客户端发送一个带有FIN标志位的数据包。
  • 第二次挥手:服务器收到FIN后,发送一个带有ACK和FIN标志位的数据包。
  • 第三次挥手:客户端收到ACK后,发送一个带有ACK和FIN标志位的数据包。
  • 第四次挥手:服务器收到最后一个FIN后,发送一个带有ACK标志位的数据包。
  • 在第四次握手完成后,双方会等待一个时间段(2MSL)以确保所有数据都已传输。如果在这段时间内没有新的数据包到来,则连接会被正式关闭。

    UDP协议介绍

    UDP(用户数据包协议)是一种无连接的、不可靠的数据传输协议。与TCP不同,UDP不保证数据的可靠传输,也不保证数据的顺序。然而,UDP的传输延迟较低,适用于对实时性要求较高但对数据完整性和顺序要求不高的场景。

    UDP报文头部格式

    UDP报文头部包含以下字段:

    • UDP长度:指出UDP报文的总长度。
    • UDP校验和:用于验证数据完整性。

    TCP与UDP的常见应用层协议及端口号

    以下是TCP和UDP在应用层中常见的协议及其对应端口号:

    协议 传输层协议 端口号 应用
    HTTP TCP 80 提供网页服务
    HTTPS TCP 443 提供加密网页服务
    FTP TCP 21 文件传输协议
    TELNET TCP 25 远程登录协议
    SMTP TCP 25 电子邮件传输协议
    POP3 TCP 110 邮件接收协议
    TFTP UDP 69 简单文件传输协议
    RPC UDP 111 远程过程调用
    NTP UDP 123 网络时间协议

    通过以上内容,可以看出TCP和UDP在不同的应用场景中各有优势。TCP提供可靠性和顺序性,而UDP适用于实时性要求高但数据完整性要求不高的场景。

    转载地址:http://zqhl.baihongyu.com/

    你可能感兴趣的文章
    MySQL锁与脏读、不可重复读、幻读详解
    查看>>
    MySQL集群解决方案(4):负载均衡
    查看>>
    mysql颠覆实战笔记(八)--mysql的自定义异常处理怎么破
    查看>>
    MySQL高级-MySQL并发参数调整
    查看>>
    MySQL高级-视图
    查看>>
    MySQL:判断逗号分隔的字符串中是否包含某个字符串
    查看>>
    Nacos在双击startup.cmd启动时提示:Unable to start embedded Tomcat
    查看>>
    Nacos安装教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    Nacos配置中心集群原理及源码分析
    查看>>
    nacos配置自动刷新源码解析
    查看>>
    Nacos集群搭建
    查看>>
    nacos集群搭建
    查看>>
    Navicat for MySQL 查看BLOB字段内容
    查看>>
    Neo4j电影关系图Cypher
    查看>>
    Neo4j的安装与使用
    查看>>
    Neo4j(2):环境搭建
    查看>>
    Neo私链
    查看>>
    nessus快速安装使用指南(非常详细)零基础入门到精通,收藏这一篇就够了
    查看>>
    Nessus漏洞扫描教程之配置Nessus
    查看>>
    Nest.js 6.0.0 正式版发布,基于 TypeScript 的 Node.js 框架
    查看>>