1.为什么需要三次握手,两次不行
因为需要客户端和服务器确定双方的功能是否正常并且校准序列号,两次的话客户端确定了双方功能,但是服务器不晓得客户端的接受能力是否正常。 第一次客户端放松SYN报文 处于SYN_SEND状态,第二次服务器接受报文发送SYN+ACK报文服务器处于SYN_RECV状态,然后第三次客户端接受报文放松ACK此时客户端处于establish状态。最后服务器接受ACK 处于establish连接建立。
2.为什么需要四次挥手,三次不行。
确保连接安全关闭,第一次挥手客户端发送FIN报文(包含一个序列号)进入FIN_WAIT状态,第二次服务器接受FIN报文,发送ACK(包含序列号+1)报文,进入CLOSE_WAIT状态,等到服务器发送完数据想关闭连接了第三次服务器发送FIN报文服务器进入LAST_ACK状态,第四次客户端接受FIN报文发送ACK报文进入TIME_WAIT状态,TIME_WAIT确保服务器接受ACK报文,等到一个回路2MSl时间如果没有再次收到FIN就进入CLOSED状态,服务器接受到ACK进入CLOSED状态,注意是服务器重发。
3.TCP和UDP的区别,各种应用层协议
TCP面向连接,UDP面向报文。 TCP是可靠运输(流量控制,数据准确,拥塞控制),UDP是不可靠运输 TCP一对一,UDP都行 TCP有拥塞控制 TCP报文首部20字节,UDP只有8 TCP应用层有HTTP HTTPS FTP SMTP UDP有DNS DHCP TFTP SNMP
TCP如何保证可靠性和拥塞控制
TCP的滑动窗口,接受方提供最多处理数据数量给发送方。TCP拥塞控制的慢启动,拥塞避免,快重传和快恢复。 慢启动建立连接后的初始化拥塞窗口,RTT周期窗口大小翻倍直到达到慢启动拥塞阈值,拥塞避免是不翻倍,慢慢的线型增加窗口
对数据表校验和,对失序数据包进行重排序,丢弃重发数据,超时重发和流量控制,应答机制
url网址输入发生什么
1.DNS解析根据域名找到服务器ip地址 首先浏览器查询DNS缓存,查询操作系统和本地DNS服务器,如果该域名在本地DNS服务器包含资源中,则解析结果返回,没有不在,但是DNS服务器有该域名对应IP的映射关系,则解析,都没有则一个个服务器递归迭代转发查找。 2.建立TCP连接 3.发送HTTP请求 4.服务器拿对应的请求处理器处理请求,返回视图页面 5.浏览器渲染页面和视图 6.关闭连接
如何处理SQL注入
1.使用SQL预编译和参数绑定(通过#{}),把占位符当做SQL参数而不是SQL语句。 2.正则表达式过滤。
计算机五层的作用和发送包的流程
应用层提供应用层协议HTTP DNS SMTP FTP对数据格式进行编译,数据进行应用层处理,建立应用程序之间的会话实现身份识别,权限控制等 传输层 实现端口与端口直接的通信并且忽略下层细节 TCP UDP 网络层 实现主机与主机的通信(广播) IP协议 ARP协议(IP ——> MAC) 数据链路层 实现同一网段的主机之间通信 在不可靠的物理介质上提供可靠的传输,接收来自物理层的位流形式(二进制机器码)的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层 物理层 通过光纤电缆物理连接计算机,并且能够识别二进制机器码。
滑动窗口
流量控制的技术手段,滑动窗口通过窗口大小控制发送方发送数据,如果大小为0,发送方一般不能发送数据(紧急和一个大小通知)
|