网络知识常见问题

1. 什么是tcp/ip协议?

Tcp/ip协议是一个协议簇,是一系列协议的总称,其中最核心的就是ip协议和tcp协议,tcp/ip协议包括:ip、tcp、icmp(internet控制报文协议)、udp(用户数据报协议)、arp等,他们共同构成了一个复杂但是有层次的协议栈。Tcp/ip一共有四层,从上到下分别为:应用层、传输层、网络层、链接层。
IP协议:Internet Protocol的缩写,主要用于解决寻址和路由问题
Tcp协议:“Transmission Control P ro to co l”是传输协议,它位于IP协议之上,基于IP协议提供可靠的、字节流形式的通信。

2. TCP协议和UDP协议的区别?

TCP协议是有连接状态的,udp是无连接状态的
Tcp传输的数据是以字节流的形式,udp是报文信息的形式
Tcp传递的信息是更安全,更有保证的,但是udp是尽量去送到
TCP传递的数据是有序性的,udp是无序的
Tcp是更消耗资源的

3. TCP的三次握手,为什么需要三次握手

在tcp/ip协议中,tcp协议提供了可靠的连接服务,采用三次握手建立一次连接
TCP的第一次握手:建立连接时,客户端向服务器端发送SYN包(syn=1),进入syn_send状态,等待服务器确认。(syn=1,seq=x)
TCP的第二次握手:服务端收到SYN包,必须确认客户的syn包,同时自己也发送一个syn+ack给客户端,此时服务器进入syn_recv状态。(syn=1,ACK=1,seq=y,ack=k+1)
TCP的第三次握手:客户端收到服务器端的syn+ack包,向服务器发送确认包ack,此包发送完毕,客户包和服务器端进入established状态,三次握手完成。(ack=1,seq=x+1,ack=y+1)
Tcp flags:
Urg:紧急指针标志,为0表示无效,1表示有效
ACK:确认序号标志,为1表示确认号有效,为0表示报文中不含确认号信息,忽略
PSH:push标志,收到后尽快交给应用层序
RST:重置连接标志,
SYN:同步确认号,用于建立连接过程,如果syn=1,ack=0用户表示没有使用捎带的确认域,(syn=1,ack=1,表示捎带确认)
FIN:finish标志,用于释放连接
为什么三次握手:如果第一次握手后,

4. TCP的滑动窗口作用

保证tcp的可靠性
保证tcp的流控特性
5. Tcp的四次挥手
四次挥手的目的时为了关闭连接
第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,客户端进入FIN_WAIT_1状态
第二次挥手:Server收到Client的FIN后,发送一个ack给client,确认需要为收到序号+1,server进入close_wait状态
第三次挥手:server发送一个FIN给client,用来关闭server到client的数据传送,server进入last_ack状态
第四次挥手:client收到server的FIN后,client进入time_wait状态,接着发送一个ack给server,确认序号为收到序号+1,server进入close状态,完成四次挥手。

6. HTTP和HTTPS的区别

http由:http+tcp+ip+mac
https:http+ssl+tcp+ip+mac
简单来说:https是在http之上多了一个ssl协议
1) HTTPS需要到CA申请证书,HTTP不需要
2) HTTPS密闻传输,HTTP明文传输
3) 连接方式不同,HTTPS默认使用的是443端口,HTTP使用的是80端口
4) HTTPS=HTTP+加密+认证+完整性保护,较HTTP更安全
ssl:Security Sockets Layer,安全套接层,他是为网络通信提供安全、数据完整性的一种安全协议;它是操作系统对外的API,SSL3.0后更名为TLS;它采用身份验证和数据加密保证网络通信的安全和数据的完整性。
加密的方式:对称加密、非对称加密、哈希算法、数据签名
https的加密方式是配合证书+各种加密的组合方式

https确切的说不是一种协议,而是HTTP+SSL(TSL)的结合体。HTTP报文经过ssl(安全套接层)加密后交付给TCP层进行传输。SSL主要采取的是RSA(非对称加密)和AES(对称加密)结合的加密方式,先通过RSE加密AES的密钥,然后通过AES进行报文加密和解密。

