码农知识堂 - 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个字节。这个选项主要是为了支持协议未来的发展所使用的(支持未来的拓展)

  • 相关阅读:
    C语言枚举和联合体
    3个g的文件怎么发送给别人?三种方法自由选择!
    硬盘数据丢失怎么办?电脑硬盘恢复,3个步骤
    Leecode 108:将有序数组转换成二叉搜索树,传指针或引用对程序的影响
    浅入浅出分布式事务
    论文阅读11——《Mutual Boost Network for Attributed Graph Clustering》
    【Kali安全渗透测试实践教程】第5章 漏洞利用
    离散Fréchet算法
    Leetcode 26-30题
    数据结构笔记(王道考研) 第四章:串
  • 原文地址:https://blog.csdn.net/QDQE232/article/details/126321703
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号