
端口
使用端口来标记不同的网络进程,16bits表示(0~65535)
常用端口
FTP | HTTP | HTTPS | DNS | TELNET |
---|---|---|---|---|
21 | 80 | 443 | 53 | 23 |
UDP协议🌟
UDP:用户数据报协议
数据报:对应用层传下来的数据,不拆分,不合并
因此UDP数据报的长度主要由应用层传输的数据长度决定


UDP协议的特点
无连接协议:网络进程之间通信之前不需要提前建立连接
不保证可靠的交付数据:想发就发,无法保证数据在网络中是否丢失
面向报文传输:数据报中的数据是应用层直接传来的数据,不合并不拆分
没有拥塞控制:不会感知网络是否拥塞,无论是否拥塞都会直接发送报文
首部开销很小:总共八字节,源端口、目的端口、长度、校验和
传输速率:UDP快
TCP协议特点和首部🌟
TCP:传输控制协议

TCP是面向连接的协议:进程通信要建立连接、管理连接
TCP是端到端的通信
TCP提供可靠传输
TCP提供全双工的通信
TCP面向字节流:将应用层传来的数据当成一系列的字节流,可能对用户数据进行拆分、合并
TCP头部

除了可选,20-60字节
序号:32bits,用来标记传输的字节,是数据首字节序号
确认号:32bits,一个字节一个序号,期待收到数据首字节的序号,确认号为N,表示N-1及之前的数据都被收到了
数据偏移:数据偏离首部的距离
TCP标记:URG、ACK、PSH、RST、SYN、FIN

窗口:指明允许对方发送的数据量
紧急指针:紧急数据在报文的位置
TCP选项:最多40字节,支持未来的拓展
TCP的可靠传输🌟
停止等待协议(超时重传,每发送一个消息,都需要设置一个定时器)
- 发送的消息在路上丢失
- 确认的消息在路上丢失
- 确认的消息很久才到
是最简单的可靠传输协议
但是对信道的利用率不高
连续ARQ协议(滑动窗口:自动重传请求,批量发送数据,收到确认后窗口往前推动;累计确认)
TCP的可靠传输基于连续ARQ协议
TCP的滑动窗口以字节为单位
重复确认应答
选择重传:在TCP选项(可选)中,存储需要重传的字节段起始和终止序号
TCP的流量控制🌟
让发送方发送速率不要太快
使用滑动窗口来实现
首部窗口指明允许对方发送的数据量
如果窗口大小的消息在传输途中丢失,可能造成死锁局面,因为这个消息没有重传的机制

因此,出现了坚持定时器。当发送方接收到窗口为0的消息,就启动坚持定时器,坚持定时器每隔一段时间发送一个窗口探测报文
TCP的拥塞控制🌟
流量控制考虑点对点的通信量的控制
拥塞控制考虑整个网络,是全局性的考虑
报文超时则认为是拥塞
慢启动算法
由小到大逐渐增加发送数据量
每收到一个报文确认窗口大小变为原来的两倍
拥塞避免算法
存在一个慢启动阈值,窗口大小到达阈值后,只要网络不拥塞,即报文不超时,就试探着调大窗口,每次将窗口大小加一

网友评论