1.TCP:全双工,传输层协议

源端口和目的端口:各占2个字节,是运输层与应用层的服务接口。

序号:占4个字节。TCP连接传送的数据流中的每一个字节都被编上一个序号。首部中序号字段的值指的是本报文段所发送的数据的第一个字节的序号。

确认号:占4个字节,是期望收到对方下一个报文段的数据的第一个字节的序号。

数据偏移:占4 bit,它指出报文段的数据起始处距离TCP报文段的起始处有多远。实际上就是TCP报文段首部的长度。

保留:占6 bit,保留为今后使用。

紧急比特URG:当URG=1时,表明紧急指针有效。它告诉系统报文段中有紧急数据,应尽快传送。

确认比特ACK:ACK=1时确认号字段才有效,ACK=0时确认号字段无效。

推送比特PUSH:接收方接收到PUSH=1的报文段时会尽快的将其交付给接收应用进程,而不再等到整个接收缓存都填满后再向上交付。

复位比特RST:当RST=1时,表明TCP连接中出现严重差错,必须释放连接。复位比特还用来拒绝一个非法的报文段或拒绝打开一个连接。

同步比特SYN:在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方若同意建立连接,应在响应的报文段中使SYN=1和ACK=1。因此,SYN=1就表示这是一个连接请求或连接接收报文。

终止比特FIN:当FIN=1时,表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。

窗口:占2个字节,用来控制对方发送的数据量,单位是字节,指明对方发送窗口的上限。

校验和:占2个字节,校验的范围包括首部和数据两个部分,计算校验和时需要在报文段前加上12字节的伪首部。

紧急指针:占2个字节,指出本报文段中紧急数据最后一个字节的序号。只有当紧急比特URG=1时才有效。

选项:长度可变。TCP只规定了一种选项,即最大报文段长度MSS (Maximum Segment Size)。

2.UDP:传输前不需要先建立连接,数据被加上两边的端口号后直接发目的地。

●源、目标端口号字段:占16比特。作用与TCP数据段中的端口号字段相同,用来标识源端和目标端的应用进程。

●长度字段:占16比特。标明UDP头部和UDP数据的总长度字节。

●校验和字段:占16比特。用来对UDP头部和UDP数据进行校验。和TCP不同的是,对UDP来说,此字段是可选项,而TCP数据段中的校验和字段是必须有的。

3.IP:它在网络层。

版本:IP协议的版本,目前的IP协议版本号为4,下一代IP协议版本号为6。

首部长度:IP报头的长度。固定部分的长度(20字节)和可变部分的长度之和。共占4位。最大为1111,即10进制的15,代表IP报头的最大长度可以为15个32bits(4字节),也就是最长可为15*4=60字节,除去固定部分的长度20字节,可变部分的长度最大为40字节。

服务类型:Type Of Service。

总长度:IP报文的总长度。报头的长度和数据部分的长度之和。

标识:唯一的标识主机发送的每一分数据报。通常每发送一个报文,它的值加一。当IP报文长度超过传输网络的MTU(最大传输单元)时必须分片,这个标识字段的值被复制到所有数据分片的标识字段中,使得这些分片在达到最终目的地时可以依照标识字段的内容重新组成原先的数据。

标志:共3位。R、DF、MF三位。目前只有后两位有效,DF位:为1表示不分片,为0表示分片。MF:为1表示“更多的片”,为0表示这是最后一片。

片位移:本分片在原先数据报文中相对首位的偏移位。(需要再乘以8)

生存时间:IP报文所允许通过的路由器的最大数量。每经过一个路由器,TTL减1,当为0时,路由器将该数据报丢弃。TTL 字段是由发送端初始设置一个 8 bit字段.推荐的初始值由分配数字 RFC 指定,当前值为 64。发送 ICMP 回显应答时经常把 TTL 设为最大值 255。

协议:指出IP报文携带的数据使用的是那种协议,以便目的主机的IP层能知道要将数据报上交到哪个进程(不同的协议有专门不同的进程处理)。和端口号类似,此处采用协议号,TCP的协议号为6,UDP的协议号为17。ICMP的协议号为1,IGMP的协议号为2.

首部校验和:计算IP头部的校验和,检查IP报头的完整性。

源IP地址:标识IP数据报的源端设备。

目的IP地址:标识IP数据报的目的地址。

4.ARP:IP地址解析成物理MAC地址,属于网络层(在TCP/IP里)或者链路层(在7层模型里)。

以太网目的地址:接收方设备的硬件地址(48bit,目的地址全为1的特殊地址是广播地址)。

以太网源地址:发送方的硬件地址

帧类型:表示后面数据的类型(其中,0x0806表示后面的数据是属于ARP包的,其他还可能属于IP包)。

硬件类型:表示硬件地址的类型(其中,值为1表示以太网地址,其他还可能表示令牌环地址)。

协议类型:表示要映射的协议地址类型(其中,0x0800表示IP地址,其他还可能是ICMP/IGMP)。

硬件地址长度:指出该报文中硬件地址的长度(ARP报文中,它的值为6)。

协议地址长度:指出该报文中协议地址的长度(ARP报文中,它的值为4)。

op:操作字段,共有4种类型(1.ARP请求,2.ARP应答,3.RARP请求,4.RARP应答)。

发送端以太网地址:发送方设备的硬件地址。

