博客
关于我
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/

    你可能感兴趣的文章
    Python 字典 vs If 语句速度
    查看>>
    python 字典sorted自定义排序,按照key or value排序
    查看>>
    python 字典和列表区别_元组列表和字典的主要区别是什么?
    查看>>
    python 字符串中特定字符替换,截取
    查看>>
    Python 字符串总结
    查看>>
    python 字符串显示中文_Python字符串开头的b"、u"、r"与中文乱码
    查看>>
    Python 字符串的几种拼装方式
    查看>>
    python 存入数据库bigint_python基础_MySQL的bigint类型
    查看>>
    python 学习 面向对象编程
    查看>>
    Python 学习小结
    查看>>
    Python 学习日记第三篇 -- 字典
    查看>>
    Python 学习笔记(一)Data type
    查看>>
    python 安装 easy_install 和 pip 流程
    查看>>
    python 安装echarts
    查看>>
    python 安装opencv及问题解决
    查看>>
    Python 安装程序:“写入文件 C:\Python27\pythonw.exe 时出错“
    查看>>
    Python 安装避坑指南:从入门到进阶
    查看>>
    Python 安装配置详解
    查看>>
    python 实现儿童算术游戏
    查看>>
    python 实现字符串转整型
    查看>>