传输层
传输层
1.功能
1.功能
1.传输层提供进程和进程之间的逻辑通信;网络层提供主机之间的逻辑通信
2.复用和分用
3.对收到的报文进行差错检测
4.传输层的两种协议
2.传输层的寻址与端口
1.复用
应用层所有的应用进程都可以通过传输层再传输到网络层
2.分用
传输层从网络层收到数据后交付给指明的应用进程
3.端口
1)传输层的SAP,表示主机中的应用进程
2)端口号只有本地意义,在因特网中不同计算机的相同端口是没有联系的
3)端口号长度为16比特,能表示65536个不同的端口号
4)端口号分类
服务端使用的端口号:
熟知的端口号:
给TCP/IP最重要的一些应用程序,让所有用户都知道0~1023
登记端口号:
为没有熟知端口号的应用程序使用的。1024~49151
客户端使用:
仅在客户进程运行时才动态选择的端口号49152~65535
知名的端口:
应用程序 | FTP | TELNET | SMTP | DNS | TFTP | HTTP | SNMP |
---|---|---|---|---|---|---|---|
熟知的端口号 | 21 | 23 | 25 | 53 | 69 | 80 | 161 |
4.套接字:
在网络中采用发送方和接收方的套接字组合来标识断点,套接字唯一标识了网络中的一个主机和它上面的一个进程
套接字Socket = (主机IP地址,端口号)
2.UDP协议
不可靠,无连接,时延小,适用于小文件
1.概述
1.UDP只在IP数据报服务之上增加了很少的功能,即复用分用和差错检测功能
2.面向数据报,适合一次性传输少量数据的网络应用。
3.UDP无拥塞控制,适合很多实时应用(视频电话或者视频会议)
4.UDP首部开销小,8个字节
2.UDP首部格式
16位源端口号 | 16位目的端口号 |
---|---|
16位UDP长度 | 16位DUP检验和 |
数据 | 数据 |
1.分用时,如果找不到对应的目的端口号,就丢弃报文,并给发送方发送IGMP“端口不可达”报告报文。
3.UDP校验
1.伪首部只有在计算校验和时才出现,不向下传送,也不向上递交
2.17:封装UDP报文的IP数据报首部协议字段是17
3.UDP长度:UDP首部8B + 数据部分长度(不包括伪首部)
4.通过伪首部进行校验
3.TCP协议
可靠,面向连接,时延大,适用于大文件
1.TCP协议的特点
1.面向连接(虚连接)的传输层协议
2.每一个TCP连接只能有两个断点,每一个TCP连接只能是点对点的
3.TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达。
4.TCP提供全双工通信。
5.TCP面向字节流,TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流。
2.TCP报文段的首部格式
1.报文格式各个字段:
控制位:
窗口:指的是发送报文段的一方的接收窗口,即现在允许对方发送的数据量。
校验和:检验首部+数据,校验要加上12B的伪首部,封装TCP报文的IP数据报首部协议字段是6
紧急指针:URG=1时才有意义,指出本报文段中紧急数据的字节数。
选项:最大报文长度MSS(数据字段的最大长度)、窗口扩大、时间戳、选择确认……
3.TCP连接管理
连接建立->数据传输->连接释放
1.建立连接——三次握手
ACK:下一次传输期望获得的数据的序号
注意:洪泛攻击
2.连接释放——四次挥手
3.为什么要等待2MSL时间
因为客户端向服务端发送的关闭连接确认报文可能由于网络原因在传输过程中丢失,所以客户端在收到服务端的关闭连接后,不能立即关闭,否则服务端一直会进行关闭连接报文的重传,不能正确关闭连接;
等待2MSL后,服务端重传的关闭连接报文到达,客户端重置MSL,再次回复确认,2MSL时间后未收到重传的报文,则正确关闭连接
4.TCP可靠传输
注意:可靠传输通过 校验、序号、确认、重传 实现;实现可靠传输的算法如下:
1.超时重传
超过规定时间没有收到确认就要重传已发送的报文段。
TCP代用自适应算法,动态改变重传时间RTTs(加权平均往返时间)
2.快重传---冗余ACK(冗余确认)
每道比期望号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号。
如果发送端收到三个冗余的ACK,则会认为该报文已丢失,重传丢失报文
3.流量控制
让发送方发送慢点,要让接收来得及接收
TCP利用华东窗口机制实现流量控制
在通信过程中,接收方根据自己接收缓存的大小,动态的调整发送方发送窗口的大小,即接收窗口rwnd(接收方设置确认报文段的窗口字段来讲rwnd通知给发送方),发送方的发送窗口 取 接收窗口rwnd和拥塞窗口cwnd的最小值
实例:
4.拥塞控制
1.产生拥塞的条件:
对资源需求的总和>可用资源
2.网络中有许多资源同时呈现供应不足,网络性能变坏,网络吞吐量将随输入负荷增大而下降
3.拥塞控制
防止过多的数据注入到网络中。全局性
4.拥塞控制的四种算法
慢开始、拥塞避免、快重传、快恢复
5.接收窗口&拥塞窗口
接收窗口:接收方根据接收缓存设置的值,并告知给发送方,反映接收方容量
拥塞窗口:发送方根据自己估算的网络拥塞程度而设置的网络窗口值,反映网络当前容量
发送窗口 = min{拥塞窗口,接收窗口}
5.拥塞控制——慢开始&拥塞避免
慢开始门限:ssthresh,门限值会再网络拥塞时动态调整,一般是除以2;
6.拥塞控制——快重传&快恢复
快恢复:拥塞后不用将拥塞窗口变为1,而是设置为新的门限值