传输层的作用
作为传输层的两个主要协议,为了识别自己传输的数据属于哪个应用,在协议内设定了端口号
将接收和发送的数据与特定的应用程序进行关联起来,通过socket,也就是绑定了端口
区别
- TCP 是面向连接的,可靠的的流协议,它提供了可靠性传输,实行
顺序控制`
重发控制流量控制
拥塞控制提高网络利用率`等多种功能
- UDP 是不具有可靠性的数据报协议,细微的处理交给上层的应用去完成
TCP头部
就不解释每个字段的意思了
TCP的特点
通过序列号和确认应答提高可靠性
数据包丢失
数据无法到达
数据应答丢失
重发的超时时间如何确定
在BSD的Unix以及Windows系统中,超时都是以0.5s为单位进行控制的,因此重发超时的都是0.5的整数倍,不过由于最初的数据包还不知道往返时间,所以其重发的超时一般设置在6s左右。
连接管理
这个会经常提到
TCP以段发送数据
在建立TCP连接的同时,也可以确定发送数据包的单位,称为最大消息长度
(MSS),TCP在传送大量数据时,是以MSS的大小将数据进行分割发送。
利用窗口控制提高速度
TCP以1个段为单位,每发一个段进行一次确认应答,性能太差了,为了解决这个问题。
确认应答不再是以每个分段,而是以更大的单位进行确认,转发的时间被大幅度缩短。也就是说,发送端主机,在发送了一个段以后不必要一直等待确认应答,而是继续发送
窗口控制与重发控制
流控制
为了防止流量浪费,比如说,数据接收端在高负荷的情况下无法接受任何数据。如果将本来接受的数据丢弃,则会触发重发机制。
为了防止这种现象,TCP提供了一种机制可以让发送端根据接收端的实际接受能力控制发送的数据量。这就是流控制。
做法就是在TCP首部中,有一个字段来通知窗口的大小,值越大,吞吐量越高
拥塞控制
慢启动,慢慢变快