OSI七层模型:
应用层 : 提供应用程序间的通信
表示层 :处理数据格式和数据加密等
会话层 :建立、维护和管理会话
传输层 :建立主机端口和端口连接
网络层 :寻址和路由选择 (路由器)
数据链路层: 提供介质访问和链路管理等 (交换机)
物理层 :比特流传输
广域网靠ip地址通信,局域网靠mac地址通信
TCP/IP四层模型:
tcp/ip是将应用层、表示层、会话层统一称为应用层
之后是传输层、网络层和网络接口层。即:
应用层: 提供HTTP、SSH、FTP这类Hytera自有传输协议
传输层: TCP、UDP协议
网络层: IP协议
网络接口层: 物理寻址和接口原始比特流传输
ARP协议:
①ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址。
②在网络通信中,主机和主机通信的数据包需要依据OSI模型从上到下进行数据封装,当数据封装完整后,再向外发出。所以在局域网的通信中,不仅需要源目IP地址的封装,也需要源目MAC的封装。
③一般情况下,上层应用程序更多关心IP地址而不关心MAC地址,所以需要通过ARP协议来获知目的主机的MAC地址,完成数据封装。
如主机a想给主机b发消息,他仅仅知道主机b的ip是不够的,就像我们寄快递,只填写名字不填写收获地址是不可以的。这个时候arp协议就起作用了,首先主机a想给主机b发消息,那么他先发送arp请求,当主机b收到后会给主机a回应并且附带自己的mac地址,这个时候主机a把主机b的ip和mac地址都暂存起来即存在arp缓存表中,之后开始发送消息。这就是arp的作用。
TCP协议:
TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。
关于tcp协议三次握手:
第一次:a对b说 在吗 我想给你发东西
第二次:b对a说 我在 你发吧
第三次:a对b说 好的 那我准备发了
之后a开始向b传输数据
第一次握手: 建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认;
第二次握手: 服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(Sequence Number+1);同时,自己自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态;
第三次握手: 客户端收到服务器的SYN+ACK报文段。然后将Acknowledgment Number设置为y+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。
关于tcp协议四次挥手:
第一次:a对b说 我发送完了,我要关闭通信了哦
第二次:b对a说 我知道了,你可以关闭通信了
第三次:b对a说 那我也关闭通信了
第四次:b对a说 好的
之后a和b关闭通信
第一次分手: 主机1(可以使客户端,也可以是服务器端),设置Sequence Number,向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了;
第二次分手: 主机2收到了主机1发送的FIN报文段,向主机1回一个ACK报文段,Acknowledgment Number为Sequence Number加1;主机1进入FIN_WAIT_2状态;主机2告诉主机1,我“同意”你的关闭请求;
第三次分手: 主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态;
第四次分手: 主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1的ACK报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,主机1也可以关闭连接了。