OSI:OSI是Open System Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型。这个模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
物理层:
中继器(repeater): 双绞线(RJ-45接口网线)的理论最大传输距离是100M,超过100M信号会衰减,这时候就要用到中继器,它能起到放大信号延长传输距离的作用。
光纤:以功能分为单模光纤和多模光纤(传输速度慢,距离短),也可以分为室内(橙黄色)和室外(橙红色)。光纤有效传输距离为1000米,不受电磁干扰,但安装时弯曲半径不得小于30cm。
同轴电缆:用于闭路电视和监控等。分为细轴电缆(10base2)和粗轴电缆(10base5),一个细缆可以接收35个RJ45网线口的数据量,传输距离为185米;一个粗缆可以接收100个RJ45网线口的数据量,传输距离为1500米。
集线器(hub):集线器相当于一个多端口的中继器,也能起到放大信号的作用,并且集线器是属于半双工模式的(简单的理解成在同一时刻只有一个方向的数据 可以传输,收的时候不能发,发的时候不能收),而在集线器连接的网络中,不管有多少个集线器,都只有一个广播域和一个冲突域。
物理层:定义了网络接口标准,以及电压,确定了数据如何传输。
数据链路层(Data Link Layer):
网络层(Network):
传输层(Transport Layer):
传输层实现了用户进程间端到端的通信(End-to-End),传输层相关的协议有TCP、UDP等。我们会经常看到这两个协议名称出现 在Windows CMD的”netstat -ano”这条命令的显示里,Linux下可以在终端中输入”netstat -nautp”来查看这些端口。TCP(Transmission Control Protocol)——是一种面向连接的传输层协议,能提供可靠的数据传输,在传输数据前需要先建立连接,下面是TCP从”三次握手”建立连接到数据传输,再到”四次握手”断开连接的过程:
1)首先客户端发送连接请求报文(SYN);
2)服务端接受连接后回复(SYN+ACK)报文,并为这次连接分配资源;
3)客户端接收到(SYN+ACK)报文后向服务端回发(ACK)报文,并分配资源,这样TCP连接就建立了;
数据传输阶段——建立连接后双方的状态都是”ESTABLISHED”,此时就可以互传数据了;
断开连接的”四次握手”过程:
1)断开连接的(FIN)报文可以是客户端也可以是服务端发出,本例假设是客户端发出,(FIN)报文告诉服务器:”我是客户端,我已经没有数据需要发给你了,但是如果你还有数据没有发送完成,不必急着关闭Socket,仍然可以继续发送数据给我”;
2)服务器收到这个(FIN)报文后,先发送(ACK)告诉客户端:”你的请求我收到了,请继续等我的消息”;客户端收到这个(ACK)就进入FIN_WAIT状态,继续等待Server端的FIN报文;
3)当服务器确定数据已发送完成,则向客户端发送(FIN)报文告诉客户端:”我这边数据发完了,准备好关闭连接了”;
4)客户端收到(FIN)报文后,知道可以关闭连接了,最后向服务端发送(ACK)进行关闭确认,然后进入”TIME_WAIT”状态,如果服务端没有收 到(ACK)则可以重传;服务端收到(ACK)后,将连接关闭。客户端等待了MSL(在RFC793指出MSL为2分钟,然而,实现中的常用值是30 秒,1分钟或2分钟)后依然没有收到回复,则证明服务端已正常关闭,此时客户端也将连接关闭。TCP连接断开完成。
TCP协议:可靠传输控制协议,不允许有丢帧现象,延迟比较高。用于http,ftp协议等。
UDP协议:不可靠传输控制协议,没有差错验证,延迟低。用于视频通话,语音通话等。