zoukankan      html  css  js  c++  java
  • 计算机网络(学习复习)

    OSI开放式互联参考模型(OSI七层协议)

    第一层物理层

    解决两台物理机之间的通信需求,即机器A向机器B发送bit流,物理层主要定义了物理设备的标准。传输bit流

    第二层数据链路层

    定义了如何格式化数据来进行传输,如何控制对物理介质的访问,错误检测和纠正。传输帧

    第三层网络层

    将网络地址翻译成相应的物理地址,并定义如何将数据从发送方路由到接收方。数据包、IP

    第四层传输层

    接收上一层的数据,在必要的时候把数据进行分割,并将这些数据交个网络层,且保证这些数据有效到达、TCP、UDP

    第五层会话层

    建立和管理应用程序之间的通信、应用程序自动调用TCP、IP收发信息

    第六层表示层

    帮我们解决不同系统之间语法不同的问题

    第七层应用层

    规定发送方和接收方必须使用一个固定长度的消息头。指在使用户更加方便的使用网络。HTTP

    OSI的实现“TCP/IP协议”

    在这里插入图片描述
    在这里插入图片描述

    TCP的三次握手

    IP

    IP协议是一种无连接的协议,不会占用通信线路,每条线可以满足多个应用使用
    IP数据包不能保证是否顺序发送是否全部送到所以是不可靠的
    需要由上层协议控制

    传输控制机械TCP简介

    面向连接的、可靠的、基于自己留的传输层通信协议
    将应用层的数据流分割成报文段并发送给目标节点的TCP层
    数据包都有序号,对方收到则放松ack确认,未收到则重传
    运用奇偶校验和来验证数据在传输过程中是否有误

    说说TCP的三次握手

    在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

    • 第一次握手:建立连接时,客户端发送SYN包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
    • 第二次握手:服务器收到SYN包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
    • 第三次握手:客户端收到服务器端SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

    为什么需要三次握手才能建立起连接

    为了初始化Sequence Number的初始值

    首次握手的隐患—SYN超时

    • Server收到Client的SYN,回复SYN-ACK的时候未收到ACK确认
    • Server会不断重试直至超时,Linux默认重试5次也就是共等待63秒才断开连接

    TCP的四次挥手

    “挥手”是为了终止连接连接

    • 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态;
    • 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态;
    • 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态;
    • 第四次挥手:Client收到FIN后,Client进入TINE_WAIT状态,接着发送一个ACK给Server,确认序号为接收序号+1,Server进入CLOSE装填,完成四次挥手
  • 相关阅读:
    安装minikube
    【知识总结】预训练语言模型BERT的发展由来
    【爬虫】批量下载极客时间课程
    【Python】中国有哪些同名的省市县?
    【笔记】Java函数式编程
    【linux】没有root权限如何通过apt安装软件
    Flink命令行提交job
    MybatisPlus QueryWrapper
    MybatisPlus逻辑删除
    MybatisPlus分页操作
  • 原文地址:https://www.cnblogs.com/zhangguangxiang/p/14232544.html
Copyright © 2011-2022 走看看