【网络基础】传输层

传输层的基本功能与服务质量

连接管理、流量控制、差错检测、对用户请求的响应、建立通信五个方面。

  1. 连接管理:定义了用户建立连接的规则。
    a) 在数据传输开始时,发送方和接受方都要通知各自的操作系统初始化一个连接,一台主机发起的连接必须被另一个主机接受才行,当所有同步操作完成后,连接就建立成功。
    b) 数据传输完成后,发送端发送一个标识数据传输结束的指示,接收端在数据传输完成后确认数据传输结束,连接终止。
  2. 流量控制:以网络普遍接受的速度发送数据,从而防止网络拥塞造成数据报的丢失。传输层独立于低层而运行,它定义了端到端用户之间的流量控制。
  3. 差错控制:数据链路层提供了可靠的链路传输,但无法检测源点和目标之间的传输错误。传输层的差错检测机制会检测到这种类型的错误。
  4. 对用户请求的响应:包括对发送和接收数据请求的响应,以及特定请求的响应,如用户可能要求高吞吐率,低延时或可靠的服务。
  5. 建立通信:传输层建立通信的过程种,可以提供面向连接的可靠认证服务(TCP)和面向无连接的不可靠非认证服务(UDP)。

服务质量

服务质量是指在运输连接点之间所出现的运输连接的特征,服务质量反映了运输质量及服务的可用性,它是用以衡量传输层性能的。服务质量的内容主要包括:建立网络延迟、建立连接失败、吞吐量、传输延迟、残留差错率、连接拆除延迟、连接拆除失败率、连接回弹率、运输失败率等等。

用户数据包协议UDP要素及功能特性

帧格式

UDP帧格式

  1. 源IP地址:数据发送端IP地址,长度为 32位
  2. 目的IP地址:数据接收端的IP地址,长度为32位
  3. 协议版本:标识协议的版本信息。
  4. 源端口: 源端口号,需要对方回信时选用,不需要时全部置0.
  5. 目的端口:目的端口号,在终点交付报文的时候需要用到。
  6. 长度:UDP的数据报的长度(包括首部和数据)其最小值为8(只有首部)
  7. 校验和:检测UDP数据报在传输中是否有错,有错则丢弃。
  8. 数据区:有效数据信息的存放区域,要注意的问题是,必须进行数据填充,保证数据容量为16的倍数。

传输层协议TCP要素及可靠性协议技术

在功能方面,传输层与网络层的最大区别是前者土工进程通信能力,后者不提供进程通信能力。为此,UDP和TCP提出端口概念,用于标识通信的进程。

端口是进程访问传输服务的入口点。由于TCP和UDP是完全独立的两个软件模块,因此各自的端口号也互相独立。例如,UDP有266端口,TCP也有一个266端口,但这两个端口并不冲突。

TCP/IP将端口号用16位二进制表示。分为两个部分,一部分是保留端口(01023),一部分是自由端口(102465535)

TCP报文格式

TCP报文格式

TCP三次握手和四次挥手详解

参考博客:面试官,不要再问我三次握手和四次挥手

三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。
三次握手

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

弄清这个问题,我们需要先弄明白三次握手的目的是什么,能不能只用两次握手来达到同样的目的。

第一次握手:客户端发送网络包,服务端收到了。

这样服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
第二次握手:服务端发包,客户端收到了。

这样客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。不过此时服务器并不能确认客户端的接收能力是否正常。
第三次握手:客户端发包,服务端收到了。

这样服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。

因此,需要三次握手才能确认双方的接收与发送能力是否正常。两次握手不能确保

四次挥手

建立一个连接需要三次握手,而终止一个连接要经过四次挥手(也有将四次挥手叫做四次握手的)。这由TCP的半关闭(half-close)造成的。所谓的半关闭,其实就是TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。

TCP 连接的拆除需要发送四个包,因此称为四次挥手(Four-way handshake),客户端或服务端均可主动发起挥手动作。
TCP四次挥手

为什么四次挥手

因为当服务端收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端,“你发的FIN报文我收到了”。只有等到我服务端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四次挥手。

TCP流量控制

TCP采用可变长度的滑动窗口协议进行流量控制,接受方在返回给发送方的段中报告发送窗口大小。当窗口为0时发送方停止发送。但两种情况例外,一是可以发送紧急数据,二是发送一个1字节的数据段,要求接收方重申窗口大小及下一个准备接收的字节序号,这是为了避免因窗口声明丢失造成死锁的问题。

TCP拥塞控制

TCP协议根据数据包的超市来判断网络中是否出现拥塞,并自动降低传输速率。TCP拥塞控制的最根本的办法是降低数据传输的速率。超时产生有两个原因,一是数据包传输出错被丢弃,二是拥塞的路由器把数据包丢弃。

TCP协议特点

TCP协议是一种面向连接的协议,提供数据分组可靠地、顺序的提交。TCP协议的面向连接要求通讯的TCP双方在交换数据之间必须建立连接,可靠、顺序的提交要求TCP协议具有流量控制、差错控制等功能。

UDP协议特点

  1. 发送数据前不需要建立连接,减少开销和发送数据前的延迟
  2. 没有拥塞控制和流量控制,不保证数据的可靠交付,主机不需要维持具有许多参数的、复杂的连接状态表。
  3. 只有8字节的首部开销,比TCP的20字节首部短得多
  4. 由于UDP没有拥塞控制,所以当网络出现拥塞时不会使原主机的发送速率降低。

UDP的数据传输方式是报文交换。

UDP应用程序设计中,其应用程序数据被限制成512字节或更小。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值