http:tcp/ip协议

一.什么是ip,怎么工作的?
    ip是用于计算机的通讯的,无连接的通信协议,ip将数据分隔成包的形式,并将其送到目的地;:网络协议

二.什么是tcp,怎么工作的?
    tcp是用于应用程序的通讯,在握手成功后,tcp会在两个通讯协议中建立双工道通讯,会占用通信线路;传输控制协议

三.什么是dns,做什么工作的
    dns是网络上作为域名与ip地址相互映射的分布式数据库,将访问输入的域名转化为ip地址

四.tcp/ip
    tcp负责软件与软件之间的通讯,ip负责计算机与计算机的通讯,tcp将数据分割成包,然后ip负责发送,tcp最后再组合起来;

五.端口号:

分为16位源端口号以及16位目的端口号(二的十六次方)

六.tcp的三次握手
    第一次握手:建立连接时,客户端发送 syn 包(syn=j)到服务器,并进入 SYN_SEND 状态,等待服务器确认;
    第二次握手:服务器收到 syn 包,必须确认客户的 SYN(ack=j+1),同时自己也发送一个 SYN 包(syn=k),即 SYN+ACK 包,此时服务器进入 SYN_RECV 状态;
    第三次握手:客户端收到服务器的 SYN+ACK 包,向服务器发送确认包 ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED状态,
        syn包:同步序列编号(Synchronize Sequence Numbers)。是TCP/IP建立连接时使用的握手信号;
        ack包:ACK (Acknowledgement)即是确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。
        重传次数:以1.5s开始,最多12次,最高64s内
为什么是三次
    防止失效的连接请求报文段被服务端接收,从而产生错误(网络延时等)

http:tcp/ip协议

七.四次挥手
    第一次挥手:TCP客户端发送一个FIN,用来关闭客户到服务器的数据传送。
    第二次挥手:服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
    第三次挥手:服务器关闭客户端的连接,发送一个FIN给客户端。
    第四次挥手:客户端发回ACK报文确认,并将确认序号设置为收到序号加1    
    TIME_WAIT:可靠的实现tcp全双工链接的终结,如果A端不维持TIME_WAIT状态,而是处于CLOSED 状态,那么A端将响应RST分节,
    B端收到后将此分节解释成一个错误(在java中会抛出connection reset的SocketException)。
    因而,要实现TCP全双工连接的正常终止,必须处理终止过程中四个分节任何一个分节的丢失情况,主动关闭连接的A端必须维持TIME_WAIT状态 。

资料参考:

朱 晶:TCP 协议简述与三次握手原理解析

百度:tcp/ip协议