TCP/IP学习(TCP传送控制协议)

TCP的概述

TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用在彼此交换数据之前必须建立一个TCP连接。TCP仅仅有两方进行彼此通信,广播和多播不能用于TCP。

TCP的首部

TCP数据被封装在IP数据包中,如下图:
这里写图片描述
TCP首部的数据格式:
这里写图片描述
不计任选字段,它通常是20个字节。

1.序列号和确认号

他们是TCP可靠传输服务的关键部分,序列号是该报文段首字节的字节流编号。序列号是该报文段首字节的字节流编号(TCP把数据看成是有序的字节流,TCP隐式地对数据流的没给字节进行编号)。当报文被分解成多个报文字段时,序列号就是整个保温的偏移量。确定号指定下一个期待的字节。TCP是全双工的,假设从主机A接收到主机B的数据,则主机A填充进报文段的确认号是主机A期望从主机B收到的下一个字节序号。
TCP的数据在两个方向上独立进行传输。因此,连接的每一端必须褒词每个方向上的传输数据序号。

首部长度

因为选项是不定长的,这就需要标识整个首部字段的长度(单位是32位字), 及5+选项个数。首部最长是15*4 = 60字节,即选项最长是40字节(10个选项)。

标识

  • URG 紧急指针有效(不理解)
  • ACK 确认序号有效;
    当ACK=0时,表示该数据段不包含确认信息,当ACK=1时,表示该报文段包括一个对已被成功接收报文段的确认。
  • PSH 接受方应该尽快将则个报文段交给应用层
  • RST 重新连接
  • SYN 同步序号用来发起一个连接
  • FIN 发端完成发送任务

窗口大小

用于流控制,窗口大小为字节数,起始于确认序号字段指明的值,这个值是接受段正期望接收的字节。窗口大小是一个16bit字段最大为65535字节。

检验和

检验和覆盖了整个TCP报文段:TCP首部和TCP数据。

选项

选项部分是适合复杂网络环境和更好地服务于应用层的设计的。TCP选项最长是40字节。

MSS(最大报文传输段)

用于发送与接收协商最大报文段长度(仅仅是净荷数据,不包括TCP首部字段)TCP在三次握手中,则使用默认的536字节净荷数据。

窗口扩大选项

需要更大的窗口满足性能时需要

NOP

TCP的头部必须是4字节的倍数,二大多数选项不是4字节的倍数,不足的用NOP填充,除此之外,NOP也用于分割不同的选项数据,如窗口扩大选项和SACK之间使用NOP隔离。

数据

无任何数据的TCP段也是合法的,通常用于确认和控制信息。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值