网络由哪三部分组成 计算机网络的组成包括哪几个部分( 六 )


当URG置为1时,发送应用进程就告诉发送方的TCP有紧急数据要传送 。于是发送方TCP就把紧急数据插入到本报文段数据的最前面,而在紧急数据后面的数据仍时普通数据 。这时要与首部中紧急指针字段配合使用 。
ACK:表示确认号是否有效,携带ack标志的报文段也称确认报文段,仅当ACK=1时确认号字段才有效 。当ACK=0时,确认号无效 。TCP规定,在连接建立后所有的传送的报文段都必须把ACK置1 。
PSH:提示接收端应用程序应该立即从tcp接受缓冲区中读走数据,为后续接收的数据让出空间 。
当两个应用进程进行交互式的通信时,有时在一端的应用进程希望在键入一个命令后立即就能收到对方的响应 。在这种情况下,TCP就可以使用推送操作 。这时,发送方TCP把PSH置1,并立即创建一个报文段发送出去 。接收方TCP收到PSH=1的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后向上交付 。虽然应用程序可以选择推送操作 , 但推送还很少使用 。
RST:表示要求对方重建连接 。带RST标志的tcp报文段也叫复位报文段 。
当RST=1时 , 表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接 。RST置1还用来拒绝一个非法的报文段或拒绝打开一个连接 。
SYN:表示建立一个连接,携带SYN的tcp报文段为同步报文段 。在连接建立时用来同步序号 。
当SYN=1而ACK=0时,表明这是一个连接请求报文段 。对方若同意建立连接 , 则应在相应的报文段中使用SYN=1和ACK=1 。因此,SYN置为1就表示这是一个连接请求 。
FIN标志:表示告知对方本端要关闭连接了 。用来释放一个连接 。
当FIN=1时,表明此报文段的发送方的数据已发送完毕,并要求释放运输连接 。
7、16位窗口大?。罕硎窘邮斩似谕?ü?ゴ稳啡隙?盏降氖?莸拇笮?。由于该字段为16位,所以窗口大小的最大值为65535字节 , 该机制通常用来进行流量控制 。
窗口值是【0,2^16-1]之间的整数 。窗口指的是发送本报文段的一方的接收窗口(而不是自己的发送窗口) 。
窗口值告诉对方:从本报文段首部中的确认号算起,接收方目前允许对方发送的数据量 。之所以要有这个限制,是因为接收方的数据缓存空间是有限的 。
总之,窗口值作为接收方让发送方设置其发送窗口的依据 。并且窗口值是经常在动态变化着 。
8、16位校验和:校验整个TCP报文段,包括TCP头部和TCP数据 。该值由发送端计算和记录并由接收端进行验证 。
9、16位紧急指针:是一个正的偏移量 。它和序号字段的值相加表示最后一个紧急数据的下一字节的序号 。因此这个字段是紧急指针相对当前序号的偏移量 。发送紧急数据时会用到这个 。
紧急指针仅在URG=1时才有意义,它指出本报文段中的紧急数据的字节数(紧急数据结束后就是普通数据) 。
因此,紧急指针指出了紧急数据的末尾在报文段中的位置 。当所有紧急数据都处理完时,TCP就告诉应用程序恢复到正常操作 。值得注意的是,即使窗口为零时也可发送紧急数据 。
10、选项:长度可变,最长可达40字节 。当没有使用“选项”时,TCP的首部长度是20字节 。
UDP协议【网络由哪三部分组成 计算机网络的组成包括哪几个部分】1
什么是UDP?
UDP 是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(Open System Interconnection , 开放式系统互联) 参考模型中一种无连接的传输层协议,传输可靠性没有保证 。
2
UDP报文头
UDP报文分为UDP报文头和UDP数据区域两部分 。报头由源端口、目的端口、报文长度以及校验和组成 。
UDP头部的标识如下:
16位源端口号:源主机的应用程序使用的端口号 。
16位目的端口号:目的主机的应用程序使用的端口号 。
16位UDP长度:是指UDP头部和UDP数据的字节长度 。因为UDP头部长度为8字节,所以该字段的最小值为8 。
16位UDP校验和:该字段提供了与TCP校验字段同样的功能;该字段是可选的 。
3
为什么需要UDP?
UDP(User Datagram Protocol)传输与IP传输非常类似,它的传输方式也是”Best Effort“的,所以UDP协议也是不可靠的 。
我们知道TCP就是为了解决IP层不可靠的传输层协议 , 既然UDP是不可靠的,为什么不直接使用IP协议而要额外增加一个UDP协议呢?
1、一个重要的原因是IP协议中并没有端口(port)的概念 。IP协议进行的是IP地址到IP地址的传输,这意味者两台计算机之间的对话 。但每台计算机中需要有多个通信通道,并将多个通信通道分配给不同的进程使用 。一个端口就代表了这样的一个通信通道 。UDP协议实现了端口,从而让数据包可以在送到IP地址的基础上,进一步可以送到某个端口 。