从通信和信息处理的角度来看,传输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能的最底层,针对于上三层的资源子网与下三层的通信子网,传输层在两者之间扮演者承上启下的作用;
传输层的两个主要协议:
UDP协议与TCP/IP协议
UDP协议:用户数据报协议
它是一种不可靠的传输协议,在传输过程中,它不提供反馈,单单只是把传输的数据传送到目的地址当中,对于UDP协议来说,应用层才会保证数据的可靠性;他的通信过程不如TCP/IP那样更可靠,也不具备数据恢复功能;
UDP是无连接的,即发送数据之前不需要建立连接,因此减少了开销和发送数据之前的时延;
UDP首部格式:
源端口:16位,在对方进行回信时使用;
目的端口:16位,需要使用其指定目的端口号;
数据报长度:16位,UDP用户数据报的长度;
UDP首部检验和:16位,检测UDP数据报在传输过程中是否有错;
TCP/IP协议:传输控制协议
TCP是面向连接的协议,在双方进行通信时必须先进行连接,通信结束后在释放连接,这两个过程称之为“三次握手”,“四次挥手”;
TCP/IP协议提供可靠的交付,通过TCP连接发送的数据,无差错,不丢失,不重复,并且按序到达;
TCP/IP协议提供全双工模式,允许双方在任何时候都能发送数据;
TCP/IP协议有数据恢复功能;
TCP/IP首部格式:
源端口:16位,在对方进行回信时使用;
目的端口:16位,需要使用其指定目的端口号;
序列号:32位,第一个发送的数据报序列号随机,下一个的序列号为上一个序列号+1
确认号:32位,当发送数据报时,确认号,为下一个序列号的值;发送的第一个数据报的确认号为 0;
首部长度:4位,TCP用户数据报的长度;
保留标志位:3位,暂时没有被使用;
加密标志位:3位
URG:紧急标志位,若该位置1,则优先执行该数据报;
ACK:确认标志位,在数据通信时,进行回馈,用来响应主动发起连接的建立请求或拆除请求的那一 方;1为确认
PSH:推进标志位,如果该标志位置1,则在接受方可以将该数据不加入缓存队列,直接交给应用程序 进程进行处理;
RST:重置标志位,在TCP/IP协议,耗尽或者出现问题时,重新连接TCP/IP协议;
SYN:同步标志位,用于在建立TCP连接的过程中,主动发生连接建立请求的那一方发起连接的信号;
FIN:结束标志位,用于结束连接,置1,表结束;
窗口尺寸:16位,窗口值告诉报文,从本报文首部的确认号算起,接收方目前允许对方发送的数据 量,之所以有这个限制,是因为接收方的数据缓存是有限的;而窗口种类有滑动窗口, 紧急窗口以及拥塞窗口;
TCP首部检验和:16位,用来检测TCP数据报在传输过程中是否有什么差错;
紧急标志位:16位,紧急标志位仅在URG置1时有作用,如果有多个URG置1的情况下,谁的紧急标志位 置1则先执行;
选项:32位,数据段分段的时间戳;
在之前讲过的关于TCP/IP协议建立连接时,需要进行“三次握手”来建立连接,在解除连接时还要进行“四次挥手”的操作;
三次握手:
①发送方生成一个数据报,源端口,目的端口由应用程序提供,序列号随机,确认号为0,SYN同步位置1,发送到目的地址;
②接收方收到由发送方发来的SYN请求数据,判断自身能否完成对方所要求的数据通信,如果可以,则返回由其生成的TCP首部数据;将接收到的数据报的源端口转为目的端口,目的端口转为源端口,序列号随机,确认号为发送方发送的下一个序列号;SYN位与ACK位置1,并发送;
③发送方在接受了对方的响应数据后,检查其ACK标志位是否置1,如果为1,再看SYN标志位是否置1如果也是1则予以确认,随即生成第二个TCP首部数据序列号为前一个数据的序列号+1,确认号为接收方下一个数据 的序列号,ACK标志为1;
四次挥手:
①发送方发送一个FIN位置1的数据报给接收方;
②接收方接收到FIN置1的数据报后,发送一个ACK置1的确认报文,表示收到此请求结束报文;
③接受放在紧接着发送一个FIN置1的数据报,表示可解除连接;
④发送方接收到接收方发送的解除连接报文,主动结束方予以确认,发送ACK标志位置1的TCP首部数 据;