个人tcp协议学习总结

个人tcp协议学习总结

ID:13354234

大小:577.00 KB

页数:14页

时间:2018-07-22

个人tcp协议学习总结_第1页
个人tcp协议学习总结_第2页
个人tcp协议学习总结_第3页
个人tcp协议学习总结_第4页
个人tcp协议学习总结_第5页
资源描述:

《个人tcp协议学习总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一.TCP协议简介传输控制协议(TRANSMISSIONCONTROLPROTOCOL)。TCP是一个基于连接的、端到端的可靠协议,该协议设计以用来适应一个支持多个网络应用程序的层间协议结构。TCP提供了在属于不同的但是是互联的计算机通信网络的宿主主机中的进程对间的可靠进程间通讯。在TCP层之下,很少考虑到通信协议的可靠性。TCP假定它可以从底层协议获得一个简单的、潜在的不可靠数据报。原理上,TCP必须能够在一个从有线连接到包交换或者回路交换网络的比较大范围的通讯系统上工作。1.1TCP报文格式TCP提供一种面向连接的、可靠的

2、字节流服务。  图1TCP报文头格式  源端口号(16位),标识主机上发起传送的应用程序;目的端口(16位)标识主机上传送要到达的应用程序。源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个TCP连接。一个IP地址和一个端口号有时也称为一个插口(socket),插口对(socket pair)(包含客户IP地址、客户端口号、服务器IP地址和服务器端口号的四元组)可唯一确定互联网络中每个TCP连接的双方。IP+TCP端口唯一确定一个TCP连接。TCP协议通过使用"端

3、口"来标识源端和目标端的应用进程。端口号可以使用0到65535之间的任何数字。在收到服务请求时,操作系统动态地为客户端的应用程序分配端口号。在服务器端,每种服务在"众所周知的端口"(Well-KnowPort)为用户提供服务。1.1.1顺序号字段占32比特。用来标识从TCP源端向TCP目标端发送的数据字节流,它表示在这个报文段中的第一个数据字节。1.1.2确认号字段占32比特。只有ACK标志为1时,确认号字段才有效。它包含目标端所期望收到源端的下一个数据字节。1.1.3头部长度字段占4比特。给出头部占32比特的数目。没有任何选

4、项字段的TCP头部长度为20字节;最多可以有60字节的TCP头部。1.1.4预留字段由跟在数据偏移字段后的6位构成,预留位通常为0.1.1.5标志位字段(U、A、P、R、S、F):占6比特。各比特的含义如下:◆URG:紧急指针(urgentpointer)有效。它使一端可以告诉另一端有些具有某种方式的“紧急数据”已经放置在普通的数据流中。另一端被通知这个紧急数据已被放置在普通数据流中,由接收方决定如何处理。URG比特被置1,并且一个16bit的紧急指针被置为一个正的偏移量,该偏移量必须与TCP首部中的序号字段相加,以便得出紧急

5、数据的最后一个字节的序号。Telnet和Rlogin从服务器到客户使用紧急方式是因为在这个方向上的数据流很可能要被客户的TCP停止(也即,它通告了一个大小为0的窗口)。但是如果服务器进程进入了紧急方式,尽管它不能够发送任何数据,服务器TCP也会立即发送紧急指针和URG标志。当客户TCP接收到这个通知时就会通知客户进程,于是客户可以从服务器读取其输入、打开窗口并使数据流动。◆ACK:确认序号有效。与确认序号一起使用。◆PSH:接收方应该尽快将这个报文段交给应用层。在最初的TCP规范中,一般假定编程接口允许发送进程告诉它的TCP何

6、时设置PUSH标志。例如,在一个交互程序中,当客户发送一个命令给服务器时,它设置PUSH标志并停下来等待服务器的响应。通过允许客户应用程序通知其TCP设置PUSH标志,客户进程通知TCP在向服务器发送一个报文段时不要因等待额外数据而使已提交数据在缓存中滞留。类似地,当服务器的TCP接收到一个设置了PUSH标志的报文段时,它需要立即将这些数据递交给服务器进程而不能等待判断是否还会有额外的数据到达。◆RST:异常终止一个连接。RST也可以断开连接。(a)处理到不存在的端口的连接请求注意:需要注意复位报文段中的序号字段和确认序号字段

7、。因为ACK比特在到达的报文段中没有被设置为1,复位报文段中的序号被置为0,确认序号被置为进入的ISN加上数据字节数。尽管在到达的报文段中没有真正的数据,但SYN比特从逻辑上占用了1字节的序号空间;因此,在这个例子中复位报文段中确认序号被置为ISN与数据长度(0)、SYN比特所占的1的总和。Wireshark报文的解析结果可能和报文的内容不对应,以看报文的内容为准。(2)终止一个异常连接异常终止一个连接对应用程序来说有两个优点:(1)丢弃任何待发数据并立即发送复位报文段;(2)RST的接收方会区分另一端执行的是异常关闭还是正常

8、关闭。应用程序使用的API必须提供产生异常关闭而不是正常关闭的手段。终止一个连接的正常方式是一方发送FIN。有时这也称为有序释放(orderlyrelease),因为在所有排队数据都已发送之后才发送FIN,正常情况下没有任何数据丢失。但也有可能发送一个复位报文段而不是FIN来

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。