文章目录
导图

一、概述
## 1.1 传输层意义 网络层可以把数据从一个主机传送到另一个主机,但是没有和进程建立联系。 传输层就是讲进程和收到的数据联系到一起,使数据能够为应用服务 所以说传输层是主机才有的层次1.2 传输层的两个协议
1.3 传输层的寻址和端口
端口号只用于计算机分辨本地进程,总共有2^16=65536种端口号,端口号有很多种,不能随便使用
二、UDP协议
2.1 UDP概述
注释:
因为UDP一次发送一个完整报文不会分片,所以需要应用层传输过来的数据不要太大,否则网络层分片任务就很重,但是也不能太小,不然效率较低
UDP适合一些实时应用,因为实时应用延迟要求高,需要立即响应
2.2.1 UDP校验位构成
这里的伪首部只是用来计算检验和的,计算完了就丢弃,可以见下UDP的校验方式
2.2.2 UDP校验方式
三. TCP协议
3.1 TCP协议特点
TCP必须要建立连接之后才可以进行数据交换,所以TCP是面向连接的
TCP传输数据是随机切割数据的
3.2 TCP报文段的首部
注释:
见上图,可以看到TCP是将数据随机分割后加上TCP头传输的,所以
序号就是为了标记这些随机分割之后的数据,这里把第一个字节的编号当成序号
确认号就是收到之后做一下标记,代表这之前的都收到了,希望收到的下一个编号的数据就是确认号打头的那个数据
偏移量就是为了标记一下距离TCP开始多少字节是数据,这里的单位是4B,这个偏移量就是TCP首部长度
窗口就是接收方告诉发送方,还有多少地方(缓存)可以放数据
紧急指针就是告诉TCP从哪里到哪里是紧急数据
3.2.1 TCP的六个控制位
紧急位URG
URG的特点就是让数据插队,URG=1的就会在缓存中被提前到第一个传输
确认位ACK
推送位PSH
就是接收端的URG,将PSH=1的数据尽快接收
注意一下,如果没有PSH,一般都是接收方缓存满了之后再将数据发送到主机
复位RST
3.3 TCP连接管理
3.3.1 三次握手(建立连接)
3.3.2 TCP四次挥手
3.4 可靠传输
TCP是提供可靠传输,UDP这种本身还是不可靠传输的就再靠应用层解决了