TCP概略

一、TCP报头结构
这里写图片描述
源端口与目的端口:各占2byte,标识源进程与目标进程。
序号:占4byte,TCP连接传送的字节流中每一个字节都按顺序编号,整个要传送的字节流的起始序号必须在创建连接时设置。这里的序号指本报文段所发送的数据的第一个字节的序号。
确认序号:占4byte,期望收到对方下一个报文段的第一个数据字节的编号。代表确认序号之前的数据都已经收到。
数据偏移:占4bit,实际上是TCP首部长度,单位为32bit(即4byte),最小为0101(TCP首部标准长度为20byte),最大为1111(60byte)。
保留:占6bit,目前没有使用,应置0。
六位控制位(各占1bit):
URG:代表紧急指针字段是否有效。当URG=1时,表明紧急指针有效。它告诉系统此报文段有紧急数据应尽快传送,于是发送方TCP就把紧急数据插入到本报文段数据的最前面。URG要与紧急指针字段配合使用。
ACK:仅当ACK=1时,确认号字段才有效,当ACK=0时,确认号字段无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置1。
PSH:PSH=1时,提示接收方应用程序尽快将数据从接受缓冲区将数据读走。
RST:RST=1时,重新建立连接;还用来拒绝一个非法的报文段或拒绝打开一个连接。RST=1的报文段称为复位报文段。
SYN:在连接建立时用来同步序号。SYN置1表示这是一个连接请求或连接接收报文。当SYN=1、ACK=0时,表明这是一个连接请求报文段。携带SYN的报文段称为同步报文段。
FIN:用于释放一个连接,即通知对方,我要关闭连接了。当FIN=1时,表明此报文段的发送方数据已发送完毕,并要求释放连接。携带FIN的报文段称为结束报文段。
窗口:占2byte,指的是发送方自己的接收窗口大小,窗口值代表着:从报头确认号算起,允许对方发送的数据量最大值。
检验和:占2byte,TCP的检验和是必须有的,检验范围包括首部和数据两部分。在计算检验和时,要加上12byte的伪首部,伪首部结构与UDP伪首部一样。
紧急指针:占2byte,此字段必须在URG=1时才有效。紧急指针值表示本报文段中紧急数据的字节数,因此紧急指针指出了紧急数据在报文段中的位置。注:即使窗口为0时,也可以发送紧急数据。
选项:长度可变,最长可达40byte。没有选项时首部长度为20byte,

二、TCP最主要的特点
a、TCP是面向连接的运输层协议。
b、每一条TCP连接只能有两个端点,即TCP通信为点对点通信。
c、TCP提供可靠交付的服务。通过TCP连接传送的数据,无差错、不丢失、不重复并且按序到达。
d、TCP提供全双工通信。
e、面向字节流。

三、TCP保证可靠性的措施
a、检验和
b、序列号
c、确认应答
d、超时重发
e、连接管理
f、流量控制
g、拥塞控制
四、TCP提高性能的措施
a、滑动窗口
b、快速重传
c、延迟应答
d、捎带应答
五、TCP用到的计时器
a、超时重传计时器
b、保活计时器
c、TIME-WAIT计时器
六、基于TCP应用层协议
a、HTTP
b、HTTPS
c、SSH
d、Telnet
e、FTP
f、SMTP

在后面的文章中会逐一探讨这些措施。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值