- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(传输层)TCP协议
首部格式
图释:
各个段位说明:
源端口和目的端口: 各占 2 字节.端口是传输层与应用层的服务接口.传输层的复用和分用功能都要通过端
口才能实现
序号: 占4 字节.TCP 连接中传送的数据流中的每一个字节都编上一个序号.序号字段的值则指的是本报文
段所发送的数据的第一个字节的序号
确认号: 占4 字节,是期望收到对方的下一个报文段的数据的第一个字节的序号
数据偏移/首部长度: 占4 位,它指出TCP 报文段的数据起始处距离TCP 报文段的起始处有多远. 数据
偏移”的单位是32 位字(以4 字节为计算单位)
保留: 占6 位,保留为今后使用,但目前应置为 0
紧急URG: 当 URG=1 时,表明紧急指针字段有效.它告诉 统此报文段中有紧急数据,应尽快传送(相当于
高优先级的数据)
确认ACK : 只有当ACK=1 时确认号字段才有效.当ACK=0 时,确认号无效
PSH(PuSH): 接收TCP 收到 PSH = 1 的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都
填满了后再向上交付
RST (ReSeT) : 当 RST =1 时,表明TCP 连接中出现严重差错 (如由于主机崩溃或其他原因),必须释
放连接,然后再重新建立运输连接
同步SYN : 同步 SYN = 1 表示这是一个连接请求或连接接受报文
终止 FIN : 用来释放一个连接.FIN=1 表明此报文段的发送端的数据已发送完毕,并要求释放运输连接
检验和: 占2 字节.检验和字段检验的范围包括首部和数据这两部分.在计算检验和时,要在TCP 报文段的
前面加上 12 字节的伪首部
第1页 共12页
紧急指针: 占16 位,指出在本报文段中紧急数据共有多少个字节 (紧急数据放在本报文段数据的最前面)
选项: 长度可变.TCP 最初只规定了一种选 ,即最大报文段长度 MSS.MSS 告诉对方TCP: 我的缓存所
能接收的报文段的数据字段的最大长度是 MSS 个字节.” [MSS(Maximum Segment Size)是TCP 报文段
中的数据字段的最大长度.数据字段加上TCP 首部才等于整个的TCP 报文段]
填充: 这是为了使整个首部长度是4 字节的整数倍
其他选项:
窗口扩大: 占3 字节,其中有一个字节表示移位值 S.新的窗口值等于TCP 首部中的窗口位数增大到
(16 + S),相当于把窗口值向左移动 S 位后获得实际的窗口大小
时间戳: 占10 字节,其中最主要的字段时间戳值字段(4字节)和时间戳回送回答字段(4字节)
选择确认: 接收方收到了和前面的字节流不连续的两2字节.如果这些字节的序号都在接收窗口之内,那
么接收方就先收下这些数据,但要把这些信息准确地告诉发送方,使发送方不要再重复发送这些已收到的数
据
数据单位
TCP 传送的数据单位协议是TCP 报文段(segment)
特点
TCP 是面向连接的传输层协议
每一条TCP 连接只能有两个端点(endpoint),每一条TCP 连接只能是点对点的 (一对一)
TCP 提供可靠交付的服务
TCP 提供全双工通信
面向字节流
注意
TCP 对应用进程一次把多长的报文发送到TCP 的缓存中是不关心的
TCP 根据对方给出的窗口值和当前网络拥塞的程度来决定一个报文段应包含多少个字节(UDP 发送的报文长度是
应用进程给出的)
TCP 可把太长的数据块划分短一些再传送.TCP 也可等待积累有足够多的字节后再构成报文段发送出去
每一条TCP 连接有两个端点
TCP 连接的端点不是主机,不是主机的IP 地址,不是应用进程,也不是传输层的协议端口.TCP 连接的端点叫做套接
字(socket)或插口
自动重传请求ARQ
定义:
可靠传输协议常称为自动重传请求ARQ (Automatic Repeat reQuest)
累积确认:
第2页 共12页
定义: 接收方一般采用累积确认的方式.即不必对收到的分组逐个发送确认,而是对按序到达的最后一个分
组发送确认,这样就表示:到这个分组为止的所有分组都已正确收到
文档评论(0)