1.简介
IP地址:IP协议的设计目的可以理解为,为了隐藏不同物理网络的细节,以便各互连网络中的所有主机呈现一个统一的网络架构。可使用单个地址格式来标识互联网上的所有主机。
如一台电脑的IP地址是 00000001 00000010 00000011 00000100
点十法(将二进制变化为十进制)1.2.3.4
使用DNS服务,将IP地址绑定一个域名,转换为文字 www.xx.com 来表示上面的IP地址。
“不同的房屋使用门牌号来区分,房屋里的房间使用房间号来区分;
不同的电脑使用IP地址来区分,电脑里不同的程序使用端口号来区分。”
不同的程序有很多种交换数据的方法,其中一种是通过套接字来通信。在套接字接口中,以IP地址和通信端口组成套接字地址。
通信时需要IP地址和端口号。
例子:假设两个电脑有两个程序在通信。一个电脑的IP地址是1.2.3.4,端口号是80;另一个电脑的IP地址是128.11.3.31,端口号是2000。两个程序通信是这样的:
1.2.3.4:80<-->128.11.3.31:2000
2.TCP/IP协议模型
整个网络通信模型就是上图,一共四层,上层依赖下层。从下往上看:
第一层链路层,它负责两个设备之间数据传输。
第二层网络层,它设法将数据从源端经过若干个中间节点传送到目的端,提供最基本的端到端数据传送服务(这一层用到了IP协议,IP地址相当于网络通信中的门牌号,IP协议会经过几个中间点找到所需要通信的IP地址)。
第三层传输层,控制端对端数据传输时的速度与质量(TCP协议是可靠通信协议,当发现对面没有接收到已发送的数据,会再发送一遍)。
第四层应用层,提供特定的应用服务。(HTTP协议就是用来提供网页访问的服务)。
几点注意:
1.TCP/IP虽然经常一起提,但是他俩不在同一层,IP在第二层,TCP在第三层。(从下往上)
2.上层协议依赖于下层协议。
3.各层负责不同的事。
4.IP地址属于IP协议里的内容。
3.端口号
传输层(TCP协议和UDP协议)是使用16位端口号(0-65535)来识别程序。
对应服务器端程序来说,公认端口,范围0-1023,这些端口号一般固定分配给一些服务。比如:21端口分配给FTP(文件传输协议),25端口分配给SMTP(简单邮件传输协议),80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)。
而对应客户端应用程序来说,使用由系统分配的随机端口。动态端口,范围1024-65535,只要运行的程序向系统提出访问网络的申请,那麽系统就可以从这些端口号中,分配一个供该程序使用。再关闭程序进程后,就会释放所占用的端口号。
4.CS模型
CS模型(客户-服务器模型)
网络应用程序可以分为两种:客户端和服务器端。服务器端反复做的事:
1.等待客户端的请求
2.处理客户端的请求
3.发送响应给所有请求的客户端
4.重新回到步骤一
总之:必须有一台先运行服务器端程序(监听),然后等待客户端程序连接上来,才能进行数据通信。
写网络通信程序需要IP地址和端口号!
原文地址:https://github.com/alwxkxk/soft-and-hard