-
五层模型
物理层
负责把计算机连接起来,传递0,1信号
数据链路层
负责给0,1信号制定一些规则,方便发送接收,两边统一一下,有个规范性
网络层
类似为数据链路层定下的规矩铺路
传输层
负责指挥应用层的载具如何走,规划一条路线在网络层跑
应用层
不必关心怎么走,只要坐上载具就可以了,只要进行操作就行,想让车跑起来,没有必要知道车子的结构是什么样的
-
TCP和UDP的区别和优缺点
TCP面向连接,UDP无连接
TCP可靠服务,无差错,不丢失,不重复,按顺序到达,UDP尽最大努力交付(只要完成KPI就行,完成啥样我不管)
TCP占资源多,要经常检测,UDP就灵活许多,对系统要求资源少,UDP实时性较好,因为人家无所谓,TCP比较保守,啥都得检测检查。
TCP点到点,UDP一对一,一对多
网速稳定的话,UDP丢包率会变低,如果能使用应用层重传,那么有时比TCP要好
三次握手和四次握手
TCP三次握手,Client向Server发送标志位SYN设置为1 ,和一个初始序列号a
Server接收,向Client返回SYN=1 发送初始序列号b,回应ACK 回应序号ack=a+1
Client接收后回复一个ACK作为相应,并发送下一个希望收到的序号ack=b+1
TCP终止连接4次握手
Client发送一个FIN和一个初始序列号a请求关闭,Server被动关闭。
Server收到后发送一个回应序列ack=a+ 1
同时Server还发送一个FIN包括自己的初始序列号和希望得到的下一次ack
Client回复ACK,将确认序列号加1
四次挥手过程以及为什么要等两个时间周期?
1、为了保证客户端发送的最后一个ACK报文段能够到达服务器
在服务器发送了FIN-ACK之后,会立即启动超时重传计时器。若ACK丢失,那服务器就一直超时重传导致服务器无法关闭。
2、还可以防止已失效的报文段。
Client发送最后一个ACK后两周期可以保证产生的所有报文消失,防止滞留报文骚扰服务器