传输层🌟

2020-10-08  本文已影响0人  幺姨母

端口

使用端口来标记不同的网络进程,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的可靠传输🌟

停止等待协议(超时重传,每发送一个消息,都需要设置一个定时器)

  1. 发送的消息在路上丢失
  2. 确认的消息在路上丢失
  3. 确认的消息很久才到

是最简单的可靠传输协议
但是对信道的利用率不高

连续ARQ协议(滑动窗口:自动重传请求,批量发送数据,收到确认后窗口往前推动;累计确认)

TCP的可靠传输基于连续ARQ协议
TCP的滑动窗口以字节为单位

重复确认应答
选择重传:在TCP选项(可选)中,存储需要重传的字节段起始和终止序号

TCP的流量控制🌟

让发送方发送速率不要太快
使用滑动窗口来实现
首部窗口指明允许对方发送的数据量

如果窗口大小的消息在传输途中丢失,可能造成死锁局面,因为这个消息没有重传的机制

因此,出现了坚持定时器。当发送方接收到窗口为0的消息,就启动坚持定时器,坚持定时器每隔一段时间发送一个窗口探测报文

TCP的拥塞控制🌟

流量控制考虑点对点的通信量的控制
拥塞控制考虑整个网络,是全局性的考虑

报文超时则认为是拥塞

慢启动算法
由小到大逐渐增加发送数据量
每收到一个报文确认窗口大小变为原来的两倍

拥塞避免算法
存在一个慢启动阈值,窗口大小到达阈值后,只要网络不拥塞,即报文不超时,就试探着调大窗口,每次将窗口大小加一

三次握手🌟

四次握手🌟

socket编程🌟

上一篇 下一篇

猜你喜欢

热点阅读