一文搞懂TCP/IP协议 UDP协议 HTTP HTTPS协议 | 您所在的位置:网站首页 › udp传输工具 › 一文搞懂TCP/IP协议 UDP协议 HTTP HTTPS协议 |
提到TCP/IP协议,首先了解一下OSI七层模型表示层的作用传输层的作用 TCP/IP五层协议 tcp协议三次握手以及四次挥手三次握手:防止旧的重复连接引起的连接混乱问题。网络比较差的时候 发送方可能连续多次建立连接 如果只有两次握手 接收方知能选择接受或拒绝 但是不清楚这次连接是正常的还是由于网络原因导致的超时请求 如果是网络超时的请求 就可能造成错误连接 三次握手:客户端在接收到服务端ack=x+1的消息后,就能判断当前连接是否为历史连接 如果是历史连接的话就会发送终止报文 如果不是历史连接 就会发送指令给服务器端来建立连接。 四次挥手:即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。 关闭连接时,客户端向服务端发送 FIN 时,仅仅表示客户端不再发送数据了但是还能接收数据。服务器收到客户端的 FIN 报文时,先回一个 ACK 应答报文,而服务端可能还有数据需要处理和发送,等服务端不再发送数据时,才发送 FIN 报文给客户端来表示同意现在关闭连接。 UDP协议 用户数据报文协议 在传输层直接提供单向发送报文的能力 不拆分数据 速度快 Socket当客户端和服务端进行交互 是在客户端和服务端同时形成socket 两个socket进行交互 处理一次请求的过程 BIO阻塞模式一次请求首先会进入到PendingQueue,当某一个线程触发Accept,系统会从队列里拿一个请求,在内核空间形成一个Socket文件。此时派发线程会针对每个socket生成一个文件描述符。生成文件描述符以后,派发线程会把文件描述符给到工作线程。工作线程拿到文件描述符以后,去内核拷贝socket。 NIO非阻塞模式NIO模型不需要工作线程去内核拷贝 Kernel->Buffer->Channel->Buffer Kernel接收到数据以后 把数据拷贝到Buffer中 Buffer是内存中的一块映射地址 Buffer形成一个Channel对象 最后读数据是从Channel中读 HTTPS协议 用户感知不到加密存在 采用对称加密方式进行传输数据 对于加密的密钥采用非对称加密 1.建立tcp三次握手 2.服务器利用TCP将证书传给浏览器 证书里有网站的公钥 3.浏览器通过本地root C验证网站证书 4.浏览器用证书的公钥加密 5.服务器响应 面试灵魂拷问1:TCP/IP协议在传输过程中做了哪些事情?1.tcp在传输的时候要进行报文拆分2.给拆分的数据增加协议头3.数据传输 4.路由和寻址5.接收的时候进行数据重组 面试灵魂拷问2:TCP和UDP的区别?TCP和UDP的区别面试灵魂拷问3:http头部包含哪些内容? 1.请求方式GET/POST 2.主机地址host 3.Conenet-lenth:发送/接收的字节数 4.User-agent :浏览器的信息 以及机器信息 4.Content-type:text/plain application/json请求文本类型 5.origin:请求来源地址 返回值 200代表成功 3xx代表重定向 4xx代表客户端错误 5xx代表服务端错误 面试灵魂拷问4:加密方式了解哪些? RSA非对称加密,公钥加密,私钥解密。由于需要大数的乘幂求模等算法,运行速度慢,不易于硬件实现。 AES: 对称加密,密钥最长只有256个bit,执行速度快,易于硬件实现。由于是对称加密,密钥需要在传输前通讯双方获知。 MD5加密:是一种不可逆的加密算法,不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。 |
CopyRight 2018-2019 实验室设备网 版权所有 |