网络编程
网络基础参阅:https://blog.csdn.net/Su_Levi_Wei/article/details/100540838
计算机网络:指分布在不同地域的计算机,通过外部设备连接起来,实现了资源共享(数据和设备的共享)与数据传输的计算机系统。
外部设备:计算机、路由器、交换机等。
网络编程:解决计算机PC与计算机PC之间的数据通信传输的问题,即Socket编程。
Web编程:基于浏览器的客户端与服务端进行数据传输的BS结构编程。
网络要素
IP(Internet Protocol Address)地址:也称为互联网协议地址,每台计算机有一个自己的地址,可以让其他计算机通过地址访问自身的资源。
端口(Port):分为物理端口和逻辑端口,端口是服务的编号,计算机中运行了大量的软件,如果一个软件要访问网络,必须分配一个端口号。
协议(Protocol):网络中各个设置(路由器、交换机、防火墙)统一遵守的格式,数据传输中的输入、输出的格式。
IP地址
IP地址的长度为32位,分为四段,每段8位,用十进制表示,每段的数字分为是0~255。
11000000 10101000 10000000 00000001 | 192.168.128.1 |
备注:127.0.0.1是回环地址,表示本机。
IP地址分类:
类型 | 范围 | 作用 |
A | 0.0.0.0 ~ 127.255.255.255 | 网络、主机 |
B | 128.0.0.0 ~ 191.255.255.255 | 网络、主机 |
C | 192.0.0.0 ~ 123.255.255.255 | 网络、主机 |
D | 224.0.0.0 ~ 239.255.255.255 | 多播,不再分配 |
E | 240.0.0.0 ~ 255.255.255.255 | 科研,不再分配 |
备注:IPv4从理论上讲,编址有1600万个网络,40亿太主机,大部分地址给北美地区占有了,全球来看其他地区根本不够用。严重的制约了其他国家的互联网应用和发展。
如果说IPv4实现的是人机对话,而IPv6实现的是任意事物之间的对话,不仅为人类服务,还可以用于硬件设备,如传感器、照相机等。原因在于IPv6的地址长度为128位,即最大的地址个数是2^128。
域名与DNS服务器
域名:是IP地址的另一种表达形式,主要是IP地址作为一串数字,很难让人产生对其意义的理解,并且不容易记忆,所以人们就把其映射为域名,如www.baidu.com,背后对应的百度服务器的IP地址。
DNS(Domain Name System)服务器:如上所说的,www.baidu.com背后对应的百度服务器的IP地址,问题是计算机怎么知道背后百度的这个服务器的IP地址。就是靠这个DNS服务器,计算机会先把www.baidu.com这个发给DNS服务器,DNS服务器是存储了www.baidu.com这个域名对应的IP地址,进而帮助你找到了这台服务器。
端口
端口号 | 描述 |
0 ~ 1023 | 系统保留端口,不推荐使用 |
1024 ~ 49151 | 注册端口,松散的注册了一些软件,可以使用。 |
49152 ~ 65535 | 用户使用 |