TCP协议详解

TCP协议-----传输控制协议

     一种面向连接的可靠传输协议。 且TCP协议建立的连接是双向连接。

     面向连接:在数据传输之前,收发双方需要预先建立一条逻辑通路。

可靠性 :1,确认机制----每收到一个TCP数据段,都需要发送一次确认报文。

               2,重传机制----超时重传,当一个数据段中的某个报文丢失,发送端会主动重新发送一次该报文。

               3,排序机制----传输数据段时,被分为多个报文,从不同路径传输,最终达到目的地的顺序会被打乱, 需要根据序列号字段进行重新排序。

                4,流控机制(滑动窗口机制):可以通过调节窗口大小(Windows)来对流量进行控制


源端口(Source Port) : 使用 TCP 协议传输数据的端口号
目的端口(Destination Port) : 数据传输目的主机所对应的端口号
序号(Sequence Number) :在TCP协议中每一个报文都需要有序列号信息, 这样如果有一个报文段丢失/出错的话,发送端就只需要传输对应的报文段即可(重传机制).。  
TCP分段 :因为IP分片后,TCP协议无法保证数据的可靠性传输;故而使用TCP协议进行封装的文件不允许进行IP分片,而又因为MTU(指的是数据包最大传输单元,在以太网中为1500字节)存在,需要将大文件分为小文件,该操作由TCP协议完成。
确认号(Acknowledgement Number) : 有两层含义,第一层为确认收到对方发来的报文段,第二层表示期望对方发送过来的报文段的序号(Sequence Number)
数据偏移(Data Offset) : 指数据部分在整个 TCP 报文段中的偏移量(即 TCP 首部的长度)
URG(Urgent) : 表示是否有紧急情况, 当值为 1 时, 从"数据偏移"开始的"紧急指针"个字节会优先发送
ACK(Acknowledgement) : 确认位 --- 当该标记位置为 1 时,确认序列号有意义, 对应确认号(ack)表示期望对方接下来发送过来的数据的序号(seq)
PSH(Push) : 当 PSH 值为 1 时, 接收到该报文段的主机会尽快将数据交付给应用程序, 而不会等到缓存满了之后再交付给上层
RST(Reset flag) : 当值为 1 时, 表示网络状态不好, 需要释放连接, 并重新建立连接
SYN(Synchronize flag) : 当值为 1 时, 表示期望与对方建立连接, 是在 TCP 三次握手建立通道时的标记
FIN(Final flag) : 释放TCP连接
窗口(Window) : 接收/发送窗口的大小,流量控制使用,如果窗口大小为0,可以发送窗口探测。

面向连接

三次握手

四次挥手

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值