网络通讯协议的基本要素
OSI七层模型:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层,国际标准组织提供了一套开放系统互联模型作为世界的互联网的统一标准。
五层模型:应用层(合并前3个模型)、传输层、网络层、数据链路层、物理层。
1)应用层:主要用于规定双方应用程序之间以什么形式来传输数据,这一层的数据形式是有程序员自己,制定的常见有HTTP FTP EMAIL等等。
-http超文本传输协议,基于TCP/IP协议,默认端口80,无状态,无连接,快速灵活。明文通讯未加密容易被抓包窃听篡改,每次请求3次握手开销大。
-webSocket,基于TCP/IP协议,默认端口80和443,双向通讯协议,WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的。
-https安全套接字超文本传输协议,默认端口443在http的基础上加SSL协议进行通讯加密,传输速度会慢一点。
-ftp文件传输协议,基于TCP,面向文件,默认端口21,用户首先提供远程主机的主机名,使本地主机的FTP客户机进程建立一个到远程主机FTP服务器进程的TCP连接
2)传输层:TCP/UDP工作在这一层,传输层要求每一个应用程序捆绑一个端口号。socket是一切通过端口通讯的基础(包含http)。
TCP:双通工,可靠,效率低,因为其需要不断的发送确认信息,适用于:对数据完整性高的程序,比如支付数据,文字信息;
UDP:广播传输,不可靠传输,效率高于TCP,完全不关心对方是否收到数据发送到网络中就完事,适用于:即时对战游戏,对讲机。
3)网络层:ip协议工作在网络层,ip协议规定 每一个计算机设备要联网,必须分配一个ip地址。问题:一个数据包到达对方计算机后到底交给哪个应用程序来处理。
4)数据链路层:以太网(Ethernet)协议工作在数据链路层,数据分head和data,通过广播方式来找到对方的mac地址进而定位到某台计算机。问题:不可能全球广播,会造成广播风暴(广播太多 网络瘫痪)。
5)物理层:通过物理介质建立物理连接,比如光纤网线。问题:无法理解单纯的二进制数据。