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

    你可能感兴趣的文章
    node全局对象 文件系统
    查看>>
    Node出错导致运行崩溃的解决方案
    查看>>
    Node响应中文时解决乱码问题
    查看>>
    node基础(二)_模块以及处理乱码问题
    查看>>
    node安装卸载linux,Linux运维知识之linux 卸载安装node npm
    查看>>
    node安装及配置之windows版
    查看>>
    Node实现小爬虫
    查看>>
    Node提示:error code Z_BUF_ERROR,error error -5,error zlib:unexpected end of file
    查看>>
    Node提示:npm does not support Node.js v12.16.3
    查看>>
    Node搭建静态资源服务器时后缀名与响应头映射关系的Json文件
    查看>>
    Node服务在断开SSH后停止运行解决方案(创建守护进程)
    查看>>
    node模块化
    查看>>
    node模块的本质
    查看>>
    node环境下使用import引入外部文件出错
    查看>>
    node环境:Error listen EADDRINUSE :::3000
    查看>>
    Node的Web应用框架Express的简介与搭建HelloWorld
    查看>>
    Node第一天
    查看>>
    node编译程序内存溢出
    查看>>
    Node读取并输出txt文件内容
    查看>>
    node防xss攻击插件
    查看>>