计算机网络

三次握手: 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接
      第一次 客户端向服务端发送连接请求报文,发送的报文段包括同步位SYN和序列号seq,并进入SYN_SENT(同步已发送)状态等待服务器确认
      第二次 服务端收到客户端的连接请求报文,如果同意建立连接,则向客户端发送确认报文,
         报文包括SYN包和ACK标志,然后服务端进入同步以接收状态
      第三次 客户端收到服务端的确认报文后,会向服务器发送确认报文,告诉服务器收到了
         它的确认报文并准备建立连接,服务端收到客户端确认报文,此时,客户端和服务端进入TCP连接成功状态。

四次挥手:第一次;客户端向服务端发起释放连接请求向服务端发送一个FIN报文,
       并且停止客户端到服务端的数据传输,客户端进入终止等待状态
      第二次:服务端收到客户端发的FIN报文后会给客户端回复确认报文,此时服务端处于关闭等待状态
      第三次:服务端将所有数据发送完毕后就会向客户端发出FIN报文,请求关闭连接,服务端进入最后确认状态
      第四次:客户端收到服务端发的FIN报文后,向服务端发出确认报文,服务端收到客户端发出的
          确认报文后会立刻进入关闭状态,而客户端要等待2MSL后才进入关闭状态


为什么客户端要等待2MSL才进入关闭状态?
要考虑丢包的问题,第四次挥手是客户端向服务端发送的确认报文如果丢失,服务端就会启动超时重传
重新启动第三次挥手,而客户端能在2MSL时间内收到重传的报文。

长连接:一个TCP连接上可以连续发送多个数据包  (王者荣耀)
短连接:通信双方有数据交互时,就建立一个TCP连接,数据传输完成后就断开连接 (卡牌类游戏)

为什么TCP连接的时候是3次?2次不可以吗?
因为需要考虑连接时丢包的问题,如果只握手两次,第二次握手时如果服务端发给客户端的确认报文
丢失,客户端一直没收到服务端的确认报文,就不知道服务端是否准备好,这种情况下客户端不会给服务端发数据,也会忽略服务端
发过来的数据。另一方面防止已失效的TCP连接报文段发送到服务器,导致错误,造成资源浪费。
如果是三次握手,即便发生丢包也不会有问题,如果第三次握手客户端发的确认ack报文丢失,
服务端在一段时间内没有收到确认ack报文的话就会重新进行第二次握手,
也就是服务端会重发SYN报文段,客户端收到重发的报文段后会再次给服务端发送确认ack报文。

为什么TCP连接的时候是3次,关闭的时候却是4次?
因为只有在客户端和服务端都没有数据要发送的时候才能断开,客户端发出的FIN报文只能保证客户端没有
数据发送了,服务端还有没有数据要发送客户端不知道。服务端收到客户端的FIN报文后只能先回复客户
端一个确认报文,表示服务端已经收到客户端的FIN报文,但是服务端可能还有数据没发送完等待服务
端最后一条数据发完了会向客户端发送FIN报文,最后客户端向服务端发送确认报文,
服务端收到以后立刻释放TCP连接

什么是HTTP,HTTP 与 HTTPS 的区别?
HTTP 是一个在计算机世界里专门在两点之间传输超文本数据的约定和规范
区别;HTTP运行在 TCP 之上,明文传输,客户端与服务器端都无法验证对方的身份
     HTTPS运行在ssl上,SSL运行在TCP上,是添加了加密和认证机制的HTTP
     端口号不同 HTTP 80 HTTPS 443
     HTTP资源消耗少 ,HTTPS资源消耗大
     不需要证书         需要证书,要向认证机构买
     安全性弱           安全性强
    无加密        加密

GET和POST区别?
1.get是不安全的,在传输的过程中数据被放在请求的URL中,post的所有操作对用户来说都是不可见的。
2.get请求提交的url中的数据最多只能是2048字节,而post请求则没有大小限制。
3.get限制form表单的数据集的值必须为ASCII字符,post支持整个ISO10646字符集
4.get执行效率比post方法好。
5.GET产生一个TCP数据包;POST产生两个TCP数据包。

TCP和UDP区别?


TCP UDP协议都属于传输层协议
TCP是面向连接的,UDP是无连接的;


TCP是可靠的,UDP是不可靠的;


TCP只支持点对点通信,UDP支持一对一、一对多、多对一、多对多的通信模式;


TCP是面向字节流的,UDP是面向报文的;


TCP有拥塞控制机制;UDP没有拥塞控制,适合媒体通信;


TCP首部开销(20个字节)比UDP的首部开销(8个字节)要大

OSI七层模型:
物理层 数据链路层 网络层  运输层  会话层  表示层  应用层

TCP怎么保证可靠性?
校验和;发送方和接受方用同样的算法计算校验和,对比如果不一致则一定有误,一致则可能有误
应答机制:TCP传输的过程中,每次接收方收到数据后,都会对传输方进行确认应答
超时重传
拥塞控制
流量控制

如果已经建立了连接,但是客户端突然出现故障了怎么办?
TCP设有一个保活计时器,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。
服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,
若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒钟发送一次。
若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。


拥塞控制机制;
网络中传输的报文段较少时采用慢开始算法,拥塞窗口随着传输次数指数增长,当拥塞窗口达到慢开始
门限的时候采用拥塞避免算法,拥塞窗口的大小随着传输次数线性+1。当发生超时重传的时候,
将慢开始门限的值更新为发生超时重传时的拥塞窗口大小的一半并将拥塞窗口大小设置为1,重新开始慢开始算法。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值