zoukankan      html  css  js  c++  java
  • 网络学习之OSI七层协议和TCP协议

    OSI七层简单介绍

    • 应用层:提供操作系统和应用程序的接口
    • 表示层:表示数据如何加密、如何压缩的
    • 会话层:将不同应用程序数据分离
    • 传输层:提供可靠和不可靠的数据传输和重传、纠错的功能
    • 网络层:提供IP地址,通过IP地址路由器能选择数据从哪一条路径走是最优的
    • 数据链路层:将数据分组拆分成字节,合并成数据帧
    • 物理层:在设备与设备之间传输比特流

    OSI七层详解

    应用层
      作用:用户可以通过应用程序和操作系统通信
      协议:HTTP、SMTP、FTP、Telnet
    表示层
      作用:数据以何种方式表示,由于计算机只识别0和1,比如我们想存储word文档和图片、视频之类的数据,就需要表示层对数据进行转码让计算机识别
    会话层:
      作用:负责表示层实体之间的建立、管理和终止会话,对不同类型的数据进行分离(比如QQ和YY的数据进行分离),它提供了单工、半双工、全双工
      单工:
      半双工:我发数据给你,等我发完 你才能发数据给我
      全双工:你即可以发数据给我,我也可以发数据给你
    传输层:
      作用:提供可靠和不可靠的数据传输和重传、纠错的功能
      TCP
      UDP
    网络层:
      作用:提供IP地址,通过IP地址路由器能选择数据从哪一条路径走是最优的
    数据链路层:
      物理层:将数据转换成比特流通过网线传输出去

    TCP三次握手建立连接和四次握手断开连接

    1.主机A发送SYN同步报文给主机B,这是主机A进入SYNsend状态等待主机B确认

    2.主机B收到SYN同步报文后,发送ACK确认报文给主机A

    3.主机A收到主机B发来的ACK确认报文后,主机A再发送一个ACK确认报文给主机B

    4.这时TCP三次握手建立连接成功

    1.主机A发送一个FIN结束报文给主机B,用来关闭主机A到主机B的连接

    2.主机B收到这个FIN结束报文后,然后发送给主机A一个ACK确认报文

    3.主机B再发送一个FIN结束报文给主机A,用来关闭与主机A的连接

    4.主机A发送一个ACK确认报文给主机B

    5.这是TCP四次握手断开连接 

    TIME_WAIT状态原理 

    如图四次握手断开连接

    通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态

    主机A主动关闭连接时,会发送最后一个ACK确认报文给主机B,然后就会进入TIME_WAIT状态,在等待两个MSL时间,进入closed状态

    MSL时间是什么

    MSL就是maximum segment lifetime(最大分节生命期),这是一个IP数据包能在互联网上生存的最长时间,超过这个时间IP数据包将在网络中消失 。MSL在RFC 1122上建议是2分钟,而源自berkeley的TCP实现传统上使用30秒。

  • 相关阅读:
    关于read函数的一些分析
    条件变量
    epoll的边缘触发与水平触发
    内核态的接收缓冲区和发送缓冲区
    SourceTreet提交时显示remote: Incorrect username or password ( access token )(4种解决办法)
    前端技术汇总+Vue最新快速上手
    MyBatisPlus性能分析插件,条件构造器,代码自动生成器详解
    博客园怎样在Markdown编辑模式下调整图片大小(已解决)
    MyBatisPlus分页查询,删除操作
    idea括号选中时出现一条下滑线(突出显示)打开或关闭方法
  • 原文地址:https://www.cnblogs.com/chadiandianwenrou/p/6033438.html
Copyright © 2011-2022 走看看