网络编程基础概念

来源:www.bjsxt.com


网络编程(socket编程)

基本概念

计算机网络

网络通信协议

 TCP协议和UDP协议

IP地址和端口号

 URL统一资源定位符

Socket套接字

TCP编程

实现用户登录功能

UDP

编程实现在线客服系统

 

计算机网络定义

计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统

计算机网络定义分析

• 主干:计算机网络是计算机系统

• 网络功能:资源共享 信息传递

• 网络组成:

• 网络硬件:计算机 外部设备 通信线路 (连接)

• 网络软件:网络操作系统 网络管理软件 网络通信协议 (管理和协 调)

计算机网络

• 计算机网络分类1(按照规模)

• 局域网LAN

• 城域网MAN

• 广域网WAN

• 计算机网络分类2(传输介质)

• 同轴电缆网络

• 双绞线网络

• 光纤网络

• 卫星网络

• 计算机网络分类3(拓扑结构)

• 星形网络

• 总线网络

• 环状网络

 

网络编程基础概念

 

网络通信协议

• 网络通信协议

• 计算机网络中实现通信必须有一些约定即通信协议,对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准

• 好比公路交通规则,学生守则

• 问题:网络协议太复杂

• 计算机网络通信涉及内容很多,比如指定源地址和目标地址,加密解密,压缩解压缩,差错控制,流量控制,路由控制,如何实现如此复杂的网络协呢?

解决方案:分层

• 由于结点之间联系很复杂,在制定协议时,把复杂成份分解成 一些简单的成份,再将它们复合起来。最常用的复合方式是层次方式,即同层间可以通信、上一层可以调用下一层,而与再下一层不发生关系。

 

网络通信协议的分层

网络编程基础概念

 

数据封装与拆封

• 1、封装(发送数据)

网络编程基础概念

• 2、拆封(接收数据)

网络编程基础概念

 

TCP/IP协议栈

• 网络层主要协议IP协议

• 传输层主要协议TCP和UDP

网络编程基础概念

 

TCP和UDP协议

• TCP(transfer control protocol)

• 一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议 。

• 特点

• 面向连接

• 点到点的通信

• 高可靠性:三次握手

• 占用系统资源多、效率低

• 生活案例

• 打电话

• 应用案例:

• HTTP FTP TELNET SMTP

 

• UDP(User Datagram Protocol )

• UDP(User Datagram Protocol )

• 一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务

• 特点:

• 非面向连接,传输不可靠,可能丢失

• 发送不管对方是否准备好,接收方收到也不确认

• 可以广播发送

• 非常简单的协议,开销小

• 生活案例:

• 发送短信 发电报

• 应用案例:

• DNS SNMP

 

IP与端口

• IP地址

• 用来标志网络中的一个通信实体的地址。通信实体可以是计算机,路由器等。

• IP地址分类

• IPV4:32位地址,以点分十进制表示,如192.168

• IPV6:128位(16个字节)写成8个16位的无符号整数,每个整数用四个十六进制位表示,数之间用冒号(:)分开,比如:3ffe:3201:1401:1280:c8ff:fe4d:db39:1984

• 特殊的IP地址

• 127.0.0.1 本机地址

• 192.168.0.0--192.168.255.255私有地址,属于非注册地址,专门为组织机构内部使用。

 

• 端口:port

• IP地址用来标志一台计算机,但是一台计算机上可能提供多种应用程序,使用端口来区分这些应用程序。

• 端口是虚拟的概念,并不是说在主机上真的有若干个端口。通过端口,可以在一个主机上运行多个网络应用程序。

• 端口范围0---65535,16位整数

• 理解IP和端口的关系

• IP地址好比每个人的地址(门牌号),端口好比是房间号。必须同时指定IP地址和端口号才能够正确的发送数据

• IP地址好比为电话号码,而端口号就好比为分机号。

• 端口分类

• 公认端口 0—1023 比如80端口分配给WWW,21端口分配给FTP

• 注册端口 1024—49151 分配给用户进程或应用程序

• 动态/私有端口 49152--65535