`
白粥若水
  • 浏览: 101040 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

《TCP/IP详解》_卷一_TCP简介和报文段结构简介

 
阅读更多

此乃《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详解》,若有雷同,已经声明不是巧合了

0
6
分享到:
评论

相关推荐

    《TCP/IP详解,卷1:协议》

    第24章 TCP的未来和性能 256 第25章 SNMP:简单网络管理协议 270 第26章 Telnet和Rlogin:远程登录 293 第27章 FTP:文件传送协议 316 第28章 SMTP:简单邮件传送协议 332 第29章 网络文件系统 347 第30章 其他的TCP...

    TCP/IP详解(卷一)

    W.Richard Stevens(1951-1999)是一位非常受人尊敬的专家,除了《TCP/IP详解》三卷本外,他还有其他两部最为畅销的作品:《UNIX环境高级编程》和《UNIX网络编程》(两卷本)。 目录 译者序 前言 第1章 概述 1 ...

    TCP/IP详解 卷1完整版

    非扫描版TCP/IP详解卷一,你值得拥有: 《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序...

    TCP/IP协议详解卷二:实现

    《TCP/IP详解·卷2:实现》完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。《TCP/IP详解·卷2:实现》不仅说明了插口API和...

    TCP_IP协议详解卷一

    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详解卷一:协议 目 录 译者序 前言 第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 标准化过程 ...

    TCPIP详解--共三卷

    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详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议

    本书是“TCP/IP详解系列”的延续。主要内容包括:TCP事务协议,即T/TCP,这是对TCP的扩展,使客户-服务器事务更快、更高效和更可靠;TCP/IP应用,主要是HTTP和NNTP;UNIX域协议,这些协议提供了进程之间通信的一种...

    TCP-IP协议详解卷一(英文原版)

    作者LawrenceBerkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输的不同分组。对tcpdump输出的研究可以帮助理解不同协议如何工作。《TCP/IP详解卷1:协议》是网络构建原型——4.4BSD的建造者的倾力...

    TCP/IP详解 卷1:协议--源代码

    国际知名的Unix和网络专家,《TCP/IP 详解》(三卷本)作者 W.Richard Stevens(1951-1999),是国际知名的Unix和网络专家;受人尊敬的计算机图书作家;同时他还是广受欢迎的 教师和顾问。Stevens先生1951年生于...

    TCP/IP详解part_2

    《TCP/IP详解,卷1:协议》是一本完整而详细的TCP/IP协议指南。描述了属于每一层的各个协议以及它们如何在不同操作系统中运行。作者用Lawrence Berkeley实验室的tcpdump程序来捕获不同操作系统和TCP/IP实现之间传输...

    TCP/IP详解卷一

    第一章 概述 第二章 IP 网络协议 第三章 ARP地址解析协议 第四章 RARP逆地址解析协议 第五章 ICMP控制报文协议 第六章 Ping程序

    TCP/IP详解卷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 1.11 RFC 10 1.12 标准的简单服务 11 1.13 互联网 12 1.14 实现 12 1.15 ...

    TCP/IP详解 (卷2:实现)

    《TCP/IP详解》系列覆盖了TCP/IP的许多方面.提供了一个高效直观的方法来学习联网协议族。 《TCP/IP详解卷2:实现》详尽地说明了TCP/IP协议是如何实现的。目前还没有更多的 书——此卷是唯一一本书,本书全面讲解了...

    TCP/IP详解

    第一章 概述 第二章 链路层 第三章 IP:网际协议 第四章 ARP:地址解析协议 第五章 RARP:逆地址解析...第六章 ICMP:Internet控制报文协议 第七章 Ping程序 第八章 Traceroute程序 第九章 IP选路 第十章 动态选路协议

    TCP/IP教程TCP/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的幽默 ...

    TCP/IP详解卷 pdf格式

    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详解全书pdf,绝对高清! 1.1 引言 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但T C P / I P协议 族允许它们互相进行通信。这一点很让人感到吃惊,因为它的作用已远远超出了起初的...

    TCP/IP详解卷2:实现

    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源代码组织 ...

Global site tag (gtag.js) - Google Analytics