天天看點

三次握手和四次揮手

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

如果是兩次,用戶端就不知道服務端有沒有收到

四次就浪費了,相當于确認兩次

繼續閱讀