博客
关于我
TCP基本入门-简单认识一下什么是TCP
阅读量:795 次
发布时间:2023-02-26

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

TCP的特点

TCP是面向连接的传输层协议,具有以下几个显著特点:

  • 一对一连接

    TCP是面向连接的协议,能够建立一对一的连接。与UDP不同,TCP不支持一对多或多对多的通信模式。一对一的连接机制保证了通信的可靠性和安全性。

  • 可靠性

    TCP协议具备强大的可靠性机制。无论网络环境如何变化,TCP都能保证一个报文能够准确无误地到达接收端。通过序列号确认报文传输顺序,窗口机制进行流量控制,以及重传机制解决丢包问题,TCP保证了数据传输的完整性和有序性。

  • 字节流传输

    TCP将用户消息分组成多个TCP报文传输,这些报文没有固定的边界,需要接收方具备相同的序列号信息才能正确重组和解析。TCP报文具有有序性,即使前一个报文未收到,也无法立即处理后续报文,确保了数据的完整性。

  • 窗口机制

    TCP采用窗口机制进行流量控制和拥塞控制。窗口大小表示接收方的接收能力,发送方根据窗口大小动态调整发送速率,避免发送过多数据导致网络拥塞。

  • TCP连接的定义

    TCP连接是指在传输层建立的状态信息的集合。这些信息包括:

    • Socket:由源地址和目标地址、源端口和目标端口组成的四元组。
    • 序列号:用于标识数据包的传输顺序。
    • 窗口大小:用于动态调整数据传输速率,避免网络拥塞。

    为了建立一个TCP连接,客户端和服务端需要达成共识,主要包括以下三个信息:

  • Socket(IP地址和端口号)
  • 序列号
  • 窗口大小
  • TCP连接的唯一性

    一个TCP连接可以通过四元组唯一确定:

  • 源地址(IP地址)
  • 源端口
  • 目地址
  • 目端口
  • 这些信息位于TCP头部,IP地址位于IP头部,端口号位于TCP头部。四元组的唯一性保证了TCP连接的可辨识性。

    TCP与UDP的区别及应用场景

    TCP和UDP作为传输层协议,各有其适用场景:

  • 连接类型
    • TCP:面向连接,建立连接前需确认双方 readiness状态。
    • UDP:无连接,数据一接即发。
    1. 服务对象
      • TCP:一对一通信,连接建立后保持着持续的通信关系。
      • UDP:支持一对一、一对多、多对多的通信模式,适用于实时性要求高的场景。
      1. 可靠性
        • TCP:提供可靠的数据传输,确保数据无丢失、无重复、有序到达。
        • UDP:尽最大努力,但不保证数据的可靠性。
        1. 流量控制
          • TCP:通过窗口机制进行动态流量控制。
          • UDP:没有流量控制机制,发送速率不受网络状态影响。
          1. 首部开销
            • TCP:首部较长(20-60字节),包含复杂的控制字段。
            • UDP:首部固定为8字节,开销较小。
            1. 数据传输方式
              • TCP:面向连接,数据没有边界,保证有序传输。
              • UDP:数据有边界,采用尽力而为的传输方式。
              1. 数据分片层
                • TCP:数据超过MSS时,在传输层分片传输,丢失的分片会单独重传。
                • UDP:数据超过MTU时,在IP层分片传输,丢失的分片无法重组恢复。

                TCP和UDP可以使用同一个端口

                TCP和UDP可以使用同一个端口,但它们的应用场景和传输特性存在显著差异。传输层的端口号主要用于区分不同的应用程序和传输协议,TCP和UDP作为两个独立的传输协议模块,在内核中运行,互不影响。

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

    你可能感兴趣的文章
    Oracle游标
    查看>>
    oracle游标数最大数,Oracle 最大连接数 最大游标数
    查看>>
    oracle用户改名
    查看>>
    oracle用户解压不了,PLSQL developer 连接不上64位Oracle 的解决方法
    查看>>
    oracle用户解锁
    查看>>
    Oracle用游标删除重复数据
    查看>>
    Tomcat学习总结(19)—— 为什么首选Tomcat作为JavaWeb应用服务器?
    查看>>
    oracle的内置函数
    查看>>
    Oracle的存储结构
    查看>>
    Oracle的聚合函数group by结合CUBE和ROLLUP的使用
    查看>>
    Oracle监听配置、数据库实例配置等
    查看>>
    Oracle知识补充
    查看>>
    Oracle笔记(十三) 视图、同义词、索引
    查看>>
    Oracle笔记(十) 约束
    查看>>
    【BOOST C++字串专题07】 Boost.Format
    查看>>
    oracle系列(六)OEM与常见故障处理
    查看>>
    Oracle系列:安装Oracle RAC数据库(二)
    查看>>
    oracle系统 介绍,ORACLE数据库管理系统介绍
    查看>>
    Thymeleaf模板引擎的编写
    查看>>
    oracle获取数据库表、字段、注释、约束等
    查看>>