码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-07-27 13:21:53      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:数据   应用   tcp连接   tcp   

1.TCP的服务

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

TCP通过如下方式来提供可靠的服务
.应用数据被分成TCP认为最合适的数据块
.当TCP发出一个段时,它启动一个定时器,等待目的端确认接收这个段,如果不能及时收到确认将重发这个报文段
.当TCP收到来自TCP另一端的数据时,它将发送一个确认
.TCP将保持它首部和数据的检验和,这是个端到端的检验和,目的是检验数据在传输过程中有没有变化
.如果有必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层
.TCP接收端必须丢掉重复的数据
.TCP双方每一端都有固定大小的接收缓冲空间,TCP根据此空间提供流量控制

2.TCP的首部结构

16位源端口号 16位目的端口号
32位序号 32位确认序号
4位首部长度 保留6位
16位窗口大小 16位校验和
16位紧急指针 选项
数据

(1)目地端和源端的端口号,用于寻找发端和收端应用进程
(2)序号用来标识从TCP发端向收端发送的数据字节流,它表示在这个报文段中的第一个数据字节(其实说白了,它就是用来标识这个数据段的)
(3)确认序号包含发送确认的一端所期望收到的下一个序号,因此确认序号因该是上次已成功接收数据段序号加1只有ACK为1时,确认序号才有效
(4)首部长度给出首部中32bit字的数目
(5)6位标志他们中有多个可以被设为1,具体用法如下:

bit位 具体描述
UGR 紧急指针
ACK 确认序号有效
PSH 接收方应尽快将这个报文段交给应用层
RST 重建连接
SYN 同步序号用来发起一个连接
FIN 发端完成任务

(6)16位窗口大小用于TCP流量控制
(7)最长见的可选字段是最长报文大小,又称MSS,通常在通信的第一个报文段指明这个

3.基本流程总结

TCP是一种提供可靠的面向连接的字节流运输层服务,TCP将用户数据打包构成报文段,它发送数据后,产生一个定时器,另一端对收到的数据确认,对失序的数据重新排序,丢弃重复数据,通过窗口大小提供端到端的流量控制,并计算和验证一个强制性的端到端的校验和

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:数据   应用   tcp连接   tcp   

原文地址:http://blog.csdn.net/shreck66/article/details/47082153

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!