网络中TCP、IP、MAC、UDP的头部格式信息
TCP头部格式
|
字段名称 |
长度(比特) |
含义 |
|
|
TCP头部(20字节~) |
发送方端口号 |
16 |
发送网络包的程序的端口号 |
|
接收方端口号 |
16 |
网络包的接收方程序的端口号 |
|
|
序号(发送数据的顺序编号) |
32 |
发送方告知接收方该网络包发送的数据相当于所有发送数据的第几个字节 |
|
|
ACK号(接收数据的顺序编号) |
32 |
接收方告知发送方接收方已经收到了所有数据的第几个字节。其中ACK是acknowledge的缩写 |
|
|
数据偏移量 |
4 |
表示数据部分的起始位置,也可以认为表示头部的长度 |
|
|
保留 |
6 |
该字段为保留,现在未使用 |
|
|
控制位 |
6 |
该字段中的每个比特分别表示以下通信控制含义。 URG:表示紧急指针字段有效 ACK:表示接收数据序号字段有效,一般表示数据已被接收方接收 PSH:表示通过flush操作发送的数据 RST:强制断开连接,用于异常中断的情况 SYN:发送方和接收方相互确认序号,表示连接操作 FIN:表示断开连接 |
|
|
窗口 |
16 |
接收方告知发送方窗口大小(即无需等待确认可一起发送的数据量) |
|
|
校验和 |
16 |
用来检查是否出现错误 |
|
|
紧急指针 |
16 |
表示应紧急处理的数据位置 |
|
|
可选字段 |
可变长度 |
除了上面的固定头部字段之外,还可以添加可选字段,但除了连接操作之外,很少使用可选字段 |
|
IP头部格式
|
字段名称 |
长度(比特) |
含义 |
|
|
IP头部(20字节~) |
版本号 |
4 |
IP协议版本号,目前使用的版本是4 |
|
头部长度(IHL) |
4 |
IP头部的长度。可选字段可导致头部长度变化,因此这里需要指定头部的长度 |
|
|
服务类型(ToS) |
8 |
表示包传输优先级。 |
|
|
总长度 |
16 |
表示IP消息的总长度 |
|
|
ID号 |
16 |
用于识别包的编号,一般为包的序列号。如果一个包被IP分片,则所有分片都拥有相同的ID |
|
|
标志(Flag) |
3 |
该字段有3个比特,其中2个比特有效,分别代表是否允许分片,以及当前包是否为分片包 |
|
|
分片偏移量 |
13 |
表示当前包的内容为整个IP信息的第几个字节开始的内容 |
|
|
生存时间(TTL) |
8 |
表示包的生存时间,这是为了避免网络出现回环时一个包永远在网络中打转。每经过一个路由器,这个值就会减1,减到0时这个包就会被丢弃 |
|
|
协议号 |
8 |
协议号表示协议的类型(以下均为十六机制)。 TCP:06 UDP:11 ICMP:01 |
|
|
头部校验和 |
16 |
用于检查错误,现在已不使用 |
|
|
发送方IP地址 |
32 |
网络包发送方的IP地址 |
|
|
接收方IP地址 |
32 |
网络包接收方的IP地址 |
|
|
可选字段 |
可变长度 |
除了上面的固定头部字段之外,还可以添加可选字段,但除了连接操作之外,很少使用可选字段 |
|
MAC头部的字段
|
字段名称 |
长度(比特) |
含义 |
|
|
MAC头部(14字节) |
接收方MAC地址 |
48 |
网络包接收方的MAC地址,在局域网中使用这一地址来传输网络包 |
|
发送方MAC地址 |
48 |
网络包发送方的MAC地址,接收方通过它来判断是谁发送了这个包 |
|
|
以太类型 |
16 |
使用的协议类型。以下是一些常见的类型,一般在TCP/IP通信中只使用0800和0806这两种。 0000-05DC:IEEE 802.3 0800 :IP协议 0806 :ARP协议 86DD :IPv6 |
|
UDP头部中的控制信息
|
字段名称 |
长度(比特) |
含义 |
|
|
UDP头部(8字节) |
发送方端口号 |
16 |
网络包发送方的端口号 |
|
接收方端口号 |
16 |
网络包接收方的端口号 |
|
|
数据长度 |
16 |
UDP头部后面数据的长度 |
|
|
校验和 |
16 |
用于校验错误 |
|
网络中TCP、IP、MAC、UDP的头部格式信息的更多相关文章
- python 网络编程 TCP/IP socket UDP
TCP/IP简介 虽然大家现在对互联网很熟悉,但是计算机网络的出现比互联网要早很多. 计算机为了联网,就必须规定通信协议,早期的计算机网络,都是由各厂商自己规定一套协议,IBM.Apple和Micro ...
- Python中的socket网络编程(TCP/IP,UDP)讲解
在网络编程中的一个基本组件就是套接字(socket).套接字基本上是两个端点的程序之间的"信息通道".程序可能分布在不同的计算机上,通过套接字互相发送信息.套接字包括两个:服务器套 ...
- 网络协议: TCP/IP 和UDP/IP
网络协议: TCP/IP 和UDP/IP TCP/IP TCP/IP(Transmission Control Protocol/Internet Protocol)是一种可靠的网络数据传输控制协议. ...
- 网络编程TCP/IP详解
网络编程TCP/IP详解 1. 网络通信 中继器:信号放大器 集线器(hub):是中继器的一种形式,区别在于集线器能够提供多端口服务,多口中继器,每个数据包的发送都是以广播的形式进行的,容易阻塞网络. ...
- 网络知识--OSI七层网络与TCP/IP五层网络架构及二层/三层网络
作为一个合格的运维人员,一定要熟悉掌握OSI七层网络和TCP/IP五层网络结构知识. 废话不多说!下面就逐一展开对这两个网络架构知识的说明:一.OSI七层网络协议OSI是Open System Int ...
- 网络知识梳理--OSI七层网络与TCP/IP五层网络架构及二层/三层网络(转)
reference:https://www.cnblogs.com/kevingrace/p/5909719.html https://www.cnblogs.com/awkflf11/p/9190 ...
- 加深理解HTTP请求---网络基础TCP/IP
为了了解HTTP,必须的了解TCP/IP协议族. 通常使用的网络实在TCP/IP协议族的基础上运作的.而HTTP就属于他的一个子集. 1.TCP/IP 协议族 计算机与网络设备要相互通信,双方就必须基 ...
- 网络协议TCP/IP、IPX/SPX、NETBEUI简介
网络中不同的工作站,服务器之间能传输数据,源于协议的存在.随着网络的发展,不同的开发商开发了不同的通信方式.为了使通信成功可靠,网络中的所有主机都必须使用同一语言,不能带有方言.因而必须开发严格的标准 ...
- Socket网络编程(TCP/IP/端口/类)和实例
Socket网络编程(TCP/IP/端口/类)和实例 原文:C# Socket网络编程精华篇 转自:微冷的雨 我们在讲解Socket编程前,先看几个和Socket编程紧密相关的概念: TCP/IP层次 ...
随机推荐
- python源码安装
# mkdir /apps/Python- 解压源码包,进入源码包 [root@LB_81 Python-]# ls aclocal.m4 configure.ac install-sh Makefi ...
- 转:Math: Math.atan() 与 Math.atan2() 计算两点间连线的夹角
我们可以使用正切操作将角度转变为斜率,那么怎样利用斜率来转换为角度呢?可以利用斜率的反正切函数将他转换为相应的角度.as中有两个函数可以计算反正切,我们来看一下. 1.Math.atan() Math ...
- What-are-P-NP-NP-complete-and-NP-hard
https://www.amazon.com/Computational-Complexity-Approach-Sanjeev-Arora/dp/0521424267 http://theory.c ...
- 【Session】Tomcat中Session持久化到文件系统或数据库
参考的优秀文章 Tomcat Session 持久化 Package org.apache.catalina.session 最近同事在做Session外置的功能,我对Session持久化.共享也不太 ...
- 理解Netty中的零拷贝(Zero-Copy)机制【转】
理解零拷贝 零拷贝是Netty的重要特性之一,而究竟什么是零拷贝呢? WIKI中对其有如下定义: “Zero-copy” describes computer operations in which ...
- 【Android】LayoutInflater
LayoutInflater的作用 LayoutInflater的作用类似于findViewById(). 不同点是: LayoutInflater是用来找res/layout/下的xml布局文件,并 ...
- 【Windows】windows核心编程整理(下)
windows核心编程整理(上) windows核心编程整理(下) 线程的堆栈 每当创建一个线程时,系统就会为线程的堆栈(每个线程有他自己的堆栈)保留一个堆栈空间区域,并将一些物理存储器提交给这个以保 ...
- 显示eclipse中Problem窗口的方法
https://blog.csdn.net/ningfuxuan/article/details/76395029 ****************************************** ...
- Python爬取新浪微博评论数据,写入csv文件中
因为新浪微博网页版爬虫比较困难,故采取用手机网页端爬取的方式 操作步骤如下: 1. 网页版登陆新浪微博 2.打开m.weibo.cn 3.查找自己感兴趣的话题,获取对应的数据接口链接 4.获取cook ...
- LeetCode: Merge k Sorted Lists 解题报告
Merge k Sorted Lists Merge k sorted linked lists and return it as one sorted list. Analyze and descr ...