- 什么是tcp/ip协议?
Tcp/ip协议是一个协议簇,是一系列协议的总称,其中最核心的就是ip协议和tcp协议,tcp/ip协议包括:ip、tcp、icmp(internet控制报文协议)、udp(用户数据报协议)、arp等,他们共同构成了一个复杂但是有层次的协议栈。Tcp/ip一共有四层,从上到下分别为:应用层、传输层、网络层、链接层。
IP协议:Internet Protocol的缩写,主要用于解决寻址和路由问题
Tcp协议:“Transmission Control P ro to co l”是传输协议,它位于IP协议之上,基于IP协议提供可靠的、字节流形式的通信。
- TCP协议和UDP协议的区别?
TCP协议是有连接状态的,udp是无连接状态的
Tcp传输的数据是以字节流的形式,udp是报文信息的形式
Tcp传递的信息是更安全,更有保证的,但是udp是尽量去送到
TCP传递的数据是有序性的,udp是无序的
Tcp是更消耗资源的
- TCP的三次握手,为什么需要三次握手
在tcp/ip协议中,tcp协议提供了可靠的连接服务,采用三次握手建立一次连接
TCP的第一次握手:建立连接时,客户端向服务器端发送SYN包(syn=1),进入syn_send状态,等待服务器确认。(syn=1,seq=x)
TCP的第二次握手:服务端收到SYN包,必须确认客户的syn包,同时自己也发送一个syn+ack给客户端,此时服务器进入syn_recv状态。(syn=1,ACK=1,seq=y,ack=k+1)
TCP的第三次握手:客户端收到服务器端的syn+ack包,向服务器发送确认包ack,此包发送完毕,客户包和服务器端进入established状态,三次握手完成。(ack=1,seq=x+1,ack=y+1)
Tcp flags:
Urg:紧急指针标志,为0表示无效,1表示有效
ACK:确认序号标志,为1表示确认号有效,为0表示报文中不含确认号信息,忽略
PSH:push标志,收到后尽快交给应用层序
RST:重置连接标志,
SYN:同步确认号,用于建立连接过程,如果syn=1,ack=0用户表示没有使用捎带的确认域,(syn=1,ack=1,表示捎带确认)
FIN:finish标志,用于释放连接
为什么三次握手:如果第一次握手后,
- TCP的滑动窗口作用
保证tcp的可靠性
保证tcp的流控特性
- Tcp的四次挥手
四次挥手的目的时为了关闭连接
第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,客户端进入FIN_WAIT_1状态
第二次挥手:Server收到Client的FIN后,发送一个ack给client,确认需要为收到序号+1,server进入close_wait状态
第三次挥手:server发送一个FIN给client,用来关闭server到client的数据传送,server进入last_ack状态
第四次挥手:client收到server的FIN后,client进入time_wait状态,接着发送一个ack给server,确认序号为收到序号+1,server进入close状态,完成四次挥手。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。