使用数字证书签发机构颁发的证书来保证非对称加密过程本身的安全。

7. HTTP的主要特点

HTTP超文本传输协议
支持客户/服务器端模式、简单快速 、灵活、无连接、无状态
http请求结构:请求报文(请求行(url地址+协议+请求方法)+请求头信息)+请求正文
http响应结构:http响应报文(状态行(协议版本+状态码+状态描述)+响应头部)+响应正文

8. 在浏览器地址键入url,按下回车之后经历了哪些流程

1) DNS域名解析
2) TCP连接
3) 发送http请求
4) 服务器处理请求并返回http报文
5) 浏览器解析渲染页面
6) 连接结束

9. HTTP状态码

1)1XXX:指示信息—表示请求已经接收,继续处理
2)2XXX:成功—表示请求已经被成功接收,理解、接受
3)3XXX:重定向—要完成请求必须进行更进一步的操作
4)4XXX:客户端错误,—请求有语法错误或请求无法实现
5)5XXX:服务器端错误,—服务器未能实现合法的请求
200 ok:正常返回信息
400 Bad Request:客户端请求有语法错误,不能被服务器所理解
401 Unauthoried:请求未经过授权的,这个状态码必须和www-authenticate报头域一起使用
403 Forbidden:服务器收到但是拒绝提供服务
404 Not Found:请求资源不存在,eg:输入的url地址错误
500 Internal Server Error:服务器发生了不可预期的错误
503 Server Unavailable:服务器当前不能处理客户端请求,一段时间可能会恢复

10. Get请求和POSt的请求区别

http报文层层面:get是放到URL里面的,post是放到报文体中的,较安全性post更安全一点
数据库层面:GET符合幂等性和安全性的,POST是不符合的,ge只能对进行查询,post可以进行增删改查
其他方面:GET可以被缓存、被存储,而POST不行

11. Cookie和Session的区别
  1. cookie时服务器委托浏览器存储一些数据,时存储在客户端的,session是存储在服务器端的
  2. session相对cookie更加安全
  3. 考虑到服务器负担,应当使用cookie
    cookie最基本的用途时身份识别,实现状态的会话事务
12. 什么是重定向

重定向是服务器发起的跳转,要求客户端改用新的url重新发起请求,通常会自动进行,客户无感知
使用重定向时需要当心性能损耗,还要避免出现循环跳转
常见的重定向状态码是301和302,分别是“永久重定向”和“临时重定向”

13.为什么要进行三次握手,一次行不行,二次行不行?

不行,只有经过三次握手,通信双方(客户端和服务器)才能确认自己和对方具有接收信息和发送信息的能力。
第一次握手:客户端发送消息给服务器端,服务器端接收到信息后,能确认自己有接收信息的能力,客户端有发送信息的能力;
第二次握手:服务器端发送信息给客户端,客户端接收到信息后,能确认客户端有发送信息和接收信息的能,服务器端有发送信息和接收信息的能力;
第三次握手:客户端发送信息给服务器端,服务器端接收到信息后,服务器端能确认客户端有发送信息和接收信息能力。

#####14.为什么要进行四次挥手,为什么是四次?请添加图片描述

因为tcp是全双工通信的
1)第一次挥手
因此当主动方发送断开连接的请求(即FIN报文)给被动方时,仅仅代表主动方不会再发送请求给被动方,但是主动方仍旧可以接收数据报文。
2)第二次挥手
被动方此时有可能还有相应的数据报文需要发送,因此需要先发送ack报文给,告知主动方“我知道你想断开连接的请求了”。主要主动方变不回因为没有收到应答而继续发送断开的连接的请求了。
3)第三次挥手
被动方在处理完数据报文后,便发送给主动方FIN报文,这样可以保证数据通信正常可靠完成。发送完FIN报文后,被动方进入LAST_ACK阶段(超时等待)。
4)第四次挥手
主动方发送ack报文进行连接中断的确认,这是被动方就直接释放连接,进入可用状态。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值