网络编程

在计算领域中,网络是传输信息、接受、共享的虚拟的平台。

通过它可以把各个点、面、体的信息联系到一起,从而实现这些资源的共享。

网络是人类发展史上最重要的发明,提高了人类和科技的一个发展。

 

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传输图解:

同步和异步都是消息的一种通知机制。 1. 同步同步就是在发出一个功能调用时,在没有得到结果之前,该调用不返回。例如:当程序1调用程序2时,程序1停下不动,直到程序2完成回到程序1来,程序1才继续执 ...