本节对应中文书第五章

引入

在IP层中,已经完成了大规模的网络路由,此时网络中的两台主机已经可以通信。但是实际上,通信的是你电脑上的应用进程,例如QQ,微信,腾讯会议等等。在另一端也是一样,例如腾讯的服务器上的QQ服务端进程。运输层提供的就是应用进程间的通信。

运输层的两个主要协议

TCP

TCP协议的头部如下图所示

image-20240614152528612

套接字:IP地址+端口号被称为TCP层中的套接字(Socket)。

请注意,socket 这个名词有时容易使人把一些概念弄混淆,因为随着互联网的不断发展以及网络技术的进步,同一个名词 socket却可表示多种不同的意思。例如:

  • 允许应用程序访问连网协议的应用编程接口API(Application Programming Interface),即运输层和应用层之间的一种接口,称为socket API, 并简称为 socket。
  • 在socket API 中使用的一个函数名也叫做 socket。
  • 调用 socket 函数的端点称为 socket,如“创建一个数据报 socket”
  • 调用socket函数时,其返回值称为 socket 描述符,可简称为 socket。
  • 在操作系统内核中连网协议的 Berkeley 实现,称为 socket 实现。

上面的这些 socket 的意思都和本章 socket的含义(指端口号拼接到IP地址)不同。

这个时候再回去看LC2的TCP就ok了,bnh自己的课程顺序有点乱

UDP

UDP的帧格式如下图所示。

image-20240614152051927