《TCP/IP详细说明》读书笔记(17章)-TCP传输控制协定
1.TCP的服务
在一个TCP连接中。仅有双方进行彼此通信。
TCP通过下列方式来提供可靠性:
1)应用数据被切割成TCP觉得最适合发送的数据块。
这和UDP全然不同,应用程序产生的数据报长度保持不变。由TCP传递给IP的信息单位称为报文段或段。
2)当TCP发出一个段后。它启动一个定时器,等待目的端确认收到这个报文段。假设不能及时收到一个确认。将重发这个报文段。这将在21章中重传策略中讨论。
3)当TCP收到发自TCP连接还有一端的数据,它将发送一个确认。
这个确认不是马上发送。通过将推迟几分之中的一个秒,这将在19章中讨论。
4)TCP将保持它首部和数据的检验和。这是一个端到端的检验和。目的是检測数据文件在传输过程中的不论什么变化。假设收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)
5)既然TCP报文段作为IP数据报来传输。而IP数据报的到达可能会失序。因此TCP报文段的到达也可能会失序。假设必要,TCP将对收到的数据进行又一次排序。将收到的数据以正确的顺序交给应用层。
6)既然IP数据报会发生重发,TCP的接收者必须丢弃反复的数据。
7)TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。
TCP的接收端仅仅同意还有一端发送接收端缓冲区所能接纳的数据。
这将防止较快主机致使较慢主机的缓冲区溢出。
TCP提供面向连接的。可靠的字节流服务。
2.TCP的首部
TCP数据被封装在一个IP数据报中:(IP首部<20bit>、TCP首部<20bit>、TCP数据),例如以下图:

port号:标识了接收与发送进程
序号:表示一个数据报中的第一个数据字节
确认序号:表示发送端希望下次收到的序号,因此,确认序号应当是上次已成功收到数据字节序号加1。
首部长度:表示首部中32Bit的数目。须要这个值是由于任选字段的长度是可变的。
这个字段占4bit(最多能表示15个32bit,即4*15=60个字节的首部长度)。因此TCP最多有60字节首部。然则,没有任选字段。正常的长度是20字节。
TCP首部中有6个标志比特
URG   紧急指针有效
ACK   确认序号有效
PSH   接收方尽快把报文交付应用层
RST   复位连接
SYN   发起一个连接
FIN   发端完毕发送任务
窗体大小:通过每一端声明窗体大小。来提供流量控制的能力。
窗体大小为字节数,起始于确认序号字段指明的值。这个值是接收端期望接收的字节。窗体大小是一个16 bit字段。因而窗体大小最大为65535字节。
校验和:覆盖整个TCP报文段:TCP首部和TCP数据。这是一个强制性的字段,一定是由发端计算和存储。并同收端进行验证。
紧急指针:为一个正的偏移量。和序号相加表示紧急数据最后一个字节的序号,仅当URG标志置1时紧急指针才有效。TCP的紧急方式是发送端向还有一端发送紧急数据的一种方式。
最大报文长度(MSS):最常见的可选字段。每一个连接方通过都在通信的第一个报文段(为建立连接而设置SYN标志的那个段)中指明这个选项。它指明本端所能接收的最大长度的报文段。
作者原创,转载请标明原处:http://blog.csdn.net/xifeijian/article/details/44264079
版权声明:本文博主原创文章,博客,未经同意不得转载。
《TCP/IP详细说明》读书笔记(17章)-TCP传输控制协定的更多相关文章
- TCP/IP网络编程 读书笔记1
		
本篇主干内容是TCP/IP网络编程1-9章学习笔记 1. linux文件描述符 描述符从3开始以由小到大的顺序编号,0,1,2,分配给标准I/O用作标准输入.标准输出和标准错误. 2. 协议族与套接字 ...
 - TCP/IP知识总结(TCP/IP协议族读书笔记二)
		
接下来,总结一下网络层的协议,IP,ARP,RARP,ICMP,IGMP.当我们在网络传输的过程中,把分组交付到主机或路由器需要两级地址:物理地址和逻辑地址.而且我们需要能够把物理地址映射成为相应的逻 ...
 - 《TCP/IP图解》读书笔记
		
看这本书的目的: 了解计算机之间是怎么通信的 熟悉TCP/IP协议 后面就这两个目的进行展开,要达到这两个目的,读这本书,学到了哪些知识. 一.计算机之间是怎么通信的 先来了解下面几个概念,中继器,二 ...
 - TCP/IP知识总结(TCP/IP协议族读书笔记一)
		
