1、每一个TCP连接由一个四元组构成,更准确的说是一对端点或套接字。
2、连接建立的过程称为三次握手,三次握手的目的不仅在于让通信双方了解一个连接正在建立,还在于利用数据报的选项来承载特殊的信息,交换初始序列号
tcp连接建立和关闭的过程
3、TCP半关闭
由于一条tcp连接支持双向通信,因此存在一种情况:我还可以接收你发的数据,但我不再给你发送数据(数据确认包还是会发送的)。这种情况称为半关闭,套接字的shutdown()函数实现这种操作。
4、同时打开与关闭
同时打开与关闭是发生在同一条连接上,即A通过端口7777向B的8888端口提出连接请求,同时B通过8888端口向A的7777端口提出连接请求,如果有任意一个IP或端口不对应,则属于另外一条连接了。
可以看到比普通的三次握手多了一次(面试预警)
其实连接的建立本质上是使双方都建立起一个完整的连接对象,甭管是几次握手, 只要这个对象建立完成,这个连接就建立了。
5、一个TCP报文段想要被对方接收,除了具备连接的四元组,还要有当前活动窗口的序列号。为了抵御伪造tcp报文的行为,连接建立时的初始序列号一般被设计成难以被猜出的。
6、连接建立超时