俯瞰tcp协议的三次握手
来源:互联网 发布:淘宝上情趣用品买家秀 编辑:程序博客网 时间:2024/04/30 10:48
一.Iso七层模型,五层模型
首先了解,tcp是传输控制协议的简称,tcp是工作在传输层的。
下面是报文格式
三。然后了解报文头
Tcp请求头
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
2
3
4
5
6
7
8
9
10
11
12
12
13
14
15
16
行号
源端口地址
目的端口地址
1
序列号seq 32(位)
2
确认号ackV 32(位)
3
Tcp报文头长度4
扩展字段6
Urg(紧急字段)
Ack(确认)
Psh(立即将数据交给应用层)
Rst(重新连接)
Syn(建立连接)
FIN(断开连接)
窗口大小16
4
校验和 16
紧急指针 16
5
可选
6-x
数据一大堆
x-y
了解,报文的格式,以及每个字段的含义:
源端口地址:客户机本机的ip地址
目的端口地址:要发送数据的对方的ip地址
序列号seq:客户机发送的随机数,目的是用来建立连接时候,收到的回复信息是否是正确的。(基于广播协议)
确认号:基于序列号与策略,返回给客户机时,用于给客户机确认自己的身份ip地址。
Tcp报文头长度:报文头的长度有多少,固定是橙色底的20个字节。但由于可选字段会扩展,所以会有这个长度字段。
Urg,ack,psh,rst,syn,fin只有当各自的位数是1的时候,才表示其意义有效。
Urg:紧急位,如果为1,紧急指针有效
Ack:确认位,如果为1,确认号有效
Psh:推送位,如果为1,将报文推送到应用层的基于tcp的协议中,例如基于tcp的http协议。
Rst:重置位,如果为1,则重新建立连接。
Syn:建立连接位:如果为1,开始建立连接的动作。
Fin:结束连接位:如果为1,则结束建立的连接。不再发送数据包。
窗口大小:窗口字段用来控制对方发送的数据量,可以告知对方目前本身有的缓冲器容量(ReceiveBuffer)还可以接收封包。当 Window=0时,代表缓冲器已经额满,所以应该要暂停传输数据。单位为字节。TCP连接的一端根据设置的缓存空间大小确定自己的接收窗口大小,然后通知对方以确定对方的发送窗口的上限,这个值是本机期望一次接收的字节数。
校验和:校验数据报文的完整性。
紧急指针:报文的偏移量。URG= 1有效。紧急指针指出在本报文段中的紧急数据的最后一个字节的序号。
关于各个字段更详细的解释请参考
csdn博文:http://blog.csdn.net/jason_zjj/article/details/54563446
- 俯瞰tcp协议的三次握手
- TCP协议的三次握手
- Tcp协议的三次握手
- TCP协议的三次握手
- TCP协议的三次握手
- TCP的三次握手协议
- TCP三次握手协议
- TCP 三次握手协议
- TCP三次握手协议
- TCP三次握手协议
- TCP三次握手协议
- tcp三次握手协议
- TCP三次握手协议
- TCP协议三次握手
- TCP三次握手协议
- TCP协议三次握手
- TCP协议三次握手
- TCP协议三次握手
- 图片加载之Glide使用总结
- mysql group by limit (根据某一分组,取固定条数) 实现
- UNPv13:#第3章#套接字编程简介
- 为什么爱奇艺等网站在Chrome上可以播放,在Android上的浏览器桌面版播放不了?
- SAP OData介绍
- 俯瞰tcp协议的三次握手
- RabbitMQ在Centos7中安装及使用
- Kotlin入坑(五)类和继承二
- 关于eclipse中js文件没有提示代码的解决
- hbase1.3配置snappy压缩
- project euler 5
- [JZOJ4695]【GDOI2017模拟8.14】佐助的难题
- 【机器学习】Sklearn独热编码one hot 编码preprocessing.OneHotEncoder()使用
- opencv: cv2.applyColorMap 伪色彩