天天看点

三次握手和四次挥手

TCP/IP是一个协议栈,包括TCP、IP、UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP等许多协议

传输层通过port号,确定应用层协议  Port number:  tcp:传输控制协议,面向连接的协议;通信前需要建立虚拟链路;结束后 拆除链路 0-65535  udp:User Datagram Protocol,无连接的协议 0-65535  IANA:互联网数字分配机构(负责域名,数字资源,协议分配)

0-1023:系统端口或特权端口(仅管理员可用) ,众所周知,永久的 分配给固定的系统应用使用,22/tcp(ssh), 80/tcp(http), 443/tcp(https)

1024-49151:用户端口或注册端口,但要求并不严格,分配给程序 注册为某应用使用,1433/tcp(SqlServer),1521/tcp(oracle), 3306/tcp(mysql),11211/tcp/udp (memcached) 49152-65535:动态端口或私有端口,客户端程序随机使用的端口 其范围的定义:/proc/sys/net/ipv4/ip_local_port_range

问tcp和udp不同

tcp安全,需要三次握手

udp不安全,直接发

三次握手和四次挥手

第一次握手

客户端和服务器都是closed

客户端主动打开发送syn=1,seq=x,发送x数据包,x是数据包编号

服务器收到处于监听状态linsten,客户端变成syn-sent

当客户端向服务器发起连接请求时,客户端会发送同步序列标号SYN到服务器,在这里我们设SYN为m,等待服务器确认,这时客户端的状态为SYN_SENT。

第二次握手服务器返回syn ack 服务器数据包seq=y个数据包,ack=x+1表示自己收到了,下次发送x+1个数据包,ACK是确认号,服务端编程syn-rcvd

第三次握手:客户端发送seq=x+1数据包,ack=y+1,y+1是服务端发送了y包,我要回应我收到了y包,发送y+1,

客户端变成estab-lished建立链接,服务端变成bestab-lished

如果是两次,客户端就不知道服务端有没有收到

四次就浪费了,相当于确认两次

继续阅读