传输层
TCP与UDP的区别
区别 |
TCP |
UDP |
是否连接 |
面向连接(三握四挥) |
无连接 |
是否可靠 |
可靠 |
不可靠传输,不使用流量控制以及拥塞控制 |
连接对象 |
只能是一对一 |
无限制 |
传输方法 |
面向字节流 |
面向报文 |
首部开销 |
最小20字节最大60字节 |
8字节 |
适用条件 |
文件传输等可靠传输 |
实时应用 |
TCP三次握手四次挥手※
确认号是下一步我想要的报文段开头
SYN = 1 seq = x 这时候发送的报文 x是该报文的最后一个窗口
然后该回复SYN + ACK seq = y ack=x+1
然后再回复ACK seq=x+1 ack =y+1,如果此时有数据发送,不消耗序号
TCP拥塞控制与流量控制(计算)※
拥塞现象
指达到通信子网中某一部分的分组数量过多,使得该部分网络来不及处理导致这部分或者整个网络性能下降的现象,严重时会发生死锁
- 路由器缓冲区不足
- 通信线路的带宽不够
- 处理器的速度慢
拥塞控制
在网络能够承受现有的网络负荷的前提下,拥塞控制是为了防止过多的数据注入到网络中,这样可以使网络中的路由器或链路不至于过载。
拥塞控制是一个全局性的过程。
几种拥塞控制方法
总共四种:慢开始,拥塞避免,快重传,快恢复
流程
- 首先慢开始,MSS自身每次增加一个,个数上呈现指数增长
- 达到门限值后启动拥塞避免,进入线性增长阶段
- 其中若有数据丢失,经过三次确认确认丢失,实现快恢复,即门限值=cwnd/2,cwnd = cwnd/2
- 如果确认超时,则重新进入慢开始,同时门限值=cwnd/2
流量控制
解决防止接收方缓冲区溢出
流量控制是管理两端的流量,以免产生发送过快导致收端溢出,或者因收端处理太快而浪费事件的状态。用的是滑动窗口
流量控制往往指在给定的发送端和接收端之间的点对点通信量的控制。
流量控制所要做的就是抑制发送端发送数据的速率,以便接收端来得及接收
TCP窗口
尽可能发送,就是接收到确认前尽可能发送,就是RTT*b
序列号就是生存时间*b
应用层
特殊的端口(选择)
FTP TELNET SMTP DNS TFTP HTTP SNMP POP3
发图片 谈恋爱 水蜜桃 大男生 台风天 很忐忑 是你吗 TOT
20/21 23 25 53 69 80 161 110
带T的全是TCP,除了TFTP,因为它FT,你看人家HTTP,TT,真的T 其他都是UDP
DNS域名解析※
在因特网上,域名服务器(DNS)的主要作用是将用户输入的域名转换为相应的IP地址,从而使用户能够访问特定网络资源。此外DNS还具备负载均衡、网络安全保障和缓存提高访问速度等功能。
- 首先本机查看自身缓存,看是否存储对应的ip
- 如果有的话,就直接发送,没有的话,就请求本地域名服务器
- 如果有的话,返回本机,发送请求,没有的话,就请求根域名服务器
- 之后看是递归还是迭代,顶级域名服务器,权限域名服务器(可能有很多)去请求返回就行
- 最后解析到域名的ip返回本机,本机再去请求。
DHCP工作流程※
【计算机网络课程作业】解释ARP、DHCP、RIP、OSPF、BGP协议_哔哩哔哩_bilibili
- 客户端登入网络
- 首先向网络中广播发送Discover报文,请求服务器分配IP地址(在吗,老登,给个IP)
- 服务器收到之后,查找自身空闲的IP地址,返回一个Offer报文(几个老登一起给)
- 客户端收到多个IP地址,从中挑选一个,一般是最早收到的(我选一个最早的)
- 然后确定用哪个IP之后,向该服务器发送一个Request请求,请求IP的配置信息(再详细点)
- 服务器收到之后,同意就会回复一个ACK报文(老登再回)
- 客户端收到之后进行ARP冲突检测,无误后采用这个IP,发送一个回复报文回去(我检查没问题了回个OK)
万维网上网流程(HTTP)※
- 用户通过Web客户端输入要访问的URL或者点击超链接
- DNS域名解析,将URL的域名转换为实际IP地址
- 浏览器根据解析到的IP地址,与Web服务器建立HTTP连接。
- 浏览器向Web服务器发送HTTP请求,请求中包含要访问的资源和其他相关信息
- 服务器响应请求,查找资源,返回资源
- 浏览器对响应资源进行渲染
电子邮件发送流程※
- 发件人使用用户代理编辑邮件内容
- 邮件内容通过MIME编码转换
- 邮件通过SMTP协议发送到SMTP服务器
- SMTP服务器作为客户端中转发送邮件到收件人的邮箱服务器
- 邮件被存储在收件人的邮件服务器上
- 收件人使用POP3或者IMAP协议从邮件服务器上下载邮件
- 邮件客户端展示邮件给收件人