OSI定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)
网络通讯步骤:确定对端IP地址→ 确定应用程序端口 → 确定通讯协议
操作系统有0-65535个端口 1024前端口系统自动分配用了
UDP:User Datagram Protocol用户数据报协议面向无连接:传输数据之前源端和目的端不需要建立连接。现实生活实例:邮局寄件、实时在线聊天、视频会议…等。
每个数据报的大小都限制在64K(8个字节)以内。面向报文的不可靠协议。(即:发送出去的数据不一定会接收得到)传输速率快,效率高。
TCP:Transmission Control Protocol传输控制协议,面向连接:传输数据之前需要建立连接。
在连接过程中进行大量数据传输。通过“三次握手”的方式完成连接,是安全可靠协议。传输速度慢,效率低。
Socket是实现TCP,UDP协议的接口,便于使用TCP,UDP
socket通信流程描述: # 应用程序两端通过“套接字”向网络发出请求或者应答网络请求。可以把socket理解为通信的把手(hand)
1 服务器根据地址类型(ipv4,ipv6)、socket类型、协议创建socket
2 服务器为socket绑定ip地址和端口号
3 服务器socket监听端口号请求,随时准备接收客户端发来的连接,这时候服务器的socket并没有被打开
4 客户端创建socket
5 客户端打开socket,根据服务器ip地址和端口号试图连接服务器socket
6 服务器socket接收到客户端socket请求,被动打开,开始接收客户端请求,直到客户端返回连接信息。这时候socket进入阻塞状态,所谓阻塞即a