TCP/IP
tcp/ip
各种西瓜
这个作者很懒,什么都没留下…
展开
-
TCP的TIME_WAIT状态
1. TIME_WAIT状态主动关闭方在收到被动关闭方的FIN包后并返回ACK后,会进入TIME_WAIT状态,TIME_WAIT状态又称2MSL状态,每个TCP连接都必须有一个最大报文段生存时间MSL,在网络传输中超过这个时间的报文段将被丢弃。当TCP连接发起一个主动关闭,并发出最后一个ACK时,必须在TIME_WAIT状态停留两倍MSL时间,在2MSL等待期间,定义这个连接的插口(客户端IP...原创 2019-12-28 17:52:33 · 1046 阅读 · 0 评论 -
TCP的全连接和半连接队列
TCP的全连接和半连接队列当服务端调用listen函数监听端口的时候,内核会为每个监听的socket创建两个队列:半连接队列(syn queue):客户端发送SYN包,服务端收到后回复SYN+ACK后,服务端进入SYN_RCVD状态,这个时候的socket会放到半连接队列。全连接队列(accept queue):当服务端收到客户端的ACK后,socket会从半连接队列移出到全连接队列。当调...原创 2019-12-28 17:51:13 · 567 阅读 · 0 评论 -
TCP四次挥手
TCP四次挥手TCP作为可靠的连接协议,不仅体现在连接的建立上,也体现在其释放连接上,但是世界上是不存在百分之百可靠的通信机制的,我们来看下TCP释放连接,也就是四次挥手是如何尽可能保证TCP的可靠性的。使用Wireshark抓包,如图:1.四次挥手的过程当客户端已经发送完数据后,调用close方法向服务端发送FIN包,请求关闭连接,此时客户端进入FIN_WAIT1状态,代表客户端已...原创 2019-12-28 17:49:31 · 269 阅读 · 0 评论 -
TCP三次握手
TCP三次握手上一篇文章已经说了TCP是面向连接的,那么TCP是如何建立连接的那?答案就是三次握手,如果你已经了解了TCP的三次握手,在面试的时候一定被问过为什么是三次握手?两次或者四次可以吗?带着这些问题,接下来我们使用wireshak抓包工具,看看TCP是如何进行三次握手的。首先我们使用Java的Socket或者使用nc -l port监听一个端口号。例如:然后我们再使用nc ip p...原创 2019-12-08 14:27:59 · 1793 阅读 · 0 评论 -
初识TCP
1. TCP协议的概念TCP是TCP/协议簇中最重要也是最复杂协议,它位于OSI七层协议模型的网络层,它提供了一种全双工的、面向连接的、可靠的字节流服务。TCP协议是两台主机进程进行通信的基石,TCP使用连接(connection)作为最基本的抽象,同时将TCP连接的端点称为插口或者套接字(socket)。全双工:通信两端在任意时刻可以互相发送数据,既可以是客户端也可以是服务端。面向连接:通...原创 2019-12-06 21:56:56 · 369 阅读 · 0 评论