一.简述TCP/IP协议 Transmission Control Protocol/Internet Protocol的简写,即传输控制协议/互联网互联协议,又名网络通信协议.是Internet最基 ...
 - TCP/IP详解 读书笔记(一):概述
		
分层 网络协议通常分不同层次进行开发,每一层负责不同的职责,一个协议簇指的是一组不同层次上的多个协议的组合. TCP/IP通常被认为是一个四层协议系统: 链路层:主要是处理与电缆或其他传输媒介的物理接 ...
 - TCP/IP知识总结(TCP/IP协议族读书笔记四)
		
参考:http://blog.chinaunix.net/uid-26275986-id-4109679.html 继续!TCP的流量控制和拥塞控制. TCP相对UDP可靠的地方在于它的拥塞控制.流量 ...
 - TCP/IP知识总结(TCP/IP协议族读书笔记三)
		
接下来,总结传输层的两大协议UDP和TCP. 一.UDP(用户数据报协议) 讲UDP之间,先了解两个概念:有连接和无连接. 有连接:通信之前,通信双方必须建立一条通道: 无连接:不需要建立通道,发送方 ...
 - TCP/IP详解 读书笔记:TCP:传输控制协议
		
TCP的服务 TCP为应用层提供一种面向连接的.可靠的字节流服务. 一个TCP连接中,仅有两方进行彼此通信,所以广播和多播不能用于TCP. TCP通过以下方式提供可靠性: 应用数据被切割为TCP认为最 ...
 - TCP/IP详解学习笔记
		
TCP/IP详解学习笔记(1)-基本概念 TCP/IP详解学习笔记(2)-数据链路层 TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议 TCP/IP详解学习笔记(4)-ICMP协议, ...
 - 《TCP/IP详解卷1:协议》第19章 TCP的交互数据流-读书笔记
		
章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...
 
随机推荐
- C++中的unordered_map
			
1.简介 随着C++0x标准的确立,C++的标准库中也终于有了hash table这个东西.很久以来,STL中都只提供<map>作为存放对应关系的容器,内部通常用红黑树实现,据说原因是二叉 ...
 - 关于express4不再支持body-parser
			
express的bodyParser能将表单里的数据格式化,bodyParser原是绑定在express中的,但从express4开始,不在绑定了 如果依然直接使用app.use(express.bo ...
 - RecyclerView 小记
			
RecyclerView,是在v7包加入的,一个灵活的view可以展示巨大的数据集,类似于listview的viewholder复用已经优化好了. 语言是苍白的,代码是最生动的叙说: 布局: < ...
 - ndk 编译 boost 库,支持serialization
			
Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容.在C+ ...
 - ECSHOP 开发总结
			
今天算是仔细学习ecshop 的第一天,实话说,如果不是任务紧,肯定不用这个东西.2013年之后都不再维护了.使用起来万一出什么BUG 就不好了.而且不是纯粹的MVC ,看代码也是怪怪的呢.但是都已经 ...
 - python基础学习笔记1
			
一.字符串: 1.不可变性.分片赋值对于字符串是不合法的. 2.字符串格式化 % eg: print 'The price is: %d' % 30 print 'The price is: %.2f ...
 - 设置cmd的codepage的方法
			
设置cmd的codepage的方法 有时候,我们的cmd.exe的codepage和字体等会变化,比如突然由中文变成英文的codepage(因为一些sh程序的干扰). 下面是修正方法: [HKEY_C ...
 - QReadWriteLock上锁容忍的等待时间是多久?
			
非递归上锁情况下,同一个锁,已经被锁过一次,那么另外一个线程尝试上锁,会被挡在外面,但是会被挡多久呢?挡一分钟会被崩溃,还十分钟,还是永久等待而不崩溃(希望如此)?还是会立刻崩溃?因为不可以重复上锁. ...
 - 交换机VLAN研究
			
这两天在研究openWRT的网络接口问题,涉及到了交换机的一些概念,主要是跟VLAN相关的,在此总结一下. VLAN在802.11Q中定义,802.11Q帧格式如下图所示: 交换机示意图如下图所示: ...
 - 用JavaScript判断横屏竖屏问题
			
判断手机横竖屏状态: //判断手机横竖屏状态: function hengshuping() { if(window.orientation == 180 || window.orientation= ...