计算机网络-运输层(UDP/TCP协议)


前言

上一篇我们简介了应用层,介绍了在应用层两个重要的协议DNS和HTTP,在这篇,我们来认识运输层,这给层有两个非常重要的协议UDP和TCP,其中TCP更是这层的大哥,是不是突然发现计算机网络非常有趣,一层一层的了解,每层都有大BOSS。话不多说,开始吧!

一、计算机网络

还是每篇都出现的这张图吧!这张图可谓是开启计算机网络的秘钥,也能让你有一个总体的框架,
在这里插入图片描述

二、运输层

  • 概括
    运输层是为了向他的上面一层的应用层提供通信服务的。两台主机通信其实就是两台主机中的应用进程互相通信,网络层的IP协议虽然能把分组送到目的主机,但是这个分组还是停留在主机的网络层,还没有进入到应用进程中。通信的真正端点并不是主机是主机中的应用进程。
    网络层为主机之间提供逻辑通信,而运输层为应用进程之间提供端对端的逻辑通信。

1、复用和分用

在这里插入图片描述

复用

  • 应用层的所有应用进程都是通过运输层再传达到网络层的。
    分用
  • 运输层从网络层拿到数据后,必需分别交付给对应的应用进程

在这里有一点,就是如何对应把数据交给对应的应用进程,所以在这里还有个关键的协议端口号

  • 服务器端用
    • 系统端口 :一些重要的应用程序说使用的(0-1023),https:443 , http:80 ,dns:53
    • 登记端口:给没有熟知端口的应用程序使用的(1024-49151),必须登记防止重复
  • 客户端用
    • 短暂端口:客户程序在运行的过程动态选择,包含在请求中,告诉应该接收的端口,进程结束会释放端口。

2、UDP

定义

  • UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务
  • 相比IP报并没有多大的变化,只是在ip数据报的基础上添加了一个UDP首部,用来实现复分和分用功能的。

特点

  • 无连接,每次发送数据前都是直接发送的,好处,减少连接的开支,和低时延

  • 面向报文的,在UDP报文只是简单的加上UDP首部,进入到网络层,在到达目的主机的应用层后,只需要去掉UDP首部就能使用了

  • 不可靠,UDP是一个不可靠的传递,不会保证数据的完整,会出现误包和丢包问题,接收方也是只管接收的。他没有过多的控制协议,但同时也因此,在数据传输过程中延迟小、数据传输效率高,适合对可靠性要求不高的应用程序

  • 支持一对一,一对多,多对一,多对多:多播,广播,单播

  • 首部开销小,只要添加八个字节的就可以了。

所以因为这些特点,UDP常用在网络直播,视频会议等,而不是应用在对可靠性要求比较高的地方。

首部格式