即 open system interconnection,亦称网络七层参考模型,是国际标准化组织(iso)制定的一个用于计算机或通信系统间互联的标准体系。
## 常用协议端口
根据 rfc793 的定义:套接字 =ip 地址和端口号构成,用于传输层实现端到端的通信。
tcp 即 transmission control protocol(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
源端口
和目的端口
,各占 2 个字节,分别写入源端口和目的端口;
2.序号
,占 4 个字节,tcp 连接中传送的字节流中的每个字节都按顺序编号。例如,一段报文的序号字段值是 301 ,而携带的数据共有 100 字段,显然下一个报文段(如果还有的话)的数据序号应该从 401 开始;
确认号
,占 4 个字节,是期望收到对方下一个报文的第一个数据字节的序号。例如,b 收到了 a 发送过来的报文,其序列号字段是 501,而数据长度是 200 字节,这表明 b 正确的收到了 a 发送的到序号 700 为止的数据。因此,b 期望收到 a 的下一个数据序号是 701,于是 b 在发送给 a 的确认报文段中把确认号置为 701;数据偏移
,占 4 位,它指出 tcp 报文的数据距离 tcp 报文段的起始处有多远;保留
,占 6 位,保留今后使用,但目前应都位 0;urg
,当 urg=1,表明紧急指针字段有效。告诉系统此报文段中有紧急数据;
7 .确认ack
,仅当 ack=1 时,确认号
字段才有效。tcp 规定,在连接建立后所有报文的传输都必须把 ack 置 1;psh
,当两个应用进程进行交互式通信时,有时在一端的应用进程希望在键入一个命令后立即就能收到对方的响应,这时候就将 psh=1;rst
,当 rst=1,表明 tcp 连接中出现严重差错,必须释放连接,然后再重新建立连接;syn
,在连接建立时用来同步序号。当 syn=1,ack=0,表明是连接请求报文,若同意连接,则响应报文中应该使 syn=1,ack=1;fin
,用来释放连接。当 fin=1,表明此报文的发送方的数据已经发送完毕,并且要求释放;窗口
,占 2 字节,指的是通知接收方,发送本报文你需要有多大的空间来接受;检验和
,占 2 字节,校验首部和数据这两部分;紧急指针
,占 2 字节,指出本报文段中的紧急数据的字节数;选项
,长度可变,定义一些其他的可选的参数。