网络基础笔记——传输层

网络技术小白,从头开始学理论,带自己认为重要的一些东西进行记录,欢迎指导。

传输层的作用

1.1    传输层的用途

  1. 跟踪各个会话,读个应用程序同属在网络上通行时,传输层负责管理这些应用程序的多道路通行流
  2. 分段数据,将大量的数据拆分成小的分段,更适合传输。这一过程传输层在每个分段上添加报头,关联与该分段的通信
  3. 重组数据段,通过编号与排序分段,数据层能保证分段能以正确的顺序重组,然后传给适当的应用程序。传输层的协议描述了传输层的头信息如何用于重组数据分段成为正常的数据流传给应用程序。
  4. 标识应用程序,传输层标志目的应用程序,将数据流传到适当的应用程序。因此,传输层将应用程序分配表示符。TCP/IP协议族将这种表示符称为端口号。在与外部联网的程序都会被分配一个位于的端口号。传输层负载我拿过来传输,是应用层和网络层之间的桥梁。公认端口(用于服务和应用程序)0-1023,已注册端口(分配给用户进程或应用程序)1024-49151,动态或私有端口65535
  5. 流量控制,传输层通过建设设计院的传送设计组的大小实现对数据流流量的控制。流量控制能防止在网络上丢失分段并且避免重传。
  6. 错误恢复,传输层通过重传对视的数据确保所有的片段都能到达目的地。
  7. 开始会话,传输层通过在应用程序之间建立一个会话提供面向连接的定位服务。这些连接在传送任何数据之前准备好应用程序间的通信。
  8. 数据要求各不相同,对于不同的应用程序的要求传输层协议分为很多种。(UDP:尽力传输,高效传输数据片段,适用于那些对数据延迟及其敏感的应用程序;TCP可靠传输,提供更为健全的应用程序之间的数据通信,但也产生了额外的开销并增加了对网络的要求)

1.2    支持可靠的通信

传输层的主要功能就是管理主机会话过程中的应用程序数据。TCP能确保数据的可靠传输。

可靠性指从源设备发送的每段数据都能到达目的设备。传输层有三项基本的可靠性操作:  

  1. 跟踪已发送的数据
  2. 确认已接收的数据
  3. 重传未确认的数据

在传输层(第4层)的报头中标识了控制数据位,用于对是收发主机之间的数据控制,跟踪每个会话中的所有数据片段,并从重传未被目的主机确认的数据。

尽力传输缺乏母的设备对收到的数据的确认机制。


1.3    TCP与UDP

1.3.1    UDP用户数据包协议

根据RFC768,UDP是一种简单的无连接协议,优点在于提供低开销数据传输。UDP中的通信数据段称为数据报。尽力传输。

UDP数据段报头只需要8个字节。

一个UDP的分段称为数据报。

UDP协议的应用包括:

    1.域名系统(DNS)

    2.视频流

    3.IP语音(VoIP)


1.3.2    TCP传输控制协议

 根据RFC793,TCP是一种面向连接的协议。TCP协议描述的其他功能包括原虚处理、可靠传输以及流量控制。

TCP报头需要20个字节的开销。

一个TCP的分段称为分段。

TCP通信的可靠性再也使用了面向连接的会话。在TCP协议发送数据到另一主机前,传输层会启动一个进程,用于创建于母的主机之间的连接,通过该连接,可以跟踪逐渐之间的会话或者通信数据流。还确保每台主机都知道并做好了通信准备。完整的TCP会话要求在主机之间创建双向会话。

使用TCP协议的额外系统开销部分源自确认消息和重新发送信息所产生的网络流量。建立会话产生的其他的数据段交换也会构成系统开销。在跟踪待确认的数据和重新发送过程中也会产生额外开销。

在两台主机采用TCP进行通信时,在交换数据前将建立连接。通信完成后,将关闭会话并终止连接。连接和会话机制保障了TCP的可靠性功能。

PS:也有同时使用UDP和TCP的应用程序

1.4    TCP

1.4.1    TCP三次握手

TCP报头中的控制为指出了连接的进度和状态。

  •     确认目的的设备存在于网络上
  •     确认目的设备有活动的服务没并且正在源客户端使用的目的端口号上接收请求
  •     通知目的设备源客户端想要在该端口号上建立通信会话

TCP连接创建的过程

  1.     客户端想服务器发送包含初始序列值(SEQ)的数据段,开始通信会话。发送SYN
  2.     服务器发送包含确认值(ACK)的数据段,其值等于收到的序列值加1。该值比序列号大1,因为ACK总是下一个预期字节或二进制八位数。并发送其自身的同步序列值(SYN)。发送SYN,ACK
  3.     发送带确认值(ACK)的客户端响应,其值等于接收的序列值加1.这便完成了整个建立连接的过程。发送ACK

在TCP数据段报头中,有6个包含控制信息的1比特字段,用于管理TCP进程,他们其实只有两个值(0或1),代表该数据段中是否包含该控制信息。

  • URG——紧急指针
  • ACK——确认字段
  • PSH——推送功能
  • RST——重置连接
  • SYN——同步序列号
  • FIN——发送方已传输完所有数据

序列号的初始值被称为初始序列号(ISN),由系统选举,并用于跟踪会话过程中从客户端到服务器的数据流。在会话过程中,每从客户端向服务器发送一个字节的数据,数据段报头中的ISN值就要加1。

一但在客户端和服务器之间建立和双向会话,该通信过程中交换的所有数据段都将包换ACK标志设置。

1.4.2    TCP关闭连接

若要关闭连接,应设置数据段报头中的FIN控制标志。为终止每个单向TCP会话,需采用包含FIN数据段和ACK数据段的二层握手。因此,一个双向会话需要实施4次交换:

  1. 客户端发送带FIN标志设置的数据段
  2. 服务器发送ACK信息,确认收到从客户端发送的请求终止会话的FIN
  3. 服务器向客户端发送FIN,终止从服务器到客户端的会话
  4. 客户端发送ACK响应信息,确认收到从服务器发出的FIN信息

1.5 UDP

1.5.1 UDP数据报重组

UDP是无连接协议,即通信前不建立会话。换而言之,应用程序要发送数据时,他仅仅是数据而已。

UDP PDU的实际意义是数据报。

UDP不跟踪序列号,不会对数据报,重组,因此不会讲数据恢复到传输时的顺序。因此UDP仅仅是将受到的数据安卓显老厚道的顺序转发到应用程序。如果数据的顺序对应用程序很重要,纳闷应用程序只能自己标志数据的正确顺序,并决定如何处理这些数据。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值