码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 计算机网络之传输层------TCP协议详解


    目录

    TCP协议是干什么的呢?

    TCP协议有什么特点呢?

    特点一:面向连接的协议

    特点二:TCP是点对点的通信

    特点三:TCP协议提供全双工的通信 

    特点四:TCP协议提供可靠传输的服务

    特点五:面向字节流的协议 

    TCP协议的数据格式 

    前期复习:IP协议的头部固定多少字节的长度?UDP和TCP呢?

    帧首部中的序号和确认号有什么作用呢?

    帧首部中的数据偏移是什么?

    帧首部中的TCP标记是干什么用的?

    什么是窗口?

    什么是紧急数据?

    TCP选项


    TCP协议是干什么的呢?

    实现程序与程序之间的数据的传输。与UDP协议相比提供了可靠传输的服务。

    TCP协议有什么特点呢?

    首先,在介绍TCP协议的背景之前,我们首先来把电话的通信和TCP连接协议进行对比。为下面的陈述做铺垫。 

    特点一:面向连接的协议

    类比于电话通信,类比于电话通信,TCP连接是面向连接的,通信之前会先建立连接。 

    特点二:TCP是点对点的通信

    问题一:什么是点对点的通信?

    答:点对点的通信即两端通信,就是A和B两个端点进行的通信。 

    特点三:TCP协议提供全双工的通信 

    问题二:什么是全双工的通信?

    答:全双工是一条通信线路,双方都可以同时发送和接受消息。

    特点四:TCP协议提供可靠传输的服务

    特点五:面向字节流的协议 

    对比UDP协议面向报文的特点,其在使用TCP协议进行数据传输时,可能对数据进行合并,也可能进行拆分,比如实际传输的过程中,取出一块数据中的某一段来进行传输,而剩下的数据,再把它放到第二个TCP报文中进行传输,以实现更好的传输。

    问题三:什么是字节流中所谓的流?

    答:流指的是流入进程或流出进程的字节序列。

    问题四:TCP和UDP都是以什么单位对数据进行处理的?

    答:TCP:传输层传输下来的整块数据。

           UDP:面向一个一个的字节来进行处理。 

    TCP协议的数据格式 

    前期复习:IP协议的头部固定多少字节的长度?UDP和TCP呢?

    IP协议:20个字节

    TCP协议:20个字节

    UDP协议:8个字节 

    帧首部中的序号和确认号有什么作用呢?

    序号:因为TCP协议是面向字节流的,因此,每一个字节都有一个唯一的序号,这个序号就是用来标记传输的每一个字节的(一个字节一个序号)。 

    TCP数据报数据部分的第一个字节的序号。(数据首字节序号)

    确认号:表示的就是期待收到数据的首字节序号是什么。

    如图,假如已经收到了当前的TCP数据报,下一层的数据的首字节序号就是601。 

     

    帧首部中的数据偏移是什么?

    表示的是TCP数据报首部的长度范围(20~60),因为TCP数据报首部的固定是20个字节的长度,所以首部长度的下限是20字节,TCP选项是可选可不选决定了上限的范围。

    占4个比特位(0~15),单位是32位,也就是说,每一个偏移都可以表示4个字节的偏移

     

    帧首部中的TCP标记是干什么用的?

    占有6位,每一位都表示不同的含义,在后面介绍的三次握手和四次释放中有着很大的作用。 

     

    什么是窗口?

    表示允许对方发送的数据量。

    例如,假设确认号为501,窗口的值为1000,那么501~1500之间字节的数据是可以接收的。

    什么是紧急数据?

    只有当前边TCP标记位的URG=1时才启用,它表示紧急数据位于报文的位置。

    紧急数据可以保存在数据报中的,等对方接收到的时候,就可以通过紧急指针来找到紧急数据所位于数据报的位置

    TCP选项

    TCP选项:它是可选的,从前边通过对数据偏移的计算可以知道,TCP选项最多有40个字节。这个选项主要是为了支持协议未来的发展所使用的(支持未来的拓展)

  • 相关阅读:
    CAN YOU UNDERSTAND YOUR CUSTOMER SENTIMENT?
    在 Mac 客户端应用程序中使用 breakpad
    竟敢冒充国家级黑客组织!亚信安全还原攻击事件真实面貌
    C++系列-递增运算符重载
    自然语言处理从零到入门 自然语言理解NLU
    数据结构 习题1
    REUSE_ALV_GRID_DISPLAY详解
    Java常用类方法总结
    TypeScript 泛型
    腾讯云国际版云服务器欠费说明
  • 原文地址:https://blog.csdn.net/QDQE232/article/details/126321703
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号