美文网首页
TCP/IP协议:TCP协议

TCP/IP协议:TCP协议

作者: dc630f46ee2d | 来源:发表于2018-03-08 17:51 被阅读0次

    传输控制协议(Transmission Control Protocol, TCP) 最终目的是为数据提供的端到端传输。

    端是终端,点是结点,网络层是实现结点(路由器)的通信。终端可以是PC,笔记本,手机。结点一般表示路由器

    WechatIMG37.jpeg

    20字节
    源端口(16位 Source Port): 用来传输数据包的端口
    目的端口(16位 Destination Port ) : 数据包将要发送到的端口
    序号(32位 Sequence Number): 这个数字用来表示一个TCP片段,这个域用来保证数据流中的部分没有缺失。
    确认号(32位 Acknowledgment Number):这个数字是通信中希望从另外一个设备得到的下一个数据包的序号
    标记(Flags): URG ACK PSH RST SYN FIN 表示所传输的TCP数据包的类型
    窗口大小(Windows Size): TCP 接收者缓冲的字节大小
    校验和(Checksum):用来保证TCP头和数据的内容在抵达目的地时的完整性
    紧急指针(Urgent Pointer):如果设置了URG位,这个域将被检查作为额外的指令,告诉CPU从数据包的哪里开始读取数据。
    选项(Options):各种可选的域,可以在TCP数据包中进行指定。

    TCP端口

    1. 所有TCP通信都会使用源端口和目的端口。
    2. 为了能够将数据传输到远程服务器或设备的特定应用中去,TCP数据包必须知道远程服务所监听的端口。

    在使用TCP进行通信的时候,我们有65535个端口可供使用,并通常将这些端口分成两个部分。

    • 1~1023是标准端口组(忽略掉被预留的0),特定服务会用到这些通常位于标准端口分组中的标准端口。
    • 1024~65535是临时端口组(尽量一些操作系统对此有不同的定义),当一个服务想在任意时间使用端口进行通信的时候,现代操作系统都会随机地选择一个源端

    所有基于TCP的通信都以相同的方式工作: 选择一个随机的源端口与一个已知的目的端口进行通信。在发出初始数据包之后,远程设备就会与源设备使用建立起的端口进行通信。

    TCP三次握手

    • 保证源主机确认目的主机在线,并可以进行通信
    • 让源主机检查是否正在监听视图尝试区去连接的端口
    • 允许源主机向接收者发送它的起始序列号,让两台主机可以将数据包流保持有序

    TCP三次握手分为3个步骤。
    第一步,主动发起通信的设备向目标发送一个TCP数据包。初始数据包除了底层协议头外不包括任何数据。这个数据包会设置SYN标志(设为1),并用到初始序列号
    第二步,目标回复一个设置了SYNACK标志(同时设置)和包含它的初始序列号的数据包。
    第三步,主机A向主机B发送仅仅设置了ACK标志的数据包。这个过程之后,双方设备有了开始正常通信所需的信息。
    第一步中 SYN为1 序列号为X ACK号为0 发送的包叫SYN包
    第二步中 SYN为1 ACK为1 序列号为Y,ACK号为X+1 发送的包叫SYN/ACK包
    第三步中 ACK为1 序列号为X+1 ACK号为Y+1 发送的包叫ACK包(此时SYN也有值,比上一次SYN号+1)

    个人理解

    SYN 标志 是一个标志位 占一个位
    ACK标志 和 SYN标志可以共存。因为它们占用的是不同的位
    序列号 是一个32位的数字 确认号 是一个32位的数字
    确认号和序列号也可以共存。

    相关文章

      网友评论

          本文标题:TCP/IP协议:TCP协议

          本文链接:https://www.haomeiwen.com/subject/vleptftx.html