于看到了TCP协议,这是TCP/IP详解里面最重要也是最精彩的部分,要花大力气来读。前面的TFTP和BOOTP都是一些简单的协议,就不写笔记了,写起来也没啥东西。
TCP和UDP处在同一层---运输层,但是TCP和UDP最不同的地方是,TCP提供了一种可靠的数据传输服务,TCP是面向连接的,也就是说,利用TCP通信的两台主机首先要经历一个“拨打电话”的过程,等到通信准备结束才开始传输数据,最后结束通话。所以TCP要比UDP可靠的多,UDP是把数据直接发出去,而不管对方是不是在收信,就算是UDP无法送达,也不会产生ICMP差错报文,这一经时重申了很多遍了。
把TCP保证可靠性的简单工作原理摘抄如下
- 应用数据被分割成TCP认为最适合发送的数据块。这和UDP完全不同,应用程序产生的 数据报长度将保持不变。由TCP传递给IP的信息单位称为报文段或段( segment)(参见图1 - 7)。在1 8.4节我们将看到TCP如何确定报文段的长度。
- 当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果不能 及时收到一个确认,将重发这个报文段。在第21章我们将了解TCP协议中自适应的超时 及重传策略。
- 当TCP收到发自TCP连接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒,这将在1 9.3节讨论。
- TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输 过程中的任何变化。如果收到段的检验和有差错, T P将丢弃这个报文段和不确认收到此报文段(希望发端超时并重发)。
- 既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段 的到达也可能会失序。如果必要, TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。
- TCP还能提供流量控制。TCP连接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主机致使较慢主机的缓冲区溢出。
从这段话中可以看到,TCP中保持可靠性的方式就是超时重发,这是有道理的,虽然TCP也可以用各种各样的ICMP报文来处理这些,但是这也不是可靠的,最可靠的方式就是只要不得到确认,就重新发送数据报,直到得到对方的确认为止。
TCP的首部和UDP首部一样,都有发送端口号和接收端口号。但是显然,TCP的首部信息要比UDP的多,可以看到,TCP协议提供了发送和确认所需要的所有必要的信息。这在P171-173有详细地介绍。可以想象一个TCP数据的发送应该是如下的一个过程。
- 双方建立连接
- 发送方给接受方TCP数据报,然后等待对方的确认TCP数据报,如果没有,就重新发,如果有,就发送下一个数据报。
- 接受方等待发送方的数据报,如果得到数据报并检验无误,就发送ACK(确认)数据报,并等待下一个TCP数据报的到来。直到接收到FIN(发送完成数据报)
- 中止连接
可以想见,为了建立一个TCP连接,系统可能会建立一个新的进程(最差也是一个线程),来进行数据的传送
分享到:
相关推荐
《TCP/IP详解卷1-3》是一套深入探讨TCP/IP协议族的经典著作,由Stephen A. Thomas和W. Richard Stevens两位作者共同撰写。这套书籍详细地解析了互联网协议的各个方面,是IT行业内学习网络通信技术的重要参考书。下面...
本资料很通俗易懂的介绍了Tcp/Ip的有关知识
"TCP/IP 详解学习笔记" TCP/IP 协议是计算机网络中最重要的协议族之一,它为计算机之间的通信提供了标准的语言。TCP/IP 协议族包括了 IP 协议、IMCP 协议、TCP 协议,以及我们更加熟悉的 HTTP、FTP、POP3 协议等等...
TCP/IP详解前3章的学习笔记主要涵盖了网络通信的基础知识,特别是TCP/IP协议栈的四个主要层次,即应用层、传输层、网络层和数据链路层。这些层次定义了网络通信的不同方面,确保数据能够在不同主机之间可靠地传输。 ...
TCP/IP详解学习笔记主要涵盖了网络通信的基础概念和TCP/IP协议族的核心内容。TCP/IP协议是为了克服计算机之间因操作系统和表达信息方式的差异而导致的沟通难题而诞生的,它是一个协议族,包含了众多协议,如IP、ICMP...
《TCP/IP详解卷三:TCP事务协议,HTTP,NNTP和UNIX域协议》是一本深入解析网络通信协议的专业书籍,其内容涵盖了TCP/IP协议栈中关键的几个层面。以下是其中涉及的重要知识点: 1. **TCP事务协议(TCP Transaction ...
《TCP-IP读书笔记之实现.txt》可能涵盖了作者对TCP/IP协议实现的个人理解和总结,包括TCP连接管理、拥塞控制、错误检测与纠正机制,以及IP路由选择策略等内容。这部分笔记对于理解网络通信的底层机制和优化网络性能...
这篇文档主要是针对TCP/IP的协议进行详细的介绍,有笔者的学习心得!
TCP/IP协议是互联网通信的基础,它定义了网络设备如何连接到互联网以及数据如何在它们之间传输的规则。...通过学习TCP/IP协议,我们可以更好地理解网络通信的细节,从而更有效地设计和实现网络应用。
通过阅读《TCP/IP详解1-3卷》,你可以深入了解TCP/IP协议簇的每一个层次,学习到如何在网络中进行数据传输,掌握网络通信的核心技术。不论是进行网络编程、网络故障排查,还是设计和优化网络架构,这套书都将是你不...
《TCP/IP详解卷一:协议》是一本深入探讨TCP/IP协议族的专业书籍,它为读者提供了全面而细致的网络通信理论和技术知识。TCP/IP协议是互联网的基础,它定义了网络设备如何交换数据以及数据如何被封装、传输和解封装的...
1.突破TCP-IP过滤/防火墙进入内网(icmp篇) 2.informix-4gl 7.2编写的通用菜单函数 3.Makefile工具的使用 4.vi用法集锦 5.SCO核心参数详细说明 6.SCO Unix 制作系统应急盘“Out of inodes”错误的处理 7.SCO TCP/IP...
"TCPIP详解学习笔记" TCP/IP 协议族是一个协议族的统称,包括了 IP 协议、ICMP 协议、TCP 协议、UDP 协议、DNS 协议等等。TCP/IP 协议族按照层次由上到下,层层包装。最上面的就是应用层了,这里面有 http、ftp ...
《TCP/IP详解》的学习笔记涵盖了TCP/IP协议族的基础知识,主要关注链路层、IP协议以及ARP协议。链路层是TCP/IP模型的第二层,它的主要职责是为IP模块、ARP模块和RARP模块提供服务,负责在局域网内发送和接收数据。在...