博客
关于我
TCP/IP协议架构介绍(三):传输层
阅读量:672 次
发布时间:2019-03-15

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

TCP/IP协议架构介绍(三):传输层

传输层简介

传输层是TCP/IP协议族中连接用户应用程序的重要组成部分。它负责端到端的通信,确保数据的可靠传输和流量控制。数据的传输单位称为“数据段”,TCP协议使用“TCP段”进行通信,而UDP协议使用“UDP数据报”。

传输层的主要功能

  • 为端到端连接提供传输服务:传输层支持两种主要协议,TCP和UDP。TCP提供可靠的端到端连接,而UDP则提供不可靠的通信服务。
  • 流量控制和差错控制:TCP协议采用滑动窗口机制进行流量控制,并通过拥塞控制避免网络拥塞。
  • 端到端的通信支持:传输层支持全双工通信,确保数据能够双向传输。
  • TCP和UDP协议的特点

    特性 TCP UDP
    可靠性 可靠 不可靠
    连接性 面向连接 无连接
    报文类型 面向字节流 面向报文
    效率 传输效率较低 传输效率较高
    双工性 全双工 一对一、一对多等
    流量控制 有(滑动窗口)
    拥塞控制 有(慢开始等)
    应用协议 HTTP、FTP、DNS等 DNS、TFTP等

    TCP协议的特点

  • 面向连接:TCP协议建立连接后,确保数据能够可靠传输。
  • 可靠交付:通过握手机制和错误校验确保数据完整性。
  • 面向字节流:TCP协议将数据以字节流形式传输,适用于大数据量的通信。
  • 流量控制和拥塞控制:通过滑动窗口和拥塞算法管理网络流量。
  • 全双工通信:TCP连接支持双向数据传输。
  • UDP协议的特点

  • 无连接:UDP协议不需要建立连接,减少了通信延迟。
  • 尽最大努力交付:UDP协议不保证数据的可靠性,可能会丢失或乱序。
  • 面向报文:UDP协议将数据以报文形式传输,适用于实时通信。
  • 小首部:UDP首部只有8字节,传输效率高。
  • TCP报文格式

    TCP报文首部包含以下字段:

    • 源端口和目标端口:各占2字节。
    • 序号:4字节,用于标识数据包的位置。
    • 确认号:4字节,用于确认接收的数据包是否完整。
    • 数据偏移:4位,指示数据段的位置。
    • 保留:6位,保留字段,目前设为0。
    • 控制位:6位,包括URG、ACK、PSH、RST、SYN和FIN位。
    • 窗口:2字节,表示接收方的接收窗口大小。
    • 校验和:2字节,用于验证数据完整性。
    • 紧急指针:2字节,只有在URG位为1时有效。
    • 选项:可变长,最多40字节。

    TCP连接的建立和断开

    TCP连接的建立通过三次握手完成:

  • SYN:发送方发送SYN报文,表示请求建立连接。
  • SYN-ACK:接收方返回SYN-ACK报文,表示同意连接请求。
  • ACK:发送方发送ACK报文,确认连接建立。
  • TCP连接的断开需要四次挥手:

  • FIN:发送方发送FIN报文,表示请求断开连接。
  • ACK:接收方返回ACK报文,确认收到断开请求。
  • FIN:接收方发送FIN报文,表示同意断开连接。
  • ACK:发送方返回ACK报文,确认连接已断开。
  • UDP报文格式

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

    • 源端口号:16位,表示发送端口号,可选项,发送端口号为0时不返回。
    • 目标端口号:16位,表示接收端口号。
    • 包长度:16位,表示UDP报文的总长度。
    • 校验和:16位,用于验证数据完整性。

    结论

    传输层是TCP/IP协议架构的核心部分,通过TCP和UDP协议为用户提供了不同类型的通信服务。TCP协议以可靠性和连接性为特点,适用于需要高可靠性的场景,而UDP协议以高效率和灵活性为特点,适用于实时通信和大数据传输。理解传输层的功能和原理,对于网络通信的优化和故障排查具有重要意义。

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

    你可能感兴趣的文章
    Node-RED中使用node-random节点来实现随机数在折线图中显示
    查看>>
    Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
    查看>>
    Node-RED中使用node-red-contrib-image-output节点实现图片预览
    查看>>
    Node-RED中使用node-red-node-ui-iframe节点实现内嵌iframe访问其他网站的效果
    查看>>
    Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
    查看>>
    Node-RED中实现HTML表单提交和获取提交的内容
    查看>>
    Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
    查看>>
    node-request模块
    查看>>
    Node.js 8 中的 util.promisify的详解
    查看>>
    Node.js 函数是什么样的?
    查看>>
    Node.js 历史
    查看>>
    Node.js 在个推的微服务实践:基于容器的一站式命令行工具链
    查看>>
    Node.js 实现类似于.php,.jsp的服务器页面技术,自动路由
    查看>>
    Node.js 异步模式浅析
    查看>>
    node.js 怎么新建一个站点端口
    查看>>
    Node.js 文件系统的各种用法和常见场景
    查看>>
    Node.js 的事件循环(Event Loop)详解
    查看>>
    node.js 简易聊天室
    查看>>
    Node.js 线程你理解的可能是错的
    查看>>
    Node.js 调用微信公众号 API 添加自定义菜单报错的解决方法
    查看>>