• TCP/IP协议详解


    好,我们直接开始今天的 TCP/IP 协议,这两个协议与我们平时网络生活中的绝大部分内容都息息相关,包括现在打开的这个博客也是通过 TCP/IP 协议来发送到你的设备上的。

    1. TCP/IP 协议的四层结构

    在计算机网络中共包括四层结构,从上到下分别是应用层、传输层、网络层和链路层。

    应用层顾名思义就是我们的应用程序运行的层级,在这一层主要工作内容就是规定数据的格式,当然不同的应用层序可能有不同的数据格式要求,于是就产生了HTTP、HTTPS、FTP等各种各样的协议,这些协议都是属于应用层这一级的。

    传输层就是我们的 TCP 协议所在的层级了,TCP 协议可以提供可靠的数据传输,在传输成会将从应用层接收到的数据包装成一个 TCP 的数据帧,继续发送到网络层;也可以将从网络层接收到的数据分发到相应的应用程序,这里区分应用程序时通过端口来区分的,每个应用程序都会分配一个端口,相应的端口号会写到数据帧的报头中。

    网络层是 IP 协议所在的层级,顾名思义这一层将 IP 地址写进了 IP 数据帧的报头,并进行分组发送。

    链路层就是我们物理设备的层级了,每个网卡都有一个 MAC 地址,在这一层会将 MAC 地址写进数据帧的报头,并将数据帧广播到以太网;同时这一层也会接收到以太网上发送的数据帧,并检查报头中的 MAC 地址是否匹配,如果是发给自己的数据帧则接收,并剥离出 TCP 的数据帧发送给网络层。

    应用层规定数据格式,写入真正发送的数据;应用层提供可靠的数据传输,并写入端口号;网络层写入 IP 地址,进行分组发送,提供的是不可靠的数据传输;链路层写入 MAC 地址,并向以太网广播数据帧,同时也可以接收数据帧。整个数据包装就像套娃一样的一层套一层,上一层的报文是下一层的报头和报文。

    2. TCP 数据帧格式

    TCP数据帧

    标志位:

    URG:紧急标志,为 1 时表示有效,会有限处理该数据帧。

    ACK:确认标志,表明确认编号栏有效,提示远端系统已经成功接收数据。

    PSH:推标志,置位时接收端将不对该数据帧进行队列处理,而是尽可能的将数据转到应用处理。

    RST:复位标志,重新进行 TCP 连接。

    SYN:同步标志,表示同步序列号栏有效,尽在三次握手建立 TCP 连接时有效。

    FIN:结束标志,表示结束 TCP 连接。

    3. TCP 协议的三次握手

    三次握手

    第一次握手:客户端主动发起连接,向服务端发送 SYN 请求(SYN=1,seq=x);服务端确认客户端发送功能正常。

    第二次握手:服务端接收到客户端发送的 SYN 请求,发送 ACK 确认(SYN=1, ACK=1, ack=x+1, seq=y)客户端确认服务端接收和发送功能正常。

    第三次握手:客户端接收到服务端返回的 ACK 确认信息,发送连接建立确认 ACK (ACK=1,ack=y+1)服务端确认客户端接收功能正常,连接建立。

    下面看一个例子:

    这是我用抓包工具抓到的一次 TCP 连接的建立过程 ,共包括三次通信,即三次握手。

    橘色框内的是源IP,源端口和目的IP,目的端口。

    红色框内是标志位。

    紫色框内是序号。

    4. TCP 四次挥手

    四次挥手

    第一次挥手:客户端发送 FIN 请求关闭连接(FIN=1,seq=u),表示客户端不再发送数据,但是还可能接收服务端发送的数据。

    第二次挥手:服务端发送接收确认 ACK (ACK=1,seq=v,ack=u+1),表示服务端收到了客户端的关闭请求,不再接收客户端的数据,但仍可以向客户端发送数据。

    第三次挥手:服务端发送 FIN 关闭连接(FIN=1,ACK=1,seq=w,ack=v+1),服务端表示不再发送数据。

    第四次挥手:客户端发送接收确认 ACK(ACK=1,ack=w+1,seq=u+1),客户端表示知道了,完成断开 TCP 连接。

  • 相关阅读:
    jquery 实现 html5 placeholder 兼容password密码框
    php返回json的结果
    使用PHP读取远程文件
    Sharepoint 自定义字段
    Sharepoint 中新增 aspx页面,并在页面中新增web part
    【转】Sharepoint 2010 配置我的站点及BLOG
    JS 实现 Div 向上浮动
    UserProfile同步配置
    【转】Import User Profile Photos from Active Directory into SharePoint 2010
    Sharepoint 2010 SP1升级后 FIMSynchronizationService 服务无法开启
  • 原文地址:https://www.cnblogs.com/dongyangblog/p/12104931.html
Copyright © 2020-2023  润新知