网络编程
在计算领域中,网络是传输信息、接受、共享的虚拟的平台。
通过它可以把各个点、面、体的信息联系到一起,从而实现这些资源的共享。
网络是人类发展史上最重要的发明,提高了人类和科技的一个发展。
1. 什么是网络编程
网络编程就是通过网络实现信息的发送和接收。
网络编程主要的工作就是在发送端把信息按照协议组装数据包,在接收端按照协议把解析数据包,从而提取出对应的信息,达到通信的目的。
中间最主要的就是数据包的组装、数据包的过滤、数据包的捕获以及数据包的分析等工作。
2. OSI 七层网络模型
基础层:物理层(Physical)、数据链路层(Datalink)、网络层(network)。
传输层(Transport):TCP/UDP协议层。
高级层:会话层(Session)、表示层(Presentation)、应用层(Application)
3. 网络模型对应关系
4. Socket 基本概念
Socket:是一种 IP 地址与端口的结合描述协议(RFC 793),包括 Stream socket 和 Datagram Socket。
Socket的组成与作用:
在网络传输中用于唯一标识两个端点的链接。
端点:包括 ip 和 port。
4个要素:客户端的地址、客户端的端口、服务器的地址、服务器端口。
5. Socket 传输原理
1) TCP
TCP 是面向连接的通讯协议。
通过三次握手建立连接,通讯完成时要拆除连接。
由于TCP是面向连接的,所以只能用于端到端的通信。
TCP传输图解:
2) UDP
UDP 是面向无连接进行通讯的。
UDP 数据包括目的端口号和源端口号信息。
由于通讯时是不需要连接,所以可以是实现广播发送,并不局限于端到端。
UDP传输图解:
下一章:网络编程 IO 模型:同步和异步
同步和异步都是消息的一种通知机制。 1. 同步同步就是在发出一个功能调用时,在没有得到结果之前,该调用不返回。例如:当程序1调用程序2时,程序1停下不动,直到程序2完成回到程序1来,程序1才继续执 ...