zoukankan      html  css  js  c++  java
  • 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位窗口大小,表示现在的窗口是多大,一般是由发送方发送窗口大小





  • 相关阅读:
    开源项目
    [Accessibility] Missing contentDescription attribute on image [可取行]失踪contentDescription属性图像
    Android 布局 中实现适应屏幕大小及组件滚动
    EF 错误记录
    EasyUI 加载时需要显示和隐藏 panel(面板)内容破版问题
    IE 报表缩放后页面破版
    VS 2017 引入nuget 问题
    SSRS 报表显示页面 asp net session丢失或者找不到 asp net session has expired or could not be found()
    log4net 配置
    网站
  • 原文地址:https://www.cnblogs.com/SmileLion/p/5863547.html
Copyright © 2011-2022 走看看