此乃《TCP/IP详解》这本书的第一篇笔记。
关于概述,链路层,IP层等部分,盖因阅读时间距今较久,内容有点模糊,暂时先不写,以后复习的时候补上。现直接跳至TCP这章。
TCP:传输控制协议。与UDP一样,使用相同的网络层(IP协议),但TCP却向应用层提供与UDP完全不同的服务。TCP是一种面向连接的,可靠的字节流服务。
TCP在建立连接之后,通过以下方式提供可靠性:
1、应用层数据被分割成TCP认为最合适发送的数据块,即数据可能会分开传输。这和UDP完全不同,应用程序产生的数据包长度将保持不变。关于TCP如何确定报文段的长度,比较复杂,如果我以后看懂了,再写。
2、当一个TCP段发送出去之后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能及时收到一个确认,将重发一个报文段。关于TCP协议中自适应的超时及重传策略,以后具体讨论。
3、当TCP收到来自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒。
4、TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检验数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段。即,TCP报文段本身有自检错功能,防止数据篡改。
5、既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。
6、既然IP数据报会发生重复,TCP的接收端必须丢弃重复的数据。
7、TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能容纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。
TCP数据报结构:
TCP数据被封装在一个IP数据报中,如:
IP首部 TCP首部 TCP数据
20字节 —— 20字节 —— 不定
<----TCP报文段---->
<---------IP报文段-------------->
如果不计任选字段,TCP首部包含20个字节,即160个bit:
内容,大小依次是:16bit源端口号,16bit目的端口号,32bit序号,32bit确认序号,4bit首部长度,6bit的保留字段,6bit的标志,16bit窗口大小,16bit检验和,16bit紧急指针。
源端口和目的端口:用于寻找发端和收端应用程序。这2个值加上IP首部中的源IP地址和目的端的IP地址可唯一确定一个TCP连接。 端口是16位的,这可以解释说明为什么TCP端口号最大是65535.
序号:用来标识从TCP发端向TCP收端发送的数据字节流。它表示在这个报文段中的第一个数据字节。如果将字节流看做在两个应用程序间的单向流动,则TCP用序列号对每个字节进行计数。序号从0到2的32次方-1循环计数。注意,当一个连接建立的时候,主机发送的第一个字节序号不是0,而是主机选择的初始序号ISN+1.关于ISN的确定,以后再说。
确认序号:既然每个传输的字节都被计数,确认序号包含发送确认的一端(接收端)所期望收到的下一个序号。因此,确认序号应当是上次已成功收到的数据字节序号+1.只有ACK标志(下面介绍)为1时,确认序号字段才有效。
首部长度:需要这个值是因为任选字段长度是可变的。这个字段占4bit,而且一般不算入TCP首部长度,因此,TCP首段长度最多60字节。若没有任选字段,正常的长度是20字节。
标志字段:有6个bit,这个6个bit分别表示6个不同的标志。他们中的多个可以同时被设置为1.这儿将简单的讨论,具体的以后去讲:
URG : 为1时,紧急指针有效
ACK : 为1时,确认序号有效 PS:一旦一个连接被建立,ACK标志总是被设定为1的
PSH : 为1时,接受方应当尽快将这个报文段交给应用层 PS:相当于电视里800里加急的标志
RST : 为1时,重建连接
SYN : 为1时,同步序号用来发送一个连接
FIN : 为1时,发端完成发送任务 PS:还记得上面说的TCP拆分应用层数据么
SYN和FIN标志将在以后继续讨论(如果我还记得的话)
窗口大小 : 这个我现在只知道与TCP的流量控制有关
检验和 : 这是一个强制字段,一定由发送端计算和存储,并由接收端验证。TCP检验和的计算和UDP检验和的计算相似,以后单独讨论。
紧急指针 : 当URG为1时才有效。它是一个偏移量,它和序号字段的值相加表示紧急指针数据中最后一个字节的序号。
普通20字节的TCP首部后面可能不是直接接上TCP数据,而是有一个变长的可选字段。每个连接方通常在通信的第一个报文段(为建立连接而设置SYN标志的那个段)中指明。它指明 本段所能接收的最大长度的报文段。
注意:TCP数据部分是可选的。意思是,我们可能在某个时候(如建立连接和终止连接)仅仅发送TCP首部,而不发送数据。
PS:上文有很大的部分摘抄自《TCP/IP详解》,若有雷同,已经声明不是巧合了
分享到:
相关推荐
第24章 TCP的未来和性能 256 第25章 SNMP:简单网络管理协议 270 第26章 Telnet和Rlogin:远程登录 293 第27章 FTP:文件传送协议 316 第28章 SMTP:简单邮件传送协议 332 第29章 网络文件系统 347 第30章 其他的TCP...
W.Richard Stevens(1951-1999)是一位非常受人尊敬的专家,除了《TCP/IP详解》三卷本外,他还有其他两部最为畅销的作品:《UNIX环境高级编程》和《UNIX网络编程》(两卷本)。 目录 译者序 前言 第1章 概述 1 ...
非扫描版TCP/IP详解卷一,你值得拥有: 《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序...
《TCP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和...
1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 ...
tcp/ip详解卷一:协议 目 录 译者序 前言 第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 ...
TCP/IP详解 卷1:协议 译者序 前言 第1章 概述 1 1.1 引言 1 1.2 分层 1 1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 ...
本书是“TCP/IP详解系列”的延续。主要内容包括:TCP事务协议,即T/TCP,这是对TCP的扩展,使客户-服务器事务更快、更高效和更可靠;TCP/IP应用,主要是HTTP和NNTP;UNIX域协议,这些协议提供了进程之间通信的一种...
作者LawrenceBerkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。《TCP/IP详解卷1:协议》是网络构建原型——4.4BSD的建造者的倾力...
国际知名的Unix和网络专家,《TCP/IP 详解》(三卷本)作者 W.Richard Stevens(1951-1999),是国际知名的Unix和网络专家;受人尊敬的计算机图书作家;同时他还是广受欢迎的 教师和顾问。Stevens先生1951年生于...
《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输...
第一章 概述 第二章 IP 网络协议 第三章 ARP地址解析协议 第四章 RARP逆地址解析协议 第五章 ICMP控制报文协议 第六章 Ping程序
1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 ...
《TCP/IP详解》系列覆盖了TCP/IP的许多方面.提供了一个高效直观的方法来学习联网协议族。 《TCP/IP详解卷2:实现》详尽地说明了TCP/IP协议是如何实现的。目前还没有更多的 书——此卷是唯一一本书,本书全面讲解了...
第一章 概述 第二章 链路层 第三章 IP:网际协议 第四章 ARP:地址解析协议 第五章 RARP:逆地址解析...第六章 ICMP:Internet控制报文协议 第七章 Ping程序 第八章 Traceroute程序 第九章 IP选路 第十章 动态选路协议
第2章 TCP/IP和Internet 8 2.1 一段历史 8 2.1.1 ARPANET 8 2.1.2 TCP/IP 9 2.1.3 国家科学基金会(NSF) 9 2.1.4 当今的Internet 12 2.2 RFC和标准化过程 12 2.2.1 获得RFC 13 2.2.2 RFC索引 13 2.2.3 有关RFC的幽默 ...
1.3 TCP/IP的分层 4 1.4 互联网的地址 5 1.5 域名系统 6 1.6 封装 6 1.7 分用 8 1.8 客户-服务器模型 8 1.9 端口号 9 1.10 标准化过程 10 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 ...
tcp/ip详解全书pdf,绝对高清! 1.1 引言 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但T C P / I P协议 族允许它们互相进行通信。这一点很让人感到吃惊,因为它的作用已远远超出了起初的...
1.9.3添力口IP和UDP首部 1.9.4IP输出 1.9.5以太网输出 1.9.6UDP输出小结 1.10输入处理 1.10.1以太网输入 1.10.2IP输入 1.10.3UDP输入 1.10.4进程输入 1.11网络实现概述(续) 1.12中断级别与并发 1.13源代码组织 ...