网络编程|网络基础

一、了解几个网络基本概念

1、前言

计算机网络:将地理位置不同的计算机通过通信线路连接起来,实现资源共享和信息传递。
这里所谓的计算机,通常称为主机
网络编程就是通过程序实现两台(或多台)主机之间的数据通信。
实现过程:建立连接---->按照事先规定好的格式进行数据传输------>完成主机之间的信息传递

2、IP地址和域名

①每台主机都有一个唯一的身份标识----->IP地址

  • IP地址由32位二进制组成(根据IP协议的不同分为IPv4和IPv6地址,在这里只讨论IPv4地址)
  • 通常写成4个0~255的数字(例如: 10.10.0.1)
  • 每台接入网络的主机都拥有一个唯一的IP地址,这也是实现主机之间进行网络通信的前提条件。

主机名+域名 ----->访问网络主机时更多用的标识
例如:www.baidu.com 其中baidu.com为域名,www为主机名。
③域名解析系统(Domain Name System,DNS)
将名字转换成对应IP地址

2、端口和Socket

①端口解决的问题:一台主机可以同时运行多个程序(称为进程),只有知道和哪个进程进行通信才能保证数据传输的准确性。-------->为每个通信进程分配一个唯一的数字标识,即端口(port)。
实际网络通信的标识: 主机IP地址和端口号 ------>二者合在一起叫做Socket,因此网络编程也称为基于Socket的编程。

3、C/S模式(客户端/服务器端)

①网络通信模型:“请求-响应” ----->有一方首先发起请求,另一方根据请求进行响应,从而建立起连接。
②客户端(Client):发起请求的一方
服务器端(Server):接受请求的一方
③注:使用C/S模式需要分别开发客户端和服务器端程序,需要安装对应的客户端程序才能与服务器端通信,客户端程序不具备通用性。(这也解释了为什么手机中需要安装很多App----客户端应用程序)。
④另:有一些应用不需要安装额外的客户端程序,只要有一个浏览器(Browser)就可以访问---->B/S模式,
但是其本质仍是C/S模式。

二、TCP和UDP协议

1、协议解释

例如,两个人要进行交流,是用电话还是用邮件?是用中文还是用英文?如果两人规定用邮件、用英文进行交流,这就是制定了一个通信规则,而这个规则可以看成是协议。

网络协议

就是为计算机网络中进行数据交换而建立的规则、标准或约定的集合。

2、TCP协议

传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的可靠的传输协议。保障了两个应用程序之间的可靠通信。通常用于互联网协议,被称 TCP / IP。

  • 优点:采用通信双方相互应答的方式来保证数据传送的可能性
  • 缺点:网络的通信开销有所增加,协议更为复杂
  • 适用范围:大部分使用

3、UDP协议

用户数据报协议(User Datagram Protocol,UDP)是一种面向无连接的传输协议。

  • 优点:不需要通信双方事先建立连接和应答就进行传输,协议简单,效率更高
  • 缺点:不保证通信的可靠性
  • 适用范围:简单的网络应用

猜你喜欢

转载自blog.csdn.net/Geekst/article/details/89317272