计算机网络的运输层

1、概述和运输层服务

运输层服务工作在端系统中,负责将来自应用进程的报文运输到网络边缘(网络层)。

2、面向连接的运输:Tcp

2.1、tcp报文段结构

计算机网络的运输层_第1张图片

首部:20字节,包含源端口和目的端口号

序号:发送方发送的报文段的首字节的字节流编号

确认号:发送方希望从接收方收到的下一字节的序号

接收窗口:用于流量控制

2.2、tcp三次握手

计算机网络的运输层_第2张图片

第一次握手(SYN=1,seq=x):客户向服务器发送一个tcp标志位syn=1,序列号为x的报文段,

                                                   客户端进入syn_send状态

第二次握手(syn=1,ack=x+1,seq=y):服务器向客户发送一个序列号为y,ack为x+1,syn标志位为1

                                                               的报文段,服务器进入syn_recv状态

第三次握手(syn=0,ack=y+1)客户端发送一个确认序号为y+1,syn=0的报文段给服务器,客户端和服务器

                                                同时进入established状态。

为什么要三次握手而不是两次握手?

如果发送方放松的第一个连接请求由于超时到达服务器端,发送端就关闭了连接请求。而服务器端认为这是一个

新的连接请求,如果两次连接的话,这时马上建立连接,但是客户端已经关闭。服务器进入忙等状态。

采用三次握手的目的:防止服务器处于忙等状态,浪费资源。

2.3、四次挥手

计算机网络的运输层_第3张图片

第一次(FIN=1,seq=x),客户端发送一个标志位fin=1,seq=x的包给服务器,表示客户端已经没有数据需要发送,

                                         但可以接收数据。

第二次(ack=1,acknum=x+1),服务器端发送一个标志位ack=1,acknum=x+1的包给客户端,表示服务器接收到了客户端

                                                  的关闭请求,但还没有准备好关闭连接

第三次(fin=1,seq=y),服务器发送一个标志位fin=1,seq=y的包给客户端,表示服务器已准备好关闭连接

第四次(ack=1,acknum=y+1),客户端发送一个标志位ack=1,acknum=y+1的包给服务器,表示已经收到服务器的关闭连接

                                                  请求。服务器收到包后关闭连接。客户端在等待一定的时间间隔后也关闭连接。

2.4、流量控制

作用:消除发送发使得接收方缓存溢出的可能

过程:

发送方维护一个接收方的缓存窗口(剩余多少缓存空间)rwnd,rwnd的值等于总缓存空间减去已经缓存的空间。

同时发送方会记录自己已经发送了多少数据,保证不超出接收方缓存窗口的大小。

2.5.syn攻击

攻击者发送大量的tcp syn报文段,但是不完成第三步确认连接请求,导致服务器一直处于忙等状态,资源耗尽。

 

 

 

 

你可能感兴趣的:(计算机网络)