码迷,mamicode.com
首页 > 其他好文 > 详细

网络编程

时间:2019-07-11 20:40:54      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:网线   交换机   国际   消息   服务器   路由   osi   一个   握手   

网络五层:

  • osi五层:
    • 应用层 python(应用层包括会话层,表示层)
    • 传输层 tcp udp 四层路由器 四层交换机
    • 网络层 路由器 三层交换机 ipv4 ipv6 (国际协议)
    • 数据链路层 mac arp 网卡 二层傻瓜交换机
    • 物理层 网线接口类型,介质传输速率

?

  • 握手状态:
    • seq 序号 用来表示tcp源端像目标端发送字节流,发送方发送数据对此进行标记 32位
    • ACK 确认请求 只有ACK标志位等于1事,确认序号才有效,ack = seq + 1
    • SYN 发送请求
    • FIN 释放一个连接
    • 注意:确认方=发起方req + 1 ,两端配对

?

TCP协议:

  • 三次握手:

    • 第一次握手:

      • 客户端向服务端发送syn=1的请求和一个随机seq等于x的报文,进入发送状态
    • 第二次握手:

      • 服务端收到客户端发送的syn报文,给客户端回应一个ack=x+1的确认请求和同样还会返回syn=1的请求一个随机seq等于y的报文 ,进入接收状态
    • 第三次握手:

      • 客户端收到服务器syn报文和确认请求,在回应服务器一个ack = y+1报文,客户端和服务端进入建立连接状态,完成三次握手
    • 三次握手意义:

      • 客户端向服务端发送一个连接请求,这个请求因为网络节点问题滞留了,请求在到达服务器已经是一个失效的连接,如果没有三次握手,服务器确认请求,建立连接,但是请求是失效的,客户端不会理会服务器的确认信息,也不会发送消息,服务端一直等待客户端发送数据,这样很多资源就浪费了,这就是三次握手的作用

        ?

  • 四次挥手:

    • 第一次挥手:
  • 客户端向服务器发送FIN=1,seq序号=x (u是上面传送过来的数据最后一个一个字节+1)客户端停止发送数据,进入终止等待状态1

  • 第二次挥手:

    • 服务端收到FIN,回发一个确认请求 ack=x+1和seq=y,

      此时进入关闭等待状态

  • 第三次挥手:

    • 客户端进入终止等待状态2

      服务端向客户端发送FIN=1 ,ack = x+1 假定此时的序号为seq=w

      服务端进入最后确认状态,等待客户端确认

  • 第三次挥手:

    • 客户端发送ack=w+1,seq= x+1

      客户端进入时间等待状态。

网络编程

标签:网线   交换机   国际   消息   服务器   路由   osi   一个   握手   

原文地址:https://www.cnblogs.com/haiyang11/p/11172204.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!