你们好,我的网工朋友。
你最熟悉的报文是啥?TCP、UDP?
在网络世界里,就如同道路系统让车辆畅通无阻一样,网络协议是确保信息顺畅传输的关键。
作为网络工程师,理解网络协议的种类与结构至关重要。
今天就和你一起探索一下11种关键协议报文格式啊:
包括TCP、UDP、IP、IPv6、IPsec、以太网帧结构、802.1Q以太网帧结构、802.11无线链路帧、SSL记录、RTP实时传输协议以及OpenFlow流表。
通过深入了解这些协议的功能和特性,更好地掌握网络通信的本质。
今日文章阅读福利:《 华为官方出品-网络协议报文格式大全 》
私信我,发送暗号“报文”,获取这份842页的精品资源。
01 TCP1、源端口号和目的端口号:
用16bit表示所以端口号范围为0~65535,用来标识源主机和目的主机上的进程,用于运输层的多路复用和多路分解。
2、序号:
用于TCP重发时区分是第一次发送还是重发的TCP段,还可以在一次连接的范围防止重放攻击,不重数可以在很久时间防止重放攻击。
3、重放攻击:
攻击者拿到加密片段重新发给服务器,比如我们加密了密码,但攻击者仍然可以在不破解我们密码情况下,可以拿我们加密的密码直接去登录我们账号,所以可以在加密的时候把我们的密码和一个不重数拼在一起再加密,所以我们的密码加密版本,每次都会不同。
4、确认号:
和序号对应,指示发送确认号的一方下一次想接收的数据的序号,即接收方发送的确认号,表示接收方希望发送方下次发送数据的序号为确认号。
5、首部长度:
4比特,最多可以表示16个单位,每个单位是32比特即4个字节,所以最多可以表示64字节,所以TCP首部最长为64字节,一般如果没有选项字段只有20字节。@网络工程师俱乐部
6、标志字段:
每个占1bit,SYN用于建立TCP连接,FIN用于终止连接,ACK用于确认收到,RST用于重置连接(相当于异常终止连接),PSH用于指示接收方尽快把数据交给上层,URG用于表示TCP报文段中有紧急数据,CWR和ECE用于明确拥塞通告。
7、明确拥塞通告:
当路由器发现网络拥塞后设置IP数据报的ECN比特,接收方收到这个ECN比特的信息后,将TCP报文段上面的ECE比特置为1,然后发回给发送方,发送方收到ECE信息后,以减半拥塞窗口作为回应,并在下一次发送TCP报文段时把报文段上的CWR比特置为1,以告诉接收方拥塞窗口已减半。
8、接收窗口:
用于流量控制,是表示接收方接收缓冲还能容纳多少数据,发送方发送时会以接收窗口和拥塞窗口之中最小的为滑动窗口来流水线式发送数据。
9、因特网校验和:
16位,即两个字节,用于检测TCP头和数据有无错误,将报文段以16比特为一个单位,全部相加,溢出的会在结果后面加一,最后得到一个16比特的数,此时因特网校验和加上这一个16比特的数后使得16比特全变为1,如果不是1那么就传输出错。
10、紧急数据指针:
紧急数据的最后一个字节由16比特的紧急数据指针字段指出。
02 UDP1、源端口号和目的端口号:
用16bit表示所以端口号范围为0~65535,用来标识源主机和目的主机上的进程,用于运输层的多路复用和多路分解。
2、长度:
UDP是一次性发送上层的数据,不会像TCP一样将上层的报文进行分段处理,16bit最多可以表示65535个字节,是首部加数据的长度,首部长度固定8字节。
3、因特网校验和:
16位,即两个字节,用于检测UDP头和数据有无错误,将报文段以16比特为一个单位,全部相加,溢出的会在结果后面加一,最后得到一个16比特的数,此时因特网校验和加上这一个16比特的数后使得16比特全变为1,如果不是1那么就传输出错。@网络工程师俱乐部
03 IP