关闭

tcp/ip primer plus 第八章传输控制协议(tcp)

730人阅读 评论(0) 收藏 举报

8.2tcp头 

8.2.3序号

tcp采取了顺序化机制已了解数据中的每一个字节。在一个tcp连接上发送的数据的每一个字节有一个序号。使用某个算法计算初始序号,此序号包含在会话建立时的同步帧中并且包含在四字节的序号字段。序号标识了每一个发送的数据报中的第一个字节。

注意;tcp并不是对数据中每一个字节排序,而是通过对每个字节作顺序化来保证每一个字节的传输。它只是在每个发送的分组中确认(ACK)特定的序号。tcp也采用窗口机制控制数据报的发送。

8.4.2确认号

四字节的确认号字段包含了主机期望从对方接受的下一个序号值。ACK号等于对方前一次发送的序号加上长度的值。窗口大小决定了一个发送主机可以传输的最大字节数,为了计算确认,将初始好加入到帧数与以字节为单位的长度的乘积中。

8.2.5数据偏移量

4位的数据偏移量字段指出了TCP头厚的高层数据从哪里开始,由于当有某些可选项时,TCP头的大小可以变化,因此数据偏移量是必要的。

8.2.7控制标记——6位

6位的控制标记字段向接受者指出了此帧的用途。tcp伪头提供对IP头的错误控制并且可以检测误导帧。他保证正确的目的主机接受发送数据报。tcp并包括包含在伪头中的信息。

8.2.11tcp选项——可变长度

根据发送主机对选项的选择,tcp选项字段的长度是可变化的。例如:发送主机可以选择标识此tcp主机将要接受的最大报文段长度,如果没有此选项,主机将接受任何长度的报文段。最大报文段长度(MSS)选项是最常用的选项。长度字段标识了tcp头及其后数据的长度。但是不包括tcp伪头信息。尽管tcp将tcp长度字段作为其头的一部分。但是tcp长度字段并不会在sniffer详细输出的tcp头中。

tcp伪头提供了对IP头的错误控制并且可以检测误导帧。它保证正确的目的主机接受发送数据报。tcp并不包括包含在伪头中的信息。tcp将此信息存储于称为TCB(传输控制块)的tcp内存缓存中。

8.3TCP操作的基础

tcp通过以下措施来控制这些进程间的通信: 连接的建立和撤销。多路复用,数据传输,流量控制,可靠性,优先权和安全。与无连接的协议不同,TCP并不依赖于底层跟踪数据。tcp并不把自己限制与标识发送和接收主机进程,将数据放在网络线上,并且期望它不重复的到达目的。tcp采用顺序化和确认机制来保证分组的传输。

与uDP不同。tcp收到一个数据流(报文)时,它将报文分段,并且在用IP报文传输前给数据报zhogde每一个字节分配一个序号,这些序号需要从目的返回相应的确认以保证接受者已经收到了从发送者发来的每一段。。 tcp保持包含在主机缓存,即TCB(传输控制块)中的这些短的一个拷贝。

8.3.1连接建立和撤销

在建立连接之前,tcp首先在远程主机间建立一个称为逻辑电路的连接,这些连接链接运行于每一个主机的端口和进程。tcp在整个会话期间都保持次连接并且当它在不需要此连接时撤销它。一旦IP了解目的主机的逻辑地址,tcp就建立为高层协议提供可靠数据传输的一个会话。

8.3.2多路复用

为了实现这一点,tcp采用端口来区分和管理通信。

8.3.3数据传输

tcp接收从高程进程或者应用来的数据流并把它们组织成段,然后将它们向下传输并由IP(网络层)格式化为数据报用于编址封装和传输。当IP收到从一个远端主机来的数据报市,它就检查IP头中的协议地址并判断它是通过tcp还是UDP传输出去。当tcp收到从IP来的数据报中的段时,它将这些重新组织成有组织的数据流(报文),标识接受客户,或者服务器的端口,并将它们传给相应的(高层)应用处理。

8.3.4流量控制

在tcp头中表示的窗口机制提供此功能。每一个终端主机维护自己的窗口并且将此窗口向另一方广播。当有拥塞时,主机减少窗口的大小并将此向另一方广播。

当没有拥塞时主机可以增加窗口大小,以通知另一方可以发送更多的数据。按照需要动态的调整欻港口成为滑动窗口。

注意即使一个主机存在0窗口情形。该主机仍然可以传输数据,但是只能接收关键的帧,如ACK和携带RST或者URG位的帧。

8.3.5可靠性

可靠性来自tcp的有保证的分组传输。

8.4面向连接的特点

8.4.1会话建立

tcp客户通过对tcp头中的syn置位而开始一个会话,此为表示向目的tcp进程请求同步。,接受主机的tcp会话进程必须对收到SYN请求作确认,并且发送它自己的syn请求,此syn请求同样也被以前的主机确认。这就是三次握手,由于tcp具有全双工的通信功能,所以它只需要三帧而不是四帧来完成此过程。当目的收到发sogzhede第一个syn请求之,通过在同一个帧中携带自己的syn请求进行确认而对目的作出响应。

与会话建立的顺序一样,撤销过程也需要三帧交换。

8.4.3顺序化和确认

因为数据报在到达它们的目的前有可能采用不同的路径,因此某些段可能会有很大的延迟,接受主机按需确认接收到的数据,例如:某一发送主机发送了序号1.2.3.4,但是目的只收到了1.2.4,则接收者就通过发送ACK=3只对1和2作确认。

8.4.4保留

解释没有交换任何数据时,每一个面向连接的协议也需要某种方式维护通信进程间的逻辑电路。为了维护逻辑电路,tcp发送一个不包含任何高层协议数据的“保留”数据报,tcp采用此数据报来维护会话的活跃。

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:116588次
    • 积分:1758
    • 等级:
    • 排名:千里之外
    • 原创:49篇
    • 转载:32篇
    • 译文:0篇
    • 评论:18条
    文章分类
    最新评论