本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》
04 传输层
在网上看到其他人做了相关笔记,就不再多余写了,直接参考着学习吧。
王道考研 计算机网络笔记 第五章:传输层_王道计算机网络传输层_Baret-H的博客-CSDN博客
网络中的下三层只是将数据从一台主机发送到了另一台主机,到达目标主机后,通信过程并没有结束,因为数据最终是要发送到主机上的具体进程的,而具体发到哪个进程,就需要运输层来处理,运输层和应用层都是主机才有的层级,另外,运输层需要对传递的数据进行差错和流量控制等处理,运输层,可以说是负责在主机底层和上层应用之间负责运输的这么个层次。
传输层提供进程和进程之间的逻辑通信网络层为主机间的通信提供服务,但是仅仅将数据传送到主机并没有通信结束,只有将数据送交到具体的进程或者进程中具体的线程才能实现通信的过程;因此网络层的通信并未完成,需要传输层实现进程与进程之间的逻辑通信;逻辑就是表示表面是进程之间的通信,但实际上是从上至下封装,再从下至上解封装的过程
运输层是下三层和上层之间的运输通道,位于"进程性通道"的第一层,TCP负责建立进程之间的逻辑通路,这里的建立连接指的是进程之间的逻辑连接,表示两个对端主机之间的相应进程建立了连接。
复用和分用
复用:发送方不同的应用进程,比如qq微信,都可以使用同一个传输层的协议来传送数据
分用:接收方在传输层解封装后,能将数据送交给对应正确的进程
传输层对收到的报文进行差错检测
网络层有首部校验和,但只是校验首部,没有校验数据部分,因此就需要传输层实现对数据的检错,而网络层的数据部分就是传输层的报文段,因此传输层对这个报文段进行了差错检测,网络层就不需要对数据部分进行差错检测,检测IP数据报的头部即可
传输层并不一定实现可靠传输,因为有两种协议TCP、UDP
网络层提供最大努力交付,是不可靠传输;因此需要上一层传输层担起可靠传输的职责;传输层有UDP、TCP两大协议;其中UDP不可靠,TCP可靠,因此网络层不能可靠传输的话,传输层就可以通过使用TCP协议保证可靠传输;如果传输层使用的UDP协议,就需要再最上一层应用层实现可靠传输。
TCP可靠性的一些机制TCP三次握手建立连接,四次挥手释放连接。
端口号(port)端口号(port)是传输层协议的内容。
端口号是一个2字节、16比特位的整数。
端口号用来标识一个进程,告诉操作系统当前数据要交给哪一个进程来处理。
IP地址 + 端口号能够唯一标识网络上的某一台主机的某一个进程。
一个端口号只能被一个进程占用。
任何的网络服务或网络客户端,如果要进行正常的数据通信,必须要使用端口号来唯一标识自己。一个进程可以与一个端口号绑定,再加上主机IP地址该端口号就在网络层面上唯一标识一台主机上的唯一一个进程。
这种IP+port标识的方案叫做socket通信。
PID vs PORT
一台机器上会存在大量的进程,为了区分所有的进程,设计了PID来加以区分(系统的概念);但是只有部分进程需要进行网络数据请求,所以用port来标识这些需要进行网络数据请求的进程(网络的概念)。
这类似于身份证号可以唯一标识每一个人,但是在学校里又用学号来唯一标识每一个人。身份证号可以看做PID,学号可以看做port,它们之间并不冲突,都是在各自场景下最合适的管理方案。
注意,端口是传输层才有的概念。
传输层用一个 16 位端口号来标志一个端口。端口号只具有本地意义,它只是为了标志本计算机应用层中的各个进程在和传输层交互时的层间接口。在互联网的不同计算机中,相同的端口号是没有关联的。
TCP长连接和短连接-深入浅出(还在总说http长连接吗)_tcp长短连接-CSDN博客
UDP注意点应用层给UDP多长的报文,UDP就会照样发送一整个完整的报文给网络层;
因此当报文长度过大时,网络层就需要对其进行分片,又因为接下来要传给链路层有MTU的限制,降低了网络层的效率。
TCP注意点
面向连接:使用TCP前必须先建立连接,传送数据完毕后再释放连接;虚连接表示表面上看上去是两个进程之间直接通信,但实际物理线路上需要从上而下封装再从下而上解封装。
每一个TCP连接只有两个端点,也就是每一个TCP连接都是点对点、一对一的。所以TCP协议无法广播、多播。
TCP提供可靠交付的服务,不丢不重,按序到达。
TCP提供全双工通信。两方可以同时发数据也可以同时接收数据,所以TCP连接的两端都会设置发送缓存和接收缓存。
TCP面向字节流:流是流入进程或从进程中流出的字节序列,虽然应用进程和TCP的交互是一次发送一个数据块,但是TCP会把交下来的数据仅仅看成一连串的无结构字节流。
TCP协议报文
TCP协议详解
TCP 实战抓包分析
TCP协议:报文基础+三次握手+四次挥手
TCP协议:报文基础+三次握手+四次挥手-腾讯云开发者社区-腾讯云 (tencent.com)
TCP/IP协议(2): 以太网(IEEE 802.3) 协议 ------ 构成有线局域网的基本协议-CSDN博客
UDP协议
参考: