1.TCP/IP协议、三次握手四次挥手

一、TCP/IP四层模型

    1.TCP/IP协议:网络通信协议,定义了电子设备如果连入因特网、以及数据传输的标准。
    2.应用层:处理特定的应用程序细节。eg: HTTP超文本传输协议、DNS域名解析、FTP文件下载协议、远程协助Telnet协议等;
       传输层:为两台主机上的应用提供端到端的通信。TCP协议和UDP协议。  
       网络互联层:提供阻塞控制、路由选择等。IP协议。
       网络访问层:连接主机到网络。
    3.TCP/IP报文格式

1.TCP/IP协议、三次握手四次挥手

二、TCP协议,三次握手和四次握手

    1.TCP协议:传输控制协议,是一种面向连接的、传输可靠的、基于IP协议的传输层协议。
    2.TCP头部(20~60字节) 重要参数:
         源端口号和目的端口号,各2字节。用于区分不同进程.(TCP调用IP协议获取两端主机地址)
         序号SequenceNumber,4字节。解决网络包乱序的问题.(存报文的序列)
         确认号ACK Number,4字节。表示接收端希望收到的数据序号(数值为上一次的seqNum+1)。只有ACK标志位为1才有用。
         6个标志位: SYN发起一个连接;FIN释放一个连接;ACK确认序号有效;RST重建连接(关闭异常连接);PSH报文到达时立即给应用程序;URG紧急指针。
    3.建立连接时为什么需要第三次握手:防止失效的请求又传到了server导致产生错误(如果是过期的请求,第三次client不会确认)。    eg:第一次发起请求,报文没丢但是滞留在网络节点了,client以为挂了就发起了重试.重试建立连接之后第一次的请求又到server了,如果没有第三次握手就可能出问题。
    4.time_wait阶段的2MSL(报文最大生命时间,一般30s/1m/2m)的作用: a.保证最后一个ACK能到被关闭方(如果没收到第四次握手,被关闭方会重试第三次握手); b.保证本次连接的所有数据都从网络中消失.
    5.为什么建立连接只要3次,关闭要4次:建立连接时ACK和SYN可以一起发;关闭时被动关闭方不能立马断开(可能数据还没传完),所以ACK和FIN需要分两次发。

1.TCP/IP协议、三次握手四次挥手

三、IP协议

    1.IP协议:把数据从源传到终。能重组数据大小以适应不同网络对包大小的要求,但不负责传输的可靠性、包顺序、流控制等。
    2.IP寻址