网络方面的一些知识点

文章引用了 : https://www.cnblogs.com/Andya/p/7272462.html

wireshark 用来抓包的软件  

1.OSI 开放式互联网参考模型(7层)
物理层,数据链路层,网络层(IP),传输层(TCP/UDP),
会话层,表示层,应用层

OSI模型只是一个参考的标准,并没有实现
OSI的实现是“TCP/IP”

2.“TCP/IP”协议 分四层

3.IP 协议 网络层 不可靠传输

4.TCP 协议 传输层 面向连接的、可靠的、基于字节流的传输层通信协议

6个标志位:
URG-紧急指针有效
ACK-确认序号有效
PSH-接收方应尽快将这个报文交给应用层
RST-连接重置
SYN-同步序号用来发起一个连接
FIN-终止一个连接


(IP是用来标示唯一的主机,
  TCP中的端口号用来标示唯一的进程)

5.tcp三次握手
第一次:A(SYN-SENT) ----> B(LISTEN)   SYN=1,seq=x,
第二次: B (SYN-RCVD)  ----> A   SYN=1,ACK=1,seq=y,ack=x+1
第三次:A(ESTABLISHED) ----> B(ESTABLISHED)   ACK=1,seq=x+1,ack=y+1
ACK是用来确认是否接收到了数据
Seq 是用来排序,用来最后将tcp传输的包进行排序,
同时防止丢包后,重新发缺少序号的包

 

server 收到 client 的SYN,回复SYN-ACK的后,为再收到client 发来的 ACK包,sever则会不断重试请求直至超时,liunx默认等待是63秒才断开连接,差不多5次
会造成 SYN Flood的防护措施
SYN队列满了后,通过tcp_syncookies参数回发SYN Cookie
若为正常连接则Client会回发SYN Cookie,直接建立连接

建立连接后,client出现故障:
保活机制(keep alive time)
1.向对方发送保活探测报文,如果未收到响应则继续发送
  尝试次数达到保活探测数仍未响应则应中断连接。
 

TCP 四次挥手
第一次: A---->B FIN=1,seq=u
第二次:  B---->A ACK=1,seq=v,ack=u+1
第三次:  B---->A FIN=1,ACK=1,seq=w,ack=u+1
第四次:  A---->B ACK=1,seq=u+1,ack=w+1

 

为什么会有TIME_WAIT状态
确保有足够的时间让对方收到ACK包
避免新旧连接混淆

服务器出现大量CLOSE_WAIT状态的原因
对方关闭socket连接,我方忙于读或写,没有
及时关闭连接
 检查代码,特别是释放资源的代码
 检查配置,特别是处理请求的线程配置
 
 linux 命令:netstat
 
 
 UDP协议
 没有报错重传,滑动窗口
 面向非连接
 不维护连接状态,支持同时向多个客户端传输相同的消息
 数据包报头只有8个字节,额外开销较小
 吞吐量只受限于数据生成速率、传输速率以及机器性能
 不拆分或者合并报文
 
 
 TCP与UDP 区别
 面向连接 VS 无连接
 可靠性
 有序性
 速度
 量级
 


 TCP的滑动窗口
 
 RTT 和 RTO
 RTT:发送一个数据包到收到对应的ACK,所花的时间
 RTO:重传时间间隔,需要根据RTT进行计算 
 
 TCP使用滑动窗口做流量控制与乱序重排
 保证TCP的可靠性
 保证TCP的流控特性 
 
 可靠性是通过滑动窗口的确认重传机制
 
 
 HTTP:
 http协议的主要特点:
 支持客户/服务器模式
 简单快速
 灵活
 无连接
 无状态
 
 在浏览器地址栏输入url,之后经历的流程
 1.DNS解析,根据URL 从 浏览器缓存,系统缓存,路由缓存等等找IP地址
 2.根据IP地址和对应的端口 建立TCP
 3.发送HTTP请求
 4.服务器处理请求并返回HTTP报文
 5.浏览器解析渲染页面
 
 
 HTTP状态码
 1xx : 指示信息-表示请求已接受,继续处理
 2xx :成功--表示请求已被成功接收、理解、接受
 3xx : 重定向--要完成请求必须进行更进一步的操作
 4xx :客户端错误--请求有语法错误或请求无法实现
 5xx :服务器端错误--服务器未能实现合法的请求
 
 
 200 成功
 400 客户端请求有语法问题
 401 请求未经授权
 404 没找到页面
 403 服务器接到请求,但拒绝服务
 500 服务器问题
 503 服务器当前不能处理客户端请求,一段时间后才能回复正常
 
 因为http是无状态的所以要引用 
 cookie 和 session
 cookie 是由服务器发给客户端的特殊信息,以文本
         的形式存放在客户端。
         
         客户端再次请求的时候,会把Cookie回发
         
         服务器接收到后,会解析Cookie生成与客户端
         相对应的内容
 
 session 服务器端的机制,在服务器上保存的信息
         解析客户端请求并操作session id,按需保存状态信息
         实现方式:使用cookie 或url 实现 jsessionID
         
cookie 更快  session 更安全

http 与 https 的区别

https 中包含了 
SSL :
    为网络通信提供安全及数据完整性的一种安全协议
    是操作系统对外的API
    采用身份验证 和 数据加密 保证安全
    
https数据的传输流程:
    浏览器将支持的加密算法信息发送给服务器
    
    服务器选择一套浏览器支持的加密算法,以证书的形式回发浏览器
    
    浏览器验证证书的合法性,并结合证书中的公钥加密
    信息发送给服务器
     
    服务器使用私钥解密信息,验证哈希,加密响应消息
    回发浏览器
    
    浏览器解密响应消息,并对消息进行验真,之后
    进行加密交互数据
    
https 需要到CA申请证书,Http 不需要
https 密文传输 , http 明文传输
https 默认使用443端口  http 默认使用80端口


socket
    ip+端口 唯一标示网络中的进程

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值