网络架构模型:
网络架构模型主要有OSO参考模型和TCP/IP五层模型
OSI(OpenSystemInterconnect)参考模型开放式系统互联一般叫OSI参考模型
ISO是国际标准化组织1985研究网络互联模型
ISO为了更好的使用网络、普及,推出了OSI参考模型,让所有的公司按照统一的标准制定自己的网络,便于互联
OSI定义了网络连接的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)
TCP/IP五层协议(物理层、数据链路层、网络层、传输层、应用层)
应用层:应用层是最靠近用户的一层,是为计算机用户提供应用接口,也为用户直接提供各种网络服务
我们常见的网络协议:HTTP、HTTPS、FTP、TELNT等。
传输层:建立了主机端的链接、传输层的主要作用是为上层协议提供可靠、透明的数据传输服务,包括处理差错控制和流量控制
等等问题,使高层用户看到只是两个传输实体的一条主机到主机,可由用户控制和设定:TCP和UDP就是在这一层。端口号就是这里的“端”
网络层:通过IP寻地来建立两个节点之间的链接,为源端的运输层来分组,选择合适的路由和交换节点,正确无误的按照地址传送
给目的端的运输层,就是通过说的IP层,也是经常说的IP协议层、IP协议是internet基础
TCP协议与UDP协议
TCP(TranferControlProtocol)的简称:是一种面向连接的保证可靠传输的协议,
通过TCP协议传输,得到一个顺序无差错的数据流,发送方和接收方成对的两个socket之间必须连接连接,
当一个socket等待连接时,另一个socket可以要求进行连接,一旦两个socket连接起来,它们就可以进行双向的数据传输,双方都可以进行发送和接收
TCP的三次握手
建立起来一个TCP连接需要经过三次握手
第一次:客户端发送syn包到服务器,并进入SUN_SEND状态,等待服务器确认;
第二次:服务器接收到syn包,必须确认客户端的SYN,同时自己也发送一个SYN包,此时服务器进入SYN_RECV状态;
第三次:客户端收到服务器的SYN包,向服务器发送确认,此包发送完毕,客户端和服务器端进入ESTABLISHED状态;
三次握手完成
握手过程中传送的包中不包含数据,三次握手完毕后,客户端与故武器端才正式的开始传输数据。
在理想状态下,TCP连接一旦建立,在通信双方任何一方主动关闭连接之前,TCP连接都将一致保持下去。
服务器和客户端都可以主动的断开TCP连接的请求.
UDP
UDP(UserDatagramProtocol)是一种无连接协议,每个数据报都是一个独立的信息,包括完整的源地址或目的地址,
在网络以任何可能的路径传往目的地址,因此能否到达的地,到达目的地址的时间以及内容的正确性都是不能被保证。
UDP每个数据报中都给出了完成的地址信息,因此无需建立发送方和接收方的链接
UDP在传输数据的大小上是有所限制的,每个被传输的数据必须限定在60KB之内。
UDP是一个不可靠的协议,发送方锁发送的数据并不一定以相同的次序发送到接收方
TCP面向连接协议,在socket之间进行数据的传输之前必须连接连接,所以TCP中需要连接时间。
TCp传输数据没有大小的限制,一旦连接建立起来,双方的Socket就可以按照统一的格式传输大的数据
TCP是可靠的协议它确保接收方完全正确的获取发送方所发送的全部数据
TCP在网络通信上有极强的生命力的。如远程连接(TeLnet)和文件的传输(FTP)都需要不定长度数据被可靠的传输,
但是可靠的传输,需要付出代价,对数据的内容中正确性的检验必然需要占用计算的处理时间和网络宽带,所以TCP传输的效率不如UDP高
UDP操作简单,而且仅需要少量的监护,所以通常用于局域网高可靠性的分散系统中,比如视频会议
Socket原理
Socket提供了进程通信的端点,进程通信之前,双方首相必须各自创建一个端点否则没有办法连接相互通信
连接过程服务器监听客户端的请求连接的确认