网络原理:报文头

 

网络上下五十年的技术,浓缩起来就是TCP/IP文化

TCP/IP协议的精华,就是报文头

读懂了报文头,就读懂了TCP/IP协议

TCP/IP的精神,就是有连接,又可靠的精神

 

 

 

 

网络原理:报文头

细节暂不赘述,我们先通过报文头,给你一个提纲

 

内容

用于的TCP特性

第一行,

源端口号,目的端口号,标识两端进程

端到端

第二第三行

序号ISN是当前报文的序号,确认号ack是你当前收到最新报文的序号加一

可靠协议,防止乱序/丢包

六个标识位

SYN,FIN,ACK与连接的建立和断开息息相关

有连接的协议

 

剩下的类似,都是用于限定这个报文的模式的

六个标识位都是用于控制包的状态的

窗口

还能收多少数据

拥塞控制

校验和,紧急针

知道是啥就行

 

 

 

 

 

 

 

 

 

上面是原创,下面是整理加总结。固定长度20字节+可变长度

源/目标端口

源端口、目标端口是用16位表示的

可推算计算机的端口个数为2^16个

***:

表示本报文段所发送数据的第一个字节的编号。

 

确认号:

表示接收方期望收到发送方下一个报文段的第一个字节数据的编号。

 

数据偏移:

表示TCP报文段的首部长度,共4位,

它指出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。

URG:

表示本报文段中发送的数据是否包含紧急数据。

=1时使紧急指针字段有效

ACK:

表示是否前面确认号字段是否有效。

TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报文段称为确认报文段

PSH:

提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,

数据要提交给上层应用,而不是缓存起来

RST:

RST=1的报文,说明与主机的连接出现了严重错误(如主机崩溃),

必须释放连接,然后再重新建立连接。

SYN:

在建立连接时使用,用来同步序号。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有在前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段

当SYN=1,ACK=0时,表示这是一个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连接。

FIN:

若FIN=1,告诉对方:“我的数据已经发送完毕,你可以释放连接了”

 

窗口大小:

表示现在允许对方发送的数据量,

也就是告诉对方,从本报文段的确认号开始允许对方发送的数据量,

达到此值,需要ACK确认后才能再继续传送后面数据,

校验和:

提供额外的可靠性

信息安全,密码校验

紧急指针:

标记紧急数据在数据字段中的位置

只有当URG=1时才有效

 

MTU=MSS+IP Header+TCP Header

最大数据长度,大概是1460字节