您的位置:首页 > 理论基础 > 计算机网络

TCP/IP详解学习笔记--TCP的基本概念

2015-07-27 11:05 513 查看

1.TCP的服务

虽然TCP和UDP最后都会通过IP层传输,但是二者却为用户提供完全不同的服务,TCP提供的是面向连接的,可靠的字节流服务
面向连接意味着俩个使用TCP的应用在彼此交换数据之前必须先建立一个TCP连接。可以用打电话比喻TCP的连接,要想俩个人通话,首先一方要拨通另一方的电话,等待另一方接通电话之后才可以通话,TCP连接只有俩方能通话,这和UDP完全不同


TCP通过如下方式来提供可靠的服务

.应用数据被分成TCP认为最合适的数据块

.当TCP发出一个段时,它启动一个定时器,等待目的端确认接收这个段,如果不能及时收到确认将重发这个报文段

.当TCP收到来自TCP另一端的数据时,它将发送一个确认

.TCP将保持它首部和数据的检验和,这是个端到端的检验和,目的是检验数据在传输过程中有没有变化

.如果有必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层

.TCP接收端必须丢掉重复的数据

.TCP双方每一端都有固定大小的接收缓冲空间,TCP根据此空间提供流量控制

2.TCP的首部结构

[thead]
[/thead]
16位源端口号16位目的端口号
32位序号32位确认序号
4位首部长度保留6位
16位窗口大小16位校验和
16位紧急指针选项
数据
(1)目地端和源端的端口号,用于寻找发端和收端应用进程

(2)序号用来标识从TCP发端向收端发送的数据字节流,它表示在这个报文段中的第一个数据字节(其实说白了,它就是用来标识这个数据段的)

(3)确认序号包含发送确认的一端所期望收到的下一个序号,因此确认序号因该是上次已成功接收数据段序号加1只有ACK为1时,确认序号才有效

(4)首部长度给出首部中32bit字的数目

(5)6位标志他们中有多个可以被设为1,具体用法如下:

[thead]
[/thead]
bit位具体描述
UGR紧急指针
ACK确认序号有效
PSH接收方应尽快将这个报文段交给应用层
RST重建连接
SYN同步序号用来发起一个连接
FIN发端完成任务
(6)16位窗口大小用于TCP流量控制

(7)最长见的可选字段是最长报文大小,又称MSS,通常在通信的第一个报文段指明这个

3.基本流程总结

TCP是一种提供可靠的面向连接的字节流运输层服务,TCP将用户数据打包构成报文段,它发送数据后,产生一个定时器,另一端对收到的数据确认,对失序的数据重新排序,丢弃重复数据,通过窗口大小提供端到端的流量控制,并计算和验证一个强制性的端到端的校验和
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: