zoukankan      html  css  js  c++  java
  • tcp报文和udp报文结构

    TCP

    tcp是面向连接的,能保证不丢失数据。流量控制,阻塞控制。提供可靠的数据服务。一对一

    16位端口号

    源端口

    目标端口

    标示该段报文来自哪里(源端口)以及要传给哪个上层协议或应用程序(目的端口)

    进行tcp通信时,一般client是通过系统自动选择的临时端口号,而服务器一般是使用知名服务端口号或者自己指定的端口号

    32位序号

    序列号(Sequence number)

    表示一次tcp通信过程(从建立连接到断开)过程中某一次传输方向上的字节流的每个字节的编号

    假定主机A和B进行tcp通信,A传送给B一个tcp报文段中,序号值被系统初始化为某一个随机值ISN,那么在该传输方向上(从A到B),后续的所有tcp报文断中的序号值都会被设定为ISN加上该报文段所携带数据的第一个字节在整个字节流中的偏移

    例如某个TCP报文段传送的数据是字节流中的第1025~2048字节,那么该报文段的序号值就是ISN+1025

    TCP 是面向字节流的协议,通过 TCP 传输的字节流的每个字节都分配了序列号,序列号(Sequence number)指的是本报文段第一个字节的序列号

    序列号回绕

    https://blog.csdn.net/liufuchun111/article/details/86301587

    32位确认号

    用作对另一方发送的tcp报文段的响应。

    其值是收到对方的tcp报文段的序号值+1。假定主机A和B进行tcp通信,那么A发出的tcp报文段不但带有自己的序号,也包含了对B发送来的tcp报文段的确认号。反之也一样。

    4位头部长度

    表示tcp头部有多少个32bit字(4字节),因为4位最大值是15,所以最多有15个32bit,也就是60个字节是最大的tcp头部长度。

    6位标志位

    URG

    紧急指针是否有效

    ACK

    表示确认好是否有效,携带ack标志的报文段也称确认报文段

    PSH

    提示接收端应用程序应该立即从tcp接受缓冲区中读走数据,为后续接收的数据让出空间

    RST

    表示要求对方重建连接。带RST标志的tcp报文段也叫复位报文段

    SYN

    表示建立一个连接,携带SYN的tcp报文段为同步报文段

    FIN

    表示告知对方本端要关闭连接了。

    16为窗口大小

    是TCP流量控制的一个手段,这里说的窗口是指接收通告窗口,它告诉对方本端的tcp接收缓冲区还能容纳多少字节的数据,这样对方就可以控制发送数据的速度。

    16位校验和

    由发送端填充,接收端对tcp报文段执行CRC算法以检验TCP报文段在传输过程中是否损坏。注意这个校验不仅包括tcp头部,也包括数据部分。这也是tcp可靠传输的一个重要保障。

    16位紧急指针

    是一个正的偏移量。它和序号字段的值相加表示最后一个紧急数据的下一字节的序号

    因此这个字段是紧急指针相对当前序号的偏移量。不妨称之为紧急便宜,发送紧急数据时会用到这个


    大小

    TCP 报文头部里没有源 ip 和目标 ip 地址,只有源端口号和目标端口号

    过滤 ip 地址使用 ip.addr == 要过滤的地址
    

    TCP 的报文里是没有源 ip 和目标 ip 的,因为那是 IP 层协议的事情,TCP 层只有源端口和目标端口。

    源 IP、源端口、目标 IP、目标端口构成了 TCP 连接的「四元组」
    一个四元组可以唯一标识一个连接

    UDP

    udp是非面向连接的,尽量保证数据交付,非按顺序到达。头部开销小,实现简单

    • 源端口号
    • 目的端口号
    • udp长度
    • udp校验和

  • 相关阅读:
    Java之static作用的深度总结
    关于UiAutomator无法识别的元素
    pom.xml详解
    maven的依赖范围scope
    maven-surefire-plugin插件
    remote origin already exists解决办法
    resin启动报错:guava-15.0.jar!/META-INF/beans.xml:5: <beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"> is an unexpected top-level tag. 异常
    Mysql存储过程
    ical4j 实现ICS文件的生成和解析
    设计模式之观察者模式
  • 原文地址:https://www.cnblogs.com/HKUI/p/13889031.html
Copyright © 2011-2022 走看看