无连接通信:直接扔数据给对方。
有连接通信:发送数据之前需要提醒对方。
TCP: 面向连接、可靠的传输数据。
TCP:三次握手:
A->B : SYN(SqNo=x)
B->A : SYN+ACK(SqNo=y, AckNo=x+1)
A->B : ACK(SqNo=x+1,AckNo=y+1)
TCP:四次挥手
A->B : Fin(SqlNo=f)
B->A: Ack(SqlNo=z,SqlNo=f+1)
B->A: Fin(SqlNo=z+1)
A->B: Ack(SqlNo=f+1, AckNo=z+2)
TCP段格式
头部长度*4=头部长度; (1000)2 * 4 =8*4=32
options 长度可变 , 保证分段头部是字节是是4的倍数。
确认与重传机制
在发生TCP段时启用定时器, 在规定时间内,发出的TCP段没有收到对方的确认,TCP分段将重新发送。tcp协议具有累计确认特效。
序列号和确认号
确认号: 确认收到的数据。假设确认号为x+1 , 代表编号小于或等于x字节我已经收到,请你发送的下一个TCP序列号为x+1。
序列号: 对传送的数据编号。 假设 第一个字节编号为x, 那么第二个字节编号为x+1, .........。
注意: 数据是指TCP数据载荷部分。