发送端IP地址:发送方设备的IP地址。

目的以太网地址:接收方设备的硬件地址。

目的IP地址:接收方设备的IP地址。

原文链接:https://blog.csdn.net/zqixiao_09/article/details/79285069

TCP,IP,UDP等各种报文格式相关推荐

  1. QT入门第七天 网络编程TCP/IP/UDP+Http和JSON解析+qt事件软键盘【CSDN最详细】

    网络编程+Http和JSON解析+qt事件软键盘 第一章 QT中的网络编程 [1]涉及到的类 [2]tcp协议的流程 [2.1]服务器的流程 socket-->bind-->listen- ...

  2. python web开发 网络编程 TCP/IP UDP协议

    文章目录 1. TCP/IP协议 1.1 IP协议 1.2 TCP协议 2. UDP协议 3. Socket 4. TCP编程 4.1 创建TCP服务器 4.2 创建TCP客户端 4.3 简易聊天工具 ...

  3. TCP/IP协议:最大报文段长度(MSS)是如何确定的

    TCP提供的是一种面向连接的,可靠的字节流服务,TCP提供可靠性的一种重要的方式就是MSS.通过MSS,应用数据被分割成TCP认为最适合发送的数据块,由TCP传递给IP的信息单位称为报文段或段(seg ...

  4. 基础(网络知识 三)——网络系统各层协议分析总结(TCP/IP/UDP/HTTP.....)

    网络系统按照分层的思想设计了当下的网络系统结构,主要是TCP/IP四层网络结构,各层是如何工作的呢?每一层都有相关的协议,各协议具体是什么?原理与作用是什么?本节主要总结介绍网络层的相关协议规则,从而 ...

  5. Linux Tcp/ip UDP基本概念(6.8)

    [1] 历史     1. 网络的产生        1957                     Sputnik        1958                     国防高级项目研究 ...

  6. TCP/IP UDP用户数据报协议 运输层

    快速导航 UDP在TCP/IP中的位置? 用户数据报的格式? UDP协议对数据进行封装和解封? 队列与端口实现? 复用与分用? UDP的一些特点? UDP输入队列? 输入模块伪代码欣赏? User D ...

  7. 什么是TCP/IP UDP 详解

    文章目录 TCP/IP TCP/IP协议介绍 TCP协议 TCP应用场景 TCP 三次握手 为什么要三次握手 TCP四次挥手 为什么断开要断四次 常用的TCP端口号及其功能 IP协议 UDP协议 UD ...

  8. TCP/IP协议:最大报文段长度(MSS)是如何确定的(3)

    一.实际使用中的问题 用户在使用路由器访问Internet时,经常会反馈不能访问网页(或部分网页)以及使用Outlook收发邮件(这些应用是基于TCP或UDP的),但进行Ping包时没有问题,这时候检 ...

  9. TCP/IP协议、请求报文和响应报文

    一.TCP/IP协议 1.计算机与网络设备相互通信 计算机与网络设备要相互通信, 双方就必须基于相同的方法. 比如:如何探测到通信目标. 由哪一边先发起通信. 使用哪种语言进行通 信. 怎样结束通信等 ...

  10. TCP/IP协议:最大报文段长度(MSS)是如何确定的(2)

    一旦DF位置一,将不允许中间设备对该报文进行分片,那么在遇到IP报文长度超过中间设备转发接口的MTU值时,该IP报文将会被中间设备丢弃.在丢弃之后,中间设备会向发送方发送ICMP差错报文. 为了简单直 ...

最新文章

  1. 【透明版九宫格背景图片】仅依靠background的几个属性组合搭配出酷炫的透明背景卡片效果→适用于大数据可视化、数据大屏展示页面
  2. pgsql中层次查询方法
  3. flutter集成oc
  4. C++类模板特化全总结
  5. 数据库-Oracle【Oracle数据库设置默认表空间问题及Oracle,SQL,MySQL的自增变量设置】...
  6. linux mint 自动更新设置,如何升级到Linux Mint 19.1
  7. 第三方插件渗透攻击之KingView
  8. android中Stub Proxy答疑
  9. Twitter 惊现密码漏洞,强制 3.3 亿用户修改密码!
  10. 企业如何提升数据质量
  11. 在linux环境下编译运行OpenCV程序的两种方法 - woshijpfgg
  12. postman下载文件乱码
  13. JAVA自学知识点评定标准--自尚学堂马士兵
  14. veu-cli搭建项目
  15. 解决windows2003 sp1“数据执行保护”惹的祸
  16. kettle 配置jndi数据源
  17. 基于SEIR模型的网络医疗众筹传播建模与仿真分析
  18. tf.constant学习
  19. 如何使用FFmpeg的解码器
  20. python正则表达式面试_python-面试题

热门文章

  1. 句柄(handle)是什么?
  2. 金蝶K3 Wise—BOM批量多级展开
  3. winhex恢复误GHOST系统造成的数据丢失
  4. IO编程(对IO是什么的详解)
  5. android ndk官网下载地址,android ndk下载
  6. .net reactor使用教程(4)——.net reactor针对De4Dot脱壳工具的应对
  7. Echarts官网无法打开的问题
  8. 前端菜鸟浅谈Web前端开发技术
  9. linux下不能访问windows磁盘
  10. SSH 免密码/免用户名/免IP登录云服务器实践