TCP/IP学习总结
一.概念的了解:
1. 熟悉TCP的状态流图(清楚的知道当客户端的TCP处于一个状态的时候,服务端的TCP处于什么状态)。
以下这个图就是TCP连接的状态变迁图:主要组成
① 打开连接的三次握手(SYN)。
② 数据的正常传输(seq,ack)。
③ 断开时的四次握手(FIN)
④ 同时打开和同时关闭都是四次握手。
2. 熟悉TCP包头信息,了解各标志的含义如SYN、FIN、SEQ、WIN、SLE、SRE、RST等,什么情况下数据包中会带有这种标志?
① SYN:同步位:指在三次握手时用到,客户端第一次请求时,TCP包有且仅SYN状态至1.只在握手时用到。
② FIN:连接断开时用到,客户端请求断开连接,此时发送一个FIN=1的TCP包,四次握手断开时用到。
③ PSH:flag为PSH的TCP包,用于快速传输数据,设置为1时,,接收端不将该数据进行队列处理,而是尽可能快将数据转由应用处理,如一些紧急的数据或重传时。
④ RST:为复位选项,是连接异常时会触发的操作,场景主要如服务器已关闭,但客户端不知道服务器情况,发送到服务器时,服务器收到莫名奇妙的东西数据返回RST复位,反过来也是一样的。
⑤ ACK:确认码,对收到之前连续数据的确认,为上一个seq+1.
⑥ URG:设置为1时,首部中的紧急指针有效;为0时,紧急指针没有意义
⑦ SEQ:这个是客户端和服务商各自都有的一个序号。开始时随机生成,主要作用是用来确认对方已经收到此序号对应的TCP包,后续的增长规则和发送的包大小有关,可以理解为字节单位。ACK不占用系统号
⑧ WIN:说明发送些TCP包的主机字节滑动窗口的大小。size.已字节为单位,这个主要用接收端win控制,像水管一样,用管道中最小的地方限制,