• TCP:传输控制协议


    1:TCP的概念

    TCP和UDP使用IP层,但是和UDP提供不一样的服务,TCP提供的是一种面向连接的,可靠字节流服务,广播和多播是不适用于TCP的

    2:TCP所提供保证可靠性的措施

    2.1应用数据被分成最适合TCP发送的数据块,TCP传递给IP的信息单位称为报文段或者段

    2.2TCP发送一个段后,它启动一个定时器,当定时器到达时还没有收到应答,则应该重发此报文短

    2.3TCP收到一个报文,应答并不是立即发送的,而是应该推迟几分之一秒

    2.4TCP将保持他首部和数据的校验和,如果接收方得知数据有错误,并不发送一个应答,等待发送方超时重传

    2.5TCP必须提供重排算法,因为数据报到达会失序

    2.5TCP应该提供流量控制

    3:TCP数据格式

    2.1:16位源端口号:表示发送TCP报文段的是哪一个应用程序端口

    16位目的端口号:表示接受的主机是哪一个端口号,和目的IP地址配对

    以上两个用来确定一条唯一的TCP连接

    2.2:32位序号:序号用来标示从TCP发端到TCP收端的数据字节流,这个数字表示此报文段的第一个数据字节

    序号到达2^32-1后重新从0开始

    此标志开始时的初始状态和SYN有关,当建立一个新的连接的时候,SYN变为一,序号字段采用初始序号ISN,发送第一个数据的时候,序号为这个ISN+1,因为SYN标志消耗了一个序号

    2.3:32位确认序号,比如TCP发放发送一个数据0-1024,如果接收方接收到则返回1025,首先,此确认序号,必须在ACK置一的条件下才起作用。

    我们说TCP是一个没有选择确认的或否认的滑动窗口协议,没有选择确认指的是比如发放1-1024,2048-3072,则返回的确认只能是1025,同时他也不能进行报文段否认,即如果1-1024这个报文段出错,不能返回一个指明此报文段错误的标志,只可以等待重传

    2.4:校验和,包括了TCP的头部和数据部分,是一个强制性的

    2.5:16位窗口大小,表示现在的窗口是多大,一般是由发送方发送窗口大小





  • 相关阅读:
    移动Oracle数据库表空间文件。
    Web页面嵌入复杂WinForm控件权限问题
    关于bleand2000下面oracle服务器优化
    祝大家新年快乐!
    CentOS安装配置MongoDB及PHP MongoDB 扩展安装配置 新风宇宙
    FastDFS介绍和配置过程 新风宇宙
    ubuntu下安装redisserver和phpredis 新风宇宙
    PHP安装fastDFS扩展 新风宇宙
    用socket发送流数据示用 php://input? 接受post数据(可实现php和c/c++数据通讯) 新风宇宙
    linux操作系统下c语言编程入门 新风宇宙
  • 原文地址:https://www.cnblogs.com/SmileLion/p/5863547.html
Copyright © 2020-2023  润新知