美文网首页网络
网络知识体系(二) —— 运输层协议

网络知识体系(二) —— 运输层协议

作者: Vic_wkx | 来源:发表于2021-05-26 10:20 被阅读0次

转自 HuanBlog:这一篇 TCP 总结请收下

运输层的功能是:提供进程之间的逻辑通信。这里的进程可以是主机之间的不同进程,也可以是同一个主机内的不同进程。

运输层

网络层只负责数据包的接收与发送,它并不知道这个数据属于哪个进程。运输层负责收集各个进程的数据交给网络层,并将网络层的数据拆分交给不同的进程。将数据收集起来交给网络层这一步被称为多路复用,将网络层的数据拆分出来交给不同进程这一步被称为多路拆分

运输层的表现受网络层的限制。因为网络层是运输层的底层支持,运输层无法决定自己的带宽、时延等,但运输层可以基于网络层开发更多的特性:如可靠传输。网络层只负责尽力把数据包从一端发送到另一端,但不保证数据可以到达并且完整。在运输层可以对接收的数据做校验,保证可靠传输。

1.socket 通信

运输层提供的进程间通信,在底层是通过 socket 完成的。在网络层中,IP 地址是用来进行主机通信的标识,在运输层中,socket 是用来进行进程间通信的标识。

socket 通信

运输层增加了端口这个概念,用来区分不同的 socket。一个主机上有很多的端口,每个端口都有一个端口号,端口的数量由运输层协议决定。

2.运输层协议

不同的运输层协议对 socket 有不同的定义方式。在 UDP(User Datagram Protocol) 协议中,使用 目标 IP + 目标端口号 来定义一个 socket;在 TCP (Transfer Control Protocol)协议中,使用 目标 IP + 目标端口号 + 源 IP + 源端口号 来定义一个 socket。我们只需要在运输层报文的头部附加上这些信息,目标主机就会知道我们要发送给哪个 socket,对应监听该 socket 的进程就可以收到数据。

UDP 是最精简的运输层协议,只实现了进程间通信;而 TCP 协议在 UDP 的基础上,实现了可靠传输、流量控制、拥塞控制、面向连接等等特性,同时也更加复杂。

除了 UDP 和 TCP 之外,还有很多优秀的运输层协议,但使用最广泛的,还是 TCP 和 UDP。

2.1.TCP 协议首部

TCP 协议表现在报文上,就是会在应用层传输过来的数据前附加一个 TCP 首部,这个首部携带了 TCP 信息。TCP 首部结构如下:

TCP 协议首部

TCP 首部的固定长度是 20 字节,下面还有 4 字节是可选的。其中有一些我们熟悉的:源端口、目标端口。上文说到,socket 还需要 IP 地址进行定位,IP 地址会在网络层附加上。

TCP 首部各字段的作用如下:

TCP 首部字段表

选项字段中包含以下其他选项:

选项字段

2.2. TCP 面向字节流特性

TCP 并不是把应用层传输过来的数据直接加上首部然后发送给目标,而是把数据看成一个字节流,给他们标上序号之后再发送。这就是 TCP 的面向字节流特性:

TCP 面向字节流特性
  • 首先,TCP 以流的形式从应用层读取数据并存放在自己的缓冲区中,同时为这些字节标上序号
  • 然后,TCP 从缓冲区选择适量的字节组成 TCP 报文,通过网络层发送给目标
  • 最后,接收方读取字节流并存放在自己的缓冲区中,并在合适的时候交付给应用层

面向字节流的好处是无需一次存储过大的数据占用太多内存,坏处是无法知道这些字节代表的意义,例如应用层发送一个音频文件和一个文本文件,对于 TCP 来说就是一串字节流,没有意义可言,所以应用层不得不处理粘包和拆包问题。

相关文章

  • 网络知识体系(二) —— 运输层协议

    转自 HuanBlog:这一篇 TCP 总结请收下[https://qwerhuan.gitee.io/2021/...

  • TCP三次握手原理

    一、TCP协议TCP(Transmission Control Protoco)协议属于计算机网络体系中的运输层。...

  • 各层协议的作用,以及TCP/IP协议的特点

    有三种体系结构分层模式:OSI、五层协议、TCP/IP。 OSI七层协议:应用层、表示层、会话层、运输层、网络层、...

  • 计算机网络(第7版)复习笔记

    五层协议的体系结构 应用层 运输层 网络层 又叫:网际层 IP层 数据链路层 简称:链路层 物理层 同层之间交互的...

  • phper所需掌握技能-计算机网络

    网络基础知识: 1、OSI七层协议结构:应用层->表示层->会话层->运输层->网络层->数据链路层->物理层 2...

  • 计网:网络层知识整理

    osi有7层协议体系结构:物理层 数据链路层 网络层 运输层 会话层 表示层 应用层 现在一般用的是5层协...

  • Android 网络知识梳理

    1、网络体系结构 TCP/IP 体系结构五层体系结构5.应用层4.应用层(HTTP)4.运输层3.运输层(TCP、...

  • 网络基础

    网络基础 网络的七层协议:应用层,表示层,会话层,运输层,网络层,数据链层,物理层。表示层、会话层没有相应的协议,...

  • 计算机网络3-运输层-简介

    计算机网络3-运输层-简介 运输层服务 进程到进程的通信 运输层协议的首要任务是提供进程到进程的通信。网络层负责计...

  • 计算机网络第三章

    运输层和网络层的关系 运输层(TCP或UDP)为运行在不同主机上的进程之间提供逻辑通信网络层(IP协议)提供了主机...

网友评论

    本文标题:网络知识体系(二) —— 运输层协议

    本文链接:https://www.haomeiwen.com/subject/jitcsltx.html