• 计算机基础二 网络基础


    ISO/OSI七层传输模型(TCP/IP五层模型)

    ISO:International Organization for Standardization简称ISO,是一个全球性的非政府组织,是国际标准化领域中一个十分重要的组织。
    OSI:Open System Interconnection即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。
    TCP/IP(Transmission Control Protocol / Internet Protocol)控制传输协议/因特网互联协议,即互联网协议。

    应用层:传输层的数据到达应用程序时,以某种统一规定的协议格式解读数据,比如http的网络数据或者smtp的邮件数据。
    表示层是数据的表示、安全、压缩。(在五层模型里面已经合并到了应用层)
    会话层是建立、管理、终止会话。(在五层模型里面已经合并到了应用层)
    传输层定义传输数据的协议端口号,以及流控和差错校验。
    网络层进行逻辑地址寻址,实现不同网络之间的路径选择。
    链路层以字节为单位把0和1分组定义数据帧,写入源和目标机器的物理地址、数据、校验位来传输数据。
    物理层建立、维护、断开物理连接。
    总结:数据在发送消息时,应用层按既定的协议打包数据,传输层加上双方的端口号,网络层加上双方的IP地址,链路层加上双方的MAC地址并将数据拆分成数据帧。

    TCP协议

    TCP报文头包含源机器端口号及目标机器端口号(16位),所以机器的最大端口号为2的16次方即65535。
    包含序列号seq及确认序号ack。序列号是所发送数据包中数据部分第一个字节的序号,确认序号是期望收到来自对方的下一个数据包中数据部分第一个字节的序号。
    报头中包含6个FLAG。主要关注SYN、ACK、FIN。SYN是建立连接时的同步信号;ACK用于对收到的数据进行确认,所确认的数据由确认序列号表示;FIN表示后面没有数据需要发送了,通常表示连接需要关闭。

    TCP建立连接(三次握手)

    1:A机器发送数据包并将SYN置为1,表示希望建立连接,序列号为a;
    2:B机器收到A的数据包后,响应数据包并将SYN和ACK置为1,序列号为b,确认序号为a+1;
    3:A机器收到B的数据包后进行确认,确认包将ACK置为1,序列号为a+1,确认序号为b+1;

    TCP断开连接(四次分手)

    1:A机器发送数据包并将FIN置为1,序列号为a;作用是告诉B需要断开连接;此时A处理FIN_WAIT1。
    2:B机器收到A的数据包后,响应数据包并将ACK置为1,序列号为b,确认序号为a+1;作用是告诉A可以断开但是需要等B处理完数据;此时A处于FIN_WAIT2,B处于CLOSE_WAIT。
    3:B处理完数据后,给A发送数据包并将FIN和ACK置为1,序列号为c,确认序号为a+1;作用是告诉A服务器B已经处理完数据可以断开了;此时B处于LAST_ACK。
    4:A机器收到B的数据包后,响应数据包并将ACK置为1,序列号为a+1,确认序号为c+1;作用是告诉B服务器收到断开确认了;此时A处理TIME_WAIT,等待2MSL后A断开连接CLOSE,B机器收到A的响应数据包后就CLOSE

  • 相关阅读:
    Python学习之路 (五)爬虫(四)正则表示式爬去名言网
    Python学习之路 (四)爬虫(三)HTTP和HTTPS
    Python学习之路 (三)爬虫(二)
    Python学习之路 (二)爬虫(一)
    Python学习之路 (一)开发环境搭建
    ZooKeeper学习之路 (十一)ZooKeeper API的应用
    ZooKeeper学习之路 (十)Hadoop的HA集群的机架感知
    Spring Security
    Spring Validation
    [转]linux下完全备份数据库mysql
  • 原文地址:https://www.cnblogs.com/ggza/p/9982382.html
Copyright © 2020-2023  润新知