当前课程知识点:计算机网络 > 第六章 传输层 > 6.4 TCP数据段 > Video
TCP是Transmission Control Protocol
的缩写
它是专门为了在不可靠的
互联网络上
提供可靠的端到端的字节流
而设计的
TCP必须动态的
适应不同的拓扑
带宽 延迟
分组大小
和其他的网络参数
并且在有错误的时候
能够足够健壮
支持TCP的机器
都有一个TCP的实体
或者是用户进程
或者是操作系统的内核
都可以管理TCP流
和跟IP层的接口
具体的来说
发方的传输实体
会完成封装的一个环节
它从本地进程
接收用户数据流
并且把它分割成
不超过64KB的一个一个的分片
在实践中
通常分割成1460个字节
以便它能够通过以太网的传输
而收方的传输实体
它完成解封装的一个环节
当包含TCP数据段的报文
到达某台机器的时候
它被提交给传输实体
传输实体
将其重构出原始的字节流
就是Byte Stream
TCP连接上的每一个字节
都有它自己独有的32位序列号
编号
但是收发双方的TCP实体
是不以字节
而是以数据段的形式
来交换数据的
那么TCP数据段的大小
是怎么来确定的呢
有两个因素
限制了数据段的长度
一
TCP数据段
必须适合IP分组的65515字节的
限制
这个65515呢是从整个IP分组的
长度
65535
再减去它的头部
20个B得来的
减去头部之后
剩下的就是数据段
它所机身的那个长度
就是净载荷的长度
二
每个TCP数据段
必须适合于下层网络的MTU
比如说1500个字节
它是以太网载荷的大小
接下来仔细观察一下
TCP数据段的构成
一个TCP数据段
包括20个字节的头部
不包含可选项
和变长的数据字段
这个数据字段呢
可以是零个字节
或者很多个字节
不含选项的TCP段头
有14个字段
或者14个域
第一个和第二个字段
叫源端口和目的端口
这两个字段呢
表明了一个连接的
两个端点
上面的两个元素
这其实就是通信五元组中的
两个重要的元素
它用来跟踪同一时间内
通过网络的不同会话
一般每个端口
它会对应一个应用进程
第三个字段呢
叫序列号
用32位表示的
它表示一个字节
它的编号
可以说每一个字节
都有一个编号
都有一个序列号
在这些序列号里边
有一个非常特殊的序列号
叫初始序列号
我们把它简称为ISNs
它是随机产生的
第四个字段叫确认号
它代表的是期望接收的
对方发过来的字节编号
也是用32位表示的
在TCP里边
为了保证数据的可靠传递
它采用了肯定确认这种机制
那么这个时候
我就要用到确认号
比如确认号是500
就表示收到了发方发出的499
498 497等等等等
序列号的字节
下一次呢
发方就可以从序列号为500的字节
发数据过来了
这个地方呢
就采用了累积确认技术
第五个字段
是用4比特表示的TCP
段头的长度
它的单位呢
是4个byte
4个字节
32位
这个段头的含义呢
我们在IP里边
已经学过了
在这个地方呢
它的含义跟IP的段头长度
是一模一样的
接下来呢
是保留字段
这个保留字段呢
也逐步的启用了
比如说用来做一些拥塞控制等等
第六 第七 第八 第九
第十 十一
总共六个字段
都是用1比特表示的
有的时候呢
把它们叫做控制比特
这6个控制比特
分别是URG ACK PSH
RST SYN和FIN
我们逐个的来看
这6个控制位
它有什么意思
先来看URG
当紧急指针使用的时候
URG被置为1
紧急指针
是一个对于当前序列号的字节
偏移量
表明紧急数据
从哪里开始
即使window size等于0
也可以发送这样的紧急数据
比如说如果用户发出
ctrl+C这样的中断命令
它就可以以紧急数据的形式
发出去
当URG等于1的时候
表明有紧急数据
必须首先处理
所以接收方
如果收到这样的数据
它会马上处理
处理完之后再恢复它
正常的操作
第二个控制比特是ACK
它可以设为1
也可以设为0
当它设为1的时候
它表示确认号
就是ACK number是有效的
也表明它启用了一个捎带确认
当ACK这一位等于0的时候
表明确认号无效
没有搭载任何的确认
第三个控制比特是PSH
表示这是带有push标志的数据
接收方收到这样的数据
应该立刻送给上层
而不需要去缓存它
第四个控制比特是RST
它被用来重置一个
已经非常混乱的连接
如果在连接建立的阶段呢
就直接拒绝
建立这个连接
第五个控制比特是SYN
它用在连接建立的过程里面
通常呢
SYN和ACK一起
指示了连接建立的
某一个环节
比如说
SYN等于1
ACK等于0
表明这是一个连接建立的请求
如果SYN等于1
ACK也等于1
就表明这是一个连接接受的信息
第六个控制比特是FIN
它被用来释放连接
它表示发送方
已经没有更多的数据
要传输了
但是呢
它可以继续接收数据
为了避免接收方
被大量涌入的数据所淹没
TCP实体进行了流控
它通常会使用一个可变长的
滑动窗口
来完成这个流控
所以我们看到第12个字段
它叫做窗口尺寸
windows size
是用16位表示的
这个窗口尺寸的值
是告诉对方
可以发送的数据
字节数
即从确认字节号开始
连续发送的字节总数
窗口尺寸的大小
取决于接收方
第13个字段叫校验和
它计算的方法
跟UDP数据段中
校验和计算是一样的
唯一不一样的是
伪头部中的用户协议
取值为6
第14个字段紧急指针
它和URG控制位配合使用
指明了紧急数据
如果在基本头部之后
有选项域的话
它提供了一种
增加基本头
没有包含的内容的方法
小结一下今天的内容
TCP是一个复杂的
传输层协议
负责将TCP数据段
可靠地送达目的端
相比UDP段头
TCP段头非常复杂
包含14个字段
比如源端口
目的端口
这是通信五元组中的
两个非常重要的元素
序列号为每个字节编号
确认号
ACK控制位置位的时候
这个确认号才有效
还有6个控制位
用于连接的建立 拆除
异常处理等等
还有窗口数
可以用来进行流控
以免接收方
被数据所淹没
-本课程简介
--课程组织
-1.1 为什么要学习计算机网络?
-1.2 互联网络发展史
--Video
--互联网络发展史
-1.3 常用的基本概念
--Video
--常用的基本概念
-1.4 参考模型(重点)
--Video
--参考模型
-1.5 参考模型相关的概念
--Video
--数据如何传输
-1.6 本课程的组织
--Video
--课程组织
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-附录3:伦敦奥运会开幕式之Tim Berners Lee
--附录说明
-第一章 概述--章节测试
-附录4:本章的无背景乐的视频
--1-4参考模型
--关于附录4的说明
-2.1 数据通信的理论基础
--Video
-2.2 有导向的传输介质
--Video
--有导向的传输介质
-2.3复用技术
--Video
--复用技术
-2.4调制技术
--Video
--调制技术
-2.5公共交换电话网络
--Video
--公共交换电话网络
-2.6物理层设备
--Video
--物理层设备
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-附录3:光纤熔接
--Video
-附录4:海底光缆
--附录说明
--外部链接
-第二章 物理层--章节测试
-附录5:本章的无背景乐的视频
--2-3复用技术
--2-4调制技术
--关于附录5的说明
-3.1 数据链路层概述
--Video
--数据链路层概述
-3.2 差错处理概述
--Video
--差错处理概述
-3.3 纠1位错的海明码
--Video
--纠1位错的海明码
-3.4 检错码
--Video
--检错码
-3.5基本数据链路协议1~3
--Video
-3.6 滑动窗口协议
--Video
--滑动窗口协议
-3.7 回退n帧
--Video
--回退n帧
-3.8 选择性重传
--Video
--选择性重传
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-第三章:数据链路层--章节测试
-附录3:本章的无背景乐的视频
--3-4检错码
--3-6 滑窗协议
--3-7 回退n帧
--关于附录3的说明
-4.1 MAC子层概述
--Video
--MAC子层概述
-4.2 ALOHA协议
--Video
--ALOHA协议
-4.3 CSMA协议
--Video
--CSMA协议
-4.4 以太网概述
--Video
--以太网概述
-4.5 以太网帧格式
--Video
--以太帧格式
-4.6 二层交换的基本格式
--Video
-4.7 生成树协议
--Video
--生成树协议
-4.8 虚拟局域网
--Video
--虚拟局域网
-4.9 二层设备
--Video
--二层设备
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-第四章 介质访问控制子层--章节测试
-附录3:本章的无背景乐的视频
--4-9 二层设备
--关于附录3的说明
-5.1 网络层引言
--Video
--网络层引言
-5.2 IP地址
--Video
--IP地址
--子网规划实例
-5.3 子网规划
--Video
--子网规划
-5.4 IP寻址
--Video
--IP寻址
-5.5 IP分组
--Video
--IP分组
-5.6 什么是IPv6?
--Video
--什么是IPv6?
-5.7 IPv6地址
--Video
--IPv6地址
-5.8 IPv6分组
--Video
--IPv6分组
-5.9 IPv6过渡技术
--Video
--IPv6过渡技术
-5.10 路由从何而来?
--Video
--路由如何而来
-5.11 距离矢量路由选择协议
--Video
-5.12 路由信息协议RIP
--Video
--RIP
-5.13 RIP为什么衰落?
--Video
-5.14 链路状态路由选择LS
--Video
-5.15 单区域OSPF
--Video
-5.16 无类域间路由 CIDR
--Video
--CIDR
-5.17 网络地址翻译 NAT
--Video
--NAT
-5.18 互联网控制消息协议 ICMP
--Video
--ICMP
-5.19 地址解析协议 ARP
--Video
--ARP
-5.20 拥塞控制
--Video
--拥塞控制
-5.21 流量整形
--Video
--流量整形
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-第五章 网络层--章节测试1
-第五章 网络层--章节测试2
-第五章主观测试题
-附录3:本章的无背景乐的视频
--5-2_IP地址
--5-3_子网规划
--5-4_IP寻址
--5-5_IP分组
--5-9过渡技术
--5-21流量整形
-6.1 传输层概述
--Video
--传输层概述
-6.2 用户数据报协议 UDP
--Video
-6.3 通信模型
--Video
--通信模型
-6.4 TCP数据段
--Video
--TCP数据段
-6.5 TCP三次握手建立连接
--Video
-6.6 TCP连接释放
--Video
--TCP连接释放
-6.7 TCP传输策略
--Video
--TCP传输策略
-6.8 TCP拥塞控制
--Video
--TCP拥塞控制
-6.9 TCP定时器等
--Video
--TCP定时器等
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-第六章 传输层--章节测试
-附录3:本章的无背景乐的视频
--6-1传输层概念
--6-2UDP
--6-3通信模型
-linux
-windows
-7.1 应用层概述
--Video
--应用层概述
-7.2 域名系统 DNS 概述
--Video
-7.3 DNS之域名解析
--Video
--域名解析
-7.4 电子邮件 e-mail
--Video
-7.5 万维网 WWW
--Video
--万维网 WWW
-7.6 其它应用
--Video
--其它应用
-附录1:思考题
--html
-附录2:术语中英对照表
--html
-第七章 应用层--章节测试
-附录3: 本章无背景音乐的视频
--7-4_电子邮件
--7-6_其它应用