OSI七层模型及各层模型对应的设备
应用层(PC机)
表示层
会话层
传输层(防火墙)
网络层(路由器)
数据链路层(交换机)
物理层(网卡)
TCP/IP模型
应用层, TCP/IP定义了许多协议,如HTTP(超文本传输协议),FTP(文件传输协议),SMTP(简单邮件传输协议),DNS(域名系统)等
传输层(TCP(传输控制协议)/UDP(用户控制协议))
网络层(ICMP/IP/ARP)
数据链路层
物理层
TCP协议的特点
TCP是面向链接的可靠的进程到进程通信的协议
TCP提供全双工服务,及数据可在同一时间双向传输
TCP将若干个字节构成一个分组,此分组称为报文段
TCP报文段的首部格式
TCP协议的三次握手和四次挥手
第一次握手:Client将标志位SYN置为1,随机产生一个seq=x,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=x+1,随机产生一个值seq=y,并将该数据包发送给Client以 确认连接请求,Server进入SYN_RCVD状态。
第三次握手:Client收到确认后,检查ack是否为x+1,ACK是否为1,如果正确则将标志 位ACK置为1,ack=y+1,并将该数据包发送给Server,Server检查ack是否为y+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手, 随后Client与Server之间可以开始传输数据了。
第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传输,同时发送一个seq=x的随机序号。Client进入FIN_wait_1状态
第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN 相同,一个FIN占用一个序号)Server进入CLOSE_WAIT状态。
第三次挥手:Server发送一个FIN,用来关闭Server到CLient的数据传输,同时发送一个seq=y的随机数,Server进入LAST_ACK状态
第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次回挥手