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

  • 相关阅读:
    手机无线耳机什么牌子的好用?2022好用的无线蓝牙耳机排行榜
    python带你采集桌游、剧本杀游戏店数据信息~
    万星开源项目强势回归「GitHub 热点速览 v.22.38」
    Docker容器网络配置
    Chapter 7 XGBoost
    Ajax概述,封装以及联合模板引擎进行数据交互
    消息中间件篇之Kafka-消费顺序性
    JVM之垃圾回收算法和垃圾回收器(大厂收割机)
    【计算机网络】物理层(一)
    记录--JavaScript原型和原型链复习笔记
  • 原文地址:https://blog.csdn.net/QDQE232/article/details/126321703